UnClick MCP Server
@unclick/mcp-server
Der App-Store für KI-Agenten. unclick.world
Über 450 aufrufbare Endpunkte für mehr als 178 Tools, verfügbar für jeden MCP-kompatiblen KI-Client. Neue Tools werden kontinuierlich in der API bereitgestellt. Ihr Agent erkennt diese automatisch; es ist kein Paket-Update erforderlich.
Installation
Mit npx (keine Installation erforderlich):
{
"mcpServers": {
"unclick": {
"command": "npx",
"args": ["@unclick/mcp-server"]
}
}
}Fügen Sie dies zu Ihrer claude_desktop_config.json (oder dem Äquivalent für Cursor, Windsurf usw.) hinzu.
Oder global installieren:
npm install -g @unclick/mcp-serverRelated MCP server: agentify-desktop
Betriebshinweise
Dieses Repository folgt den AGENTS.md-Regeln für die Arbeit mit Agenten.
Was es bewirkt
Es gibt Ihrem Agenten Zugriff auf einen wachsenden Katalog von Tools für Entwickler-Dienstprogramme, soziale Medien, E-Commerce, Finanzen, Messaging, Medien, Sicherheit und mehr. Sie müssen keine separaten Pakete für jede Integration installieren. Ein Server bietet Zugriff auf alles im Katalog.
Tool-Oberfläche
UnClick bietet eine kleine direkte Oberfläche für tägliche Agenten-Workflows sowie versteckte interne Discovery-Tools für den vollständigen Katalog.
Tool-Gruppe | Tools |
Memory-Session-Protokoll |
|
Signale und Fishbowl-Koordination |
|
Versteckte interne Katalog-Tools |
|
Der Agent startet mit Memory, verwendet direkte Fishbowl-Tools zur Koordination und kann bei Bedarf für die dynamische Endpunkt-Erkennung weiterhin die versteckten Katalog-Tools beim Namen aufrufen.
Kompatibilität und erweiterte Memory-Operationen
Legacy-Memory-Namen funktionieren weiterhin als Aliase:
get_startup_context->load_memory,write_session_summary->save_session,add_fact->save_fact,set_business_context->save_identity.Die übrigen Memory-Operationen sind absichtlich nicht in
ListToolsaufgeführt und werden überunclick_callmitendpoint_id: "memory.<op>"aufgerufen (zum Beispielmemory.manage_decay,memory.store_code,memory.log_conversation,memory.supersede_fact,memory.upsert_library_doc).
Anforderungen
Node.js 18+
Ein API-Schlüssel von unclick.world
Setzen Sie Ihren Schlüssel als Umgebungsvariable:
UNCLICK_API_KEY=your_key_hereOder übergeben Sie ihn über die MCP-Konfiguration:
{
"mcpServers": {
"unclick": {
"command": "npx",
"args": ["@unclick/mcp-server"],
"env": {
"UNCLICK_API_KEY": "your_key_here"
}
}
}
}Mehr
Vollständiger Katalog, Dokumentation und API-Schlüssel unter unclick.world.
Available Tools
1689 toolsabn_lookupCRead-onlyIdempotent
Look up an Australian Business Number (ABN).
| Name | Required | Description | Default |
|---|---|---|---|
| abn | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context such as authentication needs, return format, or whether the ABN must be formatted in a particular way.
Agents need to know what a tool does to the world before calling 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 wasted words. It is efficient, though its brevity contributes to the gaps in parameter and usage 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 two-parameter lookup tool with no output schema and zero schema description coverage, the description is incomplete. It leaves out ABN formatting, requiredness cues beyond the schema, and the role of api_key.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but does not. It expands the acronym ABN, which adds slight meaning to the abn field, but it gives no format or validation details and never mentions the optional api_key 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 states a specific verb and resource: looking up an Australian Business Number. It is clear what the tool does, but it does not distinguish itself from the sibling tool abn_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 abn_search. The only implied usage comes from the tool name and description, with no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
abn_searchCRead-onlyIdempotent
Search for Australian businesses by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world and non-destructive, so the safety profile is covered. The description adds nothing beyond that: no note that the call hits a registry-backed external API, no mention of result limits, pagination, or that an API key is needed for auth.
Agents need to know what a tool does to the 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 with no filler. It is terse rather than bloated, though the brevity comes at the cost of the missing information noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should say what a result contains (ABN, entity name, status, location), but it does not. Combined with zero schema coverage on both parameters and no auth note, an agent could call this correctly only by guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does not. The 'name' parameter is only implied by the phrase 'by name', and the 'api_key' parameter — an authentication credential — is not mentioned anywhere in the description or 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 and resource ('Search for Australian businesses by name'), which is clear on its own. It does not distinguish itself from the sibling abn_lookup, so an agent cannot tell from the description whether to search by name here or use the lookup variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus abn_lookup, no note that results are name-based fuzzy matches rather than exact ABN resolution, and no mention of prerequisites. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
abuseipdb_blacklistC
Get the AbuseIPDB blacklist.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No | ||
| confidenceMinimum | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It does not indicate that the tool is read-only, any authentication requirements (though api_key is a parameter), rate limits, or what happens when parameters are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While very concise (4 words), it is under-specified. It lacks structure to convey essential information about parameters, usage, or behavior. Conciseness without substance is not effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3 undocumented parameters, no output schema, and no annotations, the description is grossly incomplete. It fails to explain what the blacklist contains, how to use the parameters, or what the response format is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the three parameters (confidenceMinimum, limit, api_key). It does not explain how they affect the output or provide formatting 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 states 'Get the AbuseIPDB blacklist', which clearly identifies the action (get) and the resource (blacklist). It distinguishes from sibling tools like abuseipdb_check_ip and abuseipdb_report_ip, which operate on individual IPs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives like abuseipdb_check_ip. It does not mention any prerequisites, such as needing an API key, which is a parameter but not described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
abuseipdb_check_ipCRead-onlyIdempotent
Check if an IP address has been reported for abuse.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| api_key | No | ||
| maxAgeInDays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered structurally. The description adds nothing further: no mention that this is a third-party abuse-report database, no rate-limit or API-key/quota notes, no indication of what confidence score or report count comes back.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, no filler. It is efficient, but the brevity reflects under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no parameter documentation means the description is the only place to explain what a result looks like and how the lookback window or credentials work — and it covers none of that. For an external, key-required reputation lookup this is thin.
Complex tools with many parameters or behaviors need more documentation. Simple 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% across 3 parameters, so the description must compensate and does not. The 'ip' parameter semantics are implied, but 'maxAgeInDays' (the report lookback window) and 'api_key' (an auth parameter) are completely undocumented anywhere — a real gap for an open-world external API call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Check') and resource ('an IP address') and states the question it answers: has this IP been reported for abuse. It does not differentiate from close siblings such as virustotal_scan_ip, ip_lookup, or abuseipdb_blacklist, which an agent must disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus the sibling abuseipdb_report_ip (the write counterpart) or versus other IP-reputation tools (virustotal_scan_ip, ipinfo_lookup, ip_lookup). Usage is only implied by the verb 'check'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
abuseipdb_report_ipC
Report an abusive IP address to AbuseIPDB.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| api_key | No | ||
| comment | No | ||
| categories | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only indicates a write operation ('report') but lacks details on side effects, authentication needs, rate limits, or what happens after reporting.
Agents need to know what a tool does to the 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 is concise but overly brief for a tool with 4 parameters. Could include more detail without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters, no output schema, and no annotations, the description is insufficient. It fails to explain required parameters like 'categories' format or optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for parameters. Description does not explain 'categories', 'comment', or 'api_key' fields, leaving their meaning and format ambiguous.
Input schemas describe structure but not intent. Descriptions should explain 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 action ('report') and resource ('abusive IP address' to AbuseIPDB), distinguishing it from sibling tools like abuseipdb_check_ip and abuseipdb_blacklist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, such as checking an IP first or prerequisites like API key. Missing context for ideal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ackermannC
Compute the Ackermann function A(m, n).
| Name | Required | Description | Default |
|---|---|---|---|
| m | Yes | Non-negative integer m (max 4) | |
| n | Yes | Non-negative integer n |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Compute the Ackermann function' says nothing about cost, recursion depth, or the practical explosion of values even at m=3-4, which is the single most important behavioral trait of this function. The schema's 'max 4' constraint is left unexplained rather than justified by compute cost.
Agents need to know what a tool does to the 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 with no waste. It is efficient, though its brevity reflects under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pure-compute tool with no annotations and no output schema, the description should at minimum warn about the computational blowup and what the return value looks like. Neither is present, so an agent could plausibly call it with values that stall or return astronomically large integers without warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: m is documented as a non-negative integer with max 4, and n as a non-negative integer. The description adds no meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Compute') and a specific well-known mathematical function with its canonical notation A(m, n). No sibling is confusable (ack_handoff is an unrelated dispatch concept), but the description does nothing to distinguish scope or differentiate from other math compute tools like is_even or fibonacci_sequence beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no caution about the function's extreme growth rate. The agent must infer everything 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.
ack_handoffAcknowledge a Boardroom handoffAIdempotent
Replies to a Boardroom handoff with a structured ACK card so the sender and the human can see ownership, next action, ETA, and blockers without parsing free-form chat. Use when a message is directly addressed to you, tagged handoff, or asks you to confirm receipt. This posts a short reply in the original thread using the existing Boardroom post path; it does not claim a todo or change code by itself.
| Name | Required | Description | Default |
|---|---|---|---|
| eta | Yes | Expected next check-in or completion time, e.g. '15m', 'next cycle', or 'blocked until CI finishes'. | |
| blocker | No | Blocker if any. Use 'none' when clear. | |
| agent_id | Yes | Stable identifier for yourself, e.g. 'claude-code-builder-seat' or 'chatgpt-codex-reviewer-seat'. Use the same value across Boardroom calls. | |
| thread_id | Yes | Boardroom message id of the handoff you are acknowledging. | |
| recipients | No | Optional recipients for the ACK reply. Defaults to ['all']. | |
| next_action | Yes | The next concrete action you will take. | |
| current_chip | Yes | The work you are taking or watching, in one short phrase. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavior: it posts a short reply into the original thread via the existing Boardroom post path and explicitly does not mutate todos or code — useful for an agent deciding whether this call has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and the ACK-card framing, followed by when-to-use and scope exclusions. No filler or repeated phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description explains the observable effect — a short reply posted in the original thread — and the scope boundaries. For a mutation tool whose annotations cover safety and idempotency, this is close to complete; only the response shape of a successful ACK is left 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?
Schema coverage is 100%, so every parameter including the ACK fields is already documented in the schema. The description's mention of ownership, next action, ETA and blockers loosely echoes the param set but adds no format or constraint detail beyond what the schema supplies. 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 — replies to a Boardroom handoff with a structured ACK card — and names the exact payload its readers see (ownership, next action, ETA, blockers). An agent can distinguish it from generic post_message/comment_on siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger conditions: message directly addressed to you, tagged handoff, or asking for receipt confirmation. It also delineates scope by stating it does not claim a todo or change code, though it stops short of naming the alternative tool (e.g. create_todo or claim_lane) to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acnh_bugsA
List all Animal Crossing: New Horizons bugs with availability and prices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read-only, non-mutating operation and the description states the returned content, but it does not disclose pagination, rate limits, auth needs, or exact output 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 a single front-loaded sentence with no redundant or filler content. Every phrase contributes to identifying the resource and returned data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero-parameter lookup, the description gives enough to know what it returns. But with no output schema and no annotations, 'availability and prices' remains high-level and does not fully explain the return format or what availability entails.
Complex tools with many parameters or behaviors need more documentation. 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 no parameter semantics for the description to clarify. Per the rubric, zero parameters establishes a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 specific resource ('Animal Crossing: New Horizons bugs'), and the fields returned ('availability and prices'). It distinguishes itself from siblings such as acnh_fish and acnh_villagers by resource 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?
Usage is implied by the resource: an agent should use this when it needs ACNH bug data. However, there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives like acnh_fish or acnh_villagers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acnh_fishA
List all Animal Crossing: New Horizons fish with availability and prices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List all' implies a non-destructive read and 'availability and prices' hints at the returned fields, but nothing states whether results are paginated, filtered, or complete in one call. The gap is small for a zero-argument lookup, but the behavioral profile is only partially disclosed.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, and it uses the remaining clause to name the useful return fields. 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 no-parameter list tool with no output schema, the description gives the domain, the universe of items, and the two main attributes returned. An agent has enough to call it and interpret the result, though the exact record shape and result count remain undisclosed.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4 and there is no parameter semantics for the description to compensate for. Nothing in the description is needed or misleading regarding 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?
Specific verb (List), specific resource (Animal Crossing: New Horizons fish), and explicit scope (all) with the data returned (availability and prices). An agent can distinguish it from acnh_bugs and acnh_villagers purely from the resource noun, 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?
Usage is implied: it is the only fish tool among the acnh_* siblings, so there is no alternative to route away from and no explicit when-to-use statement. No exclusions or conditions are given, leaving only the inference that it is for looking up ACNH fish data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acnh_villagersA
List all Animal Crossing: New Horizons villagers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List all' communicates that this is a complete, read-only enumeration with no filtering or pagination, which is useful context. However, it says nothing about response size or item shape, leaving the mutation-free, totality claim as the only behavioral signal.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, with no filler. Every word earns its place for a tool this simple.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with no output schema, the description is essentially sufficient — the agent knows it gets all villagers. It could be marginally stronger by noting the expected response type, but nothing essential to 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 has zero parameters, so there is nothing for the description to document; the baseline for a 0-param tool is 4. The description correctly implies no inputs are 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?
States a specific verb ('List') and resource ('Animal Crossing: New Horizons villagers'), so an agent can tell it returns the villager roster. It does not, however, distinguish itself from the sibling acnh_bugs and acnh_fish tools beyond the resource 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?
Usage is implied by the name and the word 'all' — use this to get every villager with no filtering. There is no explicit when-to-use/when-not guidance or mention of alternatives, but for a parameterless list-all endpoint the intended use is fairly self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acronym_generateB
Generate an acronym from a phrase, optionally skipping small words.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Phrase to create acronym from. | |
| include_small_words | No | Include small words like the, of, and (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the key behavioral choice ('optionally skipping small words'), but for a pure text transform there is little risk to disclose, and it omits output formatting details (uppercase, punctuation, handling of non-letter tokens).
Agents need to know what a tool does to the 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 clause-dense sentence with the core action front-loaded and the optional behavior appended. 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 deterministic transform with no output schema and no annotations, the description covers input intent but says nothing about the returned form (e.g., 'NASA' vs 'N.A.S.A.', casing, list vs string). Adequate but with a clear 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 ('text' and 'include_small_words') are already documented, including the default of false. The description's mention of 'phrase' and 'small words' mirrors the schema without adding format or edge-case semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and resource ('acronym from a phrase'), so the agent knows exactly what the tool produces. There is no near-identical sibling (nearest neighbours like nato_convert or phonetic_spell do different transforms), so explicit differentiation is unnecessary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus alternatives (e.g., nato_convert, morse_convert, phonetic_spell) or any prerequisites. Usage is only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advice_by_idBRead-onlyIdempotent
Get a specific advice slip by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Advice slip ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds no behavioral context beyond the purpose statement, such as invalid-ID handling or return characteristics, so it provides little transparency 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 a single front-loaded sentence with no redundant or filler content. Every word contributes to identifying the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 getter with full schema coverage and complete annotations, the description is nearly sufficient. It does not explain behavior when an ID is invalid, but the lack of an output schema and the annotation coverage make that 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 id parameter is documented as 'Advice slip ID'. The description's 'by ID' adds no format, type, or validation detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (advice slip) and adds the by-ID qualifier, which distinguishes it from siblings like advice_random and advice_search. It does not explicitly name those siblings, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' implies the tool should be used when the caller already has an advice slip ID, but there is no explicit guidance on when to prefer advice_search or advice_random. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advice_randomARead-onlyIdempotent
Get a random piece of advice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, openWorldHint, and idempotentHint, so the safety profile is fully covered by structured data. The description adds nothing beyond that (no note that results vary per call, no indication of data source), which is acceptable but thin. Worth noting: idempotentHint=true sits oddly with a "random" tool whose output changes per invocation, though that is an annotation issue rather than a description 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?
A single short sentence with the verb and resource front-loaded and zero filler. Nothing could be removed 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 trivial no-parameter fetch, annotations carry the operational profile, so little is required. However, there is no output schema, so the description is the only place to indicate what the response looks like (a plain advice string), and it does not say.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline of 4 applies; there is nothing for the description to document in this dimension.
Input schemas describe structure but not intent. Descriptions should explain 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 a random piece of advice") that an agent can act on without opening the schema. It does not, however, explicitly differentiate itself from the sibling advice_search and advice_by_id tools, leaving the agent to infer that "random" is the distinguishing 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?
Usage is only implied: "random" suggests use when you want a non-targeted pick, versus advice_search or advice_by_id for targeted retrieval. There is no explicit when-to-use or when-not-to-use statement, though for a zero-parameter novelty tool the inference is fairly safe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advice_searchBRead-onlyIdempotent
Search advice slips by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keyword |
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 fully covered. The description adds only the keyword-matching nature of the query; it says nothing about result count, pagination, or whether matching is exact, substring, or fuzzy.
Agents need to know what a tool does to the 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 short sentence with the verb and scoping qualifier front-loaded and no filler. It is efficient, though it leans so terse that it omits useful matching context rather than being exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with full schema coverage and annotations, the essentials are present. Still missing is any indication of what the search returns or how many results, which matters even 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% and the sole parameter 'query' is documented as 'Search keyword'. The description's phrase 'by keyword' merely echoes the schema, adding no syntax, quoting, or matching-semantics detail. 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 advice slips') plus the matching mode ('by keyword'), so the agent can tell it apart from random/by-id siblings like advice_random and advice_by_id. It doesn't explicitly name those alternatives, so the differentiation is inferred from the verb rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you have a keyword and want matching advice slips. There is no explicit when/when-not guidance or pointer to advice_random for unsolicited picks or advice_by_id for known identifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
affirmation_randomARead-onlyIdempotent
Get a random positive affirmation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, and openWorld=true, so the safety profile is fully covered by structured fields. The description adds no further behavior — notably it does not mention that a remote API is involved despite openWorldHint, nor any latency/failure behavior — but it also contradicts nothing.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with no filler. Nothing could be removed 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 trivial read-only, zero-parameter call with no output schema, the description covers everything needed to invoke it. The only gap is not hinting that the return value is a random affirmation string (and that repeated calls yield different results despite idempotentHint).
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema is empty with additionalProperties=false, matching the description's implication of a no-argument call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 plus resource ('Get a random positive affirmation'), which is unambiguous and distinguishable from quote/zen_quote/dadjoke siblings by resource alone. It does not explicitly name an alternative, but none of the siblings overlap on this 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?
Use case is only implied by the description text; there is no statement of when to prefer this over e.g. quote_random or zen_quote_random, nor any exclusion. For a zero-parameter novelty tool the implied usage is sufficient to act, which is the definition of a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agify_ageB
Predict the age of a person based on their first name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | First name to analyze | |
| country_id | No | ISO 3166-1 alpha-2 country code for localization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It doesn't disclose that this is a statistical estimate (not a fact), what confidence/accuracy to expect, rate limits, or response structure. 'Predict' hints at estimation but no behavioral detail is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with zero waste. Appropriate length for a simple 2-param 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?
Adequate for a simple estimation tool, but with no annotations and no output schema, the description leaves the agent guessing about return format and the statistical nature of the prediction. Could note that results are estimates, not guarantees.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters (name, country_id) are documented in the schema. The description adds no parameter-level detail beyond what's already there. 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+resource: predict age of a person from first name. Clear enough to distinguish from genderize_name/nationalize_name siblings, though it doesn't explicitly say it's name-based demographic estimation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this vs alternatives like genderize_predict or nationalize_predict, which are clearly analogous name-analysis tools in the sibling set. No exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aho_corasick_searchBRead-onlyIdempotent
Find all occurrences of multiple patterns in text simultaneously using the Aho-Corasick algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to search in | |
| patterns | Yes | Patterns to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds nothing about matching semantics that the annotations cannot: whether overlapping matches are reported, case sensitivity, how empty patterns or no-match cases behave, or what the response contains. With no output schema, these gaps matter.
Agents need to know what a tool does to the 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 with no filler, and the distinguishing qualifier (multiple patterns, simultaneously) is front-loaded. Nothing is 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?
With no output schema, the description should say what a match looks like (positions, per-pattern grouping, counts), and it does not. Annotations carry the safety profile and the schema carries the inputs, so it is minimally viable but incomplete for a tool whose whole value is the shape of its result set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both required parameters, so the schema already explains 'text' and 'patterns'. The description adds no semantics beyond that — no note on ordering of results per pattern, case sensitivity, or array-vs-single-pattern behavior. 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 (find all occurrences of patterns in text) and pins down the distinguishing trait: multi-pattern, simultaneous matching, which separates it from single-pattern siblings like kmp_search or rabin_karp_search. It never names those siblings explicitly, so differentiation is inferential 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?
There is no when-to-use or when-not-to-use guidance. An agent gets no signal about preferring this over a single-pattern matcher, regex_test, or text_count_occurrences when it only has one pattern or wants counts rather than positions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
air_quality_currentBRead-onlyIdempotent
Get current air quality index and pollutant levels from Open-Meteo.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Location latitude. | |
| longitude | Yes | Location longitude. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the safety profile is covered. The description adds the data source and that both an index and pollutant levels are returned, but says nothing about units, update cadence, coverage, or rate limits. Adequate given annotation coverage, 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?
A single well-formed sentence with the core purpose front-loaded and zero padding. It is sized appropriately for a two-parameter read tool, though it offers nothing beyond the minimum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, annotation-covered, two-parameter read tool with a full schema and no output schema, the description covers the essentials: what is returned and from where. Missing are the units/dialect of the AQI scale and the differentiation from related air-quality siblings, which keeps it below a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (latitude, longitude) are documented in the schema. The description adds no extra semantics such as accepted ranges, decimal precision, or whether coordinates must be land-based. 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 ('Get current air quality index and pollutant levels') plus the upstream provider (Open-Meteo). It is clear what the tool does, but it does not distinguish itself from sibling air-quality tools such as openaq_air_quality or air_quality_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of openaq_air_quality (a different provider) or air_quality_forecast (future data). The agent must infer the split between 'current' and 'forecast', and between Open-Meteo and OpenAQ, on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
air_quality_forecastBRead-onlyIdempotent
Get hourly air quality forecast from Open-Meteo.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Forecast days (default 3, max 5). | |
| latitude | Yes | Location latitude. | |
| longitude | Yes | Location longitude. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, open-world, and non-destructive behavior, so the description does not need to restate those. It adds useful context that the output is hourly and sourced from Open-Meteo, but it does not disclose pollutants, units, coverage, or rate limits. The added value is modest but not 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 definition is a single front-loaded sentence with no filler or redundancy. Every word contributes to identifying the action, the data granularity, and the upstream source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple with three documented parameters and annotations covering safety. However, there is no output schema, and the description does not explain the returned forecast fields, pollutants, units, or spatial coverage. It is minimally sufficient to invoke the tool but not fully complete for interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains latitude, longitude, and days including the default and maximum. The description adds no parameter-specific 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 states a specific verb and resource: 'Get hourly air quality forecast.' It also names the source, Open-Meteo, which distinguishes it from OpenAQ-based siblings. However, it does not explicitly contrast with air_quality_current or weather_forecast, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent can infer it is for future air quality rather than current conditions, but the definition does not say when to choose it over air_quality_current, openaq_air_quality, or weather_forecast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
airtable_actionB
Interact with the Airtable REST API: list bases, list and search records, get a single record, and create or update records.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | View name or ID to use. | |
| action | Yes | Action: list_bases, list_records, get_record, create_record, update_record, search_records. | |
| fields | No | Record fields as key-value pairs (for create_record and update_record). | |
| offset | No | Pagination offset token. | |
| base_id | No | Airtable base ID (starts with 'app'). | |
| formula | No | Airtable filter formula string (for search_records). | |
| page_size | No | Number of records per page (max 100). | |
| record_id | No | Record ID (starts with 'rec'). | |
| table_name | No | Table name or ID. | |
| max_records | No | Maximum number of records to return. | |
| access_token | Yes | Airtable personal access token (PAT). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It only states that the tool interacts with the API and lists operations. It does not mention side effects of write actions, rate limits, authentication details, or the unified nature of the tool (action parameter decides behavior). Minimal behavioral disclosure beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise and front-loaded with the tool's purpose. While it could be slightly more structured, it avoids unnecessary verbosity and 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 11 parameters and no output schema or annotations, the description is too sparse. It does not mention parameter dependencies (e.g., base_id and table_name needed for most actions), pagination, or the overall flow of using this tool. Incomplete for a complex 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%, so the baseline is 3. The description lists action types but does not add significant meaning beyond the schema's parameter descriptions. It fails to explain how parameters relate to each action or provide context on usage patterns for the various 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 that the tool interacts with the Airtable REST API and lists specific actions (list bases, list and search records, get a single record, create or update records). This provides a clear verb+resource mapping and distinguishes it from any potential Airtable-specific siblings (though none exist in this 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?
No guidance on when to use this tool vs alternatives. With no sibling Airtable tools, the description could still explain which action to choose and under what circumstances, but it doesn't. It also fails to mention prerequisites like needing an Airtable personal access token, though that is implied by the required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
algolia_browse_indexB
Browse all records in an Algolia index (paginated cursor-based).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Index name | |
| app_id | Yes | Algolia Application ID | |
| cursor | No | Pagination cursor from previous response | |
| api_key | Yes | Algolia Admin API Key | |
| filters | No | Filter expression | |
| hits_per_page | No | Records per page | |
| attributes_to_retrieve | No | Attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only mentions pagination (cursor-based), but doesn't disclose read-only nature, auth expectations, rate limits, or handling of large datasets. For a browse operation, more behavioral context is needed.
Agents need to know what a tool does to the 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 front-loaded sentence with verb, resource, and key feature (pagination). No redundant words, efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters and no output schema, the description is minimal. It doesn't explain cursor-based pagination fully, nor does it mention performance implications, error handling, or result format. More context would aid agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameter descriptions. The description adds no additional meaning beyond what's in the schema. Baseline 3 is appropriate as 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 states the verb 'Browse', the resource 'all records in an Algolia index', and notes pagination style 'paginated cursor-based'. This distinguishes it from siblings like algolia_search (search) and algolia_get_object (single object).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use or when-not-to-use guidance. It implies use when you need all records, but doesn't compare to alternatives like algolia_search for filtered browsing. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
algolia_get_objectA
Retrieve a single record from an Algolia index by its objectID.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Index name | |
| app_id | Yes | Algolia Application ID | |
| api_key | Yes | Algolia API Key | |
| object_id | Yes | Record objectID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('Retrieve'), which is transparent. However, with no annotations provided, it does not disclose other behavioral traits such as rate limits, authentication requirements beyond schema, or any side effects. The schema already covers credential parameters.
Agents need to know what a tool does to the world before calling 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, concise sentence (12 words) that front-loads the purpose and method. No unnecessary words or repetitions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with all parameters required and no output schema, the description is nearly complete. It covers the what and how. A minor improvement would be mentioning the return format (object), but this is not essential.
Complex tools with many parameters or behaviors need more documentation. Simple 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 all four parameters described. The description does not add meaning beyond the schema; it only reiterates the 'objectID' parameter. Baseline of 3 is appropriate as the schema carries the full 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 the verb 'Retrieve' and the resource 'a single record from an Algolia index', and specifies the method 'by its objectID'. It distinguishes from sibling tools like algolia_search (multiple results) and algolia_browse_index (browse all records).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when a specific objectID is known, but does not explicitly state when to use or avoid this tool, nor does it mention alternative tools like algolia_search for non-objectID lookups or algolia_browse_index for multiple records.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
algolia_list_indicesCRead-onlyIdempotent
List all Algolia indices in the application.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | Algolia Application ID | |
| api_key | Yes | Algolia Admin API Key |
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 fully covered. The description adds nothing beyond that structured data — no note on credential scope, rate limits, or whether results include full index metadata versus names 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?
A single front-loaded sentence with zero padding. It is efficient, though its brevity is partly the cause of the missing usage and behavioral context rather than a virtue of tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description could say what is returned (index names versus full index descriptors). For a simple two-parameter read with complete annotations, this is adequate but not 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%, with both app_id and api_key documented (including that an Admin key is required), so the schema carries the burden. The description does not mention either parameter, leaving it at the baseline for a fully documented 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 and resource ('List all Algolia indices') plus a scope ('in the application'), so the operation is unambiguous. It does not distinguish itself from siblings like algolia_browse_index or algolia_search, which an agent must infer from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus algolia_browse_index or algolia_search, nor any mention that an Admin API key is required or that this is typically the discovery step preceding a browse/search. The agent is left to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
algolia_searchB
Search an Algolia index for records matching a query.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (0-indexed) | |
| index | Yes | Index name to search | |
| query | No | Search query text | |
| app_id | Yes | Algolia Application ID | |
| api_key | Yes | Algolia API Key (Search or Admin) | |
| filters | No | Algolia filter expression (e.g. category:electronics) | |
| hits_per_page | No | Results per page (default: 20) | |
| attributes_to_retrieve | No | Attributes to include in results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral traits. It merely states the action without mentioning pagination, authentication requirements, rate limits, or what happens with no results. The description is too minimal to inform an agent of important behaviors.
Agents need to know what a tool does to the world before calling 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 concise sentence that is front-loaded with the key purpose. However, given the number of parameters and complexity, a bit more detail could be helpful without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 incomplete for a tool with 8 parameters and no output schema. It does not explain behavior like pagination, filtering, or the nature of returned records. Compared to the complexity, more detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 does not add any additional meaning beyond the schema; it does not mention any parameters or their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search' and the resource 'an Algolia index for records matching a query'. It distinguishes itself from sibling tools like algolia_browse_index and algolia_get_object by focusing on searching records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as algolia_browse_index, algolia_get_object, or algolia_list_indices. The description lacks context for choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_browseCRead-onlyIdempotent
Browse Amazon product categories.
| Name | Required | Description | Default |
|---|---|---|---|
| access_key | No | ||
| secret_key | No | ||
| partner_tag | No | ||
| browseNodeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idlempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond that: it doesn't mention that credentials (access_key, secret_key, partner_tag) must be supplied, whether results are paginated, or what the response contains. For a tool with credential parameters this silence is a meaningful 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 single sentence is front-loaded and free of padding, but at four parameters with no schema documentation it is drastically under-specified rather than truly concise. Brevity here is a symptom of underspecification, not economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, zero schema descriptions, no output schema, and no annotations covering authentication, the description should explain how to call the tool and where to get a browse node ID. It does neither, leaving the agent to guess at required credentials and identifier sourcing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the description carries the full burden and fails. The required browseNodeId is never explained (what a browse node is, or how to obtain one), and the three credential parameters are entirely unmentioned. Compare to the calibration LOW case: undocumented params at 0% coverage score 1, and this tool has four of 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 names a verb ('Browse') and a resource ('Amazon product categories'), so the general purpose is inferable. But it doesn't explain what 'browse' yields versus sibling amazon_search or amazon_product, nor that the operation is scoped to a specific browseNodeId. An agent cannot tell from this sentence why it would pick this tool over amazon_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 statement of when to use this tool, no prerequisites, and no reference to the obvious alternative amazon_search for keyword lookups. The only usage signal is implicit in the phrase 'browse categories,' which the agent must interpret against the sibling list on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_productC
Get Amazon product details by ASIN.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ||
| region | No | ||
| access_key | No | ||
| secret_key | No | ||
| partner_tag | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not mention any behavioral traits such as read-only nature, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it lacks necessary detail; it is concise but under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters and no output schema, the description fails to explain what data is returned or how the optional parameters affect results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for 5 parameters; the description only mentions 'ASIN', providing no meaning for access_key, secret_key, partner_tag, or 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 clearly states the action ('Get... product details') and the primary identifier ('by ASIN'), which distinguishes it from sibling tools like amazon_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?
No guidance on when to use this tool versus other Amazon tools (e.g., amazon_search, amazon_browse) or how to handle authentication parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_searchCRead-onlyIdempotent
Search for products on Amazon.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | ||
| keywords | Yes | ||
| itemCount | No | ||
| access_key | No | ||
| secret_key | No | ||
| partner_tag | No | ||
| searchIndex | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that: it does not explain credential requirements, rate limits, result limits, or how regions affect 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 single sentence is front-loaded and has no waste, but it is under-specified for a tool with seven parameters and authentication requirements. Brevity here reflects missing information rather than effective concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 7 parameters, no output schema, and no schema descriptions, the description is far too thin. It omits authentication needs, regional behavior, item count semantics, search index usage, and expected output, leaving the agent without enough context to invoke the tool reliably.
Complex tools with many parameters or behaviors need more documentation. 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 7 parameters with 0% description coverage, including non-obvious fields such as access_key, secret_key, partner_tag, and searchIndex. The description does not explain any of these parameters or their expectations, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Search for products on Amazon.' This is enough to distinguish it from a get-product tool like amazon_product, but it does not explicitly name alternatives such as amazon_browse or amazon_variations, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 amazon_browse, amazon_product, or amazon_variations, nor any mention of prerequisites such as API credentials or regional constraints. The agent is left to infer usage 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.
amazon_variationsC
Get Amazon product variations for an ASIN.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ||
| access_key | No | ||
| secret_key | No | ||
| partner_tag | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states what the tool does, not how it behaves (e.g., what it returns, authentication requirements, rate limits). The description is too minimal to compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and is very short. While brevity can be good, it is under-specified and does not earn its place because it omits necessary 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?
Given the tool has 4 parameters (1 required, 0% schema coverage, no output schema, no annotations), the description is vastly insufficient. It does not explain the concept of variations, how to use auth parameters, or what the output format is.
Complex tools with many parameters or behaviors need more documentation. Simple 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% (no parameter descriptions). The description does not explain any parameter, including the required 'asin' or optional auth fields. It adds no 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?
Clearly states the action (get), resource (Amazon product variations), and key input (ASIN). However, it does not differentiate from sibling tools like amazon_product or amazon_search, so the purpose is clear but not uniquely defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. Does not mention that this is for listing variations of a product, while amazon_product might be for single product details. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amber_current_priceBRead-onlyIdempotent
Get the current electricity price for an Amber site.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| site_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds only that the result is a 'current price' and scoped to a site; it says nothing about auth requirements, error behavior, or return shape 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?
A single efficient sentence with the resource and qualifier front-loaded. No waste, though it could carry one more clause of routing/param context at little cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 getter with no output schema, the description is close but leaves the two parameters (especially api_key and where site_id comes from) undocumented. A brief note on obtaining site_id would complete 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 coverage is 0% and the description explains neither parameter. The required site_id has no format or source guidance (presumably from amber_sites), and the api_key parameter is completely unexplained despite being an auth-sensitive input.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('current electricity price for an Amber site'). The word 'current' implicitly distinguishes it from amber_forecast, but it does not explicitly name that sibling or amber_sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'current' suggests now-vs-forecast, and 'for an Amber site' implies you need a site already known. No explicit when/when-not or alternative routing (amber_forecast for future prices, amber_sites to discover sites).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amber_forecastCRead-onlyIdempotent
Get electricity price forecast for an Amber site.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| site_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and open-world behavior, so the safety profile is covered. The description adds no behavioral context beyond what the annotations give: no forecast horizon, granularity (e.g., 5-minute vs 30-minute intervals), units, or timezone, all of which materially affect how the result is consumed.
Agents need to know what a tool does to the 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 short sentence with no wasted words and front-loaded verb. It is under-specified rather than verbose, so length itself is not the problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain what a forecast returns, and it does not: no horizon, no interval, no unit (c/kWh). With two undocumented params and no return-value context, the definition is not sufficient for correct invocation or 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 0%, so the description must compensate and largely fails. It hints that 'site_id' refers to an Amber site, but 'api_key' is never mentioned, nor is any format, such as whether site_id is a NEM site identifier or an Amber internal ID.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('electricity price forecast') scoped to an Amber site. The word 'forecast' implicitly separates it from amber_current_price, though that sibling is never named 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?
No guidance on when to call this versus amber_current_price or amber_sites, and no prerequisites (e.g., whether the site must be configured in Amber first) are stated. The agent must infer usage 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.
amber_sitesBRead-onlyIdempotent
Get Amber Electric sites for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds scope information by stating results are limited to "the authenticated user," implying credential-bound, user-scoped results, but says nothing about return shape, error behavior for bad keys, or whether the api_key parameter can be omitted in favor of ambient credentials.
Agents need to know what a tool does to the 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 short sentence with no filler, front-loaded on the verb and resource. It is efficient, though it omits any structuring that would help an agent route to it in a multi-step Amber workflow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations and no output schema, some brevity is acceptable. However, the agent gets no idea what a "site" object contains (an id/address) or that those identifiers feed amber_current_price and amber_forecast, which is the key context this tool needs to supply.
Complex tools with many parameters or behaviors need more documentation. 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 api_key parameter has 0% schema description coverage and no description here explaining whether it is required, optional, or defaulted from the environment. "Authenticated user" hints that api_key selects the account, but it does not tell the agent how the value is supplied, which is a meaningful gap at 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ("Get Amber Electric sites") and scopes it to the authenticated user, which is clear enough for an agent to select it over non-Amber or non-site tools. It does not differentiate from siblings such as amber_current_price or amber_forecast, which would help the agent understand whether this tool is a prerequisite for 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?
There is no when-to-use guidance, no mention that the returned sites are likely the input required by amber_current_price and amber_forecast, and no exclusions. The agent must infer the call ordering from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amiibo_by_seriesCRead-onlyIdempotent
List Amiibo figures in a game series.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | Amiibo series name (e.g. Super Mario, Zelda) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, covering the safety profile. The description adds nothing further — no return shape, no pagination behavior, no note on how series names are matched — so it contributes no behavioral context beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the scope stated up front and no filler. It is appropriately sized, though it could have used one more clause to route agents away from sibling tools at no real cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-parameter list tool with complete schema coverage and rich annotations, little is strictly required. Still, no output schema exists and the description says nothing about result format, so an agent cannot anticipate what 'lists' means in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'series' parameter is already documented with examples in the schema. The description only weakly restates that filtering happens by series, which is the baseline expectation for 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 verb and resource are explicit ('List Amiibo figures'), and the required 'series' scope is stated. However, it does not distinguish itself from siblings like amiibo_search or amiibo_types, and 'game series' is slightly ambiguous since the parameter is actually the Amiibo series name (e.g. Super Mario).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus amiibo_search or amiibo_types, and no mention of whether results are filtered, paginated, or exhaustive. The agent must infer the routing decision 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.
amiibo_searchBRead-onlyIdempotent
Search Nintendo Amiibo figures by character name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Character name to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the full safety profile (readOnly, idempotent, non-destructive, openWorld), so the description must add context beyond that — and it adds none. It says nothing about matching behavior, result limits, or what a no-match response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word identifies the resource, the verb, and the search dimension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and its one parameter is fully documented in schema, and annotations carry the safety profile. However, with no output schema, the description gives no hint of the return shape or result size, which is the remaining 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 a single required 'name' parameter that is already described as 'Character name to search'. The description restates that same meaning without adding format, casing, or fuzzy-match details, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Nintendo Amiibo figures') plus the search key ('by character name'), so the operation is unambiguous. It does not distinguish itself from siblings amiibo_by_series or amiibo_types, which is what 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 name-based search intent is implied by 'by character name', but there is no explicit guidance on when to use this versus amiibo_by_series or amiibo_types, nor any note on partial/fuzzy matching or empty results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amiibo_typesARead-onlyIdempotent
List all Amiibo product types (figure, card, yarn, etc.).
| 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 destructiveHint=false, so the safety profile is covered structurally. The description adds only the concrete example values of the returned types; it says nothing about ordering, whether the list is exhaustive versus a fixed enum, or how the data behaves if Amiibo adds a new type, which the openWorldHint makes relevant.
Agents need to know what a tool does to the 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 with the resource first and clarifying examples at the end; nothing is wasted. It is nearly minimal, though a short clause on what the values are useful for would have earned its place without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 enumeration with a clean input schema, strong read-only annotations, and no output schema, the description is sufficient to call the tool correctly. The only missing piece is how this list relates to the sibling amiibo tools, which would help an agent chain calls.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. The parenthetical examples are a small bonus but not 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 verb and resource ('List all Amiibo product types') and names example values (figure, card, yarn), so an agent knows exactly what taxonomy is returned. It does not explicitly contrast itself with the sibling enumeration tools amiibo_search or amiibo_by_series, which keeps it 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?
Usage is only implied: an agent can infer this is the tool to call when it needs the set of valid product-type values, but the description never says when to prefer it over amiibo_search or amiibo_by_series, nor whether the result is meant to feed a filter. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
angle_convertARead-onlyIdempotent
Convert angles between degrees, radians, gradians, and turns. Includes trig values.
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Unit of input: degrees, radians, gradians, or turns. | |
| value | Yes | Angle value to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds only the vague note "Includes trig values," without explaining output shape, precision, or what trig values are 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?
Two short sentences with zero waste, and the core conversion purpose is front-loaded before the supplemental trig note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 conversion tool, the description plus 100% schema coverage and annotations are sufficient to call it correctly. The only minor gap is the unexplained "Includes trig values" return note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters documented directly in the input schema. The description repeats the supported units but adds no meaning beyond 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 uses a specific verb and resource: convert angles, with the four supported units named. It clearly distinguishes this from sibling conversions such as convert_temperature or convert_length.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 operation clearly enough to imply when to use it, but gives no explicit when-to-use guidance versus related tools, nor 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.
animechan_randomBRead-onlyIdempotent
Get a random anime quote.
| 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, non-destructive and no params, so the safety profile is fully covered. The description adds nothing beyond restating 'random', and it does not clarify return shape (quote text, character, anime title) or whether results can repeat across calls.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb, with zero 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?
No output schema exists, so the description should ideally hint at what fields come back (quote, character, anime). For a zero-param random endpoint the gap is minor but real.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 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+resource: 'Get a random anime quote.' The behavior is unambiguous. However, it does not distinguish itself from the sibling animechan_search, which an agent could plausibly confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus animechan_search (or any other quote tool such as quote_random). The randomness is implied by the name, but 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.
animechan_searchCRead-onlyIdempotent
Search for anime quotes from a specific anime.
| Name | Required | Description | Default |
|---|---|---|---|
| anime | Yes | Anime title to search quotes from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether the title match is exact or fuzzy, how many quotes come back, or what happens on a miss for a tool whose whole value hinges on matching 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?
A single front-loaded sentence with no filler or redundancy. It is efficiently structured, though the brevity comes at the cost of substance rather than being a model of tight completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of explaining what comes back (quote text, character name, anime title, count), and it says nothing. For a simple lookup this is a noticeable gap that forces the agent to call blind.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter at 100% schema coverage, the schema already documents 'anime' as the title to search, so the baseline of 3 applies. The description could have clarified matching semantics (partial title, case sensitivity, aliases) but simply restates the 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 names a specific verb and resource ('Search for anime quotes') and scopes it to a specific anime, which is clear. It doesn't differentiate it from the sibling animechan_random (fetch quotes from anywhere) or from jikan_search_anime, so the agent must infer which tool to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus animechan_random or the jikan anime search siblings, and no guidance on what happens if the title is wrong or unknown. The only implied usage comes from the required parameter, which the schema already conveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anthropic_create_messageB
Send a message to the Anthropic Messages API (Claude models). Useful for agents that need to call Claude programmatically or compare model outputs.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Claude model ID (default: claude-sonnet-4-6) | |
| top_k | No | ||
| top_p | No | ||
| prompt | No | Convenience: single user message (alternative to messages array) | |
| system | No | System prompt | |
| api_key | Yes | ||
| messages | No | Array of {role, content} message objects | |
| max_tokens | No | Max tokens to generate (default: 1024) | |
| temperature | No | ||
| stop_sequences | No | Array of stop sequences |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It omits important details such as side effects (none expected), authentication requirements (api_key needed but not highlighted), rate limits, error handling, or response format. This lack of transparency could lead to unexpected agent 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 extremely concise with two sentences. The first sentence directly states the core functionality, and the second adds context. No unnecessary words or repetition, making it efficient for agents 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?
Given the tool has 10 parameters and no output schema or annotations, the description is insufficient. It fails to explain how parameters interact, required fields beyond api_key, expected output, or error conditions. An agent would need additional context to use this tool reliably.
Complex tools with many parameters or behaviors need more documentation. 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 60% of parameters (e.g., model, prompt, messages, system, max_tokens). The description adds no extra semantic value beyond what the schema provides, so it meets the baseline for moderate 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 action ('Send a message') and the target resource ('Anthropic Messages API (Claude models)'). It identifies the tool as a means to call Claude programmatically, which differentiates it from sibling LLM tools like OpenAI or Groq, though not explicitly naming 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 a use case ('agents that need to call Claude programmatically or compare model outputs'), implying when to use it. However, it does not mention when not to use it or explicitly compare to sibling LLM tools, leaving room for ambiguous selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anthropic_list_modelsCRead-onlyIdempotent
List all Claude models available via the Anthropic API.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
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 nothing beyond that: no mention of authentication requirements, rate limits, pagination, or whether results are cached/live. For a read-only listing tool this is thin but not 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?
A single front-loaded sentence with no filler or redundancy. The scope qualifier ('available via the Anthropic API') is placed where it matters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and annotations cover the safety profile, but with no output schema the description should indicate what the listing returns (model ids, display names, context limits?) and whether it is paginated. Those gaps are minor for a model-list endpoint but leave the agent guessing about the 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?
Schema description coverage is 0%, and the description never mentions the single required parameter. The only hint about credentials is the phrase 'via the Anthropic API', which vaguely implies the api_key is a provider credential, but the description does not state that it is required, how to obtain it, or whether it is passed per-call.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Claude models') scoped to the Anthropic API, which implicitly separates it from the many sibling list-models tools (openai_list_models, groq_list_models, mistral_list_models, cohere_list_models). It does not explicitly name an alternative, but the provider qualifier makes the identity 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?
There is no when-to-use guidance, no mention of what to do with the result (e.g., pick a model id for anthropic_create_message), and no exclusions. An agent must infer the purpose entirely from the name and one sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aoe2_civilizationC
Get an Age of Empires II civilization by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Civilization ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it is implied to be a read, but there is no statement about error behavior for unknown IDs, whether the ID is numeric or slug-like, or what data comes back. For a zero-annotation tool this is a meaningful 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?
A single short sentence with the verb and resource front-loaded and no filler. It is efficient, though it borders on under-specification rather than being richly 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?
With one fully documented parameter, no nested objects, and no output schema, the definition is minimally adequate for a simple lookup. It stops at the minimum, providing no return-shape or error context that an agent could use, 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?
There is exactly one parameter with 100% schema description coverage, so the schema already defines 'id' as a Civilization ID. The description's 'by ID' adds no format, range, or valid-value detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('Age of Empires II civilization') scoped by ID, which is unambiguous on its own. However, it does not distinguish this single-entity lookup from the sibling aoe2_civilizations (plural), which an agent must infer is the list variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 aoe2_civilizations or aoe2_unit/aoe2_units. The 'by ID' phrasing hints at the lookup pattern, but no alternatives or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aoe2_civilizationsB
List all Age of Empires II civilizations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'List all' implies a complete, non-paginated read with no side effects, which is a useful implicit signal, but there is no disclosure of return format, whether data is cached, or how large the result set is.
Agents need to know what a tool does to the 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 with zero waste, front-loading the verb and resource immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool this is minimally sufficient, but with no annotations and no output schema the description could reasonably hint at what each civilization record contains (name, expansion, bonuses) to help an agent 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 takes zero parameters, so per the rubric the baseline is 4. The description correctly implies no filtering is available, consistent with the empty input 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 ('List') and resource ('Age of Empires II civilizations') with 'all' clarifying scope. However, it does not differentiate from the near-identically named sibling 'aoe2_civilization' (singular), leaving ambiguity about whether these are the same or different endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus alternatives. The singular sibling 'aoe2_civilization' is confusingly adjacent, and the description does nothing to explain the distinction or mention the related aoe2_technologies/aoe2_units tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aoe2_technologiesB
List all Age of Empires II technologies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies a read-only enumeration via 'List', but says nothing about return size, pagination, or ordering for the full technology set — meaningful gaps for a 'list all' 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?
A single, front-loaded sentence that conveys the verb and resource 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 no-argument, no-output-schema list tool, the description is nearly sufficient — an agent knows what it gets. Only minor details (result size/ordering) are absent, which is acceptable at this 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?
The tool takes zero parameters, so there is nothing for the description to document; the baseline of 4 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 (List) and resource (Age of Empires II technologies) with scope (all). It is clearly distinct from the sibling aoe2_units / aoe2_unit / aoe2_civilizations in substance, but the description never names those siblings to make the routing 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?
No when-to-use, when-not-to-use, or alternative guidance is given. For a zero-parameter 'list everything' tool the usage is largely self-evident, but the description does nothing to establish that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aoe2_unitC
Get an Age of Empires II unit by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unit ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it says nothing about error behavior for unknown IDs, rate limits, or response shape. It at least makes clear this is a read-only lookup, which prevents worse than a 1.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is appropriately sized for a trivially simple one-parameter lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a minimal single-param lookup with no output schema, the description is adequate but bare. It leaves unresolved how an agent obtains a valid unit ID and what the returned object contains, which a slightly longer sentence could have 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?
There is one parameter with 100% schema description coverage ('Unit ID'), so the schema already documents it. The description adds no format or range detail beyond that, making the baseline 3 the correct call.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('Age of Empires II unit') qualified by lookup key ('by ID'), which is enough to separate it from aoe2_units and aoe2_technologies. It stops short of the 5 tier because it never explicitly names the list sibling to contrast with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to prefer this over aoe2_units, nor any mention of what IDs are valid or where to get one. The only implicit signal is 'by ID' in the purpose text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aoe2_unitsB
List all Age of Empires II units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about whether the result is a full enumeration or paginated, how large the payload is, or what a unit record contains — the only implied behavior is 'all', which is really restating the purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Nothing redundant or padded, and the verb/resource ordering is optimal for scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no annotations, and no output schema, the description is barely sufficient for a trivia-list tool. It omits any hint of the returned fields or result size, though the invocation risk is low given the zero-argument signature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is no parameter semantics to document; the baseline of 4 applies. Nothing in the schema requires additional explanation from the description.
Input schemas describe structure but not intent. Descriptions should explain 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 verb (List) and a specific resource (Age of Empires II units), so the agent knows it enumerates game units. It does not, however, differentiate itself from the sibling aoe2_unit (singular), leaving the list-vs-single distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus aoe2_unit, aoe2_civilizations, or aoe2_technologies. The description gives no context about prerequisites, filtering, or which sibling answers a related question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_metadataB
Get metadata for an Internet Archive item by identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Archive.org item identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only implies a read-only metadata lookup and does not disclose permissions, rate limits, error behavior, or response 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?
A single, front-loaded sentence with no wasted words. It states the action, resource, and required input directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, one-parameter read tool with full schema coverage and no output schema, the description gives enough to call it correctly: it says what it returns and what identifier is needed. It lacks alternative-tool guidance, but that is a minor completeness 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 identifier parameter is fully documented by the schema. The description repeats that it is an Internet Archive item identifier but adds no syntax, format, or validation 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 verb ('Get'), resource ('metadata for an Internet Archive item'), and scoping parameter ('by identifier'). It does not explicitly name the sibling archive_search, so it falls short of full sibling differentiation, but the identifier-based scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by identifier' implies usage when an item identifier is available, but there is no explicit guidance on when to use this tool instead of archive_search or other alternatives. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_searchC
Search the Internet Archive (archive.org) for items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Results per page (max 20, default 10) | |
| query | Yes | Search query | |
| mediatype | No | Filter: texts, audio, movies, software, image, collection |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and delivers almost nothing: no mention of rate limits, authentication, result shape, or how paging interacts with the result set. 'Search ... for items' is semantically empty beyond the verb.
Agents need to know what a tool does to the 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 with zero filler, but it is arguably under-specified rather than tight; there is nothing after the core claim to earn the brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search endpoint with no annotations and no output schema, the description is minimally adequate: it identifies the source, and pagination is covered by the schema. It omits what a result item contains and how total results/paging limits behave, which an agent would benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (query, page, limit, mediatype) are already documented in the schema. The description adds no format hints, no example queries, and no guidance on mediatype values, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Internet Archive / archive.org items), so the agent knows this queries archive.org rather than arbitrary text. It does not distinguish itself from nearby siblings like archive_metadata or wayback_check, which is the only gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance and never names the alternative tools (archive_metadata for metadata retrieval, wayback_check for URL snapshots) that share the Archive.org domain. The agent must infer the routing decision entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
area_calculateARead-onlyIdempotent
Calculate area (and perimeter where possible) of common shapes: circle, rectangle, triangle, trapezoid, ellipse, parallelogram, sector.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base (triangle, parallelogram). | |
| base1 | No | First base (trapezoid). | |
| base2 | No | Second base (trapezoid). | |
| shape | Yes | Shape: circle, rectangle, triangle, trapezoid, ellipse, parallelogram, or sector. | |
| width | No | Width (rectangle). | |
| height | No | Height (rectangle, triangle, trapezoid, parallelogram). | |
| radius | No | Radius (circle, sector). | |
| semi_major | No | Semi-major axis (ellipse). | |
| semi_minor | No | Semi-minor axis (ellipse). | |
| angle_degrees | No | Angle in degrees (sector). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds one genuinely useful behavioral fact — perimeter is returned only 'where possible', i.e. output varies by shape — but says nothing about precision, units, or whether formulas/steps come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, verb and scope front-loaded, and the shape list packed into a compact enumeration. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 carry return-value burden; it says area plus optional perimeter but leaves the response shape, numeric precision, and unit assumptions unspecified. Adequate for a deterministic math tool, but not 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% and each property already names the shape(s) it applies to (e.g. base1/base2 for trapezoid, angle_degrees for sector), so the schema carries the semantics. The description only adds that shape determines which parameters matter; 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 ('Calculate') and resource ('area ... of common shapes'), then enumerates the seven supported shapes, which lets an agent match a request to this tool rather than to convert_area or polygon_calculate. It never explicitly contrasts with those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumerated shape list implies when to use it (a named shape with known dimensions), but there is no explicit when-not guidance and no pointer to alternatives such as triangle_solve (for missing sides/angles) or polygon_calculate (for irregular polygons). Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
artic_get_artworkBRead-onlyIdempotent
Get detailed info about a specific artwork at the Art Institute of Chicago.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Artwork ID (from search results). |
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 no behavioral context such as what 'detailed info' includes, error behavior for invalid IDs, or any rate/auth considerations, making it minimally informative 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?
A single, front-loaded sentence with no wasted words. It clearly states the tool's purpose without unnecessary 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 tool, the annotations and schema cover the essentials. However, with no output schema and only the vague phrase 'detailed info', the description does not characterize what the response contains, leaving a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter with 100% schema description coverage ('Artwork ID (from search results)'). The description does not add any meaning or constraints 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 states a specific verb ('Get') and resource ('detailed info about a specific artwork') scoped to the Art Institute of Chicago. It implicitly distinguishes this from a search tool by specifying 'a specific artwork', though it does not explicitly name the sibling search 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 use of 'specific artwork' implies this tool is for retrieving an item after obtaining its ID, likely via search. However, the description does not explicitly name artic_search_artworks or state when to use that alternative, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
artic_search_artworksBRead-onlyIdempotent
Search artworks at the Art Institute of Chicago by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50). | |
| query | Yes | Search term (e.g. monet, sunflowers, impressionism). |
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 fully covered by structured data. The description adds almost nothing beyond that: no mention of result caps/pagination (only the schema's limit hints at it), no ordering, no note that remote API failures or empty result sets are possible.
Agents need to know what a tool does to the 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 with no filler; every word carries information. Brevity is not the problem here — missing content is.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full annotations and complete schema docs, the essentials are present. However, with no output schema, the description could have stated the shape of results (list of artwork summaries requiring artic_get_artwork for detail), which is the main thing an agent still has to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 query and limit are documented with examples and bounds. The description repeats the keyword concept but adds no syntax or 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?
States a specific verb (search), resource (artworks), and scoping constraint (by keyword) along with the source institution. It is distinguishable from artic_get_artwork by the search-vs-fetch distinction, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus artic_get_artwork, no prerequisites, and no exclusions. The 'by keyword' phrase implies lookup-style usage, but the agent must infer that it should search first and then fetch details by ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_searchBRead-onlyIdempotent
Search arXiv for scientific preprints by keyword, title, or author.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term or arXiv query. | |
| max_results | No | Max papers to return (default 5, max 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety and external-reach profile is covered. The description adds only the accepted query modes, and says nothing about result ordering, relevance ranking, or the fact that returned entries are metadata-only (no full text).
Agents need to know what a tool does to the 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 with no filler. The resource, the verb, and the accepted query modes appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with 100% schema coverage and full annotations, the description plus structured data give an agent enough to call it correctly. It could be marginally richer by noting that results are preprints (not peer-reviewed publications) and the max of 20, 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 coverage is 100%, with the query and max_results (default 5, max 20) parameters fully documented in the schema. The description's "by keyword, title, or author" adds a small hint that the query string can target different fields, but doesn't give query syntax or field-prefix details. Baseline 3 applies when the schema carries the 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?
States a specific verb and resource ("Search arXiv for scientific preprints") and names the accepted query modes. No sibling in the tool list covers arXiv, so differentiation is largely unnecessary; the only gap versus a 5 is that it doesn't distinguish this from generic scholarly search siblings such as openalex_search_works or crossref_search_works.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus the many other scholarly search tools (openalex_search_works, dblp_search_publications, crossref_search_works), nor any note on when it is inappropriate. Usage is only implied by the verb "search".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspect_ratioB
Calculate the aspect ratio of given width and height.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Width in pixels. | |
| height | Yes | Height in pixels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states only that it calculates an aspect ratio and does not describe the return format (e.g., decimal vs. simplified ratio), edge cases such as zero height, or any other behavioral traits beyond the obvious.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for a simple calculation tool and immediately conveys the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 calculator with complete parameter documentation and no output schema, the description is minimally adequate to invoke the tool. However, it omits the return value format, which would be useful since no output schema exists, leaving a clear gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions fully cover both parameters ('Width in pixels.' and 'Height in pixels.'), so the baseline is 3. The description merely restates that width and height are the inputs without adding any 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 states a specific verb ('Calculate') and resource ('aspect ratio') with the inputs ('given width and height'). It is clear what the tool does, but it does not explicitly differentiate itself from related siblings such as ratio_simplify or proportion_solve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. The usage is implied by the tool name and description, but no context or exclusions are provided. This matches the 'no guidance' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assemblyai_get_paragraphsARead-onlyIdempotent
Get a completed transcript split into paragraphs.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | AssemblyAI API key | |
| transcript_id | Yes | Completed transcript ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds the useful constraint that the transcript must be completed, but it does not describe error behavior, authentication needs beyond the schema, or return format 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 with no wasted words. It communicates the core operation 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 low-complexity, two-parameter read operation with full schema coverage and rich annotations, the description is nearly complete. It could provide slightly more detail about the return shape, but it is sufficient 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%, and both parameters are documented in the schema. The description does not add syntax or format details 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 states a specific verb and resource: retrieving a completed transcript split into paragraphs. This clearly distinguishes it from sibling tools like assemblyai_get_transcript and assemblyai_get_sentences by specifying the output granularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 should be used when paragraph-level segmentation is needed from a completed transcript, but it does not explicitly state when to prefer it over alternatives such as assemblyai_get_sentences or assemblyai_get_transcript. Usage is inferable but not fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assemblyai_get_sentencesARead-onlyIdempotent
Get a completed transcript split into individual sentences.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | AssemblyAI API key | |
| transcript_id | Yes | Completed transcript 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 covered. The description adds the useful constraint that the transcript must be completed, but does not explain behavior for incomplete transcripts, authentication needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It states the action and result immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple read tool whose annotations cover safety and whose parameters are fully documented. With no output schema, though, it could say more about the sentence return format (e.g., timestamps or confidence) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both api_key and transcript_id are already documented in the schema. The description reinforces that transcript_id must refer to a completed transcript, but adds 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?
The description uses a specific verb ('Get') and a clear resource ('a completed transcript split into individual sentences'), distinguishing it implicitly from assemblyai_get_transcript and assemblyai_get_paragraphs. It does not explicitly name those siblings, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'completed' implies the prerequisite that the transcript must already be finished, giving some usage context. However, it does not explicitly say when to choose this over assemblyai_get_transcript, assemblyai_get_paragraphs, or assemblyai_summarize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assemblyai_get_transcriptBRead-onlyIdempotent
Get the status and results of an AssemblyAI transcription job.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | AssemblyAI API key | |
| transcript_id | Yes | Transcript ID returned by assemblyai_transcribe |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds the useful fact that the call returns job status as well as results, implying it may be called before completion, but says nothing about status values, error states, or rate limiting.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, no filler. Brevity comes at the cost of the routing and polling details an agent would need, but there is no structural waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should say what 'results' contains (transcript text, status enum, error message, language, duration) and that incomplete jobs return partial status. It delivers none of that, leaving an agent unable to predict the response shape for a no-output-schema 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 schema already explains that transcript_id comes from assemblyai_transcribe and that api_key is the AssemblyAI key. The description adds no 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?
States a specific verb+resource ('Get the status and results of an AssemblyAI transcription job'), so the agent knows it retrieves a job by ID. It does not distinguish itself from close siblings like assemblyai_get_sentences, assemblyai_get_paragraphs, assemblyai_list_transcripts or assemblyai_summarize, which all read from the same transcript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to call this versus assemblyai_get_sentences/paragraphs (which return subsets) or assemblyai_list_transcripts. It also omits the natural polling pattern — call after assemblyai_transcribe, repeat until status leaves queued/processing — which is the primary usage context for a status-check tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assemblyai_list_transcriptsBRead-onlyIdempotent
List recent AssemblyAI transcripts for the account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of transcripts to return (default: 10, max: 200) | |
| status | No | Filter by status | |
| api_key | Yes | AssemblyAI API key | |
| after_id | No | Cursor: return transcripts after this ID | |
| before_id | No | Cursor: return transcripts before this ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds two useful hints beyond that: results are 'recent' (implying a recency bound or default window) and scoped to 'the account' (implying API-key account scoping). It does not mention pagination or result ordering, which is a gap for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though the 'recent' qualifier is left unexplained rather than elaborated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and annotations, this is nearly complete. The only missing piece is clarification of what 'recent' means (default window, pagination behavior via cursors), which the schema hints at but does not tie back to the 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 coverage is 100%, so limit, status, api_key and both cursors are fully documented in the schema. The description adds no parameter-level detail, so the baseline 3 for high-coverage schemas 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 (List) and resource (AssemblyAI transcripts) scoped to the account, with the qualifier 'recent' indicating a bounded result set. It is reasonably distinguishable from assemblyai_get_transcript (singular fetch) by virtue of being a plural list, but 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 offers no when-to-use guidance, no prerequisites, and no mention of alternatives. An agent must infer that this is the discovery step preceding get_transcript/get_sentences, which is not stated anywhere in the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assemblyai_summarizeA
Get the AI-generated summary for a completed AssemblyAI transcript (must have been submitted with summarization enabled).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | AssemblyAI API key | |
| transcript_id | Yes | Completed transcript ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states prerequisites (transcript must be completed and summarization enabled), but does not specify error handling or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 17-word sentence that states the purpose first, then the prerequisite. No unnecessary words 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 retrieval tool with 2 parameters and no output schema, the description covers the essential purpose and prerequisite. It could mention the return format, but the context is largely 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 the parameters. The description adds context about the transcript needing summarization but does not enhance parameter understanding 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 gets an AI-generated summary for a completed AssemblyAI transcript, distinguishing it from sibling tools like assemblyai_get_transcript or assemblyai_transcribe. The verb 'Get' and resource 'summary' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a crucial prerequisite ('must have been submitted with summarization enabled'), guiding when the tool can be used. However, it does not explicitly mention 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.
assemblyai_transcribeB
Submit an audio or video file for transcription with AssemblyAI.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | AssemblyAI API key from assemblyai.com/dashboard | |
| audio_url | Yes | Publicly accessible URL of the audio/video file | |
| punctuate | No | Add punctuation (default: true) | |
| format_text | No | Format text with capitalisation | |
| webhook_url | No | URL to POST transcript results to when complete | |
| summary_type | No | Summary format | |
| auto_chapters | No | Generate auto chapters | |
| language_code | No | Language code (e.g. en, es, fr, de). Omit for auto-detection. | |
| summarization | No | Generate a summary (also set summary_type) | |
| speaker_labels | No | Enable speaker diarization | |
| entity_detection | No | Enable named entity detection | |
| language_detection | No | Enable automatic language detection | |
| sentiment_analysis | No | Enable sentiment analysis per sentence |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose that transcription is asynchronous or that the tool returns a transcript ID for polling. Behavior is opaque beyond basic submission.
Agents need to know what a tool does to the 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 action and resource, no unnecessary 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?
With 13 parameters, no output schema, and no description of return type or workflow (e.g., polling required), the description is insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions; description adds no extra meaning beyond the schema. Baseline score 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 clearly states it submits an audio/video file for transcription to AssemblyAI, differentiating from sibling tools that retrieve or list transcripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus siblings like assemblyai_get_transcript or assemblyai_list_transcripts. Missing context on asynchronous behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astar_pathB
Find the shortest path on a 2D grid using the A* algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | [row, col] end position | |
| grid | Yes | 2D grid (0 = passable, 1 = wall) | |
| start | Yes | [row, col] start position | |
| diagonal | No | Allow diagonal movement (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden of behavioral disclosure. It does not explain that walls block movement, that diagonal movement is allowed by default, that the grid uses 0/1 values, or what the return format looks like. Without annotations and an output schema, this is severely lacking for a mutation-free but complex algorithm.
Agents need to know what a tool does to the 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 states the purpose without any wasted words. It is appropriately sized for a simple tool 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?
Given the complexity of A* pathfinding and the lack of annotations or output schema, the description is insufficient. It omits critical details such as default diagonal movement, grid interpretation, and what the function returns, leaving the agent to infer behavior from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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, including the grid, start, end, and diagonal flag. The description adds no additional parameter semantics beyond stating it operates on a 2D grid.
Input schemas describe structure but not intent. Descriptions should explain 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 (find), resource (shortest path on a 2D grid), and algorithm (A*). This distinguishes it from sibling pathfinding tools like dijkstra_path, bfs_search, or dfs_search, which use different algorithms or heuristics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like dijkstra_path or bfs_search. The description does not mention prerequisites, such as grid format or movement rules, nor does it specify scenarios where A* is preferred (e.g., with heuristics, weighted grids).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atbash_processA
Apply the Atbash cipher (A=Z, B=Y, ...) to text. Self-inverse.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to encode/decode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add one genuinely useful behavioral fact: 'Self-inverse' tells the agent the same call both encodes and decodes, removing the need for a separate inverse operation. It says nothing about how non-alphabetic characters, case, or non-ASCII input are handled, so the disclosure is partial.
Agents need to know what a tool does to the 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, front-loaded with the operation and mapping, and the trailing property note is dense rather than filler. Nothing is wasted and nothing essential is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, no-output-schema transform, the description is nearly sufficient: purpose, mapping, and the self-inverse property are all covered. The only real omission is edge-case behavior for digits, punctuation, and case, which an agent would otherwise have to discover by trial.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter at 100% schema description coverage ('Text to encode/decode.'), so the schema already does the work; baseline is 3. The description's 'to text' confirms the input type but adds no format, length, or charset 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 (apply) and resource (Atbash cipher), and spells out the mapping (A=Z, B=Y, ...) so the transformation is unambiguous without opening anything else. It does not differentiate itself from cipher/encoding siblings such as rot13_convert, vigenere_process, or morse_convert, which keeps it 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?
Usage is implied rather than stated: the agent can infer this is the tool for Atbash transformations, and 'Self-inverse' hints it serves both encoding and decoding. There is no explicit when-to-use or when-to-prefer-an-alternative guidance relative to the many other cipher tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auspost_delivery_timesC
Get Australia Post estimated delivery times.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| to_postcode | Yes | ||
| service_code | No | ||
| from_postcode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It says 'Get' implying a read-only operation, but does not disclose authentication requirements (though an 'api_key' parameter exists), rate limits, or what happens on errors. The lack of detail on behavioral traits is significant.
Agents need to know what a tool does to the world before calling 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 concise sentence with no extraneous information. It is front-loaded and efficient, earning 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 4 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain return values, parameter formats, or any special considerations needed 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 has 4 parameters with 0% schema description coverage. The description adds no meaning to the parameters (e.g., what 'from_postcode' and 'to_postcode' expect, what 'service_code' options are). The agent must guess or rely on external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get Australia Post estimated delivery times.' The verb 'Get' and resource 'estimated delivery times' are specific. While it doesn't explicitly differentiate from siblings, the sibling names (e.g., 'auspost_get_postcode', 'auspost_track_parcel') imply distinct functions, so purpose is reasonably 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?
No guidance on when to use this tool versus alternatives like 'auspost_track_parcel' or 'auspost_get_postcode'. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage 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.
auspost_get_postcodeCRead-onlyIdempotent
Look up an Australian postcode or suburb.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Suburb name or postcode | |
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing behavioral beyond that: it doesn't say whether a postcode query returns suburb lists, whether matches are fuzzy, whether it requires an AusPost API key, or anything about rate limits or error 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?
A single front-loaded sentence with no filler. It is efficient, though the terseness borders on under-specification rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no sibling differentiation, an undocumented auth parameter, and no description of what a successful response contains (single postcode, list of suburbs, coordinates), an agent cannot confidently predict behavior. Given the density of nearby postcode/zip siblings, this is 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 description coverage is only 50%: 'q' is documented as 'Suburb name or postcode', but api_key is undocumented in both schema and description. The description itself adds no parameter meaning (e.g., whether q accepts partial suburb names or must be a full 4-digit postcode), so it fails to compensate for the coverage 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?
States a specific verb and resource ('look up an Australian postcode or suburb'), so the agent knows exactly what domain it queries. It does not, however, distinguish itself from sibling tools such as postcode_lookup, postcode_random, zip_lookup or zip_by_city, which occupy closely overlapping territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus postcode_lookup, zip_lookup, or zip_by_city, all of which appear in the sibling list. The agent must infer routing from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auspost_track_parcelB
Track an Australia Post parcel by tracking number.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| tracking_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or response format, leaving the agent with insufficient 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 a single sentence with no waste, but it is slightly under-specified for a tool with no annotations or 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?
Given no output schema and no annotation, the description should explain the return value and required authentication (api_key), which it omits, making it incomplete for effective 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?
With 0% schema description coverage, the description mentions 'tracking number' corresponding to tracking_id but does not explain the api_key parameter or 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 states the verb 'track' and the resource 'Australia Post parcel by tracking number', distinguishing it from siblings like auspost_delivery_times and auspost_get_postcode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for tracking a parcel but provides no explicit guidance on when to use this tool versus alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autopilot_record_eventRecord AutoPilot ledger eventA
Writes one sanitized AutoPilot proof event to the tenant ledger. Use this for claim, check, merge, close, proof, and blocker receipts before claiming zero-touch proof.
| Name | Required | Description | Default |
|---|---|---|---|
| ref_id | Yes | Stable object id, such as a PR number, todo UUID, dispatch id, or run id. | |
| payload | No | Non-secret proof details. Secret-looking keys or values are rejected by the API. | |
| ref_kind | Yes | Stable object type this event proves. | |
| event_type | Yes | Typed ledger event. Use proof_result for check results and todo_state_change for close. | |
| actor_agent_id | Yes | Automation seat or App identity that performed the action. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool is a non-readonly, non-idempotent write. The description adds useful context by noting that events are sanitized and scoped to a tenant ledger, and that it records one event per call. However, it does not explain retry behavior, duplicate handling, or error conditions—important for a non-idempotent ledger write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is two sentences and front-loads the core action and scope. Every sentence is relevant, 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 five-parameter write tool with a fully documented schema and annotations covering safety and idempotency, the description gives enough context to call it correctly: what it writes, where, what receipt types to use, and the broader zero-touch proof workflow. It stops short of describing return values or duplicate-event behavior, but no output schema exists and the annotations reduce the 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 the schema already documents all five parameters, enums, and payload restrictions. The description lists example receipt types but adds no syntax, formatting, or mapping details beyond what the schema provides. Baseline 3 is appropriate when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: writes one sanitized AutoPilot proof event to the tenant ledger. It implies a relationship to zero-touch proof and the sibling autopilot_zero_touch_metrics, but does not explicitly name or contrast with any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use it for claim, check, merge, close, proof, and blocker receipts, and specifically before claiming zero-touch proof. It does not explicitly state when not to use it or name an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autopilot_zero_touch_metricsRead AutoPilot zero-touch metricsARead-onlyIdempotent
Reads AutoPilot ledger rows and returns zero-touch scoring. Use before closing a canary or claiming human_touch_count=0.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum recent ledger rows to scan. | |
| ref_id | No | Optional object id filter. | |
| ref_kind | No | Optional object type filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that it reads ledger rows and returns zero-touch scoring, but it does not explain the scoring structure, ordering, or any limits beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The core action is stated first and the usage condition follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and annotations are rich, and the usage trigger is useful. However, because there is no output schema, the description should say more about what the zero-touch scoring output contains; right now an agent knows when to call it but not what to expect 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?
Schema description coverage is 100%, so all three optional parameters are already documented in the input schema. The description does not add meaning beyond the schema, such as how ref_kind interacts with ref_id or how limit affects scoring, 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 gives a specific verb and resource: it reads AutoPilot ledger rows and returns zero-touch scoring. This is clear enough to understand the tool's role, though it does not explicitly differentiate itself from the related autopilot_record_event 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 an explicit usage trigger: use it before closing a canary or claiming human_touch_count=0. It does not describe when not to use it or name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avatar_urlC
Generate a text-based avatar image URL with initials.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the avatar initials (default User) | |
| size | No | Size in pixels (default 200) | |
| color | No | Text hex color (default fff) | |
| format | No | Format: svg or png (default svg) | |
| background | No | Background hex color or 'random' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it does very little: it does not state whether this is a pure local URL builder or a call to an external service, whether anything is persisted, what the returned URL looks like, or any rate limits. 'Generate a URL' implies a harmless read-only construction, but that is inference rather than 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?
A single front-loaded sentence with no waste; the verb and resource appear immediately. It is arguably too terse for a five-parameter tool, but nothing is redundant or 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?
With no output schema and no annotations, the description should say more about the returned artifact and how defaults interact, since an agent cannot otherwise know what URL string it will receive. The parameter-level detail is fully handled by the schema, so the definition is workable but thin for a five-parameter generator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 five parameters documented including defaults, so the schema does the heavy lifting and a 3 is the baseline. The description adds only that initials come from the name, contributing nothing about size, color, format, or background behavior 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 ('Generate') and a precisely scoped resource ('text-based avatar image URL with initials'), which differentiates it from generic image endpoints. It stops short of naming any of the many sibling image generators (e.g., multiavatar_generate, robohash_url, dummy_image_url), so an agent must infer the distinction rather than read 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?
There is no guidance on when to choose this over the numerous other avatar/image URL tools in the sibling list, nor any stated preconditions for use. The agent is left to guess that this is the initials-style avatar generator rather than a random identify-style one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avl_treeA
Build an AVL (self-balancing BST) from a list of keys. Returns inorder traversal, tree height, and optional key search results.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Keys to insert into the AVL tree | |
| search_keys | No | Optional keys to search for in the tree |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose what comes back: inorder traversal, tree height, and optional search results. It also implies the operation is a pure build-and-compute with no external side effects. It does not mention any failure modes for edge cases like empty or duplicate keys.
Agents need to know what a tool does to the 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 zero filler; the build action is front-loaded and the return summary follows. Nothing 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 usefully enumerates the return values, and both parameters are covered by the schema. An agent has enough to invoke it correctly, though a note on edge cases or the search result shape would close the remaining 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 (keys, search_keys) are already documented in the schema. The description only reinforces that search_keys is optional, adding no syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Build') and resource ('AVL (self-balancing BST)') from a list of keys, and even names the outputs. It is clearly distinguishable from siblings like rb_tree_sim or treap_sim by the AVL spec, though it never explicitly contrasts itself with 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?
There is no when-to-use guidance, no alternatives named, and no conditions. Given sibling tools like rb_tree_sim, treap_sim, and skip_list_sim, an agent gets no signal about which balanced-tree tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
baby_giant_stepA
Solve the discrete logarithm problem (find x such that base^x = target mod modulus) using baby-step giant-step.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base of the exponentiation | |
| target | Yes | Target value | |
| modulus | Yes | Modulus (max 1,000,000,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does not state complexity/performance characteristics of BSGS (O(sqrt(n)) time and memory), whether it fails or errors when no solution exists, or what it returns on failure. For an algorithm with distinctive runtime and failure-mode behavior, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the problem, the algorithm, and the exact mathematical relation. No filler, 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 pure computational tool with no annotations and no output schema, the description covers the mathematical contract but omits return shape (does it return x, or a status/None on no-solution?), failure behavior, and any complexity caveats an agent should know before invoking. Adequate but with clear 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% and each parameter already has a description, so the schema does the heavy lifting. The description restates the mathematical roles (base^x = target mod modulus), which frames how the params combine but adds no format, range, or validation detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and named algorithm (solve the discrete logarithm using baby-step giant-step) and even parenthesizes the mathematical definition: 'find x such that base^x = target mod modulus'. An agent can distinguish this from siblings like modular_arithmetic, log_base, or pollard_rho 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 implies when this applies (solving discrete logarithms) but never states when to prefer it over alternatives such as pollard_rho or brute-force search, nor any constraints on input size beyond the schema's modulus cap. Implied usage only, no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bacon_ipsumC
Generate meat-themed placeholder text (Bacon Ipsum).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Text type (default: meat-and-filler) | |
| paragraphs | No | Number of paragraphs (max 10, default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses nothing about the output shape, whether the call is deterministic or random per invocation, or rate limits — only the thematic content of the text. For a generator with zero annotation coverage this is thin.
Agents need to know what a tool does to the 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 short sentence that front-loads the action and resource. No waste, though it is arguably under-specified rather than maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial two-param generator with a fully documented schema and no output schema, the description covers purpose adequately. It stops short of noting randomness or routing to sibling lorem tools, leaving small 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 description coverage is 100% — both 'type' (with enum and default) and 'paragraphs' (max 10, default 3) are fully documented in the schema. The description adds no parameter detail, which is acceptable given the schema does the work; 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?
States a specific verb ('Generate') and resource ('meat-themed placeholder text', Bacon Ipsum). The meat-themed qualifier distinguishes it from the many generic lorem/faker siblings (lorem_generate, random_lorem_ipsum, faker_texts), though it never names 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?
No when-to-use guidance or alternative routing. The description does not tell the agent when to prefer this over lorem_generate or random_lorem_ipsum, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bandsintown_artistC
Get an artist profile from Bandsintown.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | No | ||
| artist | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description is minimal with no details about response format, authentication, rate limits, or behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Under-specified single sentence; lacks necessary detail for effective tool usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no parameter descriptions, minimal behavioral context; agent cannot determine what data is returned or how to use the tool properly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; description does not explain what 'artist' and 'app_id' parameters represent or their expected formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and specific resource 'artist profile from Bandsintown', distinct from sibling tools like bandsintown_events and bandsintown_recommended.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives; no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bandsintown_eventsBRead-onlyIdempotent
Get upcoming events for an artist on Bandsintown.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| app_id | No | ||
| artist | Yes |
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 the useful scope that events are 'upcoming,' but it does not explain date filtering, pagination, rate limits, or what the response contains. With annotations covering safety, 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?
One sentence, front-loaded, with no wasted words. It directly states the action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three undocumented parameters and no output schema, the description leaves important gaps: it does not explain 'date' or 'app_id' semantics, event limits, or return behavior. The annotations cover safety, but the description is not complete enough for confident invocation beyond the required artist parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description must compensate. It only implies the required 'artist' parameter and says nothing about what 'date' or 'app_id' mean or how they should be formatted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 upcoming events for an artist. It is clear what the tool returns, but it does not explicitly differentiate this from siblings like bandsintown_artist or bandsintown_recommended.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 explicit when-to-use guidance, prerequisites, or alternatives. It implies the use case by saying 'for an artist,' but an agent gets no help deciding between this and the other Bandsintown or event tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bandsintown_recommendedC
Get recommended events for an artist on Bandsintown.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | No | ||
| artist | Yes | ||
| location | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as read/write nature, authentication requirements, rate limits, or return behavior. The description fails to add value beyond the basic purpose.
Agents need to know what a tool does to the world before calling 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 concise sentence, which is appropriately short, but it sacrifices critical information. While it is not verbose, it does not fully earn its place as it fails to provide necessary details for effective tool usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain what the tool returns, how parameters affect results, or any side effects. The agent lacks sufficient information to use 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 has 0% description coverage, and the description does not explain any of the three parameters (artist, location, app_id). It does not clarify what 'location' or 'app_id' do, leaving the agent unable to infer their meaning or correct 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 clearly states the verb 'Get' and the resource 'recommended events for an artist on Bandsintown.' It distinguishes from sibling tools like 'bandsintown_artist' and 'bandsintown_events' by specifying 'recommended' events, but does not explicitly differentiate why one would choose this tool over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as 'bandsintown_events' or 'bandsintown_artist.' There are no hints about prerequisites, limitations, or context where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base64_decodeBRead-onlyIdempotent
Decode a Base64 string to text.
| Name | Required | Description | Default |
|---|---|---|---|
| encoded | Yes | Base64 string to decode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds nothing beyond that: it does not say how invalid input, missing padding, or non-UTF-8 bytes are handled, which are the actual behavioral risks for a decoder. It also 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?
One short sentence, front-loaded with the verb and resource, with no filler. Brevity is appropriate for a trivial utility, though it leaves room for a clause on error behavior at almost no cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure function with full annotation coverage, the description plus schema is nearly sufficient: the agent knows input type and that output is text. The only real gap is failure behavior on malformed input, which is minor for this tool class.
Complex tools with many parameters or behaviors need more documentation. 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 a single parameter, and schema description coverage is 100%, so the schema already documents it. The description adds no format or encoding details (padding, URL-safe variant, whitespace tolerance) beyond what the schema states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Decode a Base64 string') with the result type ('to text'), so the operation is unambiguous. It does not explicitly contrast with the closest siblings base64_encode or jwt_decode, but the name plus description leaves no realistic 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 is purely definitional: no when-to-use conditions, no mention of the encode counterpart for round-tripping, and no guidance on what to do when input is not valid Base64. The agent must infer all of that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base64_encodeBRead-onlyIdempotent
Encode text to Base64.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to encode. |
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 by structured data. The description adds nothing beyond restating the name: no encoding variant (standard vs URL-safe), no padding behavior, no character-encoding assumption, and no mention of what the output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste, front-loaded with the verb. Nothing redundant or 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 one-parameter pure function with full schema coverage and clear annotations, the description is minimally sufficient. However, the practical ambiguity of Base64 — URL-safe alphabet, padding, UTF-8 assumption — is left unaddressed, which is the one thing an agent could genuinely get wrong here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented as 'Text to encode.' The description adds no information beyond the schema, so the baseline 3 applies; it neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Encode') and resource ('text to Base64'), so the operation is unambiguous. It does not name the sibling base64_decode or otherwise differentiate, but the name/sibling pair makes the direction obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this over base64_decode or other encoding utilities. The only implied context is that input must be text, which is already enforced by the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_convertARead-onlyIdempotent
Convert a number between bases (binary, octal, decimal, hex, or any base 2-36).
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The number to convert (as string). | |
| to_base | No | Target base (2-36, default 16). | |
| from_base | No | Source base (2-36, default 10). |
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 supported base range but does not explain output format, invalid-input behavior, or whether the returned value is a string.
Agents need to know what a tool does to the 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 with no wasted words. It states the operation and the allowed base range immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 conversion tool with full schema coverage and safety annotations, the description is nearly complete. The main remaining gap is that there is no output schema and the description does not state what the conversion returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents value, to_base, and from_base, including defaults. The description restates the base range but adds no further parameter semantics such as accepted digit characters or case sensitivity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: convert a number between bases, with concrete base examples and the 2-36 range. It does not distinguish this tool from the sibling number_base_convert, which appears to serve a near-identical 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 implies when to use it by naming supported bases, but it gives no explicit when-not guidance and does not route the agent away from similar siblings such as number_base_convert or other convert_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bellman_fordB
Find shortest paths from a source node using Bellman-Ford (handles negative edge weights).
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of weighted directed edges | |
| start | Yes | Start node | |
| target | No | Optional target node for path reconstruction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses the important trait that negative edge weights are handled, but omits other critical behaviors such as negative-cycle detection, error handling, and whether it returns distances or paths.
Agents need to know what a tool does to the 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 with zero waste. The purpose and key advantage are stated immediately without unnecessary 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?
Given a graph algorithm with no annotations and no output schema, the description is too sparse. It does not explain the return format (e.g., distances or reconstructed paths), how 'target' affects output, or negative-cycle handling, leaving an agent with insufficient context to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents 'edges', 'start', and 'target'. The description adds no parameter-specific meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find shortest paths'), resource ('from a source node'), and algorithm ('Bellman-Ford'), with a key differentiator ('handles negative edge weights'). It clearly distinguishes itself from sibling graph tools like dijkstra_path, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(handles negative edge weights)' implies when this tool is preferable to Dijkstra-like alternatives, but there is no explicit guidance on when to use it versus other shortest-path tools. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
berlekamp_masseyA
Find the shortest linear recurrence for a sequence using Berlekamp-Massey.
| Name | Required | Description | Default |
|---|---|---|---|
| sequence | Yes | Input sequence of integers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does not meet it. It does not disclose what is returned (recurrence coefficients? order?), how short/degenerate sequences are handled, or any numerical caveats. For a math algorithm with zero annotation coverage this is a real 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?
A single front-loaded sentence with no filler; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex algorithm with no output schema and no annotations, the description should at minimum describe the return value (the recurrence itself). It stops at the purpose, leaving the agent unsure what output 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%, covering the single 'sequence' parameter, so the baseline of 3 applies. The description adds nothing beyond the schema (it does not clarify length requirements or numeric type expectations).
Input schemas describe structure but not intent. Descriptions should explain 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 ('Find'), a precise resource ('the shortest linear recurrence for a sequence'), and names the algorithm (Berlekamp-Massey). This is unambiguous and distinct from the many other algorithm siblings such as continued_fraction or polynomial_ops.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the pure-computational nature of the tool, but there is no explicit statement of when to prefer it, what inputs are valid (finite sequence? field?), or how it differs from related sequence tools. Adequate but leaves the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bezier_clipB
Extract a Bezier sub-curve for a parameter range using de Casteljau subdivision.
| Name | Required | Description | Default |
|---|---|---|---|
| t_end | Yes | End parameter (0-1) | |
| t_start | Yes | Start parameter (0-1) | |
| control_points | Yes | Array of [x,y] control points |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the subdivision algorithm but does not disclose whether the operation is pure, whether it mutates the input control points, what the output format is, or any edge-case behavior. This leaves significant behavioral gaps for an agent.
Agents need to know what a tool does to the world before calling 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 redundant information. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic geometry tool with 100% schema coverage, the description is minimally adequate. However, with no output schema and no annotations, it does not explain the return value (e.g., a new list of control points) or any operational constraints, leaving the agent to infer these.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 three parameters. The description adds no parameter-specific details beyond what is already in the schema, which meets the baseline of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Extract') and resource ('Bezier sub-curve') and specifies the algorithm ('de Casteljau subdivision'). It distinguishes itself from sibling 'bezier_curve' by focusing on a sub-curve rather than the whole curve, but does not explicitly name the sibling or contrast behaviors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance or alternatives are provided. The description only states what the tool does, not when to choose it over other Bezier-related tools like bezier_curve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bezier_curveB
Compute a Bezier curve from control points with arc length and optional evaluation.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Number of curve samples (default 50, max 1000). | |
| eval_at | No | t value(s) in [0,1] to evaluate at. Number or array of numbers. | |
| control_points | Yes | Array of [x, y] control points (at least 2). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the outputs computed (arc length, optional point evaluation), which is useful, but says nothing about the return shape, default behavior, or edge cases. For a pure computational tool with no side effects, this is adequate but thin.
Agents need to know what a tool does to the 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 with no filler. Every clause (control points, arc length, optional evaluation) conveys a distinct part of the tool's 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?
For a no-annotation, no-output-schema computation tool, the description should clarify what the returned structure looks like (sampled points, arc length scalar, evaluated points). It hints at outputs but leaves the agent guessing at the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (control_points, steps, eval_at) are already documented in the schema. The description reiterates control points and eval but adds no format, ordering, or constraint detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Compute a Bezier curve from control points'), clearly distinguishing this from a generic math call. It does not explicitly differentiate from close siblings like bezier_clip or catmull_rom, but the resource is specific enough to identify the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus the sibling bezier_clip, spline_interpolate, or catmull_rom. The agent must infer from the name alone that this generates samples of a Bezier curve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bfs_searchARead-onlyIdempotent
Breadth-first search on a graph. Finds shortest unweighted path, visit order, and reachable node count.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of edges | |
| start | Yes | Start node | |
| target | No | Optional target node to find path to | |
| directed | No | Whether the graph is directed (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds real value by naming the three computed results (useful since there is no output schema), but stays silent on behavioral edge cases — e.g. cycle handling, unreachable target, or directed vs undirected effect on 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?
Two tight sentences, zero filler, with the algorithm front-loaded and the outputs immediately after. Nothing restates the tool name redundantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter pure-computation tool with full schema coverage and no output schema, the description gives enough — it says what is computed and what comes back. Missing only a note on how `target` changes output shape (path vs. reachability) and error behavior on invalid start nodes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 `edges`, `start`, `target`, and `directed`. The description's only semantic contribution is the word 'unweighted', which constrains what kind of graph input is valid; otherwise the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource ('breadth-first search on a graph') and enumerates the three outputs (shortest unweighted path, visit order, reachable node count). It does not distinguish itself from algorithmic siblings like dfs_search or dijkstra_path, so an agent must infer which graph traversal to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Shortest unweighted path' implicitly signals this is for unweighted graphs as opposed to dijkstra_path/astar_path, which is a useful selection cue. But there is no explicit when-to-use statement, no mention of when to prefer dfs_search, and no guidance on what happens when `target` is omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgg_game_detailsARead-onlyIdempotent
Get full details for a board game by its BGG ID - name, year, rating, players, playtime, description, categories, and mechanics.
| Name | Required | Description | Default |
|---|---|---|---|
| gameId | Yes | BoardGameGeek game ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety and repeatability are covered by structured data. The description adds the field scope of the payload, which is useful, but says nothing about behavior for an invalid/unknown ID (error vs empty) or data freshness from BGG.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and key, and the field list doubles as useful payload scope. No filler 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 one-parameter read tool with full annotation coverage, the definition is largely sufficient, and listing the returned fields compensates for the absent output schema. The remaining gap is failure behavior on unknown IDs, which an agent would have to discover at runtime.
Complex tools with many parameters or behaviors need more documentation. 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 gameId parameter is fully documented in the schema ('BoardGameGeek game ID'), and the description only restates that lookup is by BGG ID. With 100% schema coverage and zero enum/regex detail needed, the baseline of 3 applies; it could have noted the numeric-string format to prevent passing a game name.
Input schemas describe structure but not intent. Descriptions should explain 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 full details for a board game') plus the identifying key ('by its BGG ID') and enumerates the returned fields. It is clearly distinguishable from bgg_search or bgg_game_reviews by being an ID-based detail lookup, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The ID-based framing implies this is a follow-up call after finding a game via bgg_search, but the description never says so or states any prerequisites. There is no 'use X instead when...' guidance, so the agent must infer the lookup-by-known-ID workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgg_game_reviewsBRead-onlyIdempotent
Get user comments and ratings for a board game on BGG.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1, 25 comments per page) | |
| gameId | Yes | BoardGameGeek game 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 covered. The description adds that the payload is comments and ratings, which tells the agent what kind of data comes back. It says nothing about pagination limits or ordering, though the schema covers the page size.
Agents need to know what a tool does to the 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 with no waste. It is appropriately sized for a simple two-parameter read tool, though it leaves room unused for a scoping 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 read-only, no-output-schema tool this is minimally adequate: the agent knows it fetches reviews and can page through them. It lacks detail on result ordering, how ratings are summarized, and whether pagination ends, which would help an agent plan calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both gameId and the page parameter (25 comments per page) documented in the schema. The description adds no 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?
States a specific verb and resource ('Get user comments and ratings for a board game on BGG'), making the content type clear. It does not explicitly differentiate itself from siblings like bgg_game_details (which presumably returns metadata, not reviews), so an agent must infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance is given. The sibling set includes bgg_game_details and bgg_user_collection, and the description never says to pick this tool for community reviews versus those for facts or collections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgg_searchARead-onlyIdempotent
Search BoardGameGeek for board games by name.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Type of item to search for (default: boardgame) | |
| query | Yes | Game name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear without the description repeating it. The description adds only the external-source and name-based search context, with no contradiction and no additional detail about rate limits or 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?
The description is a single front-loaded sentence with no wasted words. It states the essential action and resource immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with full parameter descriptions and clear annotations, the description is sufficient to select and call the tool. It does not describe return values or how results should be chained into bgg_game_details, but those gaps are minor given the tool's simplicity and 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%, and the schema fully documents both 'query' and the optional 'type' enum. The description reinforces that searching is by name but adds no meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 BoardGameGeek for board games by name. This clearly distinguishes it from siblings like bgg_game_details, bgg_top_games, and bgg_user_collection, which retrieve details, rankings, or user collections rather than perform a name 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 phrase 'by name' implies the tool should be used when the caller has a game name to look up, but the description gives no explicit guidance on when to choose it over bgg_game_details or other BGG siblings. Usage is therefore implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgg_top_gamesARead-onlyIdempotent
Get the BGG Hotness list - the most discussed and active board games right now.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of games to return (max 50, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the list reflects currently discussed/active games, but does not mention return format, ranking behavior, pagination, or any rate-limit/authorship 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 with no wasted words. It immediately states what the tool returns and the temporal scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 public list endpoint with one fully documented parameter and rich annotations, the description is mostly complete. The only minor gap is that without an output schema it does not describe the shape of the returned list beyond calling it a 'Hotness list'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'limit' parameter is fully documented in the schema with max 50 and default 20. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate because the schema already carries the parameter 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 states a specific verb and resource: 'Get the BGG Hotness list', and clarifies it as 'the most discussed and active board games right now'. This is clear, though it does not explicitly distinguish the hotness list from sibling tools such as bgg_search or bgg_game_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 phrase 'right now' implies the tool is for current trending games rather than historical or search-based lookups, but there is no explicit guidance about when to use it instead of bgg_search or bgg_game_details. Usage is therefore implied but not fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgg_user_collectionARead-onlyIdempotent
Get a BGG user's game collection filtered by status (owned, wishlist, or played).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Collection filter (default: owned) | |
| username | Yes | BGG username |
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 needs no restating. The description adds only the status scoping, and says nothing about how large a collection can be, whether results are paginated or truncated, or whether a private profile causes errors — relevant gaps for an openWorld remote fetch.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, with the filter scope in a trailing clause. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 only two parameters and a rich annotation set, the description is sufficient to call the tool correctly, but there is no output schema and no hint about result volume, pagination, or error behavior for private/unknown users. For a remote collection fetch that can return hundreds of items, that omission leaves a real 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 enum values are documented in the schema, including the 'owned' default. The description merely repeats the enum members verbatim, adding no new meaning such as whether status is required or how multiple statuses behave — 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 ('Get') and resource ('a BGG user's game collection') plus the status dimension it filters on, so the agent knows exactly what it retrieves. It also implicitly separates itself from BGG siblings like bgg_search and bgg_game_details, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for a specific user's collection rather than catalogue search, but the description never says when to prefer this over bgg_search or bgg_game_details. No prerequisites (e.g., username validity, BGG account existence) or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgpview_asnCRead-onlyIdempotent
Look up an Autonomous System Number (ASN) on BGPView.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | ASN number (e.g. 13335 for Cloudflare). |
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 nothing beyond that, such as what BGP data is returned (peers, prefixes, upstreams) or any rate-limit/lookup constraints.
Agents need to know what a tool does to the 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 short sentence that is front-loaded and free of waste, but it is thin rather than tight – the brevity comes at the cost of information rather than from disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is the only place to say what a lookup returns, and it says nothing about the shape of the result or how it differs from the sibling ASN-prefix tool. For an open-world lookup tool, this leaves a meaningful 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?
Only one parameter and schema description coverage is 100% (the schema even gives the 13335 Cloudflare example). The description adds no additional 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?
States a specific verb (look up) and resource (ASN) plus the data source (BGPView), so the operation is immediately clear. However it does not distinguish itself from the sibling bgpview_asn_prefixes, which also takes an ASN, so the agent has no textual cue for which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of alternatives, and no conditions under which this is the right call versus bgpview_asn_prefixes or bgpview_ip. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgpview_asn_prefixesCRead-onlyIdempotent
Get IP prefixes announced by an ASN from BGPView.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | ASN number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, covering the safety profile. The description adds only the data-source name 'BGPView'; it doesn't mention rate limits, auth, or the shape of returned prefixes.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though its terseness borders on under-specification rather than ideal richness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-param lookup with no output schema, it's minimally adequate, but it omits anything about the returned prefixes (format, count) or the external API's constraints that an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema coverage, so the baseline is 3. The phrase 'announced by an ASN' maps to the asn parameter but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('IP prefixes announced by an ASN') plus the data source (BGPView). An agent can distinguish this from bgpview_asn and bgpview_ip by resource, though the description doesn't explicitly contrast 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?
No when-to-use guidance or exclusions. It doesn't say when to reach for this vs bgpview_asn or bgpview_ip; the agent must infer selection from the resource noun alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgpview_ipBRead-onlyIdempotent
Look up IP address details (PTR, prefix, ASN) on BGPView.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to look up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is fully covered structurally. The description adds the useful detail of what data categories come back (PTR, prefix, ASN) in the absence of an output schema, but says nothing about rate limits, upstream failures, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming verb, resource, returned fields, and upstream source, 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 single-parameter read-only lookup whose annotations cover safety and whose only input is fully documented, the description is nearly sufficient. The minor gap is the absence of IPv4/IPv6 or error-behavior detail, which matters slightly for an external API wrapper.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage, so the schema carries the semantics. The description adds no format constraints (IPv4 vs IPv6), no prefix-length or CIDR guidance, so the 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) and resource (IP address details), and enumerates the returned data classes (PTR, prefix, ASN), which distinguishes it from the sibling ASN/prefixed-focused tools. It does not explicitly name the alternative lookups (ipinfo_lookup, rdap_ip, bgpview_asn), so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus ipinfo_lookup, rdap_ip, ip_lookup, or bgpview_asn. The only guidance is implicit in the tool name and the word 'look up'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bible_randomBRead-onlyIdempotent
Get a random Bible verse.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint, so the safety profile is covered. Beyond that the description adds nothing: it doesn't say what a call actually yields (verse text, reference, translation), whether repeated calls return different verses, or how the randomness is scoped. "Random" is the only behavioral signal and it is left undefined.
Agents need to know what a tool does to the 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 short sentence with no filler and the verb front-loaded. It is efficient, though the brevity shades into under-specification rather than genuine crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full annotation coverage and no output schema, the bar is low and the description is technically callable. However, with no output schema the description is the only place the return shape could be described, and it says nothing about what a verse response contains.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly implies the call is argument-free.
Input schemas describe structure but not intent. Descriptions should explain 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 a random Bible verse") with the added qualifier that the selection is random, so the operation is unambiguous. It does not differentiate itself from the sibling bible_verse, leaving the agent to guess which of the two to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, no exclusions, and never mentions the closely related bible_verse sibling. An agent must infer that this is the non-deterministic counterpart to a targeted verse lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bible_verseB
Look up a Bible verse or passage by reference (e.g. 'John 3:16', 'Psalm 23').
| Name | Required | Description | Default |
|---|---|---|---|
| reference | Yes | Bible reference, e.g. 'John 3:16', 'Romans 8:28-30' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Look up' implies a read-only operation, but the description says nothing about behavior for invalid references, translation/version selection, or the nature of the returned 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?
A single, well-formed sentence that front-loads the verb and resource. Nothing is extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 is minimal but functional. It omits what is returned (verse text, translation, verse-level detail) and any notes on handling invalid references, leaving modest 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 description coverage is 100%, so the single 'reference' parameter is fully documented in the schema with the same examples. The description adds no meaning beyond what the schema already supplies, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Look up') and resource ('Bible verse or passage') with concrete reference examples. It is clear against generic siblings but does not explicitly distinguish itself from the nearby 'bible_random' 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?
Usage is implied by 'by reference' - the agent can infer this is for known references rather than random retrieval. However there is no explicit when-to-use guidance or mention of the bible_random alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
binomial_probabilityC
Calculate binomial distribution probability P(X=k) and cumulative probabilities for n trials with probability p.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | Number of successes (0 to n). | |
| n | Yes | Number of trials (0-1000). | |
| p | Yes | Probability of success per trial (0 to 1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It hints that cumulative probabilities are produced alongside P(X=k) but never specifies the return shape, whether both values come back in one call, precision guarantees, or the 0-1000 n bound's effect. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the 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 sentence, front-loaded with the primary output P(X=k) and the key inputs. Nothing is wasted, though it is mildly under-specified rather than tightly optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations, the description should clarify return values but only gestures at 'cumulative probabilities'. The three-parameter surface is simple enough that this is adequate but not 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% (n, k, p each documented with ranges), so the schema already handles parameter meaning. The description restates the same three quantities without adding syntax or format detail beyond the schema, matching 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 gives a specific verb ('Calculate'), a named resource ('binomial distribution probability'), and the exact formula P(X=k) plus cumulative probabilities, so the agent knows exactly what computation happens. It does not explicitly differentiate itself from statistical siblings like poisson_probability or normal_distribution, which keeps it 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?
There is no guidance on when to pick this over rival distribution tools (poisson_probability, normal_distribution) sitting in the same sibling list. The 'n trials with probability p' phrase implies the domain but doesn't state conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bipartite_checkA
Check whether an undirected graph is bipartite (2-colorable). Returns the two vertex sets if bipartite, or an odd cycle if not.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Undirected edges as [u, v] pairs | |
| vertices | Yes | Number of vertices (0-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses both return outcomes (two vertex sets if bipartite, an odd cycle if not), but it omits edge-case or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core check and then the return contract. Every word 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?
No output schema exists, so the description must explain return values, and it does for both bipartite and non-bipartite cases. It is nearly complete but lacks any usage guidance or assumptions about graph validity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both vertices and edges documented in the input schema. The description adds no parameter syntax or constraints beyond 'undirected graph', 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 'Check' and resource 'undirected graph is bipartite (2-colorable)', making the operation clear. It does not name sibling alternatives such as graph_coloring or chromatic_number, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use, when-not, or alternative guidance is provided. The agent must infer that this is for bipartiteness testing rather than general graph coloring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket_get_repoBRead-onlyIdempotent
Get a single Bitbucket repository.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository slug | |
| username | Yes | Bitbucket username | |
| workspace | Yes | Workspace id | |
| app_password | Yes | Bitbucket app password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, dangerous=false and openWorld=true, so the safety profile is covered. The description adds nothing beyond that: no note that responses are scoped to the supplied workspace, that app_password is a credential, or what happens on a nonexistent repo. For a 4-required-param authenticated call, the description contributes no 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?
One short, front-loaded sentence with no filler. It is efficient but borders on under-specified rather than tight — nothing extra was packed in to earn the space it uses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations covering authentication, yet the description says nothing about the returned object, the credential requirement, or failure modes. For a tool requiring four mandatory parameters including an app password, the definition is too thin to fully prepare 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 coverage is 100%, with each of repo, username, workspace and app_password documented in the schema, so the baseline applies. The description supplies no additional semantics — e.g. that repo is a slug rather than a UUID, or that workspace must match the token's access — leaving the schema to do all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ("Get a single Bitbucket repository"), and the word "single" implicitly separates it from the list operation. It never names a sibling or scoping rule explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by "single" — an agent can guess this is the fetch-one path versus bitbucket_list_repos, but the description offers no explicit when-to-use, no preconditions, and no note on how the repo is identified (workspace + slug).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket_list_pull_requestsCRead-onlyIdempotent
List pull requests for a Bitbucket repository.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository slug | |
| limit | No | PRs to return (max 50, default 25) | |
| state | No | Filter by PR state | |
| username | Yes | Bitbucket username | |
| workspace | Yes | Workspace id | |
| app_password | Yes | Bitbucket app password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: no mention of pagination, default result count, whether state defaults to OPEN, or that app_password credentials are needed per call.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though its brevity borders on under-specification for a tool that requires four credentials/config inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description says nothing about return shape, ordering, or pagination behavior when the repository has more PRs than the limit. For an authenticated list operation with six parameters, this leaves meaningful 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 description coverage is 100%, with each of the six parameters documented including the state enum and the limit cap of 50/default 25. The description contributes no additional parameter meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (pull requests) scoped to a Bitbucket repository, so the agent knows exactly what the tool returns. It does not differentiate itself from related siblings like bitbucket_list_repos or bitbucket_get_repo, but the resource noun is distinctive 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 gives no when-to-use context, no alternatives, and no exclusions. An agent must infer from the name alone that this is the read path versus repository-level tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket_list_reposCRead-onlyIdempotent
List Bitbucket repositories in a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Repos to return (max 100, default 25) | |
| username | Yes | Bitbucket username | |
| workspace | Yes | Workspace id | |
| app_password | Yes | Bitbucket app password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no pagination behavior, no rate-limit or auth-requirement note (the tool demands a username and app password), and no indication of what a returned repository entry contains.
Agents need to know what a tool does to the 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 with zero filler or repetition. It is efficient, though the efficiency comes partly from saying almost nothing rather than from tight editing of substantive 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?
This is a simple read-only list tool with complete schema coverage, full annotations, and no output schema to explain, so the minimum is met. However, the credential requirement (username + app password) and the fact that results are paginated/capped are not surfaced anywhere in prose, leaving the agent to discover them from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 including the limit cap (max 100, default 25) are already documented in the schema. The description's phrase 'in a workspace' merely restates the required workspace parameter and adds no format or semantics beyond it. 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 (List Bitbucket repositories) and scopes it to a workspace, which distinguishes it from bitbucket_get_repo (singular fetch) and bitbucket_list_pull_requests (different resource). It does not explicitly name those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus bitbucket_get_repo or bitbucket_list_pull_requests, and no mention of prerequisites such as needing a Bitbucket username plus app password. Usage is only inferable from the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bit_countB
Count set bits (popcount), total bits, and convert between decimal, binary, hex, and octal. Detects powers of two.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Integer or binary/hex string (e.g. 42, 0xFF, 0b1010) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It states what operations are performed but gives no information about the return format (e.g., whether all results are returned at once or a mode is needed), error handling, or output structure. For a tool with no output schema, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the core capabilities with no filler. Every clause contributes to understanding the tool's scope, making it 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?
The tool performs multiple computations but has no output schema. The description enumerates the operations but does not explain what the return value looks like (e.g., an object containing popcount, total bits, and conversions) or how the agent should interpret the output. Given the absence of annotations and output schema, this is a clear but incomplete 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 has 100% description coverage and already documents the single 'value' parameter with examples like '42, 0xFF, 0b1010'. The description lists conversion formats but adds no syntax, range, or edge-case details 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 states specific operations: 'Count set bits (popcount), total bits, and convert between decimal, binary, hex, and octal. Detects powers of two.' This clearly describes what the tool does beyond a vague restatement. However, it does not explicitly differentiate from siblings like base_convert or number_base_convert, which overlap in the base-conversion capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor does it mention any prerequisites or exclusions. It simply lists capabilities, leaving the agent to infer appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitmask_opsC
Bitmask operations: info, submasks, supersets, next permutation, enumerate set bits.
| Name | Required | Description | Default |
|---|---|---|---|
| mask | Yes | Non-negative integer bitmask | |
| universe | No | Universe mask for supersets operation | |
| operation | Yes | Operation: info, submasks, supersets, next_permutation, or enumerate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state whether the tool is read-only, what each operation returns, how errors are handled, or what the envelope looks like; it only lists operation names.
Agents need to know what a tool does to the world before calling 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, so it is structurally efficient. It is somewhat too terse for a multi-mode tool, but it avoids waste and does not bury the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations, no output schema, and several operation modes, the description is too thin. It does not explain what info, submasks, supersets, next_permutation, or enumerate actually return, nor does it clarify how universe interacts with 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?
Schema description coverage is 100%, and the schema already documents mask, universe, and operation, including the operation values. The description simply repeats the operation list and adds no additional 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?
It names the resource (bitmask) and enumerates the specific operation modes (info, submasks, supersets, next_permutation, enumerate set bits). This is more specific than a generic bitwise tool, though it does not explicitly distinguish itself from nearby siblings such as bitwise_calc or bit_count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists available operations but gives no guidance on when to choose each operation, what each one returns, or when to use this tool instead of sibling bit tools. The operation list is only an enumeration, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitwise_calcB
Perform bitwise operations (AND, OR, XOR, NOT, NAND, NOR, shifts) on integers.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First integer. | |
| b | No | Second integer (not needed for NOT). | |
| operation | No | Operation: and, or, xor, not, nand, nor, shift_left, shift_right (default and). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the operation set and that inputs are integers, but omits output type, shift semantics, and invalid-input behavior; this is minimum viable 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?
One sentence, front-loaded with the core purpose and operation set, with no filler. It is appropriately sized for a simple calculator 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 tool with rich parameter schema, the description gives enough to understand basic purpose. However, it does not clarify shift amount behavior, return type, or when to choose it over sibling bit tools, leaving 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 description coverage is 100%, and the schema already documents a, b, operation values, default, and the NOT exception. The description only broadly repeats the operation list and adds no parameter detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: perform bitwise operations on integers, and lists the operation set. It does not differentiate from siblings such as bitmask_ops or bit_count, 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?
There is no explicit when-to-use or when-not-to-use guidance, nor any routing to alternatives. Usage is only implied by the tool name and operation list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bloom_filterA
Build a Bloom filter from items and test membership of query items (probabilistic, no false negatives).
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Strings to insert into the filter | |
| query | Yes | Strings to check for membership | |
| fp_rate | No | Target false positive rate (default 0.01) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the critical probabilistic behavior and the no-false-negatives guarantee, which is meaningful beyond the tool name, though it does not describe the return shape or false-positive behavior explicitly.
Agents need to know what a tool does to the 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 with zero waste. It includes the essential caveat (probabilistic, no false negatives) 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 pure algorithm tool with full schema coverage and no annotations, the description is nearly complete. It omits return-value details, but 'test membership' implies boolean-like results and no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are documented in the schema. The description references items and query but adds no syntax, format, or fp_rate semantics beyond what the schema already provides, making 3 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?
States a specific two-part operation: build a Bloom filter from items and test membership of query items. The parenthetical clarifies the probabilistic nature and the no-false-negatives guarantee, so the agent can distinguish this from exact set or hash operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 its stated purpose but gives no explicit when-to-use guidance or alternatives. There are no obvious sibling tools for Bloom filtering, so this is adequate but not rich.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bluesky_actionC
Perform a Bluesky action: bluesky_post, bluesky_read_feed, bluesky_reply, bluesky_like, bluesky_repost, bluesky_search, bluesky_profile, bluesky_follow.
| Name | Required | Description | Default |
|---|---|---|---|
| cid | No | ||
| uri | No | ||
| text | No | ||
| actor | No | ||
| limit | No | ||
| query | No | ||
| action | Yes | ||
| password | No | App password | |
| identifier | No | Bluesky handle or DID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits like authentication, rate limits, or side effects. It does not mention any, only listing action types. The schema's 'password' field hints at auth, but the description fails to elaborate.
Agents need to know what a tool does to the world before calling 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, which is concise but under-specified. It lists sub-actions without any structural hints (e.g., prerequisites, ordering), making it less useful despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and diverse sub-actions, the description is vastly incomplete. An agent cannot infer how to use the tool correctly for any specific action without additional 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 only 22% (2 of 9 params have descriptions). The description adds no parameter information beyond the schema—it doesn't map actions to required parameters or explain how 'action' determines usage. This fails to compensate for low 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 it's for 'Perform a Bluesky action' and lists specific sub-actions (post, read feed, reply, etc.), so the agent knows the general domain. However, it doesn't explain what each sub-action does, which is a minor gap since the tool is the only Bluesky tool among 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?
No guidance on when to use this tool versus alternatives (none exist) or when to choose each sub-action. The description just lists sub-actions without context, leaving the agent to guess appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booth_rotationB
Find the lexicographically smallest rotation of a string using Booth's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string (max 1,000,000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses neither the return value (the rotated string, an index, or both) nor the complexity/performance characteristics implied by naming Booth's algorithm. For a stateless function the safety profile is trivial, but the output contract remains 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?
A single tight sentence with zero waste, front-loading the action and resource. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure function this is largely complete, but with no output schema the description should have specified what the function returns (the minimal rotation itself), which it omits. The algorithmic constraint and edge-case handling also go unmentioned.
Complex tools with many parameters or behaviors need more documentation. Simple 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 sole 'text' parameter is documented with a 1,000,000-character cap directly in the schema. The description adds nothing about the parameter, so the baseline of 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find'), a precise resource ('the lexicographically smallest rotation of a string'), and even names the algorithm ('Booth's algorithm'). An agent knows exactly what operation this performs 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?
There is no guidance on when to use this tool versus alternatives, no conditions or exclusions, and no mention of related tools among the many string-algorithm siblings. It states what it does but not when to reach for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bored_by_participantsCRead-onlyIdempotent
Get an activity for a specific number of participants.
| Name | Required | Description | Default |
|---|---|---|---|
| participants | Yes | Number of participants |
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 fully covered externally. The description adds nothing beyond the filter scope – no mention of what an 'activity' contains (type, price, accessibility) or whether multiple results can match. Given the annotation coverage, the lower bar makes a 3 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?
A single front-loaded sentence with no filler. It is appropriately sized for a trivial one-parameter lookup, though that brevity comes at the cost of the missing routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with no output schema and full annotation coverage, the description is close to sufficient, but it leaves the agent unable to distinguish it from bored_random/bored_by_type or to predict the shape of the returned activity. Minimal but serviceable.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter and 100% schema description coverage, the schema already documents `participants`. The description's phrase 'specific number of participants' merely restates the property description and adds no constraint details such as valid range or integer vs. float behavior. Baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get an activity for a specific number of participants" gives a verb (get) and resource (activity) plus a scope filter, but the name 'bored_by_participants' is vague and the description never distinguishes this from the equally available bored_random and bored_by_type siblings. An agent would have to infer that this filters by participant count rather than picking a random or categorized activity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus bored_random or bored_by_type, and no prerequisites or exclusions. The only implied guidance is the participant filter itself, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bored_by_typeARead-onlyIdempotent
Get an activity by type (education, recreational, social, diy, charity, cooking, relaxation, music, busywork).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Activity type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is fully covered. The description adds no behavioral context beyond them — it does not say whether one activity or a list is returned, whether results vary across identical calls despite the idempotent hint, or what happens with an invalid type.
Agents need to know what a tool does to the 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 action and filter, with the enumerated values inline. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with no output schema, the description covers what the tool does and the legal input values. The only material gap is the return shape — whether the response is a single activity object and what fields it carries.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, but the schema only labels the parameter 'Activity type' with no enum. The description supplies the nine allowed values (education, recreational, social, diy, charity, cooking, relaxation, music, busywork), which is real information the schema lacks and prevents invalid calls.
Input schemas describe structure but not intent. Descriptions should explain 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 ('an activity'), and the filtering dimension ('by type'), with the valid type values enumerated. It does not name the two obvious siblings (bored_random, bored_by_participants), so the agent must infer the distinction from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: use this when you already know the desired category of activity. There is no explicit statement of when to prefer bored_random or bored_by_participants, nor any exclusion such as what happens when no activity matches a category.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bored_randomBRead-onlyIdempotent
Get a random activity suggestion.
| 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, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing beyond them — no mention that results are non-deterministic across calls, no source or fallback behavior. It neither contradicts nor enriches 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 short sentence with no filler and the key qualifier ('random') front-loaded. Nothing could be cut 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 zero-argument, annotation-covered tool this is close to sufficient, but with no output schema the agent has no idea what a returned 'activity' looks like (fields, category, participant count) or that successive calls differ. A brief note on return shape and variability would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline applies. No schema content is repeated or contradicted.
Input schemas describe structure but not intent. Descriptions should explain 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 a random activity suggestion.' The word 'random' implicitly distinguishes it from bored_by_type and bored_by_participants, but those siblings are never named, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by the tool name and the word 'random' — an unfiltered, no-argument activity fetch. There is no explicit statement of when to prefer it over bored_by_type or bored_by_participants, which are the obvious alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
braille_convertARead-onlyIdempotent
Convert text to Braille Unicode dots or decode Braille back to text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text or Braille characters to convert. |
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 and the description isn't carrying that load. However, it omits genuinely useful behavior: which Unicode range is produced (U+2800–U+28FF), how unknown/unmappable characters are treated, and whether Grade 1 or Grade 2 braille is emitted. Those are material for a converter with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the primary action and with zero filler. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 utility with full schema coverage and no output schema, the description covers the essentials. The remaining gap is that an agent cannot predict the return format or the failure mode for non-Braille/non-ASCII input.
Complex tools with many parameters or behaviors need more documentation. Simple 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 single parameter is documented in the schema and the baseline is 3. The description implies bidirectional auto-detection ('or decode Braille back to text') but never says how direction is determined or whether mixed input is rejected – the one semantic question an agent actually has here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("Convert text to Braille Unicode dots") and covers both directions, including the decode case. An agent can tell exactly what operation this performs and that no sibling tool (morse_convert, rot13_convert, charcodes_convert) covers Braille.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by the description – there is no statement about when to reach for this versus other encoding tools, no note on braille grade (contracted vs uncontracted), and no guidance on inputs the converter cannot handle. The agent is left to infer fitness for purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brain_dumpCapture a Brain DumpA
Fast intake for an idea, pain point, workaround, or frustration. Use it immediately while doing other work; one rough sentence is enough and no solution is required. Stores in the existing tenant-scoped Boardroom Ideas table, starts an ACK-tracked Continuous Improvement triage, and returns the triage deadline. Available to every connected AI account. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | thought | |
| context | No | Optional tiny source pointer or context (max 1000 chars). | |
| thought | Yes | The raw thought, pain point, or frustration (max 4000 chars). | |
| agent_id | Yes | Stable identifier for the calling agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the storage target (tenant-scoped Boardroom Ideas table), the downstream side effect (ACK-tracked Continuous Improvement triage), the return value (triage deadline), and availability scope. This is solid context for a non-idempotent write, though it doesn't mention duplicate handling or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose before the operational details, and every sentence contributes (purpose, timing, storage, consequence, return, access, required param). It's dense and slightly comma-heavy but not 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?
With no output schema, the description compensates by naming the returned triage deadline, plus the storage destination and triage side effect. An agent has enough to invoke it correctly; only error/duplicate behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple 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 75%, so most parameters are already documented in the schema. The description adds some framing ('one rough sentence is enough', 'agent_id required') but says nothing about the kind enum values or the context pointer, so it adds only marginal value over 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 ('Fast intake for an idea, pain point, workaround, or frustration') that tells an agent exactly what gets captured. It does not name siblings like list_brain_dumps or triage_brain_dump, but the emphasis on quick capture vs later triage implicitly separates it from 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?
'Use it immediately while doing other work; one rough sentence is enough and no solution is required' gives concrete when-to-use guidance and lowers the bar for capturing. It stops short of explicitly naming alternatives or exclusions, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
breaking_bad_quoteBRead-onlyIdempotent
Get random Breaking Bad quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of quotes (default 1) |
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 the key behavioral detail that quotes are randomly selected, but it does not mention return shape, count behavior, or any rate/auth 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?
A single front-loaded sentence with no filler. Every word contributes to identifying the resource and 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?
For a simple one-parameter read-only tool, the description, schema, and annotations together are nearly complete. The only minor gap is that the return format is not described, but no output schema exists and the operation is 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?
Schema description coverage is 100%, with count documented as "Number of quotes (default 1)." The description adds no parameter details beyond what the schema already 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?
States a specific verb and resource: "Get random Breaking Bad quotes." The domain makes it distinguishable from generic quote tools, but it does not explicitly differentiate itself from sibling tools like quote_random or quote_by_author.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives such as quote_random or other quote-related siblings. The agent must infer usage from the tool name and domain alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brevo_get_accountBRead-onlyIdempotent
Get the Brevo account profile and plan.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Brevo API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile needs no restating. The description adds only that the payload includes profile and plan information; it says nothing about rate limits, error behavior on invalid keys, or response shape, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, exactly matching the tool's modest scope. It is arguably too terse for a tool with no output schema, but nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full annotation coverage, the essentials are present. However, with no output schema, the description should say more about what 'profile and plan' returns (e.g. account email, company, plan tier) so the agent knows what to expect from the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single api_key parameter is documented in the schema itself, so the description correctly does not duplicate it. Baseline 3 applies because the schema carries the parameter burden and the description adds nothing further about key scope or permissions.
Input schemas describe structure but not intent. Descriptions should explain 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) and a specific resource (the Brevo account profile and plan), which clearly separates it from siblings like brevo_list_contacts and brevo_list_campaigns that operate on collections. It does not explicitly name a sibling or an alternative, keeping it just below 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?
There is no guidance on when to call this versus other Brevo tools, no mention of prerequisites such as needing a valid API key, and no exclusions. The agent must infer usage entirely from the tool name and the account-scoped noun phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brevo_list_campaignsCRead-onlyIdempotent
List Brevo email campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Campaigns to return (max 100, default 25) | |
| status | No | Filter by status (sent, draft, queued, ...) | |
| api_key | Yes | Brevo API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no further behavioral context such as pagination, auth details, rate limits, or return shape, and merely restates the resource being listed.
Agents need to know what a tool does to the 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 with zero wasted words. It is terse to the point of being under-specified, but structurally clean and 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?
Given the simple three-parameter list operation, full schema coverage, and read-only annotations, the description is minimally sufficient. However, with no output schema, it provides no indication of what the response contains, and it offers no usage context for selecting this tool over 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 description coverage is 100%, so the parameters (api_key, limit, status) are fully documented in the schema. The description adds no parameter semantics beyond the schema, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource ("List Brevo email campaigns") that lets an agent identify the tool's core function. It does not explicitly differentiate from adjacent campaign-listing or Brevo contact tools, but the platform and resource are 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?
Provides no guidance on when to use this tool versus alternatives such as mailchimp_list_campaigns or brevo_list_contacts. The agent must infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brevo_list_contactsCRead-onlyIdempotent
List Brevo contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Contacts to return (max 1000, default 50) | |
| offset | No | Pagination offset | |
| api_key | Yes | Brevo API key |
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 fully covered without the description. The description adds nothing beyond that — no note on pagination semantics, whether the default 50-cap silently truncates results, or any rate-limit/account-scope context, which are the behaviors an agent actually needs on a list 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?
Three words, zero waste, but also zero structure — nothing is front-loaded beyond the bare operation. It is concise to the point of being under-specified rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the schema plus annotations carry most of the load and there is no output schema to explain. However, the description leaves the agent without any statement of what the results represent (all contacts? account-scoped?) or whether truncation/paging matters, which is a meaningful gap for an enumeration 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 schema already documents limit (max 1000, default 50), offset, and api_key. The description contributes no additional parameter 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 states a specific verb (List) and resource (Brevo contacts), so the operation is unambiguous. It does not name or differentiate itself from related siblings such as brevo_list_campaigns or hubspot_list_contacts/intercom_list_contacts, but the 'Brevo' qualifier in the name plus the plain resource noun make the target obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives, no mention of prerequisites (an API key is required), and no note that this is a paged enumeration rather than a filtered search. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brewery_getBRead-onlyIdempotent
Get a brewery by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral context such as what a successful response contains, what happens for an unknown ID, or any authentication requirements, so it provides no meaningful transparency 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 a single, front-loaded sentence with no wasted words. The core operation and its key constraint are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 input side is adequately described for a simple lookup, and annotations cover safety traits. However, there is no output schema, and the description does not indicate what a brewery record contains or how errors are surfaced, leaving the return behavior underspecified.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter with 0% description coverage, so the description must carry the semantic load. "By ID" clarifies that the parameter is a brewery identifier, but it does not specify format, source, or validation constraints. This is minimally helpful but leaves the agent guessing about acceptable ID 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 states a specific verb and resource: "Get a brewery by ID." This clearly identifies an ID-based lookup, distinguishing it implicitly from siblings like brewery_search, brewery_list, and brewery_random. However, it does not explicitly name alternatives or clarify its relationship to untappd_get_brewery, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"By ID" implies the tool should be used when a brewery identifier is already known, but the description provides no explicit when-to-use guidance, prerequisites, or alternatives for cases where only a name or search term is available. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brewery_listBRead-onlyIdempotent
List breweries, optionally filtered by city, state, or type.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| page | No | ||
| type | No | micro, nano, regional, brewpub, large, planning, bar, contract, proprietor, closed | |
| state | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is covered. The description adds no behavioral context of its own: it never mentions that results are paginated despite page/per_page parameters existing, nor typical result size or ordering.
Agents need to know what a tool does to the 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 with no filler; the filtering capability is stated immediately. It is efficient but too thin to count as fully optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 endpoint with annotations covering safety, the description is nearly adequate, but missing pagination semantics and lacking sibling differentiation leaves meaningful gaps 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 only 20% (only `type` has documented values), and the description partially compensates by naming city, state, and type as the filter dimensions. However, the two pagination parameters (`page`, `per_page`) are undocumented in both the schema and the description, leaving a real 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?
Clear verb plus resource ("List breweries") and it names the narrowing dimensions. It does not distinguish itself from the sibling brewery_search, so the agent cannot tell from the description alone which one retrieves listings vs. searches 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 phrase "optionally filtered by city, state, or type" implies the browsing use case, but there is no explicit statement of when to choose this over brewery_search, brewery_get, or brewery_random, and no note that all parameters are optional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brewery_randomCRead-onlyIdempotent
Get random breweries.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Number of breweries (1-50, default 1) |
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 description carries a lighter burden. Nonetheless it adds nothing beyond them: not whether results are sampled with or without replacement, whether repeated calls return the same or different breweries, or anything about 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?
One front-loaded sentence with no filler, but it is under-specified rather than deliberately concise. Brevity here costs information rather than saving 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?
There is no output schema, so the description should say what a random brewery record looks like and whether sampling repeats across calls. For a randomness tool where non-determinism matters, silence on that is a real 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 single `size` parameter is fully described in the schema (range 1-50, default 1), so the description has no gap to compensate for and adds no parameter meaning. Baseline 3 for full schema coverage, with the description silent on the 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?
Specific verb ('Get') plus resource ('breweries') with a scope qualifier ('random'), which is enough to distinguish it from brewery_search, brewery_list, and brewery_get by inference. It doesn't explicitly name those siblings, so a 5 isn't warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance and no named alternative. An agent must reason on its own that brewery_search is for querying and this is for sampling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brewery_searchBRead-onlyIdempotent
Search breweries by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| per_page | No | Results per page (max 50) |
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 fully covered structurally. The description adds only the name-matching scope and says nothing about pagination or result limits beyond what the schema's per_page note 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?
A single, front-loaded sentence with zero filler. It is efficient, though its brevity borders on under-specification given the tool has no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two simple params, no output schema, and annotations covering the safety profile, the definition is minimally serviceable. However, it omits any hint of result shape, pagination behavior, or empty-result handling, which an agent would want for a 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 coverage is 50%: per_page carries a max-50 description, but the query parameter is undocumented in the schema. The description partly compensates by clarifying that query matches on name, which is meaningful added semantics, but leaves the per_page behavior to 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 ('Search') and resource ('breweries') plus the match dimension ('by name'), so the operation is unambiguous. It does not distinguish itself from sibling search-like tools such as untappd_search_brewery or brewery_list, which is why it stops short of 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?
There is no indication of when to use this versus brewery_list, brewery_get, brewery_random, or untappd_search_brewery. The agent must infer routing from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brickset_get_setC
Get a specific LEGO set from Brickset by set number.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| setNumber | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavior. It only states 'get', which implies a read operation, but does not disclose potential errors, authentication requirements, or data volume. The optional api_key parameter suggests authentication is needed but not clarified.
Agents need to know what a tool does to the world before calling 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 concise sentence with no extraneous words. However, it omits useful details that could be added without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and only two parameters, the description should cover return value, error handling, and authentication. It fails to do so, leaving the agent with insufficient context for reliable 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 0%, so the description should add meaning beyond parameter names. While it mentions 'by set number', it does not explain the api_key parameter's purpose or constraints. Both parameters are minimally described in the schema already.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves a specific LEGO set from Brickset by set number. It uses a specific verb (get) and resource (set) and distinguishes from sibling tools like brickset_search and lego_get_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?
No guidance is provided on when to use this tool versus alternatives such as lego_get_set or brickset_search. The description lacks context about preferred use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brickset_searchC
Search LEGO sets via Brickset API.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| query | No | ||
| theme | No | ||
| api_key | No | ||
| pageSize | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says 'Search LEGO sets,' with no mention of authentication requirements (api_key is a param but not clarified), pagination, rate limits, or return format. This is a critical 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 extremely brief (one sentence), but this brevity sacrifices necessary detail. It is under-specified rather than concise, lacking key operational 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 5 parameters, no output schema, and no annotations, the description is far from complete. It fails to provide essential details like parameter purposes, authentication, or expected results, making the tool difficult to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation for any of the 5 parameters. The agent has no information on what `query`, `year`, `theme`, `pageSize`, or `api_key` mean or how to use them effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search LEGO sets via Brickset API,' clearly specifying the verb (search) and resource (LEGO sets). However, it does not differentiate from the sibling tool `brickset_get_set`, which likely retrieves a single set. The clarity is good but lacks distinctiveness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like `brickset_get_set`. The description does not mention prerequisites, contexts, or exclusions, leaving the agent without direction on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bs_clubC
Get a Brawl Stars club by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| clubTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description is minimal. It implies a read operation but does not disclose authentication requirements, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, but could be expanded with more useful details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 get-by-tag tool, the description covers the core purpose but lacks output schema info, error handling hints, or usage context. Adequate but minimal.
Complex tools with many parameters or behaviors need more documentation. Simple 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%; the description adds no additional meaning to parameters. 'clubTag' and 'api_key' are not explained (e.g., format of tag, role of api_key).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource 'Brawl Stars club', and distinguishes from sibling tools like 'bs_player' which gets a player.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives (e.g., if using 'bs_player' would be better for player info). No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bs_playerC
Get a Brawl Stars player by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| playerTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic function but does not disclose whether it's read-only, error behavior, rate limits, or authentication needs. The api_key parameter is present but not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and to the point, but slightly under-specified for maximum utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema, the description provides the core purpose but lacks details on response format, error handling, and authentication. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not add meaning beyond the schema—'playerTag' and 'api_key' are not explained in terms of format or purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Get a Brawl Stars player) and the input (by tag). It differentiates from siblings like bs_club, making it distinct. However, it doesn't specify the expected format of the tag (e.g., with # prefix), which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like bs_club or other search tools. There is no mention of prerequisites, auth requirements, or situations where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bucket_sortA
Sort numbers using the bucket sort algorithm. Distributes elements into buckets, sorts each, then concatenates.
| Name | Required | Description | Default |
|---|---|---|---|
| array | Yes | Array of numbers to sort | |
| bucket_count | No | Number of buckets (default: sqrt of array length) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It explains the algorithm's internal steps (distribute into buckets, sort each, concatenate), which adds useful context, but omits return format, input mutation, edge cases, and performance 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 sentences, front-loaded with the purpose and followed by a concise algorithm summary. No wasted words, 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 deterministic sorting function with complete parameter schema and no annotations, the description covers the essential what and how. It could explicitly state the return value (sorted array) and edge-case behavior, but the core 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 both parameters are already documented. The description mentions buckets conceptually but adds no new syntax, defaults, or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (sort), resource (numbers), and algorithm (bucket sort), distinguishing it from sibling sorting tools like radix_sort or counting_sort by naming the method. An agent can immediately tell 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?
No guidance on when to use bucket sort versus other sorting tools, nor any constraints, prerequisites, or alternatives. Usage is only implied by the algorithm name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bungie_get_manifestCRead-onlyIdempotent
Get the Destiny 2 manifest definition.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds nothing beyond that: it does not mention that a manifest dump is likely very large, whether results are versioned/cached, or what form the 'definition' takes. With a 6-word description there is essentially no 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?
A single front-loaded sentence with no wasted words. It is efficient, though the brevity borders on under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations covering returns, the description should indicate that this yields a large manifest dataset (and roughly what it contains). It leaves the agent with no idea of payload size or structure, which matters for a manifest-fetch 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 single parameter api_key has 0% schema description coverage and the description says nothing about it, leaving an agent to guess whether a Bungie API key is required, optional, or where to obtain one. Since one parameter exists and is undocumented everywhere, the baseline-4 zero-parameter rule does not apply.
Input schemas describe structure but not intent. Descriptions should explain 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) and a specific resource (the Destiny 2 manifest definition), which is distinct from sibling bungie tools like search_player and get_profile. However, it never explicitly says how it differs from bungie_search_entities, which also touches manifest data, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus bungie_search_entities or bungie_get_profile, no mention of prerequisites, and no exclusions. An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bungie_get_profileCRead-onlyIdempotent
Get a Destiny 2 player profile.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| membershipId | Yes | ||
| membershipType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds no behavioral context beyond those structured hints—no authentication requirements, rate limits, or scope details for an open-world data 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 a single front-loaded sentence with no wasted words. It is concise, though its brevity contributes to the broader under-specification of 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?
With no output schema, 0% schema description coverage, and only safety annotations, the description is missing key details an agent would need: parameter meanings, return contents, and authentication context. Its one-line purpose is insufficient for a tool with three parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters. It gives no meaning for membershipId, membershipType, or api_key, leaving all parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 Destiny 2 player profile.' This clearly identifies the operation, but it does not distinguish the tool from sibling tools such as bungie_search_player or bungie_search_entities, 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?
There is no explicit guidance on when to use this tool versus alternatives like bungie_search_player. The purpose implies retrieval, but the description provides no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bungie_search_entitiesCRead-onlyIdempotent
Search Destiny 2 manifest entities.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| entityType | Yes | ||
| searchTerm | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds nothing beyond that: it does not say what is returned, whether results are paged or capped, or how large the manifest corpus is.
Agents need to know what a tool does to the 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 with no filler, but its brevity comes from under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, zero schema coverage, and a required enum-less entityType, the description should carry the burden of explaining valid entity types and result shape. It does neither, leaving the agent guessing how to construct a valid 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 0%, so the description must compensate and largely fails. Only a weak implicit mapping exists ('entities' → entityType, 'search' → searchTerm); the allowed entityType values and the api_key parameter are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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: searching Destiny 2 manifest entities. It is distinguishable from bungie_search_player (players) and bungie_get_manifest, though the description never clarifies what an 'entity' actually is or how it differs from simply fetching the manifest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of prerequisites, and no routing between this tool and its siblings bungie_get_manifest or bungie_get_profile. The agent must infer that this is a keyword lookup inside manifest data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bungie_search_playerCRead-onlyIdempotent
Search for a Destiny 2 player by display name.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| displayName | Yes | ||
| membershipType | No | -1 for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds nothing beyond them: no note on API key requirements, rate limits, ambiguity handling, or what a successful result contains. For an external-API search, that is a notable gap even with annotations present.
Agents need to know what a tool does to the 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 tight sentence with no filler and the key qualifier ('by display name') front and center. Its brevity is efficient, though it borders on under-specification rather than crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A three-parameter external-API search with no output schema and only 33% schema coverage needs more from the description: what the search returns, whether results include the membershipType/id needed to chain into bungie_get_profile, and how ambiguous matches are handled. None of that 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?
Schema coverage is only 33%: membershipType is documented inline ('-1 for all'), but api_key and displayName have no schema descriptions. The description never compensates — it does not explain the api_key parameter, the meaning of the membershipType values (Bungie uses numeric platform codes), or name-matching behavior (exact vs partial, case sensitivity).
Input schemas describe structure but not intent. Descriptions should explain 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 for a Destiny 2 player by display name.' That is clear and actionable. It stops short of distinguishing itself from nearby siblings such as bungie_get_profile or bungie_search_entities, so an agent cannot tell from the description alone which one to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus bungie_get_profile (which presumably requires a membership id) or bungie_search_entities. No mention of prerequisites, such as whether an API key is required or how to proceed when multiple players share a display name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
burrows_wheelerC
Compute the Burrows-Wheeler Transform (forward or inverse).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string (or BWT output for inverse mode) | |
| inverse | No | If true, perform inverse BWT | |
| original_index | No | Original index (required for inverse mode) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it discloses almost nothing: no performance characteristics, no error behavior for invalid input, no note on whether inverse mode requires a valid BWT string. It only repeats the forward/inverse duality that the schema already encodes.
Agents need to know what a tool does to the 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 compact sentence with the core operation front-loaded and no filler. It's efficient, though arguably under-specified rather than truly concise for a tool with mode-dependent 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?
For a self-contained algorithm tool with a fully documented schema and no output schema, the description is minimally adequate. However, the inverse mode's dependence on a valid BWT string plus original_index is never explained, leaving a real gap given the absence of 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 description coverage is 100%, so the schema already documents 'text', 'inverse', and 'original_index' with meaning. The description's only contribution is confirming the two modes; it adds no syntax, format, or constraint detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compute') and resource ('Burrows-Wheeler Transform'), and adds that it works in forward or inverse mode. This is clear enough to distinguish it from neighboring string algorithms like suffix_array_build or suffix_tree, though it doesn't 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?
There is no guidance on when to choose this tool over the many other string/sequence algorithm tools in the sibling list, nor any prerequisite or context for use. The forward/inverse split is mentioned but framed as capability, not as usage selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_bmiCRead-onlyIdempotent
Calculate Body Mass Index (BMI).
| Name | Required | Description | Default |
|---|---|---|---|
| height_cm | Yes | ||
| weight_kg | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered without the description. The description adds nothing further: it does not say what is returned (a scalar BMI value), how units are handled, or what happens on invalid input, so it contributes no behavioral context beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the key concept front-loaded. It is efficient, though its terseness is the source of the completeness gaps rather than a virtue in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should indicate what comes back (a numeric BMI, possibly a category) and the input unit contract; neither appears. For an arithmetic tool with annotations covering safety this is a modest but real 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 0%, so the description carries the full burden of explaining the two parameters — and it says nothing about weight_kg or height_cm. The parameter names include unit suffixes (kg, cm) which mitigates the gap somewhat, but the description adds no meaning beyond those names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Calculate) and a specific, well-known metric (Body Mass Index), which distinguishes it cleanly from the other calc_* siblings such as calc_tip or calc_mortgage. It stops short of stating scope or output, but the purpose itself 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?
There is no indication of when to use this over alternatives or any prerequisites (e.g., metric-only units, population applicability). For a single-purpose calculator this is a minor gap, but nothing in the text routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_compound_interestCRead-onlyIdempotent
Calculate compound interest growth.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | ||
| principal | Yes | ||
| annual_rate | Yes | ||
| compounds_per_year | No | ||
| monthly_contribution | No |
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 no further behavior – it doesn't say what formula convention is used, what defaults apply when optional inputs are omitted, or what is returned. With annotation coverage the bar is lower, but for a numeric tool the unstated defaults matter.
Agents need to know what a tool does to the 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 with no waste, but its brevity reflects under-specification rather than economy of language. There is room for one clarifying clause without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter numeric tool with 0% schema coverage and no output schema, the description should cover defaults, compounding convention and the shape of the result. None of that is present, so an agent cannot call it confidently for non-trivial 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 0%, so the description must compensate and it does not mention any parameter. Three required names (principal, annual_rate, years) are self-explanatory, but compounds_per_year and monthly_contribution have no stated defaults or contribution-timing semantics, leaving real ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate compound interest growth'), so an agent knows exactly what domain it handles. It does not distinguish itself from near-neighbours like exponential_growth or calc_mortgage, 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 on when to prefer this over sibling calculators (e.g. exponential_growth, calc_mortgage) and no stated preconditions or exclusions. The reader must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_currency_estimateBRead-onlyIdempotent
Estimate currency conversion using a rough rate.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds the useful caveat that the rate is rough, but it does not disclose rate source, freshness, rounding behavior, or what the estimate is based on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It states the action and the key accuracy caveat immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 calculator, the description gives the core purpose and accuracy caveat, but with 0% schema coverage and no output schema it omits currency-code format and return-value expectations. It is minimally adequate rather than 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 0%, and the description does not explain parameter formats such as whether 'from' and 'to' are ISO currency codes, symbols, or names. It implies that amount, from, and to relate to currency conversion, but leaves the required syntax largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: estimating currency conversion. The phrase 'rough rate' also signals that this is an approximate calculator rather than a precise FX converter, which helps distinguish it from sibling conversion tools, though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'rough rate' implies this tool is appropriate when an approximate currency estimate is acceptable, but it does not explicitly state when to use it instead of precise alternatives like forex_convert or exchangerate_convert. Usage is therefore implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_mortgageCRead-onlyIdempotent
Calculate monthly mortgage repayment.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | ||
| principal | Yes | ||
| annual_rate | Yes |
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 by structured data. The description adds nothing beyond restating the purpose – it doesn't mention the amortization assumption (fixed-rate, equal payments), rounding, or that the result is a single monthly figure. With annotations carrying the safety burden, a 3 is the ceiling here.
Agents need to know what a tool does to the 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 clean sentence with no waste, but it is under-specified rather than concise. The brevity comes at the cost of the parameter and output 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 3-parameter financial calculator with no output schema and no parameter descriptions, the definition is too thin. The agent cannot know the rate format, the return shape (payment amount only? total interest?), or the repayment model, all of which materially affect whether the call is correct.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does not. Critical ambiguities remain: is annual_rate a percentage (5.5) or a decimal fraction (0.055)? Is principal in dollars or cents? Can years be fractional? None of this is addressed.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Calculate monthly mortgage repayment'), which is unambiguous. It does not differentiate against related siblings such as calc_compound_interest or calc_tip, which share the same numeric-calculator space, 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 on when to use this versus calc_compound_interest or calc_currency_estimate, and no prerequisites mentioned. The agent must infer the use case entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calcom_list_bookingsBRead-onlyIdempotent
List Cal.com bookings, optionally filtered by status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status (upcoming, past, cancelled, ...) | |
| api_key | Yes | Cal.com API key |
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 fully covered. The description adds nothing beyond structured data: no pagination behavior, no result limits, no default time window, and no note about what the API key must have access to.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler. It is efficient, though its brevity tips into under-specification for a networked listing operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the safety profile and the schema is fully documented, but with no output schema the agent still doesn't know the response shape, whether results are paginated or capped, or what the default ordering is. For a list tool that often returns large result sets, this is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'status' already documented as 'Filter by status (upcoming, past, cancelled, ...)' and api_key documented, so the schema carries the parameter burden. The description only restates the optional status filter and adds no format, default, or combination semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List Cal.com bookings'), which is clearly distinguishable from the other Cal.com siblings (calcom_me, calcom_list_event_types). It does not explicitly distinguish itself from similarly-named booking listers from other vendors, but the resource scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'optionally filtered by status' hints at usage, but there is no explicit guidance on when to use this versus alternatives, no prerequisites (e.g., that an API key scoped to the org is needed), and no statement about scope such as whose bookings are returned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calcom_list_event_typesARead-onlyIdempotent
List your Cal.com bookable event (meeting) types.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Cal.com API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is fully covered structurally. The description adds the meaningful qualifier 'bookable', hinting that only currently bookable (active) types are returned, but it says nothing about pagination, ordering, or auth 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?
One compact sentence with the key qualifier ('bookable') front-loaded and zero filler. It is efficient, though so terse that it could have carried one more clause of guidance at no cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with full schema coverage, complete annotations, and no output schema, this is nearly sufficient. The only real gap is that return contents (fields per event type) and any filtering behavior are not hinted at.
Complex tools with many parameters or behaviors need more documentation. 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 a single parameter (api_key) with 100% schema description coverage, so the schema carries the burden and baseline 3 applies. The description adds no information about how the key is obtained or what scopes it needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (List) and names the resource precisely: Cal.com bookable event types, with '(meeting)' clarifying terminology. It implies the scope is the authenticated user's own types ('your'), but it does not explicitly differentiate from siblings like calcom_list_bookings or list_calendly_event_types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by 'your' – the agent can infer this lists the API key owner's event types. There is no explicit when-to-use guidance, no mention of prerequisites beyond the api_key, and no routing to alternatives such as calcom_me or calcom_list_bookings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calcom_meARead-onlyIdempotent
Get the authenticated Cal.com user's profile.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Cal.com API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds that the result is scoped to the authenticated user, but says nothing about return shape, rate limits, or error behavior for an invalid API key.
Agents need to know what a tool does to the 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 with no wasted words. The resource and scope are stated immediately, which is ideal for a simple profile-read endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full annotation coverage, the description is nearly complete. It could mention that the response contains the authenticated user's profile fields, but that is a minor gap given the tool's simplicity and 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?
There is only one parameter (api_key), and schema description coverage is 100%, so the schema fully documents it. The description does not add any meaning about how the key is obtained or used, but the baseline is 3 when the schema already covers all 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 states a specific verb ('Get') and resource ('authenticated Cal.com user's profile'), making the operation unambiguous. It distinguishes itself implicitly from sibling list tools like calcom_list_bookings by focusing on the current user's own profile, though it does not name a specific 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?
Usage is implied by the word 'authenticated' — the tool retrieves the current user's own profile rather than an arbitrary user. However, there is no explicit when-to-use guidance, no mention of alternatives, and no prerequisites beyond what the schema shows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_tipCRead-onlyIdempotent
Calculate tip amount and total for a bill.
| Name | Required | Description | Default |
|---|---|---|---|
| bill | Yes | ||
| split | No | ||
| tip_percent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Rich annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds nothing beyond that, such as whether 'total' is per-person when split is supplied, whether the result is rounded, or how defaults are applied. That leaves the key behavioral question (what 'split' does to the output) unanswered.
Agents need to know what a tool does to the 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 with no filler or redundancy. It's efficient, but the brevity comes at the cost of the missing semantics above, so it is not maximally earning 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 three-parameter calculator with no output schema, the description should clarify how optional tip_percent and split affect the returned values. It never addresses either, leaving the agent guessing about the return structure and per-person 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 0%, so the description must carry the burden, but only 'bill' and 'tip_percent' are indirectly implied by 'tip amount and total for a bill'. The 'split' parameter is never mentioned, nor are default values for the optional tip_percent and split.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: computing both a tip amount and the resulting total for a bill. It's unambiguous, but it does nothing to differentiate from the many sibling arithmetic/utility calculators (calc_mortgage, calc_bmi, percentage_calc).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool, when not to, or what alternative to pick (e.g., percentage_calc or a general statistics tool). The agent has to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
camelsnake_convertBRead-onlyIdempotent
Convert between camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Identifier or text to convert. | |
| target | No | Target case: camel, pascal, snake, kebab, constant. Omit for all. |
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 only the list of supported case formats, without disclosing conversion behavior such as acronym handling, ambiguous input behavior, or what happens when target is omitted.
Agents need to know what a tool does to the world before calling 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-formed sentence, front-loaded with the core action and the supported formats. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure conversion tool, the description plus schema is largely sufficient. It does not describe the return shape, especially when target is omitted and multiple formats are returned, but no output schema exists and the core operation 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%, so both parameters are already documented in the schema, including the target case options and the 'omit for all' behavior. The description adds no parameter 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 gives a clear verb and specific resource: convert between named case formats. It does not explicitly distinguish this from sibling tools like string_case or text_slugify, but the supported case list makes the purpose concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 does but gives no guidance on when to use it versus alternatives. It does not mention relevant sibling tools or any exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_electricity_emissionsB
Estimate carbon emissions for electricity consumption.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| country | Yes | ||
| electricity_unit | No | ||
| electricity_value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only mentions 'estimate' without disclosing data sources, accuracy, or the need for an API key (present in schema). Behavioral traits like idempotency or country coverage are not addressed.
Agents need to know what a tool does to the world before calling 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 with no wasted words, but it is too brief given the lack of schema descriptions. It does not fully earn its place by providing enough information for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameter descriptions, the description is incomplete. It fails to explain return values, required inputs like API key, or units, which are essential for a tool with four parameters.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, and the description adds no parameter explanations. Critical details like units for electricity_value or country format are missing, leaving the agent to infer from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'estimate' and the resource 'carbon emissions for electricity consumption'. It distinguishes from sibling tools like carbon_flight_emissions and carbon_vehicle_emissions, which target different energy sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for electricity consumption but provides no explicit guidance on when to use this tool versus other carbon estimation tools or alternatives. No scenarios or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_flight_emissionsC
Estimate carbon emissions for a flight.
| Name | Required | Description | Default |
|---|---|---|---|
| legs | Yes | Array of flight legs with departure_airport and destination_airport | |
| api_key | No | ||
| passengers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is minimal. It does not disclose whether the tool requires authentication, rate limits, or what happens with invalid input. The description relies entirely on the tool's name to imply non-destructive behavior, lacking explicit 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 a single, efficient sentence with no unnecessary words. However, it may be too brief for adequate 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?
With no output schema, the description should explain return values but does not. It also lacks context on how to structure flight legs, whether passengers is optional, or that an API key is required. For a tool with 3 parameters, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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% (legs parameter has a description). The tool description does not add any parameter details beyond what the schema provides, failing to compensate for the missing descriptions of 'passengers' and 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Estimate carbon emissions for a flight.' It specifies a verb ('estimate') and a resource ('carbon emissions for a flight'), distinguishing it from sibling tools like carbon_electricity_emissions and carbon_vehicle_emissions by focusing on flights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not contrast with other carbon estimation tools or mention prerequisites like requiring an API key. The agent receives no context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_intensity_currentARead-onlyIdempotent
Get current UK electricity grid carbon intensity (gCO2/kWh).
| 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, covering the safety profile. The description adds geographic scope (UK grid) and units, which is useful, but says nothing about data latency, update cadence, or the shape of the returned value.
Agents need to know what a tool does to the 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 tight sentence with zero waste; resource and units are front-loaded. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read-only lookup whose annotations already declare safety and open-world behavior, the description is nearly sufficient. The only mild gap is the absence of any note on data freshness or the response shape, which a caller of a 'current' reading might want.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4. The description appropriately adds no phantom parameter guidance and the schema is trivially 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?
Specific verb (Get), specific resource (current UK electricity grid carbon intensity), and precise units (gCO2/kWh). The word 'current' implicitly distinguishes it from the sibling carbon_intensity_forecast, though it doesn't name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'current' implies real-time usage and contrasts with forecast, but the description never states when to prefer this over carbon_intensity_forecast or carbon_intensity_generation. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_intensity_forecastARead-onlyIdempotent
Get 24-hour forecast of UK grid carbon intensity.
| 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 destructiveHint=false, so the safety profile is covered and the bar is lower. The description adds the 24-hour horizon, which is real context, but says nothing about return format, units (e.g. gCO2/kWh), sampling interval, or freshness of the underlying 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?
A single front-loaded sentence with zero filler; the scope qualifiers (24-hour, UK grid) are exactly the disambiguating information an agent needs and 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 no-parameter, read-only fetch with no output schema, the description conveys what one gets back at a high level (a 24-hour carbon intensity forecast for the UK grid). It stops short of the response shape and units, the one meaningful gap left when schema and annotations carry the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. The description correctly implies a no-argument call by not mentioning any 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?
States a specific verb ('Get') and resource ('24-hour forecast of UK grid carbon intensity') with both the horizon and geographic scope named. The word 'forecast' cleanly separates it from carbon_intensity_current despite no explicit sibling reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'forecast' implicitly signals when to use it over a current-reading tool, but the description never names carbon_intensity_current or carbon_intensity_generation as alternatives, nor states exclusions. An agent must infer the routing decision from naming alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_intensity_generationB
Get current UK electricity generation mix by fuel type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the data is live, delayed, cached, or how the current generation mix is defined (instantaneous vs. averaged). For a real-time environmental data tool, such behavioral context is an important 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?
A single 13-word sentence that is front-loaded with the verb and resource. There is no padding or redundant information; every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema, the description adequately conveys the return concept (generation mix by fuel type). However, with no annotations and no output schema, it could have provided richer context about the data source, freshness, or format of the generation mix. It is minimally viable but not 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 tool has zero parameters, so parameter semantics are trivially satisfied per the rubric baseline of 4. The description's 'current UK' scope implicitly confirms no filtering parameters are required, but no additional parameter meaning is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ('current UK electricity generation mix by fuel type'), which is clear on its own. However, it does not distinguish itself from the closely related siblings in the same domain (carbon_intensity_current, carbon_intensity_forecast, carbon_electricity_emissions), so it fails to earn a 4 or 5 on 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?
There is no when-to-use or when-not-to-use guidance. With explicit sibling tools like carbon_intensity_current and carbon_intensity_forecast available, an agent receives no routing signal about which to choose. The description only describes what it returns, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_vehicle_emissionsC
Estimate carbon emissions for a vehicle journey.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| distance_unit | No | ||
| distance_value | Yes | ||
| vehicle_model_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'estimate', omitting details like authentication requirements (api_key is optional but not explained), input constraints, or what the tool does not do (e.g., one-way vs round-trip).
Agents need to know what a tool does to the world before calling 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 concise sentence, front-loaded and without redundancy. However, it may be too brief given the tool's complexity; additional sentences would improve completeness without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is grossly inadequate. It does not hint at return values, methodology, or examples, making it insufficient for an agent to use 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?
Schema description coverage is 0%, and the description adds no parameter-level meaning. It does not explain distance_unit format, vehicle_model_id possible values, or api_key usage, leaving the agent to infer from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Estimate carbon emissions for a vehicle journey' clearly states the verb (estimate), resource (carbon emissions), and scope (vehicle journey), distinguishing it from sibling tools like carbon_electricity_emissions and carbon_flight_emissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives (e.g., carbon_electricity_emissions or carbon_flight_emissions). There is no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cartesian_treeB
Build a Cartesian tree from an array (min-heap ordered with BST on indices).
| Name | Required | Description | Default |
|---|---|---|---|
| array | Yes | Input array of numbers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It states the structural invariant but says nothing about how the resulting tree is returned, how duplicates or empty input are handled, or typical complexity/limits for large arrays. For a pure algorithmic tool with zero annotation coverage, this leaves meaningful behavioral questions unanswered.
Agents need to know what a tool does to the 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 short sentence that front-loads the action and resource, with the parenthetical definition placed where it is most useful. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 would ideally explain the return shape (e.g., how the tree is serialized) and any input constraints. It conveys the algorithmic goal but omits the result format, leaving the agent partially informed for a computation 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?
With a single parameter at 100% schema description coverage, the schema already documents the 'array' input as an array of numbers, so the baseline is 3. The description confirms the input is an array but adds no syntax, ordering, or edge-case 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 gives a specific verb ('Build') and resource ('Cartesian tree') and pins down the defining property: min-heap ordered with BST on indices. That is a precise, self-contained statement of purpose. It does not, however, distinguish itself from nearby algorithmic siblings such as 'treap_sim', 'avl_tree', or 'segment_tree', leaving the agent to rely on the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to reach for this tool versus the many other tree/data-structure utilities in the sibling list, and no preconditions or exclusions are stated. The agent must infer usage purely from the tool name and the one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cataas_list_tagsARead-onlyIdempotent
List all available cat image tags.
| 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 destructiveHint=false, so safety is covered. The description adds only that the list is complete ('all available'), with no note on volume, ordering, or whether results are cached.
Agents need to know what a tool does to the 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 short sentence with zero waste and the resource front-loaded. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial no-arg enumeration tool with no output schema, the description conveys enough to call it correctly. It could be slightly richer by saying what the tags are for, but no essential 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?
Zero parameters, so the baseline is 4; there is nothing for the description to disambiguate, and it does not confuse matters with phantom 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?
States a specific verb and resource: 'List all available cat image tags.' An agent knows exactly what comes back. It does not differentiate from nearby siblings like cat_api_breeds or cat_facts, but the resource noun 'tags' is distinctive 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?
No when-to-use or when-not guidance at all. The obvious purpose (discover tag values usable elsewhere, e.g. with cataas_random_cat) is only inferred, not stated, and there is no mention of alternatives for browsing cat imagery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cataas_random_catBRead-onlyIdempotent
Get a random cat image, optionally with a tag or text overlay.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag (e.g. cute, funny, sleeping) | |
| text | No | Text to overlay on the image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that results are random and can be customized, but it says nothing about the return value (image URL vs. binary), rate limits, or the odd tension between idempotentHint=true and a tool that returns a different image on each call.
Agents need to know what a tool does to the 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-formed sentence with the core action front-loaded and optional modifiers trailing. Nothing is padded, though it is arguably too terse given the number of sibling tools an agent must choose between.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param, no-output-schema tool, the description covers the call mechanics adequately, but with no output schema the return shape (image URL, redirect, base64) is undocumented, and the sibling ambiguity is unresolved. It is minimally sufficient rather than 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%, with both `tag` and `text` documented including an example of tag values, so the schema does the heavy lifting. The description only restates that both are optional overlays/filters, adding no format, validation, or constraint 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 verb and resource ("Get a random cat image") plus the two optional modifiers, so the action is unambiguous. However, it gives no signal distinguishing it from nearby siblings like cat_api_random_image, http_cat_image, or placekitten_image, all of which appear to fetch cat pictures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 / when-not-to-use guidance and no comparison against alternatives, despite several overlapping cat-image siblings in the tool set. The phrase "optionally with a tag or text overlay" hints at capability but not at routing decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalan_calcBRead-onlyIdempotent
Compute the nth Catalan number and its combinatorial interpretations.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Non-negative integer index | |
| count | No | Limit sequence length (used with sequence: true) | |
| sequence | No | Return the full sequence from 0 to n (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds nothing about what 'combinatorial interpretations' means in the response, and does not reconcile the odd openWorldHint=true on what should be a purely computational, closed-world 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?
One front-loaded sentence with no filler; the operation and its subject are stated first. Nothing could be removed 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 three-parameter tool with no output schema, the description should clarify the relationship between n, sequence and count and what the interpretations portion returns. The safety annotations cover the operation profile, but the result shape remains unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 n, count and sequence are already documented in the schema. The description adds no extra semantics beyond restating the computation, which is acceptable at baseline but offers no lift.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Compute) and resource (the nth Catalan number), which lets an agent locate it unambiguously among the math siblings. The trailing phrase 'and its combinatorial interpretations' is vague and doesn't tell the agent what that portion of the output actually is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives such as pascaltri_generate or fibonacci_sequence, nor when to set sequence:true versus relying on a single value. The agent must infer the sequence/count interaction entirely from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cat_api_breedsBRead-onlyIdempotent
List cat breeds with details from The Cat API.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 0) | |
| limit | No | Number of breeds (max 50, default 20) |
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 nothing beyond that — no pagination behavior, no note about result size or the max-50 cap, and no indication of what 'details' includes.
Agents need to know what a tool does to the 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 with no filler, appropriate for a simple two-parameter list tool. It is terse to the point of being thin, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated read with full schema coverage and explicit annotations, the description covers enough for correct invocation. The one real gap is not distinguishing itself from the 'cat_breeds' sibling, which matters given how many breed-listing tools exist in the 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 coverage is 100% and both parameters (page, limit) are documented with defaults and the max-50 cap in the schema itself. The description adds no additional parameter 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 names a specific verb and resource ('List cat breeds') plus the upstream source ('The Cat API'), which is clearer than a bare restatement. It does not, however, differentiate from the sibling tool 'cat_breeds' or 'dog_api_breeds', so an agent must guess which breed-listing tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites, and no mention of the near-identical 'cat_breeds' sibling that could be chosen instead. The agent gets a purpose statement but no routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cat_api_random_imageBRead-onlyIdempotent
Get a random cat image from The Cat API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive, and open-world, so safety needs no repetition. However, the description says nothing about what actually comes back — a URL, binary data, or metadata — and there is no output schema, so the return shape is entirely undisclosed.
Agents need to know what a tool does to the 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 with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, annotation-rich read tool, the description covers invocation adequately. Missing: whether the returned image is a URL or raw image, which matters for any agent that needs to use the result, given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is fully specified, so there is nothing for the description to compensate for. Baseline 4 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 (Get) and resource (a random cat image) and names the source, The Cat API, which separates it from cataas_random_cat and http_cat_image in the sibling list. It does not explicitly disambiguate against those siblings, so a 4 rather than 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 gives no guidance on when to use this instead of the many other image tools (dog_random_image, cataas_random_cat, placekitten_image) or when not to use it. Usage is only implied by the word 'random'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cat_breedsCRead-onlyIdempotent
List cat breeds with details.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | Number of breeds (max 50, default 10) |
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 fully covered without the description. The description adds nothing beyond that, not even the pagination behavior implied by page/limit.
Agents need to know what a tool does to the 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 short sentence with no wasted words, but that brevity comes from under-specification rather than economy. 'With details' earns no place because it tells the agent nothing concrete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 50% schema coverage, no output schema, and two pagination parameters, the description should explain what 'details' a breed record contains and how paging works. It does neither, leaving the agent to infer the return shape entirely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the limit parameter has a schema description (
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb 'List' and the resource 'cat breeds', so the basic action is clear. But 'with details' is vague and the description makes no effort to distinguish this from the sibling cat_api_breeds, which appears to cover the same 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?
There is no guidance on when to use this tool versus cat_api_breeds, dog_list_breeds, or any other breed-listing sibling. The agent must guess from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cat_factARead-onlyIdempotent
Get a random cat fact.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, openWorld=true, idempotent=true, destructive=false, which covers the safety profile. The description adds 'random', signalling non-deterministic output, which is useful but is the only behavioral detail offered; nothing about output shape, source, or length.
Agents need to know what a tool does to the 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 with no filler. Nothing could be removed 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 such a simple tool with full annotation coverage the description is nearly sufficient, but with no output schema it could have noted the return type (a short fact string) 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?
The tool takes zero parameters, so the schema imposes no burden and no parameter guidance is needed. Baseline 4 applies for a parameterless 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?
States a specific verb and resource ('Get a random cat fact'), so the agent immediately knows what it does. It doesn't differentiate itself from the near-identical sibling cat_facts, leaving ambiguity about which to prefer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the trivial nature of the tool — no parameters, single-purpose. But it never names alternatives like cat_facts, dog_fact_random, or useless_fact_random, nor when to pick this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cat_factsBRead-onlyIdempotent
Get multiple cat facts with pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | Number of facts (max 50, default 5) |
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 fully covered elsewhere. The description adds the fact that results are paged, but says nothing about page numbering, default page, or result ordering.
Agents need to know what a tool does to the 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 short sentence with no filler, with the operation and its pagination nature 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 trivial read-only list tool this is close to adequate, but with no output schema the description should at least hint at what a 'fact' object looks like or how many pages exist. The undocumented page parameter remains an unresolved 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 only 50%: 'limit' is fully documented in the schema (max 50, default 5) while 'page' has no description anywhere. The phrase 'with pagination' gestures at the page parameter but never clarifies whether it is 0- or 1-based or what the default is, so the description does not compensate for the 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?
States a specific verb and resource ('Get multiple cat facts') with an additional scoping detail (pagination). The word 'multiple' implicitly distinguishes it from the sibling cat_fact, but the differentiation is never made 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?
Usage is only implied: 'multiple' hints that this is the bulk variant versus cat_fact, but the description never says when to pick this over cat_fact or cat_breeds. 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.
catmull_romB
Evaluate a Catmull-Rom spline through control points at given parameter values.
| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | Alpha parameter (0=uniform, 0.5=centripetal, 1=chordal; default 0.5) | |
| points | Yes | Control points as [x,y] pairs (min 4) | |
| t_values | Yes | Parameter values 0-1 to evaluate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behavior (evaluates a spline at parameter values) but omits return format, behavior at segment boundaries, minimum point count implications, or how alpha affects results. The schema covers alpha semantics, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the key verb and resource front-loaded. No filler, 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?
Adequate for a pure math evaluation function with a fully-described schema, but missing return-shape context (no output schema exists) and any indication of how alpha interacts with the result. The description is minimal but not wrong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 alpha, points, and t_values with meaningful detail (alpha's three modes, min 4 points, t in 0-1). The description adds no parameter detail beyond the schema, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (evaluate) and resource (Catmull-Rom spline) with the scope (through control points at given parameter values). Clear and unambiguous, though siblings like bezier_curve, spline_interpolate, and interpolate_calc are not referenced to differentiate use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no exclusions, and no mention of alternative spline tools (bezier_curve, spline_interpolate) in the sibling list. An agent has no basis for choosing this over similar interpolation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
centroid_decompositionB
Compute the centroid decomposition of a tree, returning centroid parents and depths.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Tree edges as [u, v] pairs (must be N-1 edges) | |
| vertex_count | Yes | Number of vertices (max 50,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the return contents (centroid parents and depths), but says nothing about complexity, tie-breaking among centroids, behavior on degenerate or invalid trees, or error conditions.
Agents need to know what a tool does to the 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 states the operation and its return values with zero filler. 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?
With no annotations and no output schema, the description does some compensating work by naming the outputs, but it omits acceptance conditions (connected tree, N-1 edges), edge-case behavior, and complexity expectations that matter for a bounded-input algorithm 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%, so both parameters are fully documented in the schema (edge pairs, N-1 constraint, vertex count max 50,000). The description adds no parameter-level detail beyond that, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation (centroid decomposition) and its input domain (a tree), which is enough for an agent to distinguish it from algorithmic siblings like heavy_light_decomposition or centroid-adjacent tools. It stops short of differentiating against any named alternative, but the resource and verb are 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?
There is no statement of when to prefer this over related decomposition/segment-tree tools, nor any prerequisite guidance (e.g. tree must be connected, N-1 edges required). Usage is only inferable from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charcodes_convertBRead-onlyIdempotent
Convert characters to Unicode code points in decimal, hex, or binary.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to convert. | |
| format | No | 'decimal' (default), 'hex', or 'binary'. |
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 clear. The description adds format options but no additional behavioral context such as output shape, character handling, or edge cases beyond what the schema already conveys.
Agents need to know what a tool does to the 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 efficient sentence with no redundant or filler content. The core operation and supported formats are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deterministic conversion tool with full schema coverage and clear annotations, the description is sufficient to invoke it correctly. It could be slightly richer by clarifying that the result is a sequence of code points, but no output schema exists and the operation is 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?
Schema description coverage is 100%, so both parameters are already documented in the input schema. The description mentions the same formats but adds no syntax, format constraints, or examples beyond the schema's own 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 gives a specific verb and resource ('Convert characters to Unicode code points') and names the supported output formats. It clearly distinguishes the operation from broad encoding tools, though it does not explicitly compare itself to sibling conversion 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 states what the tool does but provides no guidance on when to use it versus alternatives, prerequisites, or exclusions. The agent must infer usage from the tool name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
char_frequencyB
Analyze character frequency and breakdown of a text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to analyze. | |
| case_sensitive | No | Distinguish upper/lower case (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only restates the purpose and omits output format, handling of whitespace/punctuation, and any explicit read-only confirmation beyond what is implied by 'Analyze'.
Agents need to know what a tool does to the 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 is front-loaded and free of filler. It is appropriately sized for a simple character-frequency 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 low-complexity tool with rich parameter documentation, the description gives the core purpose but lacks return-value explanation and usage context. Since no output schema exists, more detail about the expected output 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?
Schema description coverage is 100%, so both 'text' and 'case_sensitive' are already documented in the input schema. The description adds no parameter meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Analyze' and resource 'character frequency and breakdown of a text', clearly identifying the tool's function. However, it does not differentiate from sibling text-analysis tools such as frequency_analyse or wordfreq_analyse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives like frequency_analyse, wordfreq_analyse, or word_count. There are no exclusions or context conditions to help an agent select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cheapshark_dealsB
Search for game deals across multiple stores (Steam, GOG, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) | |
| title | No | Game title to search for | |
| sort_by | No | Sort: Deal Rating, Title, Savings, Price, Store, recent | |
| store_id | No | Store ID to filter (use cheapshark_stores to find IDs) | |
| lower_price | No | Min price filter | |
| upper_price | No | Max price filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions multiple stores but says nothing about read-only safety, pagination, rate limits, or whether any state is modified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words. Every part of the sentence contributes to the tool's identity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with full schema coverage but no annotations or output schema, the description is minimally adequate. It establishes the core purpose but omits return format expectations, usage context, and any behavioral 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%, so parameter meanings are fully documented in the schema. The description adds no additional parameter semantics beyond the obvious 'multiple stores' implication, which matches 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 states a specific verb ('Search') and resource ('game deals') with scope ('across multiple stores'). It doesn't explicitly distinguish itself from the sibling cheapshark_stores, though that sibling is referenced in the store_id parameter description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided about when to use this tool versus alternatives or in what context. It only states what the tool does, leaving usage selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cheapshark_storesA
List all game stores tracked by CheapShark.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List all' implies a complete read-only enumeration with no parameters, which is useful transparency, but it says nothing about response format, pagination, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the purpose immediately and is appropriately sized for a simple list 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 zero-parameter list tool, the description is nearly complete: an agent knows it returns all tracked stores. It could be improved by mentioning that store IDs are useful with cheapshark_deals, but the core task 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 tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the empty schema is consistent.
Input schemas describe structure but not intent. Descriptions should explain 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: 'List all game stores tracked by CheapShark.' This clearly identifies the tool's function, but it does not differentiate from the sibling cheapshark_deals or explain the relationship between stores and deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 cheapshark_deals. The description gives no context, prerequisites, or exclusions that would help an agent choose it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_inboxCheck your agent inboxARead-onlyIdempotent
Checks YOUR personal Boardroom inbox: messages other agents (or the human) addressed to you, plus room broadcasts, with unread tracking. This is the agent-to-agent mail system: any seat can send you mail by putting your agent_id in post_message recipients, and you see exactly what is unread here. Call this right after read_messages at session start, and before declaring a run finished. Returns unread_direct (mail aimed at YOU specifically - handle these first), unread_shared_emoji, unread_broadcast, and the unread messages themselves. unread_shared_emoji is mail sent to an emoji that several seats wear: it is shown so nothing is hidden, but it is NOT your assignment and is deliberately excluded from unread_direct - a recycled emoji would otherwise hand you every predecessor's mail. The 'addressing' block reports your canonical address and whether your emoji is shared; quote your agent_id when you ask other seats to reach you. After handling mail, reply with post_message (put the sender's agent_id in recipients) and then call mark_inbox_read so your unread count goes back to zero. Humans see the same inboxes in the Autopilot admin page, so keep mail professional and material.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| agent_id | Yes | Your stable agent identifier, same value you use for read_messages and post_message. | |
| include_read | No | Set true to include already-read mail | |
| include_broadcast | No | Set false to see only direct mail |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as a safe, read-only, idempotent read, but the description adds substantial behavioral context: unread categories, the shared-emoji exclusion rationale, the addressing block, and human visibility of the same inboxes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and usage are front-loaded, and most sentences contribute useful operational context. It is somewhat longer than necessary for a four-parameter read tool, but not padded with irrelevant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 explains the returned unread categories and addressing block. Combined with annotations covering safety and idempotence, an agent has enough context to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, documenting agent_id, include_read, and include_broadcast while leaving limit undescribed. The description does not add parameter-level meaning such as limits, defaults, or include_read behavior, so it relies on 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, resource, and scope: 'Checks YOUR personal Boardroom inbox' for messages addressed to you plus room broadcasts with unread tracking. It distinguishes the personal inbox from read_messages by timing and 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?
Explicitly says when to call it: right after read_messages at session start and before declaring a run finished. It also names the follow-up alternatives post_message and mark_inbox_read with their roles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_signalsCheck signalsARead-onlyIdempotent
Call at the start of every session to catch up on what happened since the user last chatted. Returns unread signals from TestPass, Crews, Memory, and every UnClick tool. Narrate the important ones to the user in plain English. Automatically marks them as read so you do not re-narrate later.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Stable Boardroom agent_id for read attribution, e.g. chatgpt-codex-worker2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a real side effect – 'Automatically marks them as read' – which is exactly the kind of behavioral context annotations cannot express, and it explains why (to avoid re-narration). However, that side effect conflicts with the declared readOnlyHint=true, since read-state is modified by the call. The disclosure is useful but it contradicts the structured safety signal, leaving the agent unsure which to trust.
Agents need to know what a tool does to the 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 short sentences, each doing distinct work: when to call, what it returns, what to do with the output, and the side effect. Front-loaded with the trigger condition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 return content (unread signals by source), the expected agent action (narrate), and the mutation (mark as read). It omits edge cases such as what happens when nothing is unread or how signals are ordered, which keeps it just below 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?
There is one optional parameter with 100% schema coverage, including an inline example ('chatgpt-codex-worker2') and its purpose ('read attribution'). The description adds nothing about agent_id, but the schema does that job completely, so the baseline of 4 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 ('check signals', 'returns unread signals') and enumerates the sources (TestPass, Crews, Memory, UnClick tools), so it is distinguishable from siblings like check_inbox or read_messages. The session-start framing ('catch up on what happened since the user last chatted') makes the resource scope concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit timing instruction: 'Call at the start of every session.' It also specifies the follow-up obligation ('narrate the important ones to the user'). It does not name when NOT to call or contrast with inbox-style 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.
chess_leaderboardsBRead-onlyIdempotent
Get Chess.com leaderboards.
| 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 fully covered. The description adds no behavioral context beyond the provider name — nothing about which leaderboard categories exist (bullet/blitz/rapid/daily), result volume, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single five-word sentence with zero filler, and the resource is front-loaded. It is terse to the point of under-specification, but that gap is scored elsewhere rather than penalized here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool this is minimally adequate to invoke correctly. However, no output schema exists, so the description should at least hint at what a 'leaderboard' returns (top-player rankings per time control); that is left entirely to inference.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters and the input schema is an empty object, so there is no parameter semantics to explain. Baseline 4 applies; nothing in the description misrepresents the calling surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 Chess.com leaderboards'), making the operation immediately identifiable. It does not differentiate from nearby siblings such as lichess_top_players or chess_player_stats, but the provider name at least narrows the 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?
There is no guidance on when to use this rather than lichess_top_players, chess_player_stats, or chess_player_games. The agent must infer the choice from name alone, with no stated alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_playerB
Get a Chess.com player profile.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Get', omitting critical behavioral details like rate limits, authentication, or what a 'profile' includes.
Agents need to know what a tool does to the world before calling 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 wasted words, but it is so brief that it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is minimally adequate but lacks specifics about the returned data and usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds minimal value—it does not explain that 'username' is the Chess.com handle or what the returned profile contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get') and resource ('Chess.com player profile'), distinguishing it from sibling tools like chess_player_games and chess_player_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as chess_player_stats or chess_player_games; usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_player_gamesCRead-onlyIdempotent
Get recent games for a Chess.com player.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| month | No | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive, so safety is covered. The description adds nothing beyond that: it doesn't say how many games are returned, whether 'recent' means the current month or a rolling window, whether the Chess.com published-data archives are queried, or how failures for unknown users surface.
Agents need to know what a tool does to the 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 with no filler, exactly the right shape. The brevity is only a problem because nothing was added after the core statement, not because of 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 3-parameter tool with a 0%-covered schema and no output schema, an agent still cannot tell what a call returns or how the date filters behave. The description would need to spell out the default time window, the year/month relationship, and roughly what a game record contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for three parameters. It implies username is the key lookup but says nothing about the year/month parameters: no format ('month' is a bare number, presumably 1-12), no statement that month requires year, and no explanation of the default window when both are omitted.
Input schemas describe structure but not intent. Descriptions should explain 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 recent games') scoped to a Chess.com player, which is more precise than the typical list endpoint cliché. It does not distinguish itself from chess_player, chess_player_stats, or lichess_user_games, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when to prefer a sibling (e.g. chess_player for profile data or lichess_user_games for Lichess), or any prerequisite such as the account needing to be public. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_player_statsCRead-onlyIdempotent
Get Chess.com player statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is fully covered by structured fields. The description adds nothing beyond that – no note on rate limits, external service availability, or what a missing username returns for this open-world lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficiently sized, though the brevity comes at the cost of the missing detail flagged elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 should at least say what statistics come back and what the username refers to. Neither is present, so an agent must guess at the result 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?
There is one required parameter with 0% schema description coverage, so the description must compensate. It never explains that 'username' is a Chess.com account handle, nor any format or case-sensitivity constraint, leaving the single input undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a verb and resource ('Get Chess.com player statistics'), which is better than a tautology, but 'statistics' is undefined and there is no differentiation from nearby siblings like chess_player or chess_player_games. An agent cannot tell from the text which stats are returned or how this differs from the other Chess.com 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 when-to-use guidance, no prerequisites, and no mention of alternatives such as chess_player or chess_player_games. The only signal is the name itself, leaving the agent to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_puzzles_randomBRead-onlyIdempotent
Get a random chess puzzle from Chess.com.
| 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, and destructiveHint=false, so safety is covered. The description adds that results come from Chess.com and vary per call (random), which is useful, but says nothing about puzzle format, difficulty, or frequency limits. Note the mild tension with idempotentHint=true, since a random draw returns different output each call.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, no filler. It stops short of padding, though it also stops short of any operational 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?
With no parameters and no output schema, the description is the only place an agent could learn what a returned puzzle looks like (FEN, PGN, rating, puzzle id). That information is absent, so the definition is workable but leaves a real 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 tool takes zero parameters, so there is nothing for the description to explain beyond what the schema already conveys. Baseline 4 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 ('Get a random chess puzzle') and names the data source, Chess.com. It is distinguishable from lichess_puzzle_daily by the 'random' qualifier, though the contrast 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 gives no condition for when to use this versus lichess_puzzle_daily or chess_player_games, and no exclusions or prerequisites. The only hint is the word 'random', which the agent must interpret itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chinese_remainderC
Solve simultaneous congruences using the generalised Chinese Remainder Theorem.
| Name | Required | Description | Default |
|---|---|---|---|
| moduli | Yes | Array of moduli (positive integers) | |
| remainders | Yes | Array of remainders |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it discloses almost nothing: not whether the system may be inconsistent (no solution), whether moduli must be pairwise coprime, what happens on failure, or what the output looks like. 'Generalised' is the only behavioral hint, and it is left undefined.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is efficient, though the brevity contributes to the disclosure gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 math utility with fully documented parameters and no output schema, the definition is minimally sufficient to invoke the tool. It is nonetheless thin on edge-case behavior (inconsistent systems, non-coprime moduli) that matters for a generalised CRT solver.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 moduli and remainders are documented in the schema as positive integers and remainders respectively. The description adds no additional parameter meaning, 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?
States a concrete verb and resource: 'Solve simultaneous congruences,' with the added qualifier 'generalised' hinting at non-coprime modulus support. However, it never names or distinguishes itself from the sibling tool chinese_remainder_theorem, which sits in the same namespace with a nearly identical 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?
There is no when-to-use guidance, no prerequisites, and no routing away from the near-identical sibling chinese_remainder_theorem. An agent choosing between the two must infer the difference from the word 'generalised' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chinese_remainder_theoremC
Solve a system of simultaneous congruences using the Chinese Remainder Theorem.
| Name | Required | Description | Default |
|---|---|---|---|
| moduli | Yes | Moduli for each congruence | |
| remainders | Yes | Remainders for each congruence |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about the critical constraint that moduli must be pairwise coprime, what happens when they are not, or what form the result takes — all behavioral facts an agent needs for a CRT solver.
Agents need to know what a tool does to the 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 with zero filler, and the verb+technique are front-loaded. Nothing could be removed 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 no annotations and no output schema, the description is the only place to convey the coprimality requirement, the positional pairing of the two arrays, and the shape of the returned solution — and it covers none of them. Incomplete for a 2-required-parameter solver.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are simple arrays, so the baseline is 3. The description adds no meaning beyond the schema — it never states that remainders and moduli must be the same length or that entries are paired positionally.
Input schemas describe structure but not intent. Descriptions should explain 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 (Solve) and resource (a system of simultaneous congruences) plus the named technique, so the purpose is unambiguous. It doesn't differentiate itself from the near-duplicate sibling 'chinese_remainder' or from adjacent math tools like 'modular_arithmetic' and 'extended_gcd', 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?
There is no guidance on when to use this rather than 'chinese_remainder', 'modular_arithmetic', or 'extended_gcd', and no preconditions are stated. The only implied usage is the name of the theorem itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chromatic_numberA
Compute the exact chromatic number of a graph using inclusion-exclusion (up to 20 vertices).
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Edges as [u, v] pairs (0-indexed) | |
| vertex_count | Yes | Number of vertices (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It usefully discloses the algorithm (inclusion-exclusion, which is exponential) and the 20-vertex cap, giving the agent a sense of cost and limits. It omits failure behavior above the cap and whether the result is a single integer.
Agents need to know what a tool does to the 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 conveys purpose, algorithm, and constraint with zero filler. Nothing is redundant and the key limitation appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterizable math tool with a rich schema and no output schema, the description covers the core intent and the vertex cap. But it omits runtime/complexity implications, what happens when the cap is exceeded, and how this differs operationally from sibling coloring tools, leaving gaps an agent may need.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters (vertex_count, edges) are already fully documented in the schema. The description adds the 'max 20 vertices' bound, which restates the schema's own 'max 20' note rather than extending it. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Compute the exact chromatic number of a graph') and even names the underlying algorithm (inclusion-exclusion). It is clearly distinguishable from the many graph siblings like graph_coloring (which is heuristic) and bipartite_check (which only tests 2-colorability).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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' + 'up to 20 vertices' constraint implies when this tool is appropriate (small graphs needing a guaranteed answer) and by extension when to prefer a faster heuristic. However, it does not explicitly name graph_coloring as the alternative for large graphs or state the failure mode when vertex_count exceeds 20.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chuck_categoriesBRead-onlyIdempotent
List available Chuck Norris joke categories.
| 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 fully covered. The description adds no behavioral context of its own — no return shape, no indication of how many categories exist, and no link to the category parameter of chuck_random.
Agents need to know what a tool does to the 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 with zero filler. There is no wasted clause and the verb and resource lead the 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 trivial zero-parameter read tool with full annotation coverage this is close to sufficient, but with no output schema the description could have said what a category looks like and how it feeds into the joke-fetching siblings. As written it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4, and the description correctly implies a parameterless enumeration. Nothing in the schema needs compensating 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 and resource ("List ... categories") scoped to Chuck Norris jokes, which lets an agent separate it from chuck_random and chuck_search without opening the schema. It stops short of explicitly naming those siblings or stating that categories are the vocabulary used by the joke-fetching 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?
There is no when-to-use guidance, no mention of alternatives (chuck_random, chuck_search), and no hint that this is a discovery step that should precede a category-filtered joke request. The agent must infer the usage pattern entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chuck_randomARead-onlyIdempotent
Get a random Chuck Norris joke.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Joke category (use chuck_categories to list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already state readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the description doesn't need to repeat that this is a safe read. It adds no context about what happens with an invalid category, what a category defaults to, or what the response contains, so it contributes little 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?
One short sentence that leads with the action. There is no filler and nothing to trim for a tool this simple.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read-only tool with full schema coverage, no output schema, and annotations covering safety, the description says enough. The gap is the category behavior, such as a fallback default or error on unknown values, which the schema doesn't carry either.
Complex tools with many parameters or behaviors need more documentation. 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 single category parameter at 100% coverage and points to chuck_categories for valid values. The description gives no meaning to category, such as defaulting to any or the behavior on unknown values, so it doesn't add to 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?
A specific verb (Get) plus resource (random Chuck Norris joke) in one sentence. It cleanly separates itself from the sibling chuck_categories, which lists categories rather than returning a joke.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description doesn't state when to use this tool versus chuck_categories or the many other random-joke tools (joke_random, dadjoke_random, official_joke_random). It doesn't say that calling chuck_categories first lets you supply a valid category. Usage is only implied by the word 'random'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chuck_searchBRead-onlyIdempotent
Search Chuck Norris jokes by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (min 3 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety and idempotency are covered. The description adds almost no behavioral context beyond the basic purpose—no result count, pagination, auth needs, or rate-limit details—so it contributes little beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. It immediately conveys the action and resource without unnecessary preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotated parameter, no output schema, and low complexity, the description is broadly sufficient for correct invocation. It could be improved by explicitly noting how it differs from sibling tools, but nothing critical is missing for calling 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 single query parameter has 100% schema description coverage ('Search query (min 3 chars)'), so the schema already documents its semantics. The description's 'by keyword' phrasing aligns with that but adds no format, matching behavior, or constraint details 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 (Search) and resource (Chuck Norris jokes) with the keyword-based scope. It is clear but does not explicitly distinguish itself from sibling tools like chuck_random or chuck_categories, leaving the agent to infer that this is the keyword-search variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives such as chuck_random or chuck_categories. The phrase 'by keyword' hints at a search context but offers no exclusions, prerequisites, or sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cidr_calculateB
Calculate subnet details from a CIDR notation (network, broadcast, mask, host count).
| Name | Required | Description | Default |
|---|---|---|---|
| cidr | Yes | CIDR notation (e.g. 192.168.1.0/24). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses the computed outputs (network, broadcast, mask, host count), which implies a deterministic, side-effect-free read operation, but it never states this explicitly nor covers return format or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler that names the input and enumerates the outputs. 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 compute tool with 100% schema coverage, the description is nearly sufficient, and enumerating the returned fields usefully compensates for the absent output schema. It could be slightly more complete about output format, 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?
Schema description coverage is 100% for the single cidr parameter, so the schema already documents the input format with an example. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (subnet details) driven by a clear input (CIDR notation), which implicitly separates it from siblings like ip_validate or ip_lookup. It does not explicitly name any sibling, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what it computes but gives no when-to-use context, prerequisites, or alternatives (e.g., ip_validate for checking validity). Usage is only inferable from the purpose, matching the 'no guidance' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circl_cve_lookupARead-onlyIdempotent
Look up a CVE vulnerability by ID from CIRCL (cve.circl.lu).
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE ID (e.g. CVE-2024-1234). |
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 and idempotency profile is covered. The description adds the external CIRCL source, but does not mention rate limits, invalid-ID behavior, or what kind of vulnerability data is 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?
A single front-loaded sentence with no wasted words. The verb, resource, identifier type, and source are all communicated 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 one-parameter lookup with complete schema coverage and rich annotations, the description is minimally adequate. However, because there is no output schema, it could do more to set expectations about the returned CVE data or the external service's limitations.
Complex tools with many parameters or behaviors need more documentation. Simple 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 is fully documented with an example format. The description does not add any parameter meaning beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Look up a CVE vulnerability') and names the external source (CIRCL). It does not differentiate from nearby siblings such as get_cve_detail, search_cve, or circl_cve_recent, so the agent must infer which CVE lookup to 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 phrase 'by ID' implies the tool should be used when a CVE identifier is already known, which is useful context. However, there is no explicit guidance on when to prefer this over get_cve_detail, search_cve, or circl_cve_recent, nor any stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circl_cve_recentBRead-onlyIdempotent
Get the most recently published CVE vulnerabilities from CIRCL.
| 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 nothing operational beyond the word 'recent' — no result count, no time window (hours? days?), no pagination, and no note that the upstream CIRCL feed may lag. For a zero-parameter feed tool the freshness contract is the key behavior and it is missing.
Agents need to know what a tool does to the 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 with no waste or filler. It is appropriately sized, though it is so terse that useful context was cut rather than trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description must carry the burden of explaining what comes back. It says the results are 'most recently published' but not how many entries, what fields each CVE record contains, or how recency is defined — gaps that matter for an agent deciding between this and a targeted CVE 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?
The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The description correctly implies the tool needs no input arguments to fetch the latest feed.
Input schemas describe structure but not intent. Descriptions should explain 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 the most recently published CVE vulnerabilities') and names the source (CIRCL), so the operation is unambiguous. It does not, however, distinguish itself from nearby siblings such as get_recent_cves, search_cve, or circl_cve_lookup, which an agent would need help disambiguating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus search_cve, get_cve_detail, or get_recent_cves, and no exclusions or prerequisites. The agent is left to infer that this is a 'browse the latest feed' tool rather than a targeted lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circleci_get_pipelineARead-onlyIdempotent
Get details for a single CircleCI pipeline by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | CircleCI personal API token | |
| pipeline_id | Yes | Pipeline ID |
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. The description adds no behavioral context beyond 'Get details'—no auth requirements, rate limits, or response behavior—so it provides little value beyond the structured annotation data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the action, resource, scope, and identifier requirement 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 read-only lookup tool, the description plus the fully described schema and rich annotations are sufficient to select and invoke it correctly. The lack of output schema leaves the exact 'details' shape unstated, but that is a minor gap for this 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?
Both parameters are fully described in the schema, including api_key as a personal API token and pipeline_id as the pipeline identifier. The description's 'by ID' adds only marginal meaning to pipeline_id and does not mention api_key, matching 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 uses a specific verb and resource ('Get details for a single CircleCI pipeline') and scopes it by ID. This clearly distinguishes it from sibling list tools such as circleci_list_pipelines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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' makes the usage context clear: call this when you already have a specific pipeline ID. It does not explicitly name alternatives or exclusions, but the single-pipeline scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circleci_get_workflowARead-onlyIdempotent
Get details for a single CircleCI workflow by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | CircleCI personal API token | |
| workflow_id | Yes | Workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the agent knows this is a safe, repeatable read. The description adds little beyond confirming single-workflow retrieval; it does not mention authentication requirements (beyond the api_key param), rate limits, or error behavior for invalid IDs.
Agents need to know what a tool does to the 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 with zero waste: verb, resource, scope, and identifier method all in one line. Nothing needs to be trimmed and nothing important is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description is nearly sufficient: the agent knows what it fetches and how it is identified. The only missing piece is explicit sibling routing guidance, which is minor given the clear name and scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both api_key and workflow_id explicitly documented, so the schema carries the parameter burden. The description only reinforces that the workflow is identified 'by ID' and adds no syntax or format details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get details for a single CircleCI workflow') and explicitly scopes retrieval to an ID, which distinguishes it from list-style siblings such as circleci_list_workflows. It does not name the sibling alternative, 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 word 'single' and the ID-based lookup imply that this is for fetching one known workflow rather than listing many. However, there is no explicit guidance on when to use this versus circleci_list_workflows or circleci_get_pipeline, leaving the agent to infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circleci_list_jobsCRead-onlyIdempotent
List jobs in a CircleCI workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | CircleCI personal API token | |
| workflow_id | Yes | Workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured data. The description contributes nothing beyond that: no pagination behavior, no result limits, no rate-limit or token-permission context for an open-world API call.
Agents need to know what a tool does to the 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 short sentence with no padding and the resource scoping front-loaded. It is efficient, though the sparseness pushes more burden onto the schema 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?
For a two-parameter read-only list call with full schema coverage and no output schema, the definition is minimally sufficient. However, an agent gets no sense of result shape or volume, which matters for a listing endpoint against an open-world service.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 api_key and workflow_id are documented in the schema – so the baseline is 3. The description adds no extra meaning about the token's scope or where a workflow_id comes from, but it is not required to when the schema is this complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List jobs') scoped to a CircleCI workflow, so an agent can tell what it returns. It does not distinguish itself from sibling tools such as circleci_list_workflows or circleci_get_workflow, which is the only gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 indication of when to call this versus circleci_get_workflow or circleci_list_workflows, nor any prerequisite such as needing a workflow_id obtained from the workflows listing. Usage has to be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circleci_list_pipelinesARead-onlyIdempotent
List CircleCI pipelines for a project or organization. Optionally filter by branch.
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Filter by branch name | |
| api_key | Yes | CircleCI personal API token | |
| org_slug | No | Org slug when listing all pipelines (e.g. gh/MyOrg) | |
| page_token | No | Pagination token | |
| project_slug | No | Project slug e.g. gh/MyOrg/my-repo. Omit to list all org pipelines. |
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 scoping and branch-filter behavior, but says nothing about pagination (page_token is a parameter) or what happens when both project_slug and org_slug are supplied.
Agents need to know what a tool does to the 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, with the core action front-loaded and the optional filter second. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description could have said something about the returned pipeline list and how pagination works. With annotations covering safety and the schema covering all parameters, the definition is adequate but leaves pagination behavior and slug precedence unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are documented in the schema, setting the baseline at 3. The description restates the branch filter and the project/org scope but adds no format details or selection rules 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 gives a specific verb and resource ("List CircleCI pipelines") and names the two scopes (project or organization), which matches the project_slug/org_slug parameters. It does not explicitly differentiate itself from siblings like circleci_get_pipeline or circleci_list_workflows, so it is clear but not distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Optionally filter by branch" and "for a project or organization" imply the usage context, but there is no explicit guidance on when to call this versus circleci_get_pipeline or circleci_list_workflows, and no mention of which slug parameter to pick. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circleci_list_workflowsBRead-onlyIdempotent
List workflows for a CircleCI pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | CircleCI personal API token | |
| pipeline_id | Yes | Pipeline ID |
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, open-world operation. The description adds only the pipeline scoping context and says nothing about pagination, result limits, or the shape of the returned workflow list, so it adds minimal value beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no waste and the resource scope is front-loaded. It is perhaps too terse for an agent that needs usage context, but it is structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, annotations cover the safety profile, and the schema is fully documented, but the description says nothing about output format or pagination behavior. For a listing endpoint, that is a noticeable gap even if 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 description coverage is 100%, so both parameters are already documented in the input schema. The description reinforces that workflows are retrieved for a pipeline, but adds no new syntax, format, or constraint details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('workflows') scoped to a CircleCI pipeline, so the basic operation is clear. It does not distinguish this tool from sibling 'circleci_get_workflow' or explain that it returns workflows for one pipeline rather than listing pipelines themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'circleci_get_workflow', 'circleci_list_jobs', or 'circleci_list_pipelines'. The agent must infer from names alone that this lists workflows belonging to a single pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circleci_trigger_pipelineB
Trigger a new CircleCI pipeline for a project. Optionally specify branch, tag, or parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Tag to build | |
| branch | No | Branch to build (default: main/master) | |
| api_key | Yes | CircleCI personal API token | |
| parameters | No | Pipeline parameters as key-value pairs | |
| project_slug | Yes | Project slug e.g. gh/MyOrg/my-repo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the action of triggering a pipeline, omitting that this is a mutating operation, potential side effects (e.g., building, costing credits), authentication implications, or return 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 a single sentence that front-loads the action ('Trigger a new...') and presents optional parameters succinctly. No extraneous words 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?
Given the tool has 5 parameters, no output schema, and no annotations, the description is too sparse. It fails to explain what the tool returns (e.g., pipeline ID, status), error scenarios, or additional contextual constraints like rate limits or required permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 parameters. The description adds no semantic value beyond restating that branch, tag, or parameters are optional, which is already clear from 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 triggers a new CircleCI pipeline, with optional parameters for branch, tag, or parameters. It distinguishes from sibling tools like circleci_list_pipelines which are read-only, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (triggering a pipeline) but provides no guidance on when to use this tool vs alternatives (e.g., circleci_get_pipeline for status checks). It lacks prerequisites like needing a valid API key and project slug beyond the schema, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
citybikes_networkB
Get station details for a specific bike-sharing network.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Network ID (e.g. citi-bike-nyc, velib-metropole). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. Beyond the word 'Get' implying a read, it says nothing about return shape, whether data is live or cached, pagination, or any auth/rate requirements. For a tool with zero annotation coverage this is a meaningful 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?
A single short sentence with the action and scope front-loaded and no wasted words. It is efficient, though its brevity contributes to the coverage gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 is minimally adequate. It omits where the network id comes from and what the response contains, which an agent would need in order to chain calls to citybikes_networks first.
Complex tools with many parameters or behaviors need more documentation. Simple 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 documents the single id parameter with concrete examples (citi-bike-nyc, velib-metropole). The description adds nothing beyond that, 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 gives a clear verb+resource: 'Get station details' for a bike-sharing network. It is specific about what is returned (station details) and scoped to one network, though it does not explicitly name the sibling citybikes_networks or clarify the list-vs-detail distinction beyond the implicit singular/plural contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'specific network' phrasing and the required id parameter suggest this is the follow-up call after discovering a network ID elsewhere (e.g. citybikes_networks). There is no explicit when-to-use statement, no mention of the sibling tool, and no note that the id must come from a prior lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
citybikes_networksA
List all bike-sharing networks worldwide from CityBikes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly conveys that this is a read-only, no-argument enumeration across all networks, which is meaningful behavioral context. It stops short of noting pagination, response size, or that results are un-filtered, but the core semantics are 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?
A single, front-loaded sentence stating verb, resource, scope, and source. No waste, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 enumeration tool with no output schema, the description gives the essential information: what it returns (a list) and its scope (all networks, worldwide). It could be richer—e.g., noting the returned fields or how to drill in—but it is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document; the baseline of 4 applies. The description correctly signals parameterlessness by saying 'all networks worldwide' with no filtering options implied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List') and resource ('bike-sharing networks worldwide') and states the data source ('from CityBikes'). This clearly distinguishes it from the singular sibling 'citybikes_network', which presumably returns a single network's 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 word 'List' and 'worldwide' implies this is a discovery/enumeration call, giving some usage context. However, it never explicitly states when to use this versus the sibling 'citybikes_network' (e.g., to find a network ID before fetching details), leaving the relationship to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ck_add_subscriberC
Subscribe an email address to a ConvertKit form.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| api_key | Yes | ConvertKit API key | |
| form_id | Yes | ||
| first_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It fails to mention what happens on duplicate subscription, error handling, rate limits, or authentication requirements. Simply stating 'subscribe' is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is concise but lacks structure. It is front-loaded with the verb, but could be expanded with minimal additional context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and low parameter documentation, the description should provide more context about the return value, side effects, or integration specifics. It is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 25% (api_key described), and the description adds no parameter details. It doesn't clarify what form_id or email should be, or that first_name is optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (subscribe) and resource (email address to a ConvertKit form), distinguishing it from sibling tools like ck_list_subscribers or ck_tag_subscriber. However, it could be more explicit about the subscription being tied to a specific form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives (e.g., ck_tag_subscriber) or prerequisites (e.g., need a ConvertKit account and form). The description lacks any context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ck_list_formsCRead-onlyIdempotent
List all forms in a ConvertKit account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
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 nothing beyond that - no pagination behavior, no rate limits, no note on how many forms are returned or whether results are truncated.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though the brevity comes at the cost of the missing guidance noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 endpoint with no output schema and no pagination documentation, the agent does not know the return shape or whether results are complete. Annotations cover safety but not result semantics, and the description supplies none of 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 0% and the description says nothing about the single api_key parameter - not where to obtain it, its format, or whether it authorizes account-level access. The schema only marks it required, leaving the description to compensate, which it does not.
Input schemas describe structure but not intent. Descriptions should explain 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 (forms) scoped to a ConvertKit account, which separates it from ck_list_tags, ck_list_sequences, and ck_list_subscribers. It stops short of explicitly naming those siblings as alternatives, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the other ck_list_* siblings, no prerequisite guidance, and no exclusions. The agent must infer from the name alone that this is the forms-listing path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ck_list_sequencesBRead-onlyIdempotent
List all email sequences in a ConvertKit account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered externally. The description adds only that the listing is unfiltered ('all'); it says nothing about result caps, pagination, ordering, or what an empty account returns, so it adds limited behavioral context 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?
A single front-loaded sentence with zero filler; the resource and scope appear immediately. It is efficiently sized, but the terseness comes at the cost of the missing parameter and behavior detail rather than being a deliberate compact style.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with annotation coverage this is close to adequate, and no output schema means return values need not be described. However, the required api_key is unexplained in both schema and description, and nothing indicates whether results are paginated or complete, leaving real gaps for a one-parameter 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?
There is one parameter (api_key) with 0% schema description coverage, so the description carries the full burden and fails to explain what the key is, that it is required, or how it is obtained. A single undocumented credential parameter with no compensating text in the description leaves the agent relying on inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List all email sequences') scoped to a ConvertKit account, so the agent knows exactly what it returns conceptually. It does not distinguish itself from the ConvertKit siblings (ck_list_subscribers, ck_list_forms, ck_list_tags), though the distinct resource noun does most of that work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'List all' implies the intended use is full enumeration with no filtering, which is a usable but only implicit guideline. There is no statement of when to prefer this over other ConvertKit listing tools, no prerequisites (API credentials, account scope), and no mention of pagination limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ck_list_subscribersCRead-onlyIdempotent
List all subscribers in a ConvertKit account.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | Filter by created date (ISO 8601) | |
| page | No | ||
| api_secret | Yes | ConvertKit API secret | |
| sort_field | No | ||
| sort_order | No | asc or desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds little beyond restating that this lists subscribers for an account; it does not explain pagination despite a 'page' parameter, rate limits, auth requirements beyond the schema, or what the response contains.
Agents need to know what a tool does to the world before calling 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 and no structural ambiguity. Its brevity is appropriate in form, though the missing details are penalized under other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 external API listing tool with no output schema, the description is too thin. It omits pagination behavior, filtering semantics, sorting behavior, and authentication context, leaving the agent to infer important call details from the schema alone.
Complex tools with many parameters or behaviors need more documentation. 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 six parameters and only 50% schema description coverage, the description needs to compensate by explaining filters and pagination, but it does not. It says nothing about 'from'/'to' date filtering, 'page', 'sort_field', 'sort_order', or the required api_secret.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all subscribers') and scopes it to a ConvertKit account. It is clearly distinguishable from write-oriented siblings like ck_add_subscriber and ck_tag_subscriber, though it does not explicitly name any 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?
There is no guidance on when to use this tool versus alternatives, no exclusions, and no mention of related listing tools such as ck_list_forms or ck_list_tags. The listing purpose is implied by the name and sentence, but the description provides no usage decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ck_list_tagsBRead-onlyIdempotent
List all tags in a ConvertKit account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so safety behavior is well covered. The description adds only the scope 'all tags' and does not mention authentication, rate limits, or return format; this is adequate but not rich given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler. It communicates the operation and scope without unnecessary 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?
The tool is a simple read-only list operation and annotations cover its safety profile. However, with no output schema and no description of the return shape, pagination, or the api_key parameter, the definition is minimally adequate rather than 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?
There is one parameter, api_key, with 0% schema description coverage. The description does not describe the parameter's format, source, or permissions beyond implying it belongs to a ConvertKit account. With low schema coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all tags' in a ConvertKit account. It is clear enough to distinguish from sibling tools like ck_list_subscribers or ck_list_forms, though it does not explicitly name any 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 gives no explicit when-to-use guidance, no exclusions, and no alternatives. An agent can infer that it retrieves tags, but there is nothing about prerequisites such as needing a tag ID for ck_tag_subscriber or when another listing tool would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ck_tag_subscriberC
Apply a tag to a subscriber in ConvertKit.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| tag_id | Yes | ||
| api_key | Yes | ||
| first_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the action without detailing side effects, permission requirements, or what happens if the subscriber does not 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 very concise at one sentence, but it sacrifices necessary detail. It is not a tautology, but the brevity results in under-specification for a tool with 4 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and 0% schema description coverage, the description fails to provide complete context. It does not explain how to use the tool or what to expect from the 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?
Schema coverage is 0%, and the description adds no meaning to the parameters. The agent receives no help understanding api_key, tag_id, email, or first_name from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Apply a tag to a subscriber' with a specific verb and resource. However, it does not explicitly distinguish this from sibling tools like ck_add_subscriber, which also involves modifying subscribers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention prerequisites, context, 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.
claim_laneClaim an Operations laneAIdempotent
Take ownership of a lane so the board shows who is on it. Refuses a lane another seat already holds unless shared is true, which is the opt-in for genuine pair work - say so in the Boardroom first. A claim goes stale after 48 hours and the lane becomes takeable again. lane accepts the printed ref (AP-01) or the lane id (boardroom).
| Name | Required | Description | Default |
|---|---|---|---|
| lane | Yes | Ref from the board's first column (AP-01) or lane id (boardroom). | |
| emoji | No | ||
| shared | No | Join a lane someone else holds. Only after saying so in the Boardroom. | |
| agent_id | Yes | ||
| display_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses the conflict-refusal behavior, the shared override and its precondition, and the 48-hour staleness/expiry rule that makes a lane takeable again. These are exactly the stateful traits an agent cannot infer from idempotentHint/destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences, front-loading the core action before the conflict rule, the expiry rule, and the input format. Slightly dense but every sentence carries distinct 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?
Covers the mutation semantics an agent needs (ownership, conflict, expiry, accepted input forms) for a 5-param tool with no output schema. Minor incompleteness around the three remaining undocumented params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 40% schema coverage the description compensates for the two pivotal params: 'lane' accepts the printed ref (AP-01) or lane id, and 'shared' is the pair-work opt-in with a Boardroom precondition. But agent_id, display_name, and emoji remain undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource ('Take ownership of a lane') and immediately explains the observable effect ('board shows who is on it'). The conflict rule and the 'shared' opt-in differentiate it cleanly from release_lane and update_lane.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear condition for the shared path ('genuine pair work - say so in the Boardroom first') and explains the refusal case, which tells an agent when NOT to claim. It stops short of naming sibling tools like release_lane/update_lane as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_human_actionClear an Operations lane's human actionBIdempotent
Mark a human action resolved once it is done, so the operator's list shrinks without them having to tell you. Clearing is your job, not theirs.
| Name | Required | Description | Default |
|---|---|---|---|
| lane | Yes | Ref (AP-01) or lane id (boardroom). | |
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, idempotent, non-destructive mutation, and the description is consistent with them. It adds the useful effect that the operator's visible list shrinks, but it does not say whether clearing is reversible, whether it requires the action to still be open, or how errors are reported.
Agents need to know what a tool does to the 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, front-loaded with the action and its effect; there is no filler. The closing line about whose job clearing is is motivational rather than operational, but it is short enough not to crowd out the core statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two parameters, the essential operation is covered, but an idempotent mutation should state what happens when there is nothing to clear, and whether the agent can clear another agent's pending human action.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%: agent_id has no description at all, and lane is documented only with an example ref format. The description says nothing about either parameter, not even that lane selects which human action gets cleared, so it does not compensate for the schema 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?
States a concrete verb-and-resource pair: mark a human action resolved. That is clearly distinct from siblings like raise_human_action or claim_lane. It never names raise_human_action, the inverse operation, so the agent must infer the pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"once it is done" gives a trigger condition for clearing. "Clearing is your job, not theirs" tells you who performs the action but not when to skip it, and it never points at raise_human_action or explains what happens if the action is not yet resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickup_actionB
Interact with the ClickUp API v2: list workspaces and spaces, get lists and tasks, create tasks, and update task properties.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Task name (for create_task and update_task). | |
| page | No | Page number for task pagination. | |
| action | Yes | Action: get_workspaces, get_spaces, get_lists, get_tasks, create_task, update_task. | |
| status | No | Task status name. | |
| api_key | Yes | ClickUp API key. | |
| list_id | No | List ID (for get_tasks and create_task). | |
| task_id | No | Task ID (for update_task). | |
| team_id | No | Workspace (team) ID (for get_spaces). | |
| due_date | No | Due date as Unix timestamp in milliseconds. | |
| priority | No | Priority: 1 (urgent), 2 (high), 3 (normal), 4 (low). | |
| space_id | No | Space ID (for get_lists without a folder). | |
| folder_id | No | Folder ID (for get_lists). | |
| description | No | Task description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosing behavioral traits. The description does not mention side effects (e.g., create and update are write operations), authentication requirements beyond the api_key, rate limits, or idempotency. This leaves the agent without critical 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 a single, concise sentence that lists the major actions. It is front-loaded with the API version and clear action categories. However, the phrase 'Interact with' is vague, and a more structured list could be marginally clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 13 parameters and multiple actions, yet the description provides no guidance on action sequencing or parameter dependencies (e.g., need team_id for get_spaces). Lacking an output schema, the description should help the agent understand the logical workflow, but it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 does not add any meaning beyond what the schema already provides for each parameter. It only gives a high-level overview without elaborating on parameter constraints or usage patterns. Thus, it meets the baseline but does not exceed 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 clearly states the tool is for interacting with the ClickUp API v2 and enumerates the key actions (list, get, create, update). It effectively communicates the scope and purpose. However, it could be slightly more specific about the API endpoints and does not differentiate from sibling tools, though the tool name already distinguishes 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?
There is no explicit guidance on when to use this tool versus alternatives. The description implies that it should be used for ClickUp API interactions, but it does not provide context for choosing between actions or when to use other tools. The action enum provides some direction, but the description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
climate_normalsB
Get climate normal projections (mean max/min temp, precipitation) for a location.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude of the location. | |
| longitude | Yes | Longitude of the location. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only lookup via 'Get' and lists returned measures, but does not state whether it is read-only, what permissions are required, rate limits, data source, or temporal 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?
A single front-loaded sentence with no filler; the core action and returned measures are immediately visible. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 identifies the returned variables but omits the temporal scope (e.g., normal period, future projection horizon) and units. This leaves a meaningful gap for climate data, though the tool is otherwise simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 latitude and longitude already documented in the schema. The description adds only 'for a location,' which provides no semantic detail beyond what the schema already says. 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?
The description states a specific verb ('Get') and resource ('climate normal projections') and enumerates the returned measures (mean max/min temp, precipitation). However, it does not differentiate from the many weather- and climate-adjacent siblings such as weather_forecast, historical_weather, or weather_current, so an agent gets a clear purpose but no routing help.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of weather_forecast, historical_weather, or other climate data tools. The phrase 'for a location' implies a basic usage context but provides no conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clockify_actionC
Perform a Clockify action: get_clockify_workspaces, get_time_entries, create_time_entry, get_clockify_projects, get_clockify_summary.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| action | Yes | ||
| api_key | No | ||
| project_id | No | ||
| description | No | ||
| workspace_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only lists action names but does not indicate which actions are read-only (e.g., get_time_entries) vs. write (e.g., create_time_entry), nor does it mention authentication needs, rate limits, or error behavior. The agent lacks critical context to infer side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise, but it merely lists actions without structure or hierarchy. It could be improved by grouping actions by type (read vs. write) or providing a brief example. The shortness does not compensate for lack of useful 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?
Given the tool has 7 parameters and no output schema, the description is woefully incomplete. It does not describe what each action returns, how to construct a valid request, or what the expected behavior is for different parameter combinations. For a multi-action dispatcher, this level of detail is insufficient for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions exist in the schema, and the description adds no meaning. It does not explain what each parameter (e.g., api_key, workspace_id, start, end) does or how they map to the listed actions. The agent cannot determine which parameters are required for each action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Perform a Clockify action' and lists possible actions, indicating it is a generic dispatcher for Clockify operations. However, it lacks specificity about what each action does and why a user would invoke this tool overall. Compared to sibling 'action' tools like github_action, it follows a similar pattern but does not clearly distinguish its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description simply enumerates available actions without explaining context, such as 'Use this when you need to interact with Clockify time tracking.' There is no mention of when not to use it or which sibling tools serve overlapping purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudinary_get_usageCRead-onlyIdempotent
Get Cloudinary usage and quota.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Cloudinary API key | |
| api_secret | Yes | Cloudinary API secret | |
| cloud_name | Yes | Cloudinary cloud name |
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 fully covered elsewhere. The description adds nothing beyond that: no mention that it authenticates with the API key/secret supplied in the call, no disclosure of the reporting period or granularity of the returned usage figures, and no rate-limit or freshness 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?
A single short sentence, front-loaded with the verb and resource, with no filler or repetition. It is efficient, though its brevity borders on under-specification rather than optimal sizing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 ideally would say what the usage/quota response contains (plan limits, storage/bandwidth/transformation breakdown, period), and it does not. For a credential-taking read-only getter with annotations covering safety, it is minimally adequate but leaves an agent guessing at the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (cloud_name, api_key, api_secret) are documented in the schema, so the baseline of 3 applies. The description contributes no additional parameter meaning, such as whether credentials must belong to the same cloud or how secrets are handled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus a named resource ('Cloudinary usage and quota'), so the agent knows it retrieves account consumption data. It is distinct from the only nearby sibling, cloudinary_list_resources, without needing to open a schema, though it does not explicitly name that 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?
No statement of when to call this versus another tool, no prerequisites, no note that credentials are required. The narrow purpose implies usage (checking account consumption against quota), but nothing is stated about frequency, timing, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cloudinary_list_resourcesCRead-onlyIdempotent
List Cloudinary media resources.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Resources to return (max 100, default 25) | |
| prefix | No | Filter by public_id prefix / folder | |
| api_key | Yes | Cloudinary API key | |
| api_secret | Yes | Cloudinary API secret | |
| cloud_name | Yes | Cloudinary cloud name | |
| resource_type | No | image (default), video, or raw |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is fully covered by structured data. The description adds no behavioral context of its own: it does not mention that credentials are required per call, how pagination should be handled (cursor vs limit-only), or what the listing returns. With annotations carrying the safety profile, the description still earns little beyond the one-line restatement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with zero filler. Conciseness is genuinely good; the issue is under-specification, which is scored elsewhere, not verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6-parameter tool with 3 required credential fields and no output schema, so the description should explain the required authentication and how listing and pagination behave. It says nothing about either, leaving the agent to reconstruct the call shape from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit, prefix, resource_type, and the three required credential fields all documented in the schema itself. The description adds no syntax or semantics beyond the schema, so the baseline 3 applies rather than a higher 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 verb and resource: list Cloudinary media resources. It is unambiguous about what the tool does. However, it does not differentiate this tool from its only Cloudinary sibling, cloudinary_get_usage, so the credit stops at clear 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 no guidance on when to use this tool versus cloudinary_get_usage, no mention of what the listing covers (account-wide vs folder-scoped), and no note about how prefix or resource_type narrowing should be applied. The agent must infer usage context entirely from the parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmc_global_metricsC
Get global cryptocurrency market metrics from CoinMarketCap.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as authentication needs, rate limits, data freshness, or return format. Agent cannot infer safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 7-word sentence, front-loaded and without fluff, but it omits important details, making it under-specified rather than efficiently 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?
With no annotations, no output schema, and a single parameter with zero description coverage, the description fails to provide essential context like what metrics are returned, authentication behavior, or data structure. Incomplete for a data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the api_key parameter with 0% description coverage, and the description adds no meaning about the parameter's purpose, optionality, or expected format. Agent gets no 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 specifies a clear verb (Get) and resource (global cryptocurrency market metrics), which distinguishes it from sibling CMC tools like cmc_info, cmc_listings, cmc_quotes, and cmc_trending. However, it does not explicitly differentiate or clarify what 'global metrics' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like cmc_quotes or cmc_listings. No context on prerequisites, required parameters, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmc_infoCRead-onlyIdempotent
Get cryptocurrency metadata from CoinMarketCap.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| symbol | No | ||
| api_key | No |
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 the CoinMarketCap source context but does not mention API-key authentication, rate limits, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately concise, though its brevity leaves important gaps handled poorly in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% schema description coverage, and an external API requiring an api_key, the description is too thin. It does not clarify the return shape, id-vs-symbol behavior, or authentication expectations, leaving the agent with material 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 0% for three parameters: id, symbol, and api_key. The description does not explain whether id and symbol are alternatives, whether either is required, or that api_key is a credential; only the parameter names provide weak 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 clear verb and resource: get cryptocurrency metadata from CoinMarketCap. It does not explain how this differs from sibling tools such as cmc_quotes, cmc_listings, crypto_coin, or coincap_asset_detail, so it misses the sibling-differentiation bar for 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?
There is no guidance on when to use this tool versus alternatives, nor any exclusions. An agent must infer usage from the name and the single sentence, despite many overlapping crypto metadata siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmc_listingsCRead-onlyIdempotent
Get latest cryptocurrency listings from CoinMarketCap.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No | ||
| convert | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is known. The description adds nothing beyond that: no note on API key requirements, rate limits, data freshness, default page size, or what happens when limit is omitted.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though its brevity crosses into under-specification rather than well-judged economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% parameter documentation, and no annotations explaining data semantics, the description should carry more. An agent calling this cannot tell the default result count, whether an API key is mandatory, or how the output relates to cmc_quotes.
Complex tools with many parameters or behaviors need more documentation. Simple 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% — none of the three parameters (limit, api_key, convert) are documented anywhere. The description supplies zero compensation: no default limit, no mention that api_key may be required, no hint at what 'convert' accepts (currency code or symbol).
Input schemas describe structure but not intent. Descriptions should explain 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 latest cryptocurrency listings') from a named source, so the agent knows exactly what it returns. It does not differentiate itself from close siblings such as cmc_quotes, cmc_trending, crypto_top_coins or coincap_assets, so rank ordering versus price quotes versus coin detail is left ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use, when-not-to-use, or alternative is mentioned. In a family with cmc_quotes, cmc_trending, cmc_global_metrics, coinlore_tickers and coincap_assets, an agent has no basis for choosing this tool over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmc_quotesCRead-onlyIdempotent
Get cryptocurrency quotes from CoinMarketCap.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| symbol | No | ||
| api_key | No | ||
| convert | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, open-world, idempotent, and non-destructive behavior, so the safety profile is clear. The description adds only the CoinMarketCap source context; it does not describe authentication needs, rate limits, return shape, or how multiple symbols are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler. It is appropriately concise for a simple quote-fetching tool, though its brevity contributes to the missing usage and parameter context elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four undocumented parameters, 0% schema coverage, and no output schema, the description should carry more detail than it does. It does not explain how to call the tool, what combination of id/symbol/convert is valid, or what a caller should expect 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?
Schema description coverage is 0%, and the description does not explain any of the four parameters. It does not clarify id versus symbol, what convert does, or how api_key should be supplied, so it fails to compensate for the absent 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 clear verb and resource: get cryptocurrency quotes from CoinMarketCap. It is understandable on its own, but it does not differentiate this tool from sibling crypto tools such as cmc_listings, cmc_info, or crypto_price, nor does it clarify whether quotes are for one coin or many.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description does not mention when cmc_quotes is preferable to cmc_listings, cmc_info, cmc_trending, or crypto_price, and it provides no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmc_trendingBRead-onlyIdempotent
Get trending cryptocurrencies from CoinMarketCap.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety and idempotency profile is covered. The description adds only the CoinMarketCap source. It does not disclose auth requirements for api_key, rate limits, whether 'trending' is a fixed window, or how the limit parameter affects 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 a single short sentence with zero wasted words and is front-loaded with the verb and resource. It is efficient, though its brevity contributes to the missing usage and parameter 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 two-parameter read-only tool with annotations and no output schema, the description is minimally adequate. However, it omits any distinction from competing crypto listing/quote/trending siblings and gives no explanation of the two undocumented parameters, so an agent cannot call it confidently without inspecting the schema and guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so neither parameter has documented meaning in the schema. The description does not mention 'limit' or 'api_key' at all, leaving the agent to guess whether limit controls result count and whether api_key is required or optional despite the required-parameters list showing zero required 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 states a specific verb and resource: 'Get trending cryptocurrencies from CoinMarketCap.' This clearly identifies the operation and data source. However, it does not distinguish this tool from nearby siblings such as cmc_listings, cmc_quotes, crypto_trending, or crypto_top_coins, so an agent must infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only implies that this is for 'trending' data and gives no explicit guidance on when to use it instead of cmc_listings, cmc_quotes, crypto_trending, or crypto_top_coins. There are no stated exclusions, prerequisites, or alternative-selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coc_clanC
Get a Clash of Clans clan by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| clanTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only mentions 'Get by tag' but fails to disclose authentication requirements (api_key parameter), rate limits, error handling, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded with the key action. However, it omits necessary details, making it incomplete rather than efficiently 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?
The tool is simple, but with no output schema and missing parameter insights, the description is incomplete. It tells what the tool does but not how to use it correctly or 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?
With 0% schema description coverage, the description should compensate. It vaguely indicates clanTag is the identifier but doesn't specify format (e.g., '#' prefix) or explain the optional api_key parameter at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Clash of Clans clan', and the unique identifier 'by tag'. Among sibling tools like coc_clan_members and coc_player, this tool's purpose is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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, prerequisites (e.g., API key), or alternatives like coc_clan_members. It lacks any context about usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coc_clan_membersCRead-onlyIdempotent
Get members of a Clash of Clans clan.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| clanTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructiveness, so the safety profile is covered elsewhere. The description adds nothing about pagination, member-count caps, result ordering, or authentication beyond the implicit, which is the remaining value it should 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?
One short sentence, front-loaded and free of filler, which is structurally sound. But the brevity comes at the cost of under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should hint at what a member record contains (roles, trophies, donations) and whether the full roster or a capped list is returned. With zero parameter documentation and no return-shape context, an agent has to discover behavior by trial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does not. It never mentions clanTag (no format hint such as the leading '#' or URL-encoding) or what api_key is for, leaving both parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 members of a Clash of Clans clan'), which is clear enough for an agent to know what it retrieves. It does not differentiate from nearby siblings such as coc_clan (which presumably returns clan details) or coc_player, so an agent must guess which of the CoC tools to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus coc_clan, coc_player, or the Clash Royale/Brawl Stars siblings. There is no guidance on prerequisites such as needing a valid clan tag or API key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cocktail_by_ingredientB
Filter cocktails by ingredient (e.g. Vodka, Gin, Tequila).
| Name | Required | Description | Default |
|---|---|---|---|
| ingredient | Yes | Ingredient name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Filter' implies a read operation, but the description does not state whether results are full records or IDs, whether matching is exact or partial, whether the ingredient is case-sensitive, or how many results are 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 a single front-loaded sentence with zero wasted words. It states the operation and the input dimension immediately, which is well-suited to a simple one-parameter filter 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 filter tool with full schema coverage, the core purpose and parameter are covered. However, with no annotations and no output schema, the description should do more to explain expected return behavior and distinguish this tool from its close siblings; it remains minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as 'Ingredient name.' The description adds examples (Vodka, Gin, Tequila) that clarify the expected value domain, but it does not add format or matching semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Filter') and resource ('cocktails') and names the filtering dimension ('by ingredient'), so the agent knows what the tool does. However, it does not distinguish this tool from the similar sibling cocktail_filter_by_ingredient or from the broader cocktail_search, leaving ambiguity when multiple ingredient-based tools exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this tool versus alternatives such as cocktail_search, cocktail_filter_by_category, or cocktail_filter_by_ingredient. It only states the function, so the agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cocktail_categoriesARead-onlyIdempotent
List all cocktail categories from TheCocktailDB.
| 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, so the safety profile is covered. The description adds the data source and the word 'all,' implying a complete unpaginated list, but does not discuss return shape or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word identifies the action, resource, and data origin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with rich annotations and no output schema, the description is largely sufficient. It could add one clause about consuming the returned category names in cocktail_filter_by_category, 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 tool takes zero parameters, so there is no parameter behavior to explain; the baseline for zero-param tools applies. The description correctly does not invent arguments.
Input schemas describe structure but not intent. Descriptions should explain 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 (list cocktail categories) plus the data source, so the agent knows exactly what it returns. It does not explicitly distinguish itself from the similarly named cocktail_filter_by_category, which is the main source of potential confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to call this instead of cocktail_filter_by_category or cocktail_search. Usage is only inferable from the name, and the useful tip that category names can feed cocktail_filter_by_category is not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cocktail_filter_by_categoryC
Filter cocktails by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | e.g. Cocktail, Shot, Punch, Shake |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It conveys only that results are filtered; it does not state read-only behavior, whether the match is exact or case-insensitive, whether an unknown category returns empty or errors, or any result 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?
A single efficient sentence with the action front-loaded and no filler. It is not padded, though it is arguably under-specified rather than optimally 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 one-parameter read tool with a fully documented schema, the description is minimally viable. It still omits sibling differentiation and any behavioral detail, which is a gap given the absence of 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 the single 'category' parameter already documents example values (Cocktail, Shot, Punch, Shake). The description adds nothing beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Filter cocktails by category'), so the basic action is clear. However, it does not distinguish itself from close siblings like cocktail_categories, cocktail_search, or cocktail_filter_by_ingredient, leaving the agent to infer which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus cocktail_search or cocktail_categories. There is no stated context, prerequisite, or exclusion, so routing must be guessed 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.
cocktail_filter_by_ingredientC
Filter cocktails by ingredient.
| Name | Required | Description | Default |
|---|---|---|---|
| ingredient | Yes | e.g. Vodka, Rum, Gin, Whiskey |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it says nothing about whether this is a read-only listing, what it returns, result count, pagination, or whether 'ingredient' matching is exact or partial. A bare 'filter' verb with zero behavioral disclosure is a real gap for an unannotated 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?
A single tight sentence with no filler and the key action front-loaded. It is efficient, though the brevity comes at the cost of the missing guidance captured in other dimensions rather than being genuinely optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with no annotations and no output schema, the description should at minimum indicate the return shape (a list of cocktails/matches) and how it relates to the duplication-prone siblings. Neither is present, so an agent lacks enough to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 supplies an example value ('e.g. Vodka, Rum, Gin, Whiskey'), so the parameter is documented. The description adds no extra meaning such as case sensitivity or partial-match behavior, 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 ('filter cocktails by ingredient'), so the basic action is unambiguous. However, it fails to distinguish itself from the near-identical sibling 'cocktail_by_ingredient' (and from 'cocktail_filter_by_category'/'cocktail_search'), leaving an agent unable to tell which to pick. Clear but not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this rather than cocktail_by_ingredient, cocktail_search, or cocktail_filter_by_category, all of which appear to overlap. No exclusions, prerequisites, or context are given; the agent must infer 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.
cocktail_get_by_idCRead-onlyIdempotent
Get a cocktail/drink by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | TheCocktailDB drink ID |
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 fully covered. The description adds nothing beyond that — no note on what happens with an invalid ID, whether the response is a single object, or how it differs from random/search lookups.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with no filler. It is efficient but borders on under-specified rather than lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, full schema coverage, and only one parameter, the description is close to sufficient for calling the tool. It stops short on return shape (no output schema exists, so a sentence about the drink record would help) and on error behavior for a missing ID.
Complex tools with many parameters or behaviors need more documentation. 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 single 'id' parameter at 100% coverage as the TheCocktailDB drink ID, and the description adds no format, example, or validation detail. Baseline 3 applies because the schema carries all parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a cocktail/drink by ID'), and the 'by ID' qualifier implicitly separates it from search-style siblings. It does not explicitly name cocktail_search or cocktail_random, so an agent must infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative routing is given. The agent is left to guess that this is the right tool when it already holds an ID rather than a name or category, which the sibling set (cocktail_search, cocktail_filter_by_category, cocktail_filter_by_ingredient) makes a real ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cocktail_ingredient_infoBRead-onlyIdempotent
Get details about a cocktail ingredient (description, type, ABV).
| Name | Required | Description | Default |
|---|---|---|---|
| ingredient | Yes | Ingredient name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the result is an ingredient record with description/type/ABV, which is useful, but it says nothing about how an unknown ingredient name is handled or that lookups hit an external service.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with the payload spelled out in parentheses. No waste, though it is terse enough that it under-informs rather than over-informs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 does partially compensate by naming the returned fields. For a simple one-param lookup this is close to adequate, but the omission of failure behavior for unrecognized ingredients leaves a real gap for an openWorld 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?
There is a single parameter with 100% schema description coverage, so the schema already carries the meaning. The description adds nothing about accepted name formats (case sensitivity, brand names, synonyms), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get details about') plus specific resource ('a cocktail ingredient') and even enumerates the returned fields (description, type, ABV). It does not, however, distinguish itself from siblings like cocktail_by_ingredient or cocktail_filter_by_ingredient, which sound similar enough that an agent could pick the wrong one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus cocktail_by_ingredient (ingredient-to-cocktails) or cocktail_search. The agent must infer the distinction from the name alone, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cocktail_randomBRead-onlyIdempotent
Get a random cocktail/drink recipe.
| 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 openWorldHint, so the safety profile is covered. The description adds nothing beyond the name — it does not say what a returned recipe contains, whether the random pick is drawn from a fixed dataset, or whether results can repeat, and the idempotentHint interaction with a random pick is left unclarified.
Agents need to know what a tool does to the 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 short sentence with the intent front-loaded and no waste. It is appropriately sized for a trivial no-arg fetch, though it stops short of being self-sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, annotation-covered read tool this is close to adequate, but with no output schema the agent has no idea what fields a returned recipe carries (ingredients, measures, instructions), which matters for planning follow-up steps.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the schema fully specifies the calling contract and the description has no parameter semantics to add. Baseline 4 applies for a no-argument 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?
States a specific verb and resource: get a random cocktail/drink recipe. It is clearly distinct from cocktail_search or cocktail_get_by_id by the word "random," but it does not explicitly name those siblings as alternatives, so the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for a random pick rather than a lookup, but the description gives no explicit when-to-use or when-not (e.g., "use this instead of cocktail_search when you have no query term"). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cocktail_searchBRead-onlyIdempotent
Search for cocktails/drinks by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
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 only the name-matching angle and does not disclose whether matching is substring or exact, whether results are capped, or how ranked/ordered — small but real gaps given the bar is lower 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 short sentence with the search key front-loaded and nothing redundant. It is efficient, though so terse that it borders on under-specification rather than tight completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations and no output schema, this is close to the minimum viable. Missing are match semantics and result behavior, which an agent would want before choosing this over cocktail_get_by_id or the ingredient filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with one required string 'query', so the schema provides only a bare name. The description maps query to a cocktail/drink name, which is modest but genuine added meaning; it does not clarify casing, partial-match, or multi-word handling.
Input schemas describe structure but not intent. Descriptions should explain 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 for cocktails/drinks') plus the matching key ('by name'), which lets an agent separate it from cocktail_filter_by_category and cocktail_filter_by_ingredient. It stops short of naming those siblings explicitly, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'By name' implies the precondition that the caller already has a drink name, but there is no explicit when-to-use or when-not-to-use guidance against the five other cocktail tools (cocktail_random, cocktail_get_by_id, cocktail_filter_by_category, cocktail_filter_by_ingredient, cocktail_by_ingredient). Usage is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coc_playerC
Get a Clash of Clans player by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| playerTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Get a player'. It does not disclose error handling, authentication requirements, rate limits, or response behavior. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 9 words), but it lacks structure such as parameter details or usage notes. It is appropriate for a simple lookup but too sparse to be maximally helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and two parameters with no description, the description is incomplete. It fails to provide necessary context for an agent to use the tool correctly, especially regarding tag format and authentication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. It does not explain the format of playerTag (e.g., must include '#') or the purpose of api_key. This is a critical 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 clearly states the verb 'Get', the resource 'Clash of Clans player', and the method 'by tag'. It distinguishes from sibling tools like coc_clan and coc_clan_members by specifying 'player'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. The description does not mention scenarios, prerequisites, or exclusions. Given siblings exist, this is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_docsCRead-onlyIdempotent
List your Coda docs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Docs to return (max 100, default 25) | |
| query | No | Filter docs by name | |
| api_token | Yes | Coda API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only the possessive 'your', hinting at token-scoped results, but says nothing about pagination behavior, ordering, or what happens past the 100-doc cap.
Agents need to know what a tool does to the 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 with zero filler. It is efficient, though the extreme terseness means there is no room for the operational detail an agent would benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple, the schema is fully documented, and annotations cover safety, so little is strictly missing for a correct call. However, with no output schema, the description gives no hint of the shape of the returned doc list, and the 100-item cap implicit in the limit parameter is left for the agent to discover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit (max 100, default 25) and query (filter by name) fully documented in the schema. The description adds nothing beyond that, which is the acceptable baseline given the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List ... Coda docs'), which is unambiguous and cleanly distinguishes it from siblings like coda_list_tables and coda_list_rows. It stops short of saying what a 'doc' scope covers or how it differs from any search-style 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?
There is no guidance on when to use this tool versus the sibling list tools, no mention of prerequisites beyond the required token, and no mention of the query/limit filtering options as an alternative path. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_rowsCRead-onlyIdempotent
List rows in a Coda table.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return (max 200, default 25) | |
| doc_id | Yes | Coda doc id | |
| table_id | Yes | Coda table id or name | |
| api_token | Yes | Coda API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond repeating the basic listing action, such as pagination, rate limits, or auth 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 a single front-loaded sentence with no wasted words. It is appropriately concise for a simple list operation, though it is so terse that it provides little structure beyond 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 read-only list tool with full schema coverage and rich annotations, the description is minimally adequate. It does not explain return shape or pagination, but no output schema exists and the essential required parameters are documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema, including the limit default and maximum. The description adds no additional parameter meaning, which is acceptable given the complete schema but earns only 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 verb and resource: "List rows in a Coda table." It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as coda_list_docs or coda_list_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this tool versus alternatives, nor does it mention prerequisites or exclusions. It simply states the operation, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_tablesBRead-onlyIdempotent
List the tables in a Coda doc.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Coda doc id | |
| api_token | Yes | Coda API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered externally. The description adds doc-scoping but says nothing about pagination, error behavior on a bad token/doc_id, or what a returned table entry contains. With annotations carrying the safety story, this is an adequate but thin 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?
A single sentence with no filler, and the resource plus scope are front-loaded. There is nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with full schema coverage and complete safety annotations and no output schema, the description covers what the tool does. The only meaningful omission is that the returned table identifiers are what feed coda_list_rows, which would help an agent chain calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 doc_id and api_token are documented in the schema. The description only restates that tables belong to a doc, adding no format, ID-source, or auth-placement hints beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (List) and resource (tables) scoped to a Coda doc, which separates it from coda_list_docs. However, it never names a sibling or clarifies how it differs from coda_list_rows, which is the immediately adjacent operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites, and no mention of alternatives such as coda_list_docs or coda_list_rows. The agent must infer that this is the step to find table IDs before reading rows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cohere_chatB
Chat with a Cohere Command model. Supports system preamble and conversation history.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID (default: command-r-plus) | |
| api_key | No | Cohere API key | |
| message | Yes | User message | |
| preamble | No | System prompt / preamble | |
| max_tokens | No | ||
| temperature | No | ||
| chat_history | No | JSON array of prior messages [{role, message}] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses support for system preamble and conversation history, indicating statefulness. However, with no annotations, it fails to mention rate limits, authentication requirements beyond api_key, or expected behavior (e.g., streaming, token limits). Adds some value but incomplete.
Agents need to know what a tool does to the 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-loaded with the main purpose. No extraneous information. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chat tool with 7 parameters and no output schema, the description lacks information about return values, error handling, or usage context. Incomplete compared to sibling chat tools that include response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71% (5 of 7 params described). Description reinforces preamble and chat_history parameters but does not clarify api_key, model, max_tokens, or temperature beyond their schema descriptions. Baseline 3 with marginal added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Chat with a Cohere Command model' which clearly identifies the verb and resource. Supports system preamble and conversation history, distinguishing it from non-chat siblings like cohere_classify and cohere_embed. However, could more explicitly differentiate from cohere_generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool over siblings such as cohere_generate, cohere_classify, or other chat tools. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cohere_classifyC
Classify texts into categories using Cohere Classify with few-shot examples.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| inputs | Yes | JSON array of strings to classify | |
| api_key | No | ||
| examples | Yes | JSON array of {text, label} few-shot examples |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether the operation is read-only, authentication requirements, rate limits, or the nature of the response. The minimal description offers no insight beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded with the key action. However, it is so brief that it sacrifices essential details. It earns a 4 for efficiency but loses a point for being too terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters (two required), no output schema, and no annotations. The description does not explain the output format, how to structure the few-shot examples, or what model options exist. Given the complexity of few-shot classification, the description is incomplete and lacks necessary context for effective 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 describes 'inputs' and 'examples' as JSON arrays, but the description adds no further meaning. It does not explain what 'api_key' or 'model' should contain, nor does it elaborate on the format of the few-shot examples. With 50% schema coverage, the description fails to compensate for the 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 clearly states the tool's purpose: 'Classify texts into categories using Cohere Classify with few-shot examples.' It specifies the verb 'classify' and the resource 'texts', and mentions a distinguishing feature (few-shot examples). Among sibling tools like cohere_chat and cohere_embed, this uniquely identifies the classification capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only implies usage with 'few-shot examples' but provides no explicit guidance on when to use this tool versus alternatives (e.g., cohere_generate or cohere_rerank). It does not mention prerequisites like needing an API key or cite any context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cohere_embedC
Create vector embeddings for text using Cohere's embed models.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Embed model (default: embed-english-v3.0) | |
| texts | Yes | JSON array of strings to embed | |
| api_key | No | ||
| input_type | No | search_document, search_query, classification, clustering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description fails to disclose key behavioral traits such as authentication requirements (api_key parameter not mentioned), rate limits, potential costs, or read-only nature. The verb 'create' implies mutation but no confirmation.
Agents need to know what a tool does to the 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 is front-loaded and concise. However, some brevity could be sacrificed for clarity on usage and parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and description does not hint at return format (e.g., vector dimensions). Incomplete for a 4-parameter embedding tool, especially without behavioral 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 75%, but description adds no additional meaning beyond the schema. For example, it does not explain how to format the JSON array for 'texts' or the significance of 'input_type' enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Create vector embeddings'), resource ('vector embeddings'), and provider ('Cohere's embed models'). Differentiates from sibling tools like cohere_chat and cohere_generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives (e.g., cohere_rerank, cohere_classify). Misses opportunity to specify use cases like semantic search or clustering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cohere_generateC
Generate text completions using Cohere Command models.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID (default: command) | |
| prompt | Yes | ||
| api_key | No | ||
| max_tokens | No | ||
| temperature | No | ||
| stop_sequences | No | JSON array of stop strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'generate text completions', missing key traits like authentication requirements (api_key), rate limits, or whether it maintains conversational state. The agent cannot infer important 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 a single concise sentence of 6 words, which is efficient. However, it sacrifices information for brevity; a bit more detail would improve clarity without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 parameters, no output schema, and numerous sibling tools, the description is too brief. It does not cover key aspects like required authentication, parameter roles, or return format, leaving the agent with insufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (model and stop_sequences have descriptions). The description adds no parameter semantics beyond the schema. For low coverage, the description should compensate but fails to explain api_key, prompt, max_tokens, or temperature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'generate' and resource 'text completions', and specifies the model family 'Cohere Command'. It distinguishes from sibling tools like cohere_chat and cohere_classify by focusing on completion rather than chat or classification, but does not explicitly contrast 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 no guidance on when to use this tool instead of siblings like cohere_chat or cohere_rerank. No context about prerequisites or appropriate scenarios is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cohere_list_modelsBRead-onlyIdempotent
List all available Cohere models.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, making the safety profile clear. The description adds nothing beyond the annotations — no note on rate limits, auth requirements, or result shape — but with annotations covering behavior, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with no filler or redundancy. It is front-loaded but arguably too terse — a clause on auth or result content could have been added without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema, the description is minimally viable. The missing pieces — auth expectation for the api_key parameter and any hint of what the model list contains — leave gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter (api_key) is undocumented. The description never mentions authentication or whether an API key may be supplied per call, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list Cohere models) so the agent knows exactly what it returns. The 'Cohere' qualifier differentiates it from the many sibling model-listing tools (openai_list_models, groq_list_models, replicate_list_models), though it doesn't name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites (e.g. does this require an API key?), and no mention of how it relates to siblings like cohere_chat or groq_list_models. The single sentence is pure purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cohere_rerankC
Rerank a list of documents by relevance to a query using Cohere Rerank.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Rerank model (default: rerank-english-v3.0) | |
| query | Yes | ||
| top_n | No | Return top N results | |
| api_key | No | ||
| documents | Yes | JSON array of strings or {text} objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose behavioral traits such as API key dependency, rate limits, error handling, or what happens with invalid input. Only states basic functionality.
Agents need to know what a tool does to the 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, no unnecessary words. Concise but lacks structure; could be improved by front-loading purpose and adding brief usage hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and 60% schema coverage, the description is too minimal. It omits important context like expected input format for documents or return type, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds no extra meaning beyond the input schema. Schema coverage is 60% (moderate), but description does not compensate for undocumented parameters like api_key and 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 clearly states the action (rerank), the resource (list of documents), and the method (using Cohere Rerank). It distinguishes itself from sibling tools like cohere_chat, cohere_classify, 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?
No guidance on when to use this tool vs alternatives (e.g., cohere_embed). No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coincap_asset_detailB
Get detailed crypto asset info (price, volume, market cap) from CoinCap.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset id (e.g. bitcoin, ethereum). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and largely fails it. It says nothing about data freshness/currency, rate limits, authentication needs, or whether the id must be a CoinCap slug; it also implies a return shape without stating it.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with zero wasted words. Slightly terse rather than bloated, but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with no output schema and no annotations, the description covers the essentials but leaves the agent guessing about the returned fields beyond the three named, data currency, and how it differs from coincap_assets/coincap_rates. Adequate but with clear 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 description coverage is 100% and the single 'id' param is documented there with examples ('bitcoin, ethereum'), so the baseline of 3 applies. The description's 'price, volume, market cap' listing describes outputs, not the parameter, adding no semantic value over 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') and resource ('detailed crypto asset info') plus the data categories returned (price, volume, market cap). It is clear what the tool does, though it never names the sibling tools (coincap_assets, coincap_rates) it must be distinguished 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?
Usage is only implied: the required single 'id' parameter and the word 'detail' suggest this is the per-asset lookup counterpart to coincap_assets. There is no explicit when-to-use, no exclusion of sibling endpoints, and no note about when to prefer the many other crypto providers in the catalog.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coincap_assetsARead-onlyIdempotent
List top crypto assets by market cap from CoinCap.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50). | |
| search | No | Filter by asset name or symbol. |
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, covering the safety profile. The description adds only the ranking basis and data source; it does not mention freshness, pagination behavior, or rate limits, which would add value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The verb, resource, and ordering criterion are front-loaded, so an agent immediately sees 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 read-only list tool with two fully described optional parameters and complete safety annotations, the description is mostly sufficient. The remaining gaps, such as return fields, data freshness, and whether pagination applies, are minor for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `limit` and `search` fully documented, including default and max for `limit`. The description adds no syntax, formatting, or behavioral detail for these parameters, so the schema does the parameter work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list crypto assets) plus the ranking criterion (market cap) and source (CoinCap). It does not explicitly distinguish itself from crypto-listing siblings such as coincap_asset_detail or coinlore_tickers, so it is clear but lacks 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 phrase 'List top crypto assets by market cap' implies the usage context, but there is no explicit when-to-use guidance, no exclusions, and no named alternatives among the many crypto tools. An agent must infer that this is for ranked browsing rather than single-asset lookup or exchange rates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coincap_ratesBRead-onlyIdempotent
List crypto and fiat exchange rates from CoinCap.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered structurally. The description adds only the upstream source (CoinCap); it says nothing about base currency, freshness/caching, or that all rates are returned unfiltered, which are the traits an agent would want here.
Agents need to know what a tool does to the 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 short sentence with the resource front-loaded and zero filler. It is efficient but borders on under-specification rather than being tight-but-complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero params, no output schema and solid annotations, the needs are modest, but the description never states what a caller actually gets back (base currency, which fiat/crypto pairs, snapshot vs live). An agent knows the topic but not the shape of 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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline applies. It could have clarified that calling it returns the full rate set with no filtering, but no parameter coverage gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (List) and resource (crypto and fiat exchange rates) plus the data source (CoinCap). It distinguishes itself reasonably from sibling coincap_assets/coincap_asset_detail by focusing on rates rather than asset metadata, though it doesn't explicitly call out that contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pick this over the many other rate tools in the catalog (frankfurter_latest, exchangerate_latest, currency_api_rates, coinlore_tickers, forex_latest). No prerequisites, no exclusions, no alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coin_changeC
Compute minimum coins for a target amount and count distinct combinations.
| Name | Required | Description | Default |
|---|---|---|---|
| coins | Yes | Coin denominations | |
| amount | Yes | Target amount (max 1,000,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about determinism, side effects, error behavior (e.g., unreachable amount), or the shape/format of the returned result, even though it promises two distinct outputs. For a computation tool with zero annotation coverage this is a real 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?
A single efficient sentence with the two operations front-loaded and no filler. It is appropriately sized, though inherently thin given what it omits.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 algorithmic tool with no output schema, stating both outputs is helpful and covers the essentials. It still leaves return format/conventions (order-independence of combinations, behavior on impossible amounts) unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both 'coins' and 'amount' are documented, including the 1,000,000 cap), so the baseline is 3. The description does not add anything beyond the schema, such as whether denomination order or duplicates matter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (coin denominations / target amount) and the two specific computations (minimum coins, count of distinct combinations), which is more than a tautology. It does not, however, differentiate itself from algorithmic siblings like knapsack_solve or combination_calc, leaving the agent to infer 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?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no mention of edge cases (e.g., impossible amounts, duplicate denominations). Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coinlore_coinC
Get detailed info for a specific cryptocurrency from Coinlore.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Coin ID (e.g. 90 for Bitcoin, 80 for Ethereum). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does not state that this is a read-only operation, whether it is rate-limited or authenticated, or what 'detailed info' includes. Only the implicit 'Get' hints at a safe 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?
A single efficient sentence with the verb and resource front-loaded and zero filler. It is appropriately short for a one-parameter lookup, though it leaves no room for the guidance it lacks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool with full schema coverage and no output schema, the description is minimally adequate. It omits what fields 'detailed info' returns and any safety/auth context, but the scope is genuinely small.
Complex tools with many parameters or behaviors need more documentation. Simple 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 id parameter is already documented with concrete examples (90 for Bitcoin, 80 for Ethereum). The description adds nothing 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?
States a specific verb ('Get detailed info') and resource ('a specific cryptocurrency from Coinlore'), so the agent understands it fetches one coin's details by ID. However it does not distinguish itself from close siblings like coinlore_tickers or coinlore_global, which could confuse selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus coinlore_tickers (list all) or coinlore_global (market totals), nor any prerequisites. The agent must infer the single-coin retrieval context purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coinlore_globalB
Get global cryptocurrency market overview from Coinlore.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only fetch but does not state freshness, rate limits, caching, or whether the response is a snapshot vs. a time series. For a no-param data-retrieval tool this is thin.
Agents need to know what a tool does to the 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 with no filler or repetition. It is efficient, though arguably so terse that the conciseness comes at the cost of the guidance the description should have provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 does not hint at what fields the 'global overview' returns (market cap, volume, dominance, etc.), which is the main missing context for a zero-param tool. Source attribution is present, so it is minimally viable but not 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 tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is trivially complete. Baseline 4 applies for a parameterless 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?
States a specific verb ('Get') and resource ('global cryptocurrency market overview') plus the data source (Coinlore). It is understandable on its own, but it does not differentiate itself from siblings like coinlore_coin, coinlore_tickers, cmc_global_metrics, or coinpaprika_global that also return crypto market 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?
No indication of when to use this tool versus the many alternative crypto-market tools in the sibling list, and no prerequisites or exclusions are mentioned. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coinlore_tickersB
List top cryptocurrency tickers with price and market cap from Coinlore.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 100). | |
| start | No | Offset for pagination (default 0). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It implies a read-only listing operation but does not disclose pagination behavior, rate limits, authentication requirements, or return structure beyond two fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It efficiently conveys what the tool does and what it 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 two-parameter listing tool with no output schema, the description covers the core purpose and two returned fields. However, it omits the ranking basis ('top' by what metric?) and does not expand on pagination or output format, leaving some gaps for an agent relying solely on the 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?
The input schema has 100% description coverage for both parameters (limit and start), so the schema already documents their meaning, defaults, and bounds. The description adds no additional parameter semantics, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('top cryptocurrency tickers') along with returned fields ('price and market cap') and source ('Coinlore'). It clearly defines the tool's purpose, though it does not explicitly distinguish it from sibling tools like coinlore_coin or coinlore_global.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention siblings, exclusions, or specific use-case conditions beyond the implied 'top list' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coinpaprika_coinC
Get detailed info about a cryptocurrency from Coinpaprika.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Coin ID (e.g. btc-bitcoin, eth-ethereum) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about rate limits, whether the response is cached/fresh, error behavior for unknown IDs, or what 'detailed info' actually includes. 'Detailed info' is a placeholder, not 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?
One short sentence, front-loaded with the verb. No waste. It is under-specified rather than bloated, so conciseness is fine; the issue is elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param detail-fetch tool with no annotations and no output schema, the description should at least sketch what 'detailed info' returns (price, market cap, supply, links?) or note freshness. As written, an agent cannot predict the response shape or when this beats coinpaprika_ticker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 itself gives the ID format example ('btc-bitcoin, eth-ethereum'). The description adds nothing beyond what the schema already provides, but baseline 3 applies when 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 clear verb+resource ('Get detailed info about a cryptocurrency') but does not differentiate itself from siblings like coinpaprika_ticker, coinpaprika_global, coinlore_coin, or crypto_coin. Nothing tells an agent why it should pick this specific detail tool over the neighboring ticker/global 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 when-to-use guidance, no prerequisites, no mention of alternatives. In a crowded crypto tool namespace (coinpaprika_ticker, coinpaprika_global, coincap_asset_detail, coinlore_coin, crypto_coin, crypto_price), the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coinpaprika_globalB
Get global cryptocurrency market stats from Coinpaprika.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it does little beyond the word 'Get'. It does not state which statistics are returned (market cap, volume, dominance, active currencies), whether the call is cached or rate-limited, or whether any credentials are 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?
One sentence, front-loaded with the verb and resource, with no padding or redundancy. It is efficient, though it is perhaps too terse to be maximally 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?
With no parameters, no annotations, and no output schema, the description is the only source of information about the tool's result, and it never says what the global stats actually include. For a simple no-arg aggregate endpoint this is minimally adequate but leaves the return shape entirely 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 tool takes no parameters, so there is no parameter semantics to document; the baseline for a zero-parameter tool applies. Nothing in the description misleads about arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 global cryptocurrency market stats') and the 'global' qualifier separates it from the coin-level siblings coinpaprika_coin and coinpaprika_ticker. It does not, however, distinguish itself from other global-metrics siblings such as coinlore_global or cmc_global_metrics, so the differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus alternatives, nor any mention of prerequisites or exclusions. The word 'global' implies an aggregate scope over per-coin tools, but the agent must infer that routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coinpaprika_tickerA
Get live price/ticker data from Coinpaprika. Without id, returns top 20.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Coin ID for specific ticker (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the default behavior (top 20 without an id) and implies a read-only operation, but says nothing about rate limits, auth requirements, or the shape/fields of the returned ticker 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?
Two short sentences, zero waste, with the core purpose front-loaded and the default-behavior caveat immediately after. Nothing 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?
For a simple single-optional-parameter read tool with no output schema and no annotations, the description covers purpose and the key default-behavior edge case. It could add a bit more on return fields, but it is largely 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 optional 'id' parameter is already documented. The description adds genuine meaning beyond the schema by explaining the consequence of omitting id (returns top 20), which the schema does not 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?
States a specific verb ('Get') and resource ('live price/ticker data') scoped to Coinpaprika. It is clear what the tool returns, though it does not explicitly differentiate itself from close siblings like coinpaprika_coin or coinpaprika_global, which an agent would have to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'Without id, returns top 20' implies the two usage modes (all tickers vs a single ticker), which is useful context. However, there is no explicit when-to-use guidance or naming of alternatives such as coinpaprika_coin for a specific coin's details, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
collatz_sequenceC
Compute the Collatz (3n+1) sequence for a positive integer.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Positive integer to start the sequence. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses almost nothing: it doesn't say what the result looks like (full term list vs. length vs. peak value), whether the input must be strictly positive or what happens otherwise, or that output size/speed can grow quickly for large inputs. For a zero-annotation tool this is a notable gap, even though the operation itself is a pure read-only computation.
Agents need to know what a tool does to the 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 with zero filler — the resource and its constraint appear immediately. It is efficient, though the brevity leaves no room for the behavioral detail an unannotated tool 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?
The tool is structurally simple (one required numeric param, no nesting, no output schema), so a short description is defensible. Still, with no output schema and no annotations, the description never indicates what is returned or how results scale, which an agent must know to use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented in-schema as 'Positive integer to start the sequence.' The description's 'for a positive integer' merely restates that constraint, adding no syntax, range, or boundary semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compute') and a specific resource ('Collatz (3n+1) sequence'), and even glosses the term so an agent unfamiliar with the name knows exactly what algorithm is involved. It does not, however, distinguish itself from the many adjacent math siblings (e.g. fibonacci_sequence, lucas_theorem), so it lands at 4 rather than 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 gives no guidance on when to call this tool versus the other sequence/number-theory tools in the sibling list, and no prerequisites or exclusions are stated. The only implicit usage cue is the 'positive integer' constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_blendB
Blend two hex colors together, optionally generating a gradient palette.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Number of gradient steps (1-20, default 1). | |
| color1 | Yes | First hex color. | |
| color2 | Yes | Second hex color. | |
| weight | No | Blend weight 0-1 (default 0.5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It conveys the core operation and that gradient output is optional, but says nothing about the return format (single hex vs list), whether the operation is pure/side-effect free, or how steps and weight interact.
Agents need to know what a tool does to the 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 states the operation and the optional extension with zero filler. 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?
With no output schema, the description should clarify what is returned (a blended color, and a palette when steps > 1), but it does not. For a simple four-parameter computation the description is adequate but leaves the output shape and parameter interplay undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (color1, color2, steps, weight) are already documented in the schema with ranges and defaults. The description only loosely implies the steps parameter via 'gradient palette' and adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('blend') and resource ('two hex colors') plus the optional gradient output. Clear on its own, but it does not differentiate from the very similar sibling color_mix, which an agent would need to disambiguate against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus color_mix, color_palette, or colormind_generate_palette, nor any prerequisites or exclusions. The word 'optionally' hints that gradient generation is conditional, but the condition that selects it is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_contrast_ratioC
Check the contrast ratio between two colors.
| Name | Required | Description | Default |
|---|---|---|---|
| background | Yes | ||
| foreground | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits. It does not explain that the contrast ratio is typically related to WCAG accessibility standards, nor does it mention return format, limitations, or side effects. The tool is treated as a black box.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, which is efficient for a simple operation. However, it sacrifices completeness for brevity. It is front-loaded with the action immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of output schema, the description should at least hint at the return value (e.g., a numeric ratio, passes/fails thresholds). It also lacks any context about color spaces or usage scenarios. The tool is simple but the description is insufficient for an agent to fully understand the tool's 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 0%, yet the description adds no information beyond the parameter names (foreground, background). It does not explain that these are expected to be color values in formats like hex, RGB, etc., nor does it provide format requirements or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Check') and the resource ('contrast ratio between two colors'). It distinguishes this tool from siblings like color_convert, color_info, color_mix, and color_palette by using the specific term 'contrast ratio', which is a distinct operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided about when to use this tool versus alternatives. There are no hints about prerequisites, such as needing to know color formats, or when not to use it. The description is a single sentence with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_convertARead-onlyIdempotent
Convert a color from one format into ALL other formats (HEX, RGB, HSL, HSV, CMYK) at once.
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Source format: hex, rgb, hsl, hsv, or cmyk | |
| color | Yes | The color value, e.g. #ff0000 or rgb(255,0,0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds genuinely new behavioral information: the tool emits every target format simultaneously and enumerates them, which matters because there is no output schema. It stops short of describing the result structure (e.g., how each format is keyed).
Agents need to know what a tool does to the 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 action and then the payoff (all formats at once), with the format list parenthetical at the end. 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 trivial two-parameter pure-function converter with full schema coverage and annotations covering safety, the description supplies what is missing: which formats come back. Only the shape of the returned object and error behavior for malformed input are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both a `from` enum-like list of source formats and an example value for `color`, so the schema already explains the inputs. The description's format list overlaps with the schema rather than adding syntax or validation guidance, which is the correct baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Convert) and resource (a color) and states the scope of the output: all formats at once, enumerated as HEX, RGB, HSL, HSV, CMYK. That scope wording implicitly distinguishes it from single-format siblings such as color_hex_convert, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "ALL other formats at once" implies the usage condition (when you want every representation rather than one), but the description never says when NOT to use it or points to an alternative. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_hex_convertBRead-onlyIdempotent
Convert a hex color to RGB and HSL values.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex color code (e.g. #FF5733 or FF5733). |
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 no further behavioral details such as invalid-input handling, alpha support, or output shape, so it earns only baseline credit.
Agents need to know what a tool does to the 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 with no filler. It is appropriately sized for a simple conversion 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 trivial, annotation-covered conversion tool with a fully documented single parameter, the description gives purpose and output formats. Only output structure and error behavior are omitted, which 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 description coverage is 100%, and the single hex parameter is documented with examples including the optional '#'. The description does not add format or constraint information beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Convert a hex color') and names the output formats RGB and HSL, so the operation is clear. It does not distinguish this tool from the similar sibling color_convert or from color_info, 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?
Gives no guidance on when to choose this over color_convert, color_info, or color_name_lookup, and does not mention input constraints or alternatives. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_infoCRead-onlyIdempotent
Get information about a color (name, complementary, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | ||
| format | No |
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 fully covered by structured data. The description adds no behavioral context beyond a loose hint that complementary colors are returned; it does not describe the response shape, whether the lookup depends on an external service succeeding, or format 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?
A single short sentence with no filler, front-loading the operation. It is terse to the point of under-specification rather than redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two entirely undocumented parameters and no output schema, the description does far too little: it neither disambiguates the 'format' parameter nor routs the agent against the crowded set of color siblings. An agent cannot call this correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters. The description implies 'color' accepts a color value but gives no syntax (hex, name, rgb?), and the 'format' parameter is never mentioned at all, leaving its accepted values completely unknown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb (get) and resource (information about a color) and gives examples of returned fields (name, complementary). However, the trailing 'etc.' is vague and nothing distinguishes it from color_convert, color_name_lookup, color_hex_convert, or thecolorapi_id, all of which plausibly return color information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to prefer this tool over the many color siblings, no prerequisites, and no exclusions. The agent must infer the distinction purely from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colormind_generate_paletteC
Generate an AI-powered 5-color palette using Colormind.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Optional 5-element array of [R,G,B] or 'N' for colors to lock/generate | |
| model | No | Color model to use (default: default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the palette size (5 colors) but omits any behavioral context: whether the call is non-mutating, whether there are rate limits on the Colormind service, or how the color-locking mechanism influences output. For a zero-annotation tool this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is efficient, though it is arguably too terse for a tool with no annotations to compensate for the missing behavioral 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?
With no annotations and no output schema, the description must carry more weight than it does. It correctly signals the 5-color output and Colormind dependency, but omits how the input locking works in practice and how to discover valid model values, leaving the agent to infer these from the schema and sibling 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 both parameters (input array and model) are already documented in the schema. The description's '5-color' phrasing loosely corroborates the 5-element input array but adds no syntax or semantics beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (5-color palette) and names the provider (Colormind), which helps distinguish it from generic palette siblings like color_palette or colr_random_palette. However, it does not explicitly differentiate itself from the closely related colormind_list_models sibling or explain why one would choose this over other palette generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of prerequisites, and no reference to alternatives such as colormind_list_models (for discovering valid model values) or other palette tools. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colormind_list_modelsBRead-onlyIdempotent
List available Colormind color models.
| 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, covering the safety profile. The description confirms the operation returns the set of supported models, which is useful context, but adds nothing about freshness, availability, or the shape of each model entry.
Agents need to know what a tool does to the 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 with no filler. It is appropriately sized for a trivial lister, though it could have used the same space to add one routing hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters, no output schema and annotations covering safety, the definition is close to sufficient — but the description never says what a returned model looks like (name vs. identifier) or that these values feed colormind_generate_palette, which is the only real context 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?
Zero parameters at 100% schema coverage; there is nothing to document and the description correctly implies no inputs. Baseline 4 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?
Specific verb ('List') plus resource ('Colormind color models'), so the agent knows exactly what it returns. It doesn't explicitly contrast with the nearest sibling colormind_generate_palette, but the 'list models' framing 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?
No statement of when to call this versus colormind_generate_palette, and no indication that the returned model names are meant as input to palette generation. The agent must infer the discovery-then-use workflow from the names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_mixC
Mix two colors together.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | ||
| color1 | Yes | ||
| color2 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description fails to disclose any behavioral traits: what mixing entails (e.g., additive, subtractive), output format, or side effects. Extremely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single short sentence, making it concise. However, it is under-specified; a slightly longer description could convey essential details without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 or annotations, the description must provide complete context. It fails to explain what 'mix' means, what the output is, or how ratio affects the result. Incomplete for effective 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?
Schema description coverage is 0%. Description adds no meaning to parameters beyond their names. 'Mix two colors together' does not clarify the role of the ratio parameter or expected input formats (e.g., hex codes, RGB).
Input schemas describe structure but not intent. Descriptions should explain 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 verb+object: 'Mix two colors together.' It clearly indicates the tool combines colors, which is specific and distinguishes from siblings like color_info or color_convert, but does not explicitly differentiate from similar tools like color_palette.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like color_convert or color_palette. Lacks context about use cases, prerequisites, or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_name_lookupARead-onlyIdempotent
Find the closest named color for a hex code.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex color code (e.g. 'ff5733' or '#ff5733'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral meaning with 'closest,' indicating an approximate nearest-name match rather than an exact naming lookup, but does not describe the result format or matching method.
Agents need to know what a tool does to the world before calling 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. Every word contributes to identifying the operation and the input.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and clear annotations, the description is nearly complete. It could mention the return value slightly more explicitly, but 'Find the closest named color' already implies the output.
Complex tools with many parameters or behaviors need more documentation. Simple 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 hex parameter is fully documented with examples. The description only restates that the input is a hex code, so it meets but does not exceed the baseline when the schema already carries parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find') and resource ('closest named color') keyed to a hex code, so an agent can understand what it does. It does not name related siblings like color_info or color_convert, 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?
Usage is implied: use this when you have a hex code and want a human-readable color name. There is no explicit guidance on when to choose this over color_info, color_convert, or color_hex_convert.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_name_randomARead-onlyIdempotent
Get a random named color with its hex code and name.
| 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 useful return-field information (hex code and name) but does not describe the source or range of colors, selection behavior, or output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted text. The purpose and returned values are communicated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-parameter random color tool with no output schema, the description says enough: a random named color with hex code and name. It could add minor detail about the color source or output shape, 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 tool has zero input parameters, so there is no parameter semantics burden. The baseline score for a no-parameter tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get a random named color'. It also states the returned fields ('hex code and name'), which is enough to distinguish it from lookup-oriented siblings such as color_name_lookup or color_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?
Usage is only implied by the word 'random'; the description does not explicitly say when to use this versus color_name_lookup, color_info, or palette tools. For a simple random generator that may be adequate, but no explicit alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_paletteC
Generate a color palette from a base color.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | complementary, analogous, triadic, etc. | |
| color | Yes | ||
| count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as output format (e.g., hex codes), algorithm used, or any constraints. The single sentence is insufficient for a generation 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 very concise (one sentence), but it is too brief to be helpful. It does not convey essential information that would justify its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three parameters, no output schema, and no annotations, the description is incomplete. It fails to explain the output, parameter constraints, or return values, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), and the description adds no meaning beyond the schema. It does not specify expected color format, default count, or valid types beyond what is in the type parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (generate) and resource (color palette) and the input (base color). It is not a tautology but lacks distinction from sibling color tools like color_convert or color_mix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like color_info, color_mix, or color_contrast_ratio. The description does not provide any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colr_random_paletteBRead-onlyIdempotent
Get a random color palette from colr.org.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that results are random and sourced from colr.org, but it does not explain return structure, rate limits, or how randomness behaves on repeated calls.
Agents need to know what a tool does to the world before calling 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. Every word contributes to identifying the action, result, and source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-argument, read-only tool this is close to sufficient, but because there is no output schema, the description could say more about the returned palette format. It is enough to identify the tool but leaves the return shape 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 tool takes zero parameters, so parameter semantics are not applicable. The empty schema is fully specified, and the baseline score for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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, 'random color palette', and names the external source colr.org. It is clear what the tool does, though it does not explicitly distinguish itself from nearby palette tools such as colormind_generate_palette or color_palette.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives like color_palette, colormind_generate_palette, or color_name_random. The description implies random retrieval but provides no prerequisites, exclusions, or routing criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
combination_calcARead-onlyIdempotent
Calculate the number of combinations C(n,r) - unordered selections.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Total number of items. | |
| r | Yes | Number of items to choose. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, which fully characterize a pure deterministic calculation. The description adds no behavioral context such as edge-case handling (r > n, zero/negative values, fractional inputs), so it does the minimum beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler that names the operation, its notation, and its semantic character (unordered). Nothing could be removed 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?
For a two-parameter pure math function with fully documented params, rich safety annotations, and no output schema needed, the description is nearly sufficient. The only omission is edge-case/domain behavior for invalid inputs, which is a minor gap given the complete 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% — n and r are both documented ('Total number of items', 'Number of items to choose') — so the baseline is 3. The C(n,r) notation in the description reinforces the mapping but adds no 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 (Calculate) and resource (number of combinations C(n,r)), and the qualifier 'unordered selections' semantically separates it from the ordered counterpart permutation_calc. An agent can identify the operation 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?
Usage is only implied: an agent infers it should call this when it needs C(n,r). There is no explicit when-to-use, no mention of permutation_calc as the alternative for ordered selections, and no stated preconditions (r <= n, non-negative integers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comment_onComment on a todo or ideaB
Adds a comment to a Boardroom todo or idea. Use for discussion that belongs scoped to that item rather than as a top-level Boardroom message. target_kind is 'todo' or 'idea'. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Comment body (max 4000 chars) | |
| agent_id | Yes | ||
| target_id | Yes | ||
| target_kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, non-idempotent write (readOnlyHint=false, idempotentHint=false), and the description adds no behavioral detail on top: it says nothing about duplicate comments on repeat calls, whether edits/deletes are possible afterward, or what the call returns. The only added text (target_kind values, agent_id required) is schema content, not 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 short sentences, front-loaded with the action and routing rationale. Reasonably tight, though the closing "agent_id required" restates a required field already visible in the schema and earns little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 write tool with annotations covering the safety profile and no output schema, the description is adequate but thin: it omits how to obtain or format target_id and whether repeated calls duplicate the comment (relevant given idempotentHint=false). Those gaps matter more than return-value documentation, which is excused here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, and the description repeats what the schema already says (target_kind enum values, agent_id required) rather than filling the gap. target_id — a required parameter with no schema description — is left completely undefined, as is the 4000-char body limit already noted only 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?
States a specific verb and resource ("Adds a comment to a Boardroom todo or idea") and implicitly distinguishes itself from the top-level message tool by contrasting scoped discussion against a Boardroom message. The sibling (post_message) is described but not named directly, so differentiation is not fully 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?
"Use for discussion that belongs scoped to that item rather than as a top-level Boardroom message" gives a clear selection condition against the alternative. No negative case is given (e.g., what target_kind values are invalid or when commenting is the wrong escalation path), so it stops 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.
commonsensepass_checkA
Run the verdict-only CommonSensePass sanity gate before a worker claims healthy, quiet, no_work, pass, done, merge_ready, duplicate_wake, or route.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | Worker claim to sanity-check. | |
| context | Yes | Evidence packet for the claim, such as todos, active_jobs, PR state, wake state, SHAs, or lane evidence. | |
| evidence | No | Optional evidence entries to echo when no rule-specific evidence is available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, and 'verdict-only' is a genuinely useful disclosure about return shape (a verdict without supporting evidence). However it says nothing about read-only vs. mutating behavior, side effects, permissions, or what happens when the gate fails.
Agents need to know what a tool does to the 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 with no filler, and the verb leads. It is slightly dense with domain jargon ('verdict-only', 'sanity gate') that could cost the agent a beat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, and the description does not describe the verdict format, failure behavior, or how the nested context/evidence packet is consumed. For a gate tool with nested-object params and no structured behavioral coverage, the description is too thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 claim, context, and evidence thoroughly. The description adds no parameter-level meaning beyond repeating the claim enum values, 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 ('Run') and resource ('CommonSensePass sanity gate') and enumerates the exact claims it validates, so its role is clear. It does not explicitly differentiate itself from the closely-named siblings commonsensepass_rules and commonsensepass_protocol, 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?
It gives a clear timing cue ('before a worker claims healthy, quiet, no_work, pass, done, merge_ready, duplicate_wake, or route'), which tells the agent exactly when to invoke it. What it lacks is any exclusions or pointers to the sibling rules/protocol tools for the cases this gate does not cover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commonsensepass_protocolCommonSensePass protocolARead-onlyIdempotent
Returns the canonical CommonSensePass worker sanity-gate playbook. Call this when a worker needs to decide if a healthy, no_work, done, merge_ready, pass, quiet, or duplicate_wake claim makes sense.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior. The description adds that the output is a canonical playbook, but does not describe its structure, size, or whether it is static, so it adds only moderate 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, front-loaded with the core action, and the usage condition follows immediately. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero-parameter, read-only tool with no output schema, the description is largely complete: it says what is returned and when to call it. The main missing context is how it relates to overlapping siblings like commonsensepass_check and commonsensepass_rules.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there are no parameter semantics to clarify. The baseline for a no-parameter tool is 4, and the description correctly implies no input 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?
States a specific verb and resource: returns the canonical CommonSensePass worker sanity-gate playbook. The purpose is clear, but it does not distinguish this tool from siblings like commonsensepass_check or commonsensepass_rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition: call when a worker needs to decide whether a listed claim type makes sense. It enumerates claim states, which helps, but does not mention when to use alternatives such as commonsensepass_check or commonsensepass_rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commonsensepass_rulesB
Return the worker-readable CommonSensePass rules, verdict vocabulary, and fixture ids. Set include_fixtures=true for full example packets.
| Name | Required | Description | Default |
|---|---|---|---|
| include_fixtures | No | Include full deterministic worker fixture packets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It implies a read-only lookup but does not state whether the rules are static or refreshed, whether any auth/workspace context is needed, or how large the fixture packets are when include_fixtures=true.
Agents need to know what a tool does to the 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 the main return content front-loaded and the optional flag instruction second. 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?
With no output schema, the description usefully enumerates the return contents (rules, verdict vocabulary, fixture ids) and explains the flag. However, for a rules/protocol helper sitting among several similarly named siblings, it omits any usage context that would help an agent deploy 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 there is only one parameter, so the baseline would be 3. The description goes slightly beyond the schema by explaining the intent of the flag ('for full example packets'), clarifying when an agent should enable 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?
States a specific verb ('Return') and concrete resources: CommonSensePass rules, verdict vocabulary, and fixture ids. It is clear what the tool yields, but it does not distinguish itself from the closely named siblings commonsensepass_check and commonsensepass_protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus commonsensepass_check or commonsensepass_protocol, nor any prerequisites. The only conditional hint is about the include_fixtures flag, not about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_todoMark a Boardroom todo doneAIdempotent
Shortcut for marking a todo as done. Sets status='done' and stamps completed_at. Posts a 'todo-completed' Boardroom event. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| todo_id | Yes | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency and non-destructiveness, and the description adds concrete side-effect detail: setting status='done', stamping completed_at, and posting a 'todo-completed' Boardroom event. That event side effect is valuable context not present in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action before the side-effect details. Efficient with little waste, though the terse 'agent_id required' fragment is slightly abrupt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param mutation with annotations and no output schema, the description covers action, side effects, and the event emission. Nothing critical is missing beyond richer per-parameter 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 is 0%, so the description must carry parameter meaning. It explicitly notes agent_id is required and implicitly identifies todo_id ('a todo'), but explains neither the semantics of agent_id nor its role, leaving a gap at 0% 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 and resource: 'Shortcut for marking a todo as done.' This clearly distinguishes it from list/read siblings. It implies differentiation from update_todo via 'shortcut' but doesn't explicitly name it, so it falls just short of 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 word 'shortcut' hints that this is a convenience wrapper versus a general update, but there is no explicit statement of when to use this over update_todo or when not to. Usage 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.
complex_calcC
Complex number arithmetic: add, subtract, multiply, divide, magnitude, conjugate, or polar conversion.
| Name | Required | Description | Default |
|---|---|---|---|
| imag1 | Yes | Imaginary part of first complex number. | |
| imag2 | No | Imaginary part of second complex number (for binary ops). | |
| real1 | Yes | Real part of first complex number. | |
| real2 | No | Real part of second complex number (for binary ops). | |
| operation | Yes | Operation: add, subtract, multiply, divide, magnitude, conjugate, or polar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about return format (e.g., what 'polar' returns, whether magnitude returns a scalar while add returns a pair), error behavior for divide-by-zero, or which fields are ignored for unary operations. 'Complex number arithmetic' conveys the domain but not the 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?
A single, front-loaded sentence with no filler; the operation list is compact. It is efficient, though slightly redundant with the schema enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should ideally explain return shapes (particularly for the heterogeneous operations like polar vs conjugate vs divide). For a 5-parameter tool spanning scalar- and pair-returning operations, the description is minimally adequate but leaves the agent guessing about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a per-property description and the same operation enum, so the baseline of 3 applies. The description's operation list is redundant with the schema's operation field and adds no new parameter semantics (e.g., it never clarifies that imag2/real2 are optional and only used for binary ops).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (complex numbers) and enumerates the exact operations performed, so an agent knows precisely what the tool computes. It does not distinguish itself from the many other math/calculator siblings (matrix_operate, polynomial_ops, gcd_lcm_calc), but the verb+resource pairing is 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?
There is no guidance on when to choose this tool over alternatives or on preconditions (e.g., that imag2 is only meaningful for binary operations, or that magnitude/conjugate operate on a single number). The agent must infer usage entirely from the enumeration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliancepass_report_jsonB
Fetch the full JSON CompliancePass readiness report for a completed in-session run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The CompliancePass run id returned by compliancepass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure burden. 'Fetch' implies a read-only operation, but there is no mention of authentication needs, error behavior, report availability, or other operational traits.
Agents need to know what a tool does to the 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 with no wasted words. It communicates the core purpose, format, and scoping condition 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?
Without an output schema, the description should ideally say more about the returned report's contents, and with no annotations it could disclose more behavior. It is adequate for a simple fetch but leaves clear 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 description coverage is 100% and the run_id parameter is fully described in the schema as the ID returned by compliancepass_run. The description adds no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Fetch), resource (full JSON CompliancePass readiness report), and scope (completed in-session run). The JSON format implicitly distinguishes it from the sibling compliancepass_report_md, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the run must be completed and the run_id comes from compliancepass_run, giving some usage context. However, it does not state when to choose this over alternatives like compliancepass_report_md or compliancepass_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliancepass_report_mdA
Fetch a Markdown CompliancePass readiness report for a completed in-session run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The CompliancePass run id returned by compliancepass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the 'completed in-session run' precondition, which is genuinely useful, but omits whether the report is generated on demand, what happens if the run is incomplete, and any auth or retention 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?
A single front-loaded sentence with zero filler; the resource and format are stated before the qualifying condition. Nothing could be removed 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 simple one-parameter fetch with no output schema, the description identifies the format and scope of the returned artifact sufficiently for an agent to call it. It falls short only on edge cases such as incomplete runs or report-generation failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 run_id parameter is documented as coming from compliancepass_run. The description adds only the vague 'in-session run' phrasing, adding little 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?
States a specific verb (Fetch), resource (CompliancePass readiness report), and output format (Markdown). The 'Markdown' qualifier implicitly distinguishes it from the sibling compliancepass_report_json, but the description never names that alternative 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?
Adds a qualifying precondition ('for a completed in-session run'), which implies when the tool applies, and the sibling JSON report is indirectly implied by the format. However, it does not state when to prefer the JSON variant, nor what to do if the run is not yet complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliancepass_runC
Run CompliancePass against a local repo path. Returns evidence-backed readiness guidance, gaps, next actions, and an in-session run id. Historical EnterprisePass references are treated as this same product.
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | No | Local repository path to scan. Defaults to the MCP server working directory. | |
| target_sha | No | Optional PR or commit SHA for receipt staleness checks | |
| target_name | No | Human-readable target name for the report. Defaults to UnClick. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses some return content, including gaps, next actions, and an in-session run id, but it does not state whether the scan modifies the repository, what permissions are needed, or how runs are scoped or repeated.
Agents need to know what a tool does to the world before calling 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 and front-loaded, starting with the action and then summarizing the return value. The historical EnterprisePass sentence is brief and earns its place by clarifying product aliasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a run tool with no output schema, the description usefully enumerates expected outputs and notes product aliasing. However, with no annotations and many related report/status siblings, it remains incomplete on side effects, permissions, and when to choose this tool over the 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 description coverage is 100%, so the schema already documents all three parameters. The description mentions the local repo path but adds no format, default, or semantic detail beyond the schema for repo_path, target_sha, or target_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: run CompliancePass against a local repo path. It clearly states the product scope, but it does not distinguish this tool from siblings such as compliancepass_status, compliancepass_report_json, or compliancepass_report_md.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies the tool is used to run CompliancePass against a local repository, but it provides no explicit when-to-use guidance, no prerequisites, and no alternatives to consider. The EnterprisePass alias note is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliancepass_statusB
Fetch the stored in-session status and summary for a CompliancePass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The CompliancePass run id returned by compliancepass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the result is live or a snapshot, what the status values can be, whether it errors for an unknown/expired run_id, or any auth/session requirements — leaving the behavioral envelope largely unstated for a no-annotation 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?
A single tight sentence with no filler and the resource front-loaded after the verb. There is no structural flourish, but none is needed for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only source of behavioral context, and it says only that status and a summary are returned. It is adequate for invocation but silent on failure modes, status enumerations, and how it relates to the run/report 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% and the single run_id parameter is already documented as coming from compliancepass_run. The description only restates that the run is the target, adding no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch') and resource ('stored in-session status and summary for a CompliancePass run'). It distinguishes itself from the report siblings by emphasizing in-session status, though it never names compliancepass_run or the report tools 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?
'In-session' and 'stored' imply this is the polling/inspection tool for a run already started via compliancepass_run, which is a usable hint. But there is no explicit when-to-use statement, no mention that the run_id comes from compliancepass_run, and no contrast with compliancepass_report_json/md.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_pageBRead-onlyIdempotent
Get a Confluence page by id, including its body.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Atlassian site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| page_id | Yes | Confluence content/page id | |
| api_token | Yes | Atlassian API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds value by noting the body is returned, but it omits the body representation (storage vs. view format), permission requirements for private pages, and whether pagination or size limits apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized for a simple read tool, though it could have used one more clause for alternatives without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should carry more of the burden of describing what 'body' means (format, truncation). Annotations cover safety and the schema covers all params, so it is usable, but the return-shape gap is notable for a content-retrieval 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 all four parameters (site, email, api_token, page_id) are documented in the schema itself. The description adds nothing beyond restating that lookup is keyed by id; 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?
Specific verb+resource: 'Get a Confluence page by id, including its body' tells the agent exactly what is fetched and that body content is included. It does not differentiate itself from the sibling confluence_search, but the name/description pair is unambiguous about 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?
Usage is only implied: 'by id' suggests the caller already knows the page id, which implicitly routes unknown-id lookups to confluence_search, but the description never states this or names the alternative. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_list_spacesCRead-onlyIdempotent
List Confluence spaces.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Atlassian site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| limit | No | Spaces to return (max 100, default 50) | |
| api_token | Yes | Atlassian API token |
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 fully covered structurally. The description adds nothing beyond that — no mention of result ordering, pagination behavior for the limit parameter, or that all three credential fields are mandatory on every call.
Agents need to know what a tool does to the 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 with zero padding or redundancy. It is arguably too terse given the tool's auth and pagination surface, but nothing in it wastes 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 read-only list operation with full schema coverage and rich annotations, plus no output schema to explain, the essentials are covered structurally. Still, nothing tells the agent what a 'space' key looks like or that three credential arguments are required, which would have closed the loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each of the four parameters including limit (max 100, default 50) is documented in the schema itself. The description contributes no additional parameter 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 pairs a specific verb (List) with a specific resource (Confluence spaces), so the operation is unambiguous. It does not distinguish itself from the two other Confluence tools in the sibling list (confluence_search, confluence_get_page), so the agent gets no routing help beyond the 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?
There is no statement of when to use this tool versus confluence_search or confluence_get_page, and no prerequisite or auth context beyond the raw schema. The agent must infer that 'list' means browsing space-level containers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_searchCRead-onlyIdempotent
Search Confluence pages by text.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Atlassian site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| limit | No | Results to return (max 50, default 25) | |
| query | Yes | Text to search for | |
| api_token | Yes | Atlassian API token |
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 safety is covered. The description adds nothing beyond that — no note on auth setup (site/email/api_token are required), result ordering, pagination, or rate limiting.
Agents need to know what a tool does to the 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 with no padding, but its brevity comes from omission rather than disciplined editing — there is room for one routing sentence without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 required auth parameters, the description should at least hint at credential expectations and what a hit contains. For a search tool in a crowded sibling set, one sentence is not enough to call it correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all five parameters, so the schema carries the semantic load (site, email, api_token, query, limit with max 50/default 25). The description's 'by text' only loosely gestures at the query parameter, adding nothing new. 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?
Specific verb (Search) plus resource (Confluence pages) with the matching criteria (by text). It reads clearly apart from confluence_get_page and confluence_list_spaces, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to search versus when to fetch a known page (confluence_get_page) or browse spaces (confluence_list_spaces), and no mention of prerequisites or limits. The agent must infer routing from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contentful_get_entryBRead-onlyIdempotent
Get a single Contentful entry by id.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | Entry id | |
| space_id | No | Contentful space id (can be a saved default) | |
| environment | No | Environment (default master) | |
| access_token | Yes | Contentful Content Delivery API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already fully declare the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the description has a lower bar. It still adds nothing beyond them: no note that space_id/environment determine which entry is resolved, that environment defaults to master, or what the response shape is. For a cross-space, open-world fetch this is thin.
Agents need to know what a tool does to the 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 short sentence, front-loaded with verb and resource, and every word carries meaning. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 by-id fetch with full schema coverage and complete annotations, the essentials are covered. Since there is no output schema, the description could have said what an entry object looks like or noted that space/environment scoping applies, leaving a modest 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 all four parameters including access_token, space_id, and environment are documented in the schema. The description only restates the entry_id parameter, adding no semantics beyond what structured data already provides; 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 ('Get') and resource ('Contentful entry') with the identifying key ('by id'). This implicitly contrasts with the sibling contentful_list_entries, but the description never names that sibling or otherwise explicitly delineates the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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' implies the prerequisite (you must already have an entry id, so this is a follow-up call rather than a discovery call). However, there is no explicit when-to-use/when-not guidance and no mention of contentful_list_entries as the alternative for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contentful_list_assetsCRead-onlyIdempotent
List Contentful media assets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Assets to return (max 100, default 25) | |
| space_id | No | Contentful space id (can be a saved default) | |
| environment | No | Environment (default master) | |
| access_token | Yes | Contentful Content Delivery API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: no pagination behavior, no note that the limit defaults to 25 and caps at 100, and no indication of whether a space must be pre-configured as a saved default.
Agents need to know what a tool does to the 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 with zero filler. It is efficient, though its brevity is also the source of the missing context rather than a virtue in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 authenticated listing tool with no output schema, the description omits too much: required token/space configuration, pagination behavior, and what an asset record looks like are all left to the schema or guesswork. Annotations cover safety but not operational 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 limit, space_id, environment, and access_token are all documented in the schema itself. The description contributes no additional parameter semantics, which meets the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("List Contentful media assets"), which is unambiguous on its own. It does not, however, distinguish itself from the sibling Contentful tools (contentful_list_entries, contentful_list_content_types), leaving the agent to infer that "assets" means media files rather than entries or content types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus contentful_list_entries or contentful_get_entry, and no mention of prerequisites such as needing a space_id or environment. The only usage signal is the tool name itself, which is not the description doing work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contentful_list_content_typesBRead-onlyIdempotent
List Contentful content types (the content model).
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | No | Contentful space id (can be a saved default) | |
| environment | No | Environment (default master) | |
| access_token | Yes | Contentful Content Delivery API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Rich annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description is not expected to restate safety. However, it adds almost no behavioral context beyond the parenthetical 'the content model' — it does not explain pagination, default space/environment handling, or auth requirements beyond what the schema shows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. It captures the operation and resource immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with full schema descriptions, rich read-only annotations, and no output schema, the description is nearly complete. Minor gaps remain around pagination and default space/environment behavior, 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 description coverage is 100%, so the schema fully documents space_id, environment, and access_token. The description adds no parameter-level meaning beyond the schema, which matches the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (Contentful content types), and clarifies that this is the content model. It implicitly distinguishes itself from sibling tools dealing with entries and assets, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 contentful_list_entries or contentful_list_assets, nor any mention of prerequisites such as space/environment selection. The purpose implies a listing operation, but no conditions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contentful_list_entriesBRead-onlyIdempotent
List Contentful entries, optionally filtered by content_type or full-text query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Entries to return (max 100, default 25) | |
| query | No | Full-text search query | |
| space_id | No | Contentful space id (can be a saved default) | |
| environment | No | Environment (default master) | |
| access_token | Yes | Contentful Content Delivery API token | |
| content_type | No | Filter to one content type id |
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 the filtering behavior but says nothing about pagination, space/environment scoping, or auth needs beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is efficient, though it could carry a bit more guidance without loss of 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 6-parameter listing tool with full schema coverage and annotations, the description is adequate but thin: it omits return format, pagination behavior (limit exists), and space/environment defaults, leaving the agent to rely entirely on 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 all six parameters (limit, query, space_id, environment, access_token, content_type) are already documented. The description merely restates content_type and query at a high level without adding syntax or format detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'List' and resource 'Contentful entries', plus the two filter axes. It implicitly distinguishes itself from contentful_get_entry (single) by being a listing tool, though it does not name siblings 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 phrase 'optionally filtered by content_type or full-text query' implies usage contexts, but there is no explicit when-to-use guidance and no reference to the alternative contentful_get_entry for single-entry retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
continued_fractionC
Convert a rational number to its continued fraction representation with convergents.
| Name | Required | Description | Default |
|---|---|---|---|
| max_terms | No | Maximum number of terms (default 50) | |
| numerator | Yes | Numerator of the rational number | |
| denominator | Yes | Denominator of the rational number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It hints that output includes convergents, which is useful, but says nothing about how max_terms affects truncation of the expansion, edge cases (e.g. denominator zero), or the return structure. Significant gaps for a zero-annotation 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?
A single efficient sentence that front-loads the action and result. No wasted words, though it could carry more substance at little cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 3-parameter conversion with fully documented schema and no annotations or output schema, the description is minimally adequate. It mentions convergents (partial return-value disclosure) but leaves truncation behavior and edge cases unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 numerator, denominator, and max_terms are already documented in the schema. The description adds only the general notion of a rational input and does not clarify max_terms behavior or defaults 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 (Convert) and resource (rational number) and names the output artifact (continued fraction representation with convergents). It is clear what the tool does, though it does nothing to distinguish itself from the many other math/transform siblings beyond the domain noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer usage entirely from the name and domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_areaCRead-onlyIdempotent
Convert between area units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
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 nothing beyond that: no list of supported units, no unit-string syntax, no rounding or precision behavior, and no statement of what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though the terseness is what leaves the substantive gaps penalized elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mechanically simple (three required params, no output schema), but the real difficulty is the unconstrained unit identifiers, which the description never addresses. For a converter whose entire failure mode is an invalid unit string, this leaves an agent under-equipped to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are no enums, so the free-form 'from' and 'to' strings are completely undocumented. The description only reinforces that they are area units, but an agent still cannot know whether to pass 'sqft', 'ft2', 'square feet', or 'acre'.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Convert between area units.' The domain word 'area' implicitly separates it from convert_length, convert_volume, and convert_speed, so an agent can route on the name alone. It doesn't explicitly say what it is not, which keeps it 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?
The description gives no when-to-use guidance, no prerequisites, and never names an alternative despite living among at least a dozen sibling convert_* tools. Usage is only inferable from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_data_storageCRead-onlyIdempotent
Convert between data storage units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond the operation itself: it does not describe accepted unit formats, precision, return type, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted text. It is concise, though it is arguably too terse for a tool with three undocumented required parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 conversion tool, the description still omits critical invocation details: accepted unit vocabulary, conversion basis, and return format. With no output schema and no parameter descriptions, the agent lacks enough information to call it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only vaguely implies that 'from' and 'to' are data-storage units. It does not list accepted unit strings or clarify whether 'value' is interpreted as bytes, bits, or another base.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Convert between data storage units.' It distinguishes the tool from non-conversion siblings by resource domain, but it does not name sibling conversion tools or clarify unit scope such as binary vs decimal units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites or limitations. The only implied usage is unit conversion, which is evident 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.
convert_lengthCRead-onlyIdempotent
Convert between length units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the description's safety burden is light. However, it adds nothing beyond them: no supported unit identifiers, no precision/rounding behavior, no error behavior for invalid units. With annotations covering safety, the description still leaves the operational profile blank.
Agents need to know what a tool does to the 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 with zero padding. It is efficient but so terse that brevity shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a converter with three required parameters, no schema documentation, and no output schema, the description should at minimum name supported units or output shape. Neither is present, so an agent cannot know whether 'to' expects 'km', 'kilometers', or a unit id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description says nothing about value, from or to. Critically, the valid unit strings accepted by 'from'/'to' are undocumented in both the schema and the description, which is the single most important thing an agent needs to call this 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?
Names a specific verb and resource ('Convert between length units'), which cleanly separates it from siblings like convert_volume, convert_weight and convert_temperature. It stops short of 5 because it doesn't scope what 'length units' covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this vs. the many convert_* siblings, nor any prerequisite or exclusion. The agent must infer from the tool name alone that this handles length rather than area, volume or wavelength.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_speedCRead-onlyIdempotent
Convert between speed units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
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 without the description's help. The description adds nothing else: no supported unit set, no rounding/precision behavior, no statement about accepted aliases (e.g. "km/h" vs "kph"). Beyond the name it contributes essentially no 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?
One short, front-loaded sentence with no filler or redundancy. The problem is under-specification rather than verbosity, which is captured in the other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-required-param conversion tool with no output schema and no enum constraints, the description should enumerate supported units and note the return behavior. None of that is present, so an agent cannot construct a valid call with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are three required parameters (value, from, to) with no enums and no descriptions. The description must therefore carry the unit vocabulary, and it does not — 'from' and 'to' are bare strings with no hint of valid values, which is the single most important thing to know before calling.
Input schemas describe structure but not intent. Descriptions should explain 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 family ("Convert between speed units"), which cleanly separates it from convert_length, convert_weight, pressure_convert, and other unit-family siblings. It stops short of naming the supported units, so an agent cannot tell the scope of the conversion domain from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers it should call this when a speed conversion is needed and pick a different convert_* sibling for other unit families. There is no explicit when-to-use, no mention of valid unit values, and no exclusion or alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_temperatureBRead-onlyIdempotent
Convert between temperature units (C, F, K).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, non-destructive, and open-world, so safety behavior is covered. The description adds the supported unit set but does not mention precision, accepted input formats, error behavior, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the key operation and units front-loaded. It contains 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 conversion tool with annotations covering safety and no output schema, the description is minimally adequate. However, with 0% schema coverage it should do more to clarify the exact unit strings accepted by from and to and the expected result form.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for three undocumented parameters. It mentions C/F/K units, which maps loosely to from and to, but does not specify parameter names, accepted string forms, case sensitivity, or what value represents beyond the obvious number 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 verb and resource: converting temperature units, with the supported unit set C/F/K. It is clear what the tool does, though it does not distinguish itself from the sibling temperature_convert 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 it should be used for temperature conversion but gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not explain why an agent should choose this over the sibling temperature_convert.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_volumeCRead-onlyIdempotent
Convert between volume units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
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 nothing beyond that: no supported unit set, no handling of invalid units, and no note on precision or rounding. With annotations carrying the safety story, this is a pure no-value-added description.
Agents need to know what a tool does to the 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 with zero filler, which is structurally clean. However, that brevity comes at the cost of under-specification rather than economy, so it cannot be rewarded as fully concise-and-complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial utility with rich annotations and no output schema, the safety and return-value burden is light, but the 0%-coverage parameter set makes the missing unit vocabulary a real gap. An agent still cannot know whether a given unit string will be accepted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all three parameters (value, from, to) are undocumented in structured data. The description only implies that 'from' and 'to' are volume units, without listing accepted unit names, abbreviations, or case conventions (e.g., 'L' vs 'liter', US vs imperial gallon), which is exactly the ambiguity that causes failed calls.
Input schemas describe structure but not intent. Descriptions should explain 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 (convert) and resource (volume units), and the resource itself distinguishes it from sibling converters like convert_length, convert_area, and convert_speed. It stops short of naming an alternative, but an agent can pick it reliably from the family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when-not-to-use, or alternative routing guidance. The intended use (converting a numeric value between two volume units) is only implied by the name and domain, and there is no guidance on cases where another converter (e.g., convert_length) would be the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_weightCRead-onlyIdempotent
Convert between weight/mass units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered structurally and the description is not required to restate it. What the description omits is behavior an agent actually needs: which unit strings are accepted, case sensitivity, precision/rounding of the result, and what happens on incompatible or unknown units.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no filler, so there is nothing to trim. But the brevity borders on under-specification rather than efficiency, since a single clause carries no scope or format 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?
Three required parameters, zero schema documentation, no output schema, and no annotation detail about results: an agent cannot reliably call this without guessing the unit identifiers. The description should at minimum enumerate or link the accepted unit set and note the result's numeric format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and there are no enums, so the critical piece of semantics — the accepted unit vocabulary for 'from' and 'to' (e.g., kg, lb, oz, st, t) — is documented nowhere. The description adds no meaning beyond the self-explanatory parameter names, which is a serious gap for a unit-conversion tool where the identifier strings are the whole contract.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Convert') and resource ('weight/mass units'), which distinguishes it from the many sibling converters (convert_length, convert_volume, convert_speed, etc.) by domain. However, it doesn't explicitly name the sibling family or note that a generic convert tool is not available, so differentiation comes only from the resource noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus convert_length/convert_volume/convert_temperature, and no guidance on assumptions (e.g., mass vs. weight under gravity, metric vs. imperial). The name plus 'weight/mass' implies the context, but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convex_hullB
Compute the convex hull of 2D points with area and perimeter.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | Array of [x, y] coordinate pairs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that area and perimeter are computed alongside the hull, but does not say what the return looks like (vertex list? ordering? format) or the algorithmic 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?
A single front-loaded sentence with no filler; the core action and the notable outputs are stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned quantities (area, perimeter), which is the most important missing structured detail. It could still specify the hull output format, but for a one-parameter computational tool it is largely 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?
There is a single parameter and schema description coverage is 100%, so the schema already explains '[x, y] coordinate pairs'. The description's '2D points' phrasing adds nothing beyond that, matching the baseline for fully documented 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?
States a specific verb ('Compute') and resource ('convex hull'), and adds the scope ('2D points') plus the derived outputs (area, perimeter). This implicitly separates it from the sibling convex_hull_3d, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the convex_hull_3d alternative for 3D inputs. The agent is left to infer selection purely from the '2D' qualifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convex_hull_3dB
Compute the 3D convex hull of a point set, returning triangular faces.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | Array of [x,y,z] points (at least 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It discloses the return type ('triangular faces') but omits critical behavioral details such as behavior with coplanar or fewer than 4 points, output format (vertex indices vs coordinates), orientation, and whether the input is mutated.
Agents need to know what a tool does to the 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 compact sentence with the core action and return value front-loaded. 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 mathematical tool with no output schema and no annotations, the description should clarify the return structure. It says 'returning triangular faces' but does not specify whether faces are coordinate triples or index triples, nor how degenerate inputs are handled, leaving ambiguity for 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?
Schema description coverage is 100%, and the schema already documents the 'points' parameter with format [x,y,z] and 'at least 4'. The description adds no additional semantic detail beyond the phrase 'point set'.
Input schemas describe structure but not intent. Descriptions should explain 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 'Compute' and resource '3D convex hull of a point set', and differentiates from sibling 'convex_hull' via the '3D' qualifier. However, it does not explicitly name the sibling or note that it is three-dimensional versus two-dimensional, leaving some inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, no prerequisites, and no mention of alternatives like the 2D 'convex_hull'. Usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convolutionB
Compute discrete convolution of a signal with a kernel. Supports full, same, and valid modes.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Output mode (default full) | |
| kernel | Yes | Convolution kernel array | |
| signal | Yes | Input signal array |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the available output modes, which is genuinely useful, but says nothing about the return shape (array length per mode) or expected input characteristics. For a side-effect-free numerical function the risk is low, so a middling 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 short sentences, no waste, with the core operation stated first and the mode support second. 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 pure-computation tool with a fully documented schema and no output schema, the description covers the essentials. It could add a note on what each mode returns (e.g., output length), but nothing critical for 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%, so the schema already documents signal, kernel, and the mode enum. The description's mention of the three modes duplicates what the schema provides and adds no format or semantic detail beyond it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compute) and resource (discrete convolution of signal with kernel), which is unambiguous. It does not differentiate itself from close siblings like correlation_calc, polynomial_ops, or fft_transform, so it falls just short of 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 lists supported modes (full, same, valid) but gives no guidance on when to use this tool versus alternatives, nor any prerequisites. Listing modes is not the same as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copypass_runB
Start a deterministic CopyPass review for caller-provided AI-generated copy. Returns evidence-backed copy findings, scope boundaries, disclaimer text, a structured copypass_receipt_v1 proof envelope, and optional CopyRoom exact-copy receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Optional goal for the copy, such as clarity, conversion, or trust. | |
| channel | No | Optional surface label such as homepage_hero, pricing_section, or onboarding_email. | |
| profile | No | Review depth label for this scoped run. Defaults to smoke. | |
| audience | No | Optional intended audience for the copy. | |
| copy_text | No | The AI-generated copy to review. Optional when copyroom_source_packet is provided; exact-copy verification compares this text byte-for-byte against the packet. | |
| copyroom_required | No | Set true when exact fidelity matters. Missing copyroom_source_packet returns COPYROOM_MISSING instead of a run with a null receipt. | |
| copyroom_source_packet | No | Exact source packet for CopyRoom fidelity work. Use this instead of retyping source text when code, prompts, labels, tables, documents, or user-provided text must stay exact. | |
| copyroom_output_pointer | No | Pointer to the intended output artifact for the CopyRoom receipt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose useful traits: the run is described as deterministic and the output includes findings, scope boundaries, disclaimers, a proof envelope, and an optional exact-copy receipt. It says nothing about whether the run persists state, is idempotent, requires auth, or how failure modes other than the schema's COPYROOM_MISSING behave.
Agents need to know what a tool does to the 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, purpose stated first and the return payload second. The second sentence is a dense list, but every item is distinct output the caller cares about.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with a nested object and no output schema or annotations, the description covers purpose and the shape of the result reasonably well but omits how it relates to copypass_status, whether runs are persisted and retrievable, and any precondition/error expectations. Adequate but with clear 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 description coverage is 100%, so all eight parameters are already documented with enums and defaults in the schema; the description adds no parameter-level syntax or semantics beyond the fact that the copy is 'caller-provided'. Baseline 3 per the high-coverage rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Start a deterministic CopyPass review') and scopes the input to 'caller-provided AI-generated copy', so an agent knows exactly what this tool does. It does not, however, distinguish itself from the sibling copypass_status tool, leaving the agent to infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to run this versus copypass_status or the related pass-family tools (testpass_run, uxpass_run, etc.). The only conditional behavior ('copyroom_required') lives in the schema, not the description, so no usage guidance is offered at the description level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copypass_statusA
Fetch the current status, notes, deterministic findings, disclaimer, copypass_receipt_v1 proof envelope, and CopyRoom receipt for a CopyPass run started in this MCP session.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by copypass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses return contents and a session-scoping constraint, but does not explicitly state that it is read-only, how repeated calls behave, what errors occur for unknown or expired run IDs, or whether any access constraints apply.
Agents need to know what a tool does to the 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-loaded with the action and result scope. The dense enumeration of returned artifacts is useful, though it makes the sentence long without being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description usefully enumerates the returned components: status, notes, findings, disclaimer, proof envelope, and receipt. It omits status values or error behavior, but is otherwise reasonably complete for a read-only session-bound status 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?
There is one required parameter with 100% schema description coverage, so the schema already documents run_id as returned by copypass_run. The description reinforces that the parameter identifies a CopyPass run, but adds no format or lookup 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?
Clearly states a specific fetch action and a rich resource: current status, notes, findings, disclaimer, proof envelope, and receipts for a CopyPass run. It implies the distinction from copypass_run by referring to a run started in-session, but does not explicitly name or compare against 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 phrase 'for a CopyPass run started in this MCP session' implies use after copypass_run and within the same session, but there is no explicit when-to-use guidance, no when-not-to-use guidance, and no named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corporate_bs_phraseB
Generate a random corporate buzzword phrase.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that output is random/non-deterministic; it says nothing about output length or structure, whether calls are rate-limited, or whether results can repeat, which is exactly the kind of context a generator tool should supply.
Agents need to know what a tool does to the 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 with no filler or redundancy. Nothing could be trimmed without losing the 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 no-param, no-output-schema generator the description is minimally adequate, but it leaves the shape of the returned phrase (single buzzword vs. multi-word phrase, casing, length) entirely unspecified, and with no annotations there is nothing else 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?
The tool takes zero parameters, so there is nothing for the description to explain beyond the schema. Baseline 4 applies for a parameterless 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?
States a concrete verb ("Generate") and a concrete resource ("random corporate buzzword phrase"), so an agent immediately knows the output domain. It does not, however, distinguish itself from the many other random-generator siblings (quote_random, advice_random, joke_random, affirmation_random), so sibling differentiation is left to the 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?
There is no when-to-use or when-not-to-use guidance and no named alternative. Usage is only implicitly inferable from the word "random," which is weak even for a trivial no-argument tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
correlation_calcBRead-onlyIdempotent
Compute Pearson correlation coefficient, r-squared, covariance, and linear regression between two numeric arrays.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | First data array | |
| y | Yes | Second data array |
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 multiple derived statistics are returned in one call, but says nothing about edge-case behavior (unequal array lengths, zero variance producing undefined r) or output shape. 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?
A single front-loaded sentence with zero filler that names every computed quantity up front. Nothing needs trimming and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 at least enumerates the returned statistics, which is the key missing piece. It falls short only on validation behavior and the exact shape of the regression output — minor for a two-parameter math utility.
Complex tools with many parameters or behaviors need more documentation. Simple 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 two clearly typed array parameters, so the schema does the heavy lifting. The description confirms the inputs are 'two numeric arrays' but adds no constraints beyond the schema, such as requiring equal lengths or matched ordering. 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 ('Compute') and enumerates the exact statistics produced: Pearson r, r-squared, covariance, and linear regression. This distinguishes it from general statistical siblings like descriptive_stats or regression_fit, though it never explicitly names which sibling to prefer when doing plain regression fitting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 rather than regression_fit, descriptive_stats, variance_calc, or cosinesim_compare. No mention of prerequisites such as equal-length arrays or minimum observations. The agent must infer all usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cosinesim_compareBRead-onlyIdempotent
Calculate cosine similarity between two texts using word frequency vectors.
| Name | Required | Description | Default |
|---|---|---|---|
| text_a | Yes | First text. | |
| text_b | Yes | Second text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The phrase 'using word frequency vectors' usefully discloses the underlying algorithm (bag-of-words, no semantics/stemming), which affects interpretation of results, but the description omits the output range (0-1), behavior on empty or identical texts, and case/tokenization 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?
A single front-loaded sentence with zero padding. Every clause ('cosine similarity', 'two texts', 'word frequency vectors') carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only computation with full annotation coverage, the essentials are present. However, with no output schema, the description should say what the returned value looks like (numeric range, edge cases), which it omits.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, though the schema's own descriptions are minimal ('First text.', 'Second text.'). The description adds nothing about what form the texts should take or how length/language affects the vectors, so this sits at the baseline where the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb ('calculate') plus a specific metric ('cosine similarity') and scope ('between two texts'). The metric name alone separates it from siblings like jaccard_similarity, hamming_distance, and edit_distance, but the description never names or contrasts 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?
No guidance on when to choose cosine similarity over the many other similarity/distance tools in the sibling list, and no conditions or exclusions stated. The agent must infer selection criteria from the metric name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
countdown_calcBRead-onlyIdempotent
Calculate days, weeks until or since a given date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Target date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, so the safety profile is covered. The description adds that output is expressed in days and weeks, but does not say how weeks are rounded, whether the direction (until vs since) is auto-detected, or what format the result takes.
Agents need to know what a tool does to the 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 with the core scope front-loaded and no filler. It is slightly vague in wording ('until or since') but efficiently sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 single-parameter tool this is close to sufficient, but ambiguity remains over whether the response includes both days and weeks, and whether 'until/since' is derived automatically or requires a choice, which an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the YYYY-MM-DD format documented, so the single parameter is fully specified. The description adds only marginal meaning (that the date is the reference point for until/since), which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain 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 (calculate) and resource (days/weeks until or since a date), which is enough to distinguish it from generic date arithmetic. It doesn't name a sibling like datetime_date_diff, so an agent must still infer that this is the 'countdown' flavor rather than a raw diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'until or since' implies the use case (relative countdown/elapsed), but there is no explicit when-to-use versus datetime_date_diff or datetime_add_to_date, and no guidance about direction detection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counting_sortB
Sort an array of integers in O(n+k) time using counting sort, with frequency analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of integers to sort |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses time complexity O(n+k) and mentions 'frequency analysis', but doesn't explain what the frequency analysis output looks like, whether the sort is stable, or any input restrictions (e.g., non-negative integers required for counting sort).
Agents need to know what a tool does to the 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, well-structured sentence that front-loads the core action and algorithm while adding complexity info. 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 single-parameter sort tool, the description covers the basic purpose and algorithm, but lacks crucial usage constraints for counting sort (e.g., non-negative integer range) and leaves 'frequency analysis' output unexplained. No output schema exists, so more detail on return values would help.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only one parameter exists, so the schema already documents 'values' as 'Array of integers to sort'. The description adds the algorithm context but no additional parameter detail beyond what the schema provides; 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?
Clear specific verb+resource: 'Sort an array of integers' with the algorithm named ('counting sort'). Distinguishable from siblings like radix_sort, bucket_sort, heap_sort, shell_sort, sort_lines, but the description does not explicitly differentiate when to choose counting sort over 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?
No guidance on when to use counting sort versus other sorting siblings (radix_sort, bucket_sort, heap_sort, etc.). No mention of constraints (non-negative integers, small range k) or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_allBRead-onlyIdempotent
Get all countries from REST Countries.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds nothing beyond that: no note on response size (~250 countries), whether responses are paginated, or what 'fields' does to the output, so it earns little credit for behavioral depth.
Agents need to know what a tool does to the 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 with no waste; it is appropriately sized for a trivial read tool but has room to carry one more clause about output shape or the fields parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no-arg-required listing tool with no output schema, the description covers the basic contract but leaves two agent-relevant gaps: what 'fields' accepts and roughly how large the response is. Adequate, not 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 single optional 'fields' parameter has 0% schema description coverage and is never mentioned in the description, so an agent has no way to know it likely projects/filters returned properties. With one undocumented param, the description does not compensate for the schema 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?
States a specific verb and resource ('Get all countries') and names the upstream source (REST Countries), which is enough to distinguish it from the filtered siblings like country_by_name or country_by_region. It stops short of explicitly contrasting with those siblings, but the 'all' scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'all' implicitly signals this is the bulk-listing option versus the per-country siblings, but the description never says when to choose it or when a narrower lookup would be better. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_by_codeCRead-onlyIdempotent
Get a country by code from REST Countries.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so safety is covered. The only additional detail the description offers is the upstream source ('REST Countries'), and it says nothing about what happens with an invalid or ambiguous code (empty result vs. error) or what subset of country data is 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?
One short sentence, front-loaded with the verb and resource; nothing is padded. It is efficient, though the extreme brevity is what leaves the gaps noted above.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with no output schema and no parameter documentation, the description needs to at least pin down the accepted code format and expected response shape. It does neither, leaving the agent to guess on the single required input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'code' is undocumented in both schema and description. The critical ambiguity — ISO alpha-2 vs. alpha-3, case sensitivity, or numeric codes — is not resolved anywhere, so the description fails to compensate for the coverage 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 names a specific verb and resource ('Get a country') and adds the lookup key ('by code'), so an agent knows exactly what it retrieves. It does not explicitly distinguish itself from siblings like country_by_name or country_by_region, but the code-based scope is implied clearly 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?
There is no guidance on when to choose this over country_by_name, country_all, country_info_detail, or country_by_ip, all of which live in the same family. The agent must infer selection purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_by_currencyBRead-onlyIdempotent
Get countries by currency from REST Countries.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes |
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 only the upstream source ('REST Countries') and does not describe matching behavior, case sensitivity, or whether multiple currencies are supported.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though it is arguably too terse for the missing input-format 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 one-parameter lookup with annotations covering safety and no output schema, this is close to adequate. The missing currency-code format is the main incompleteness, since an agent could pass a country name or currency name and get an error or unexpected result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter semantics. It says 'by currency' but never specifies that the value should be an ISO 4217 currency code (e.g. USD), nor whether case matters — a meaningful gap for a single required 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 states a clear verb and resource: get countries filtered by currency. The 'by currency' qualifier distinguishes it functionally from siblings like country_by_code or country_by_region, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The filtering basis implies when to use it (when a currency is known), but there is no explicit guidance on when to prefer country_by_code, country_by_name, or country_info_detail. Usage is inferable but not directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_by_ipBRead-onlyIdempotent
Detect country from an IP address using country.is.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address to look up (omit for auto-detect). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and network-call profile is covered. The description adds only the upstream provider (country.is), which is mild context, and says nothing about rate limits, failure behavior, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the operation and resource, no filler. It is arguably too terse for the amount of routing ambiguity in this sibling set, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-parameter lookup with full annotations the description is serviceable, but with no output schema it never indicates whether the result is a country code, name, or object. That is a meaningful gap for an agent deciding how to consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'ip' parameter already documents the auto-detect fallback. The description adds nothing beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Detect country from an IP address') plus the backing service, so the agent knows exactly what it returns conceptually. It does not distinguish itself from adjacent siblings such as ip_lookup, ipinfo_lookup or ip_address_lookup, leaving the reader to infer the difference from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to prefer this over ip_lookup, ipinfo_lookup or ip_address_lookup, and no mention that omitting the IP triggers auto-detect (that fact lives only in the schema). The agent must infer all routing decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_by_languageCRead-onlyIdempotent
Get countries by language from REST Countries.
| Name | Required | Description | Default |
|---|---|---|---|
| language | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is known. The description adds only that data comes from REST Countries; it says nothing about matching behavior, language format, return shape, or error behavior 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?
The description is a single front-loaded sentence with no filler or repetition. Every word contributes to identifying the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with rich annotations and no output schema, so the description does not need extensive return-value detail. However, the missing language input format is a notable gap for an agent trying 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 0%, so the description must compensate for the undocumented 'language' parameter. It does not clarify whether the value should be a language name like 'English', an ISO code like 'en', or another format, leaving a key ambiguity unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 countries by language,' and the language filter distinguishes it from siblings such as country_by_region and country_by_currency. It does not explicitly name an alternative, but the purpose is 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 gives no guidance on when to use this tool versus country_all, country_by_name, country_by_code, or other country lookup siblings. Usage is only implied by the tool name and parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_by_nameBRead-onlyIdempotent
Get a country by name from REST Countries.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| fullText | No |
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 the source 'REST Countries' but does not disclose return behavior, matching semantics, or limitations such as whether lookup is exact or fuzzy.
Agents need to know what a tool does to the world before calling 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 is appropriately concise for a simple lookup, though its brevity contributes to gaps addressed in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema and zero schema coverage, the description is under-specified. It omits what fullText does and does not describe the response shape, so an agent cannot fully predict the tool's behavior from the 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 description coverage is 0%, so the description must compensate. It clarifies the required 'name' parameter only implicitly, and it says nothing about the 'fullText' boolean, leaving half the parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: retrieve a country by name from REST Countries. It is clear enough to distinguish from country_by_code by the name-based lookup, but it does not explicitly name the sibling alternatives or whether this returns one or many matches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'by name', so an agent knows this is appropriate when it has a country name. However, there is no explicit guidance on when to choose this over country_by_code, country_all, country_info_detail, or other country-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_by_regionCRead-onlyIdempotent
Get countries by region from REST Countries.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds only the upstream source ('REST Countries') and nothing about result volume, whether all countries in a region are returned, or error behavior for an unrecognized region.
Agents need to know what a tool does to the 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 sentence with no padding, front-loaded with the verb and resource. It is efficient but borders on under-specification given the undocumented parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a lookup tool with zero schema coverage and no output schema, the definition should at minimum enumerate valid region values and sketch the returned country shape. Neither is present, leaving the agent guessing at the one input it must supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter, so the description carries the full burden—but it only repeats 'region' without listing valid values (continent names? subregions? codes?) or case conventions. An agent could easily pass an invalid value such as 'EU' instead of 'Europe'.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('countries') with a scope qualifier ('by region'), which distinguishes it from country_all and country_by_name. It does not explicitly name those siblings, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus country_all, country_by_name, country_by_code, or country_by_currency, and no mention of what 'region' means or which alternatives exist. Usage must be inferred from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_flag_urlA
Get a country flag image URL by ISO 2-letter code.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Size: 16, 32, 48, or 64 (default 64) | |
| style | No | flat (PNG) or svg (default flat) | |
| country_code | Yes | 2-letter ISO country code (e.g. US, GB, AU) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, but for a stateless URL-builder there is little to disclose. It confirms the tool returns a URL rather than an image or file, yet says nothing about whether the URL is externally hosted, whether it requires network access, or any failure mode for invalid codes.
Agents need to know what a tool does to the 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 tight sentence that front-loads the action and result. No filler, no repetition of the title, nothing 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 trivial URL-generator with fully documented parameters and a self-evident return value, the description is nearly complete. The only meaningful omission is a note on error behavior for invalid country codes, and no output schema is needed since the result is a single URL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 size, style, and country_code all documented including defaults and valid values. The description's 'ISO 2-letter code' restates the schema's own '2-letter ISO country code' without adding syntax or validation detail, so it stays at 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 states a specific verb ('Get'), a concrete resource ('country flag image URL'), and the key input constraint ('by ISO 2-letter code'). An agent can immediately tell what it produces, though it does not explicitly contrast itself against lookalike URL generators like avatar_url or robohash_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: supply a 2-letter ISO code to get a flag URL. There is no explicit when-to-use framing, no mention of prerequisites, and no named alternative for related needs (e.g. country_info_detail for full country data). Adequate but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_info_detailBRead-onlyIdempotent
Get country details (borders, languages, official name) from Nager.Date.
| Name | Required | Description | Default |
|---|---|---|---|
| country_code | Yes | ISO 3166-1 alpha-2 country code (e.g. AU, US). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds the upstream data source (Nager.Date) and the shape of returned fields, which is useful but minimal. No mention of lookup failure behavior for an unknown country code.
Agents need to know what a tool does to the 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 sentence that front-loads the verb and resource, lists the returned fields inline, and names the source. 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 lookup with full annotation and schema coverage and no output schema, listing the returned fields and source is close to sufficient. The remaining gap is the absence of sibling disambiguation among the many other country_* 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%, and the single parameter is documented as an ISO 3166-1 alpha-2 code with examples. The description adds nothing beyond confirming that a country identifier is the input; baseline 3 applies when the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('country details'), and even the fields returned (borders, languages, official name), plus the upstream source Nager.Date. However it does not distinguish itself from the very similar sibling country_by_code or country_by_name, so the agent cannot tell which to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no exclusion, and no mention of alternatives, despite sibling tools like country_by_code, country_by_name, country_by_region, country_all and country_flag_url that clearly overlap. The agent must infer selection from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
covid_countryB
Get COVID-19 statistics for a specific country from disease.sh.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Country name (e.g. USA, UK, Australia). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. Naming disease.sh as the source is a useful hint about data provenance, but the description says nothing about which statistics are returned, freshness/lag, rate limits, or error behavior for an unknown country.
Agents need to know what a tool does to the 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 with no filler. The verb, resource, scope, and data source all appear before any 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 one-parameter lookup with no annotations and no output schema, the definition is minimally adequate but leaves the return shape unstated and gives no fallback behavior for invalid country names. Acceptable for a simple read, but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 there is exactly one required parameter, so the schema already documents the 'country' argument and its example values. The description adds no format or naming rules (e.g. ISO code vs common name) beyond what the schema states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('COVID-19 statistics'), and scope ('for a specific country'), which cleanly separates it from covid_global and covid_vaccine. It also names the upstream source (disease.sh). It stops short of explicitly routing to those siblings, so a 4 rather than 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?
There is no when-to-use guidance, no mention of alternatives (covid_global for worldwide figures, covid_vaccine for vaccination data), and no prerequisites. Usage is only implied by the tool name and the single country parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
covid_globalB
Get global COVID-19 statistics from disease.sh.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the upstream source (disease.sh), which hints at live third-party data with possible freshness/staleness characteristics, but says nothing about caching, rate limits, or whether the figures are cumulative versus daily snapshots.
Agents need to know what a tool does to the 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 with no filler. Every clause (verb, scope, source) 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 is the only place an agent can learn what comes back — yet it does not indicate which statistics (cases, deaths, recoveries, updated timestamp) are returned. For a simple zero-param read tool this is survivable, but it leaves a real 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 tool takes no parameters, so the schema cannot be improved on and the baseline of 4 applies. The description adds nothing parameter-related, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('global COVID-19 statistics'), and the word 'global' implicitly separates it from the country-level sibling covid_country. It does not explicitly name that sibling or covid_vaccine, 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?
There is no statement of when to use this tool versus covid_country or covid_vaccine, no preconditions, and no exclusions. The only routing signal is the implied 'global' scope in the name and description, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
covid_vaccineC
Get COVID-19 vaccine candidate information from disease.sh.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full behavioral burden. It says 'Get' implying read-only, but doesn't confirm safety, rate limits, return format, or any behavioral traits. With zero annotations, this is a critical 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?
One sentence, front-loaded, no wasted words. Efficient but 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?
For a parameterless read tool with no annotations and no output schema, the description should clarify return format or scope (e.g., all candidates, latest data). It does not, leaving the agent with insufficient context for a confident 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?
Zero parameters, so baseline is 4. The description correctly implies no parameters are needed, but adds no extra value 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?
States a specific verb ('Get') and resource ('COVID-19 vaccine candidate information') and names the data source (disease.sh). It's clear what the tool does. It doesn't differentiate from siblings like covid_country or covid_global, but the resource is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no when-not-to-use, and no mention of alternatives. The agent must infer it's for vaccine data only, with no help on when to choose it over other COVID-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crates_getBRead-onlyIdempotent
Get detailed info for a Rust crate by name from crates.io.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Crate name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, openWorld), so the description doesn't need to repeat that. The only added behavioral context is the external source ('crates.io'), which implies network dependency; nothing is said about the failure mode for unknown crate names or what fields come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and source front-loaded and no filler. It is arguably too terse rather than padded, which costs it nothing on this dimension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 saying what 'detailed info' means — version, description, downloads, repository, dependencies — and it doesn't. For a simple read tool this is survivable but leaves the agent unable to predict the response 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?
With one parameter and 100% schema coverage, the schema already documents `name` completely. The description's 'by name' merely restates it without adding format rules (case sensitivity, exact-match vs fuzzy, hyphens/underscores), 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?
A specific verb ('Get detailed info'), a specific resource ('a Rust crate'), and a source ('from crates.io') — an agent knows exactly what it retrieves. It doesn't name a sibling, but the contrast with crates_search (lookup-by-name vs discovery) is implicit enough to be usable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to call this versus crates_search, and no prerequisite that the exact crate name must already be known. Usage is only inferable from the phrase 'by name', leaving the agent to guess whether this tool can be used for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crates_searchARead-onlyIdempotent
Search Rust crates on crates.io by name or keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Crate name or keyword. | |
| per_page | No | Results per page (default 10, max 50). |
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 and network profile is fully covered upstream. The description adds only that the corpus is the crates.io registry; it says nothing about pagination limits, result ordering, empty-result behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It could carry one more clause (e.g. how to fetch full crate details) without becoming bloated, so it is efficient but slightly under-packed for the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only, open-world search with full schema coverage and declared annotations, the description covers what the tool is and where it queries. The missing piece is the relationship to crates_get and any note about pagination/result volume, but neither is required 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%, with 'Crate name or keyword' on query and 'default 10, max 50' on per_page, so the schema already carries the semantics. The description's phrase 'by name or keyword' echoes that without adding syntax, matching rules, or ordering detail, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Search Rust crates') plus the data source ('on crates.io') and the query axis ('by name or keyword'). It is unambiguous on its own, but it never references the closely related crates_get sibling, so an agent must infer the search-vs-fetch split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance or exclusion; the search-vs-detail distinction against crates_get in the same registry is left entirely to inference. Usage is implied by the verb 'Search', which is conventional enough that an agent will likely pick correctly, but nothing in the text confirms it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crc32_calculateARead-onlyIdempotent
Calculate CRC32 checksum for text input.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to checksum. |
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 fully covered externally. The description adds only the text-input constraint and says nothing about encoding assumptions or output encoding, which it would need to do since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with no filler. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter pure function this is close to adequate, but without an output schema the description should say what comes back (e.g. an 8-character hex string) and any encoding assumption for the input text. Those gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
A single parameter with 100% schema description coverage, so the schema carries parameter meaning. The description's 'text input' wording merely echoes the schema's 'Text to checksum.' 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: calculate a CRC32 checksum. The name CRC32 itself distinguishes it from generic siblings like hash_generate or entropy_calculate, though the description never explicitly contrasts 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?
No explicit when-to-use or when-not guidance, and no alternative tool named. The phrase 'for text input' implicitly scopes it away from files/binary data, which is the only usage signal present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_asana_taskC
Create a new task in Asana.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Task name | |
| notes | No | Task description | |
| due_on | No | Due date (YYYY-MM-DD) | |
| api_key | No | ||
| assignee | No | Assignee GID or 'me' | |
| projects | No | Project GIDs to add the task to | |
| workspace_gid | Yes | Workspace GID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, but it only states the obvious creation action. It lacks disclosure of authorization needs, side effects, or any behavioral traits beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, only one sentence. While efficient, it could benefit from additional structure to convey more information without increasing length significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 absence of an output schema and annotations, the description should offer more context about return values, required scopes, or possible outcomes. It is insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (86%), so parameters are already well-documented in the schema. The description adds no extra meaning to the parameters beyond what is 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 'Create a new task in Asana' clearly states the action and resource. It is specific enough for a create operation, but does not differentiate from sibling tools like 'update_asana_task' or 'get_asana_task'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives, nor any prerequisites or context. The description is silent on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_expressroom_draftCreate a DraftRoom Manual draftA
Creates a Manual DraftRoom draft. DraftRoom is the first station when a capable subscription chat seat has fresh build context. Build or fit the smallest safe draft immediately, then store the brief, job mirror, short description, and supplied draft code. Do not park fresh context for a low-capacity unattended runner unless the chat seat records the exact blocker and next build step. Alarm bell: this does not mark official work done. It stores untrusted draft material so it can later enter the official Jobs Board conveyor belt, then be integrated, tested, reviewed, and proved.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Stable identifier for the calling agent. | |
| supplied_code | Yes | Required capture field for concrete code, patch notes, file contents, pseudocode, ScopePack, or test outline supplied by the chat-first builder. If no code is supplied, record the exact blocker and next build step. | |
| brief_markdown | Yes | Detailed intake brief from the chat. | |
| job_name_mirror | Yes | The official job name or intended official job name. | |
| official_todo_id | No | Optional existing Jobs Board todo id to mirror. | |
| short_description | Yes | Quick read of the draft job. | |
| supplied_code_status | Yes | not_supplied | |
| source_chat_session_id | No | Optional source chat/session id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/safe profile (readOnly=false, destructive=false, idempotent=false). The description adds meaningful behavioral context beyond that: it stores 'untrusted draft material' and 'does not mark official work done,' clarifying state transitions. It omits auth/rate-limit or return-shape detail, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the prose is padded with internal jargon ('capable subscription chat seat,' 'Jobs Board conveyor belt,' 'Alarm bell') across several sentences that could be tightened. Every sentence relates to behavior, but the density of metaphor reduces 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 an 8-param, 6-required write tool with no output schema, the description conveys purpose, timing, post-call state, and what gets captured. That is enough for an agent to call it correctly, though it leaves return behavior to inference.
Complex tools with many parameters or behaviors need more documentation. Simple 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 88%, so the schema already documents nearly every parameter. The description echoes the stored fields (brief, job mirror, short description, supplied code) but adds no format or constraint detail beyond what the schema specifies. 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 concrete verb (creates) and resource (a Manual DraftRoom draft), then enumerates the artifacts stored (brief, job mirror, short description, supplied code). It never names sibling tools like promote_expressroom_draft or list_expressroom_drafts directly, 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?
Provides real usage context ('first station when a capable subscription chat seat has fresh build context') and an explicit when-not ('Do not park fresh context for a low-capacity unattended runner unless...'). It stops short of naming an alternative tool to use instead, so it doesn't reach the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ideaPropose a Boardroom ideaB
Compatibility alias for the older Ideas intake. Prefer brain_dump for new captures so the anti-dust triage contract is explicit. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short title (max 200 chars) | |
| agent_id | Yes | ||
| description | No | Optional longer description (max 4000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent write, so the description doesn't need to restate that. It does add useful context that this is a legacy compatibility path, but it says nothing about what the created record actually is or where it lands.
Agents need to know what a tool does to the 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, front-loaded with the compatibility framing and followed by the routing advice. The trailing 'agent_id required' is redundant against the schema but is the only wasted 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 creation tool with no output schema, the description covers the alias status and preferred alternative but leaves the lifecycle unclear — whether the idea becomes a boardroom entry, how it relates to list_ideas or promote_idea_to_todo, or what a legacy caller gets 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?
Schema coverage is 67%, and the only parameter remark — 'agent_id required' — merely repeats the schema's required list. The description adds no meaning about what agent_id represents or how title/description are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 this as a compatibility alias for the older Ideas intake, which implies it submits an idea, but it never states the verb plainly ('creates an idea') and leans on the name/title to convey the action. It does distinguish itself from brain_dump, which helps the agent place 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?
It explicitly names the preferred alternative (brain_dump) and gives a reason (the anti-dust triage contract), which is real routing guidance. What's missing is the positive condition — when a caller should still use this legacy alias.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_monday_itemC
Create a new item in a Monday.com board.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| board_id | Yes | Board ID | |
| group_id | No | Group ID to add the item to | |
| item_name | Yes | Item name | |
| column_values | No | Column values as JSON object |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states 'Create a new item', implying mutation but offering no details on side effects, authentication requirements, rate limits, or what the created item entails. This is insufficient for a mutable 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 a single sentence that front-loads the verb and resource, avoiding unnecessary words. While concise, it is appropriately sized for a simple creation tool, though it could benefit from a brief structure listing key parameters or usage hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations, the description should explain what the tool returns or any important context like required parameters. It does not mention that board_id and item_name are required, nor does it describe the return value. This leaves significant gaps for an agent to understand the tool's full 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?
The description does not elaborate on any parameter beyond what is in the schema. Though the schema covers 4 of 5 parameters with basic descriptions, the tool's description adds no extra meaning. Notably, the api_key parameter lacks a schema description and is not addressed in the tool description, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and resource ('a new item in a Monday.com board'), distinguishing it from sibling tools like update_monday_item or list_monday_items. However, it lacks additional scope details such as specifying that the item is created within a board, which is implied but not explicitly elaborated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. With siblings like update_monday_item and list_monday_items, the description should offer context on when creation is appropriate, but it fails to do so.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pinterest_pinC
Create a new Pinterest pin from an image URL.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | Destination URL when pin is clicked | |
| title | No | ||
| board_id | Yes | Board ID to pin to | |
| description | No | ||
| access_token | No | ||
| board_section_id | No | ||
| media_source_url | Yes | Public image URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available. The description only says 'Create', indicating a write operation, but lacks details on side effects, required permissions, error handling (e.g., invalid image URL), or any consequences of the action.
Agents need to know what a tool does to the world before calling 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, which is too minimal for a tool with 7 parameters. It lacks structure and essential information, making it under-specified rather than 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?
No output schema exists, and the description provides no information about return values. With 7 parameters and low schema coverage, the description fails to make the tool usable without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 43% (3 of 7 parameters described). The description does not add meaning beyond the schema; it only mentions 'image URL' (matching media_source_url). It fails to explain optional parameters like title, description, or access_token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create'), the resource ('Pinterest pin'), and the source ('from an image URL'). This directly differentiates it from sibling tools like list_pinterest_pins (listing) and search_pinterest_pins (searching).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other Pinterest tools, such as when to create vs. update pins, or any prerequisites (e.g., needing a board). The description is silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_todoCreate a Boardroom todoA
Creates a new todo card on the shared Jobs board (the Boardroom Todos kanban; humans watch the same queue at /admin/jobs) so the agent pack and the human both see what's on deck. Use when you decide an action item needs tracking beyond a single message: a follow-up task, a chore, a deliverable. Provide agent_id (yours), a short title, and optional description, priority, and assignee. Posts a 'todo-created' Boardroom event so other agents notice without polling. When a forge PR finishes the job, put 'Closes UnClick todo: ' in the PR body and the merge auto-completes the card.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short title (max 200 chars) | |
| due_at | No | Optional due date in ISO format. A date-only value like 2026-06-15 means due by the end of that day. | |
| agent_id | Yes | Stable identifier for the calling agent. Same value as set_my_emoji. | |
| priority | No | normal | |
| description | No | Optional longer description (max 4000 chars) | |
| assigned_to_agent_id | No | Optional agent_id of the agent who should own this todo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/non-idempotent/non-destructive/closed-world profile, and the description adds genuinely new behavior: humans see the same queue, a 'todo-created' Boardroom event is emitted so peers notice without polling, and merge-time auto-completion via a PR body marker. It omits duplicate-creation risk given idempotentHint=false, which keeps it at 4.
Agents need to know what a tool does to the 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, front-loaded with the action and destination, then usage, then side effects, then the lifecycle hook. Every sentence carries information; only the second half of the final sentence drifts into workflow lore that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still communicates the side effects (Boardroom event), the human-visible surface, and how the card eventually closes. It leaves the return value implicit — the reader must infer that the created card's uuid is returned, since the PR-body instruction needs 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 coverage is 83% and the schema documents title, description, due_at and assigned_to_agent_id in detail. The description only restates the required fields and adds the useful clarification that agent_id is 'yours'; it says nothing about due_at or priority semantics, so 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?
States a specific verb and resource ('Creates a new todo card') plus the concrete destination ('shared Jobs board / Boardroom Todos kanban'), which makes it trivially separable from update_todo, complete_todo, drop_todo and list_todos. The parenthetical URL adds verifiable grounding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger ('when you decide an action item needs tracking beyond a single message') with examples of the kinds of items that qualify. It does not name the alternatives (update_todo, brain_dump, post_message) or say when not to create a card, 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.
crontab_explainA
Explain a cron expression in human-readable terms.
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Cron expression (e.g. '0 9 * * 1-5') or shortcut (@daily, @hourly). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the output is human-readable, and 'Explain' implies a safe read operation, but it does not explicitly confirm read-only behavior or describe handling of invalid expressions.
Agents need to know what a tool does to the world before calling 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 zero wasted words. It delivers the essential purpose directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 utility with full schema coverage and no output schema, the description is nearly complete: it states what the tool returns in general terms. It could mention invalid-expression behavior, but the core 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?
Schema description coverage is 100%, and the schema already documents the single 'expression' parameter with examples and shortcuts. The description adds no parameter details beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Explain') and resource ('a cron expression'), plus the output mode ('human-readable terms'). It is unambiguous and an agent can immediately tell 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 implies the tool is used when a cron expression needs explanation, but it does not explicitly state when to use it versus alternatives or any exclusions. With no sibling cron-explanation tool, the implied usage is adequate but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cross_productB
Compute the cross product of two 3D vectors. Returns magnitude and parallelism check.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First 3D vector [x,y,z]. | |
| b | Yes | Second 3D vector [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a return detail (magnitude and parallelism check), which is useful, but it omits the expected cross-product vector result and gives no safety/purity characterization. The single behavioral note is only narrowly informative.
Agents need to know what a tool does to the 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, front-loaded sentences with no filler; the core operation leads. Slightly muddled by the return-value clause, which is oddly phrased but still brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure math function with no output schema or annotations, the description is minimally adequate. The return claim ('magnitude and parallelism check') is confusing and incomplete for a tool whose primary output is normally a vector, leaving a real 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 both parameters are documented as [x,y,z] vectors there, so the description adds nothing beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compute') and resource ('cross product of two 3D vectors'), which is unambiguous and clearly distinct from the sibling dot_product. It does not explicitly contrast itself with siblings, but the named operation is self-identifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus alternatives such as dot_product or matrix_operate, and no prerequisites or exclusions stated. The agent is left to infer that this is the right tool 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.
crossref_get_workARead-onlyIdempotent
Get full metadata for an academic paper by DOI from Crossref.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | DOI of the paper (e.g. 10.1038/nature12373). |
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 only that the result is "full metadata" (as opposed to a subset), and says nothing about failure behavior for unknown DOIs, not-found handling, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action, the resource and the lookup key in that order. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 this is close to sufficient, but with no output schema the phrase "full metadata" is doing a lot of unspecified work — an agent cannot tell whether abstracts, references, licenses or author affiliations are included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage including a concrete example (10.1038/nature12373), so the schema carries the load. The description's contribution is limited to reinforcing that the DOI identifies the paper; it adds no format or normalization guidance 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?
States a specific verb+resource (get metadata) scoped to a single paper identified by DOI, and names the source (Crossref). It does not distinguish itself from crossref_search_works or openalex_get_work, so an agent must infer the split from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"By DOI" implies the required input and therefore the situation in which the tool applies, but there is no explicit when-to-use vs crossref_search_works or openalex_get_work guidance and no stated exclusion. Usage is inferable but not taught.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crossref_search_worksARead-onlyIdempotent
Search academic papers on Crossref by title, author, or keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | Max results (default 5, max 20). | |
| query | Yes | Search query (title, author, or keyword). |
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 fully covered. The description adds nothing beyond that — no mention of result relevance, rate limits, or whether results are ranked — but it also contradicts nothing.
Agents need to know what a tool does to the 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 sentence, front-loaded with verb and resource, with zero filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple two-parameter, no-output-schema search tool whose annotations carry the safety profile. It is nearly complete, though it omits what the result list contains (e.g., titles, DOIs, author counts) or how many fields come back per hit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'query' and 'rows' (with default 5, max 20) are both documented in the schema. The description only restates the three searchable field types already implied by the query parameter, adding no syntax, format, or matching-behavior 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 (search) and resource (academic papers on Crossref) plus the searchable fields. The Crossref provider name implicitly distinguishes it from sibling scholarly search tools like openalex_search_works, arxiv_search, or dblp_search_publications, though it never explicitly names or contrasts 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 verb and the listed search fields imply when to use it (broad paper lookup by title/author/keyword), but there is no explicit when-to-use guidance, no exclusions, and no pointer to crossref_get_work for fetching a known DOI or to the competing scholarly search siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cr_playerC
Get a Clash Royale player by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| playerTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states it's a read operation but omits information about authentication requirements (api_key), error handling, rate limits, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every word contributes to the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema, the description should at least hint at what the return structure includes (e.g., player name, trophies). The api_key parameter remains completely unexplained, making the tool under-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 0%, and the description adds no semantic value beyond the schema. It does not explain the expected format of playerTag (e.g., '#8Q9CUP2P') or the purpose of api_key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Clash Royale player', and the identifier 'by tag'. It effectively distinguishes from sibling tools like 'cr_top_players' (which lists players) and other game player 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 provided on when to use this tool versus alternatives. There is no mention of when not to use it or any prerequisites, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cr_top_playersBRead-onlyIdempotent
Get top Clash Royale players globally or by location.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| locationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds only that results can be scoped globally or by location; it says nothing about ranking basis, how many players are returned, or whether results are cached/live.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no filler. It is efficient, though it is arguably too terse given the entirely undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no parameter documentation means the description should carry more weight. It does not explain the locationId format, whether api_key is required, the number of players returned, or the ranking metric.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters. The description only hints that a location filter exists, without giving the expected locationId format or any example. The api_key parameter is not mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (top Clash Royale players) plus the scope axis: globally or by location. It is distinguishable from cr_player, which fetches a single player, though the description never names 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 phrase 'globally or by location' implies that location is an optional narrowing axis, but it never says what happens when locationId is omitted, nor does it route the agent away from cr_player for single-player lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_coinC
Get detailed info for a cryptocurrency from CoinGecko.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states only that the tool gets info, implying a read operation, but omits details like rate limits, data freshness, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose. No unnecessary words, but it could be slightly expanded for clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameter and no output schema, the description provides the essential purpose and source. However, it lacks details on the output structure or what 'detailed info' encompasses, leaving some incompleteness.
Complex tools with many parameters or behaviors need more documentation. 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 'id' has no schema description (0% coverage). The description does not explain that 'id' refers to a CoinGecko coin ID, leaving ambiguity about what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 detailed info for a cryptocurrency from CoinGecko, using a specific verb and resource. However, it does not distinguish from sibling tools like crypto_price or crypto_coin_history, which also retrieve cryptocurrency 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?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about preferred scenarios or exclusions, which is problematic given the many related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_coin_historyBRead-onlyIdempotent
Get historical price data for a cryptocurrency from CoinGecko.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| date | Yes | DD-MM-YYYY |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds the CoinGecko data source, but does not disclose rate limits, supported date ranges, price currency, or granularity.
Agents need to know what a tool does to the 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 with no filler. It is appropriately sized for a simple two-parameter lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with annotations and no output schema, the definition is minimally viable but leaves important gaps: CoinGecko id format, whether the returned price is in USD, and what shape the historical data takes. These omissions could lead to incorrect 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 only 50%: the date parameter has a DD-MM-YYYY format, but the id parameter is undocumented. The description does not clarify that id should be a CoinGecko coin identifier (e.g., 'bitcoin') rather than a symbol, which is a critical ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get') and resource ('historical price data for a cryptocurrency') and names the external source, CoinGecko. It does not distinguish this from siblings such as crypto_daily, crypto_price, or crypto_coin, so an agent must infer which historical tool is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus crypto_daily, crypto_price, or crypto_coin, nor any exclusions or prerequisites. Only the word 'historical' implicitly signals the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_dailyCRead-onlyIdempotent
Get daily crypto price history from Alpha Vantage.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | ||
| symbol | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description contributes only the source provider and daily granularity; it does not mention the required API key/authentication, Alpha Vantage's known rate limits, or what the daily history returns (gaps in coverage, ordering).
Agents need to know what a tool does to the 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 with no filler, but its brevity is under-specification rather than efficiency — there is room for one clause on required params and how it differs from sibling history tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with zero schema descriptions and no output schema, the description leaves the agent without required parameter meaning, authentication expectations, or differentiation from a dense crowd of crypto price siblings. It is far from sufficient to invoke correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions no parameters at all. The three parameters — symbol, market, and api_key — are entirely undocumented, and the meaning of 'market' (e.g. USD vs other quote currencies) is left to guesswork despite materially changing the output.
Input schemas describe structure but not intent. Descriptions should explain 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 daily crypto price history') plus the data provider (Alpha Vantage), so the agent knows it is a historical daily time-series tool. It does not distinguish itself from siblings such as crypto_coin_history, crypto_price, or cmc_quotes, so an agent cannot tell from the description alone which crypto tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus the many overlapping crypto siblings (crypto_price, crypto_coin_history, coincap_asset_detail, coinpaprika_coin) or the analogous stock_daily. No prerequisites, no exclusions, no alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_priceBRead-onlyIdempotent
Get cryptocurrency prices from CoinGecko.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Comma-separated coin IDs | |
| vs_currencies | No | Comma-separated currency codes |
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 only the data source (CoinGecko), which is useful context but does not cover rate limits, authentication needs, or response 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?
One sentence with zero wasted words. The purpose is front-loaded and the description is appropriately sized for a simple 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 price-fetching tool with no output schema, the description is terse and omits key context: it does not explain the return format (e.g., object keyed by coin ID), default currency behavior, or when to prefer this over other crypto tools. Adequate but with clear 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%, so both parameters (ids and vs_currencies) are fully documented in the schema. The description adds no additional meaning about parameter usage or defaults (e.g., which currency is assumed if vs_currencies is omitted).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource 'cryptocurrency prices' and names the source CoinGecko. However, it does not distinguish this tool from the many sibling crypto-price tools (e.g., crypto_coin, coinlore_tickers), so an agent may not know when to choose this one specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives. The description offers no context about cases where this is preferred over other crypto price tools in the sibling list, leaving the agent to infer usage 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.
crypto_searchCRead-onlyIdempotent
Search for cryptocurrencies on CoinGecko.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
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's one contribution is attributing the source to CoinGecko, which meaningfully disambiguates it from CoinPaprika/CoinLore/CoinCap siblings; it says nothing about result limits, rate limiting, or result 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?
A single front-loaded sentence with no filler. It is efficient, though efficiency here shades into under-specification rather than optimal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no parameter docs, so the description carries the full burden and does not meet it. An agent cannot tell what a search hit contains (id, symbol, name) or that the returned identifier is what other crypto tools 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 0% on the single `query` parameter, and the description does not compensate. It never states whether `query` matches coin names, ticker symbols, or CoinGecko slugs, nor whether partial or case-insensitive matches are supported.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource pair (search / cryptocurrencies) and names the data provider (CoinGecko). It is understandable in isolation, but it gives no hint of what distinguishes it from the many other crypto siblings such as crypto_coin, crypto_trending, or cmc_listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pick this over crypto_coin, crypto_price, crypto_trending, cmc_listings, or the coinpaprika/coinlore alternatives. Nothing tells the agent whether search results are a lookup step whose output feeds another tool, or a standalone answer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_top_coinsCRead-onlyIdempotent
Get top cryptocurrencies by market cap from CoinGecko.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| vs_currency | No |
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 the useful fact that results are ranked by market cap and sourced from CoinGecko, but it does not mention pagination behavior, default page size, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the core purpose front-loaded. It is appropriately concise, though its brevity contributes to gaps elsewhere rather than being a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three undocumented parameters and no output schema, the description is too thin. It does not explain parameter meanings, return shape, pagination, or how results differ from sibling crypto listing 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 0% and all three parameters (page, per_page, vs_currency) are undocumented in the schema. The description does not explain any of them, including what vs_currency accepts or default pagination behavior, so it does not compensate for the coverage 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 gives a clear verb and resource: 'Get top cryptocurrencies by market cap', plus the data source CoinGecko. It is understandable in isolation, but it does not distinguish this tool from numerous sibling crypto listing tools such as cmc_listings, coinlore_tickers, coincap_assets, or coinpaprika_ticker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With many crypto tools in the sibling list (crypto_trending, crypto_search, cmc_listings, etc.), the agent is left to infer which one provides top-by-market-cap data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_trendingBRead-onlyIdempotent
Get trending cryptocurrencies from CoinGecko.
| 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 fully covered. The description's only addition is naming the upstream provider (CoinGecko), which signals an external dependency but says nothing about how 'trending' is computed, how many results come back, or how fresh the data is.
Agents need to know what a tool does to the 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 with no filler. It is efficient but arguably under-specified rather than genuinely concise — the brevity comes at the cost of disambiguation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool with rich annotations and no output schema, the definition is thin but callable. What's missing is the detail an agent actually needs to choose it: the definition of 'trending', approximate result count, and how it differs from the several other crypto-listing 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?
The tool takes zero parameters and the schema is fully closed (additionalProperties: false), so there is nothing for the description to disambiguate. Baseline 4 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 ('Get') and resource ('trending cryptocurrencies') plus the data source (CoinGecko), so the agent knows exactly what it returns. It does not, however, distinguish itself from siblings such as crypto_top_coins or cmc_trending, which sound like near-duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to prefer this over crypto_top_coins, cmc_trending, or crypto_daily, and no context about what 'trending' means here (by search volume, price move, market cap?). The agent must guess or open sibling schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
csuite_analyzeC
Run a C-Suite multi-perspective analysis on a business scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | quick, standard, or deep | |
| focus | No | ||
| context | No | ||
| scenario | Yes | ||
| perspectives | No | e.g. ["CEO","CFO","CTO"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only says 'Run a C-Suite multi-perspective analysis', omitting important traits such as whether the tool is read-only, destructive, requires auth, or has side effects. No details on output format or potential delays.
Agents need to know what a tool does to the world before calling 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 concise sentence, front-loaded with the core action. It avoids unnecessary words but may be too brief at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description is incomplete. It does not explain what the analysis includes, how parameters interact, or what the output format is. More detail is needed for effective 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?
Schema coverage is 40%, with only 'perspectives' and 'depth' having descriptions. The description does not explain any parameters beyond what the schema provides, failing to compensate for the missing parameter descriptions. For example, 'scenario' is required but not described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Run' and the resource 'C-Suite multi-perspective analysis' on 'business scenario', making the tool's purpose specific and distinct from sibling tools which do not mention C-suite or multi-perspective analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, no prerequisites, and no exclusions. It merely states what the tool does without context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
csv_parseBRead-onlyIdempotent
Parse CSV text into structured JSON rows.
| Name | Required | Description | Default |
|---|---|---|---|
| csv | Yes | Raw CSV text to parse. | |
| delimiter | No | Column delimiter (default comma). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety and repeatability profile is covered without the description. The description adds only that output is 'structured JSON rows', while leaving open important behavior such as header-row handling, quoting/escaping rules, and what happens with malformed input.
Agents need to know what a tool does to the 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 with no filler, and the input-to-output relationship is stated up front. It is efficient, though it trades away detail an agent might want for a parser with format-sensitive 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?
There is no output schema, so the description is the only place the row structure could be explained, and 'structured JSON rows' is vague about whether rows are arrays or objects keyed by header. For a two-parameter pure function with full annotation and schema coverage this is adequate but leaves a real gap around output shape and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (csv, delimiter with a stated comma default) are fully documented in the schema, so the baseline of 3 applies. The description contributes nothing beyond the schema about the delimiter or accepted CSV dialect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource pair (parse CSV text) is specific, and the output target (structured JSON rows) is named, so an agent knows exactly what goes in and roughly what comes out. It does not reference any sibling tool or distinguish itself from the many other text/format converters in the catalog, which keeps it below 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?
There is no statement of when to use this tool, no prerequisites, and no comparison to adjacent tools such as markdowntable_convert or json_format. The intended usage is only inferable from the tool name and the single-purpose description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
currency_api_listBRead-onlyIdempotent
List all supported currency codes from fawazahmed0 currency API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, the safety profile is already covered. The description usefully identifies the upstream data source (fawazahmed0), but does not say whether the list is static or refreshed, in what order it returns, or whether rates accompany the codes.
Agents need to know what a tool does to the 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 with no filler. It is arguably too terse rather than too long, but 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 trivial no-parameter list tool with no output schema, the description covers the essentials, but it leaves the return shape (bare array of codes vs. code/name pairs) unstated. An agent cannot tell from the definition alone how to consume the 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 tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The description implies the result is the complete supported-code set rather than a filtered subset, which is consistent with a no-argument 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 gives a specific verb and resource ('List all supported currency codes') and names the upstream API (fawazahmed0 currency API), so the agent knows exactly what comes back. It does not differentiate itself from the closely related sibling currency_api_rates, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool, when not to, or which sibling to prefer (currency_api_rates, exchangerate_codes, forex_currencies, frankfurter_currencies all overlap). The usage is only implicitly inferable from the mention of 'currency codes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
currency_api_ratesBRead-onlyIdempotent
Get latest currency exchange rates from fawazahmed0 currency API (free, no key).
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency code (default: usd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety behavior is well covered. The description contributes genuine extra context with 'free, no key' (no authentication required), which matters for sourcing decisions, but says nothing about rate freshness, update cadence, or what the payload looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with the source and auth note appended. 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 one-parameter, read-only lookup with annotations and no output schema, the essentials are present. But the description never indicates what is returned (e.g. all currencies relative to the base) or whether rates are daily snapshots, leaving an agent to infer the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single optional parameter with a documented default ('Base currency code (default: usd)'). The description adds no parameter-level meaning beyond the schema, which is the expected baseline for full-coverage 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?
States a specific verb and resource (get latest currency exchange rates) and even names the upstream source, so the action is unambiguous. However it does not distinguish this tool from the many near-identical siblings such as frankfurter_latest, exchangerate_latest, forex_latest, or er_latest_rates, so the sibling differentiation dimension is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pick this tool over the numerous other exchange-rate tools in the catalog (frankfurter_latest, exchangerate_latest, wise_exchange_rates, forex_latest). The only implicit hint is 'free, no key', which suggests a no-auth fallback but is not framed as a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dadjoke_by_idBRead-onlyIdempotent
Get a specific dad joke by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Joke ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the basic operation, such as what happens when the ID is not found or whether the ID has a particular format.
Agents need to know what a tool does to the world before calling 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 wasted words. It immediately communicates the action, resource, and lookup key.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description is sufficient to invoke the tool correctly. It does not need to explain the safety profile, but it could be slightly more complete by noting how IDs are obtained or what happens for invalid 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%, and the single parameter is documented as 'Joke ID' in the schema. The description's phrase 'by its ID' restates that meaning without adding format, syntax, or validation details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Get a specific dad joke by its ID.' The phrase 'by its ID' narrows the operation to a direct lookup, implicitly distinguishing it from sibling tools like dadjoke_random and dadjoke_search, 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?
Usage is only implied: the caller should use this tool when they already have a joke ID. The description gives no explicit guidance on when to use dadjoke_search or dadjoke_random instead, nor does it explain how to obtain a valid ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dadjoke_randomARead-onlyIdempotent
Get a random dad joke from icanhazdadjoke.
| 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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds only the upstream provider name, and says nothing about result variability or rate limits. It does not contradict the annotations, though the idempotentHint=true sits oddly with a random endpoint — that is an annotation issue, not a description conflict.
Agents need to know what a tool does to the 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 short sentence with the action and source front-loaded and zero filler. Perfectly sized for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and full annotation coverage, almost nothing is required of the description. The one remaining gap is that it doesn't say what comes back (a joke text/ID pair), which matters slightly since there is no output schema to lean on.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no inputs are needed by describing an unfiltered random fetch.
Input schemas describe structure but not intent. Descriptions should explain 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 a random dad joke") plus the upstream source (icanhazdadjoke), which is enough to distinguish it from the sibling dadjoke_search and dadjoke_by_id tools. It doesn't explicitly name those siblings as alternatives, 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?
Usage is only implied by the word "random" — an agent can infer this is the no-argument, no-filter variant. There is no explicit statement of when to prefer this over dadjoke_search or dadjoke_by_id, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dadjoke_searchCRead-onlyIdempotent
Search for dad jokes by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| term | Yes | Search keyword | |
| limit | No | Results per page (max 30, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered elsewhere. The description adds nothing beyond them: no word on whether matching is exact or substring, whether results can be empty, or how pagination behaves when the term is missing from 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?
A single front-loaded sentence with no filler or repetition. It is arguably too terse rather than bloated, but 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?
No output schema exists, so the description would ideally say something about the shape of results (list of jokes, total count) and pagination interaction with page/limit. Given the tool's simplicity and full schema coverage 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% — every parameter (term, page, limit) is individually documented with defaults and the max-30 cap for limit. The description adds no extra meaning beyond restating that the search is keyword-based, so the schema does the heavy lifting and a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search for dad jokes') plus the search dimension ('by keyword'), which is clear and actionable. It does not explicitly distinguish itself from the sibling tools dadjoke_random or dadjoke_by_id, so a reader must infer the boundary from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of dadjoke_random (arbitrary joke) or dadjoke_by_id (direct lookup), and no prerequisites or edge-case handling are mentioned. The usage is implied by the verb 'search' but never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
damerau_distanceB
Calculate Damerau-Levenshtein distance (edits + transpositions) between two strings.
| Name | Required | Description | Default |
|---|---|---|---|
| text_a | Yes | First string. | |
| text_b | Yes | Second string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't state the return format (integer edit count?), whether it's case-sensitive, or whether the metric is symmetric. Only the algorithm variant is disclosed.
Agents need to know what a tool does to the 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 tight sentence with the key differentiator (transpositions) front-loaded. 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?
A simple 2-param pure function needs little behavior detail, and the schema covers inputs. But with no output schema and no annotations, the description should at least say what the result is (an integer distance), which it leaves 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?
Schema description coverage is 100% with two trivially documented string parameters, so per the calibration rule the baseline is 3. The description adds no syntax, ordering, or format notes 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 and resource: 'Calculate Damerau-Levenshtein distance'. It even disambiguates from the plain Levenshtein variant via the parenthetical '(edits + transpositions)', which cleanly separates it from the sibling 'edit_distance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 what it computes but gives no guidance on when to prefer it over edit_distance or string_distance, nor any constraints (e.g. string length limits, performance). With three near-identical distance siblings, the agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datadog_create_monitorC
Create a new Datadog monitor (alert).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Monitor name | |
| tags | No | Tags to attach to the monitor | |
| type | No | Monitor type (e.g. metric alert, service check, event alert) | |
| query | Yes | Monitor query expression | |
| api_key | Yes | Datadog API key | |
| app_key | Yes | Datadog Application key | |
| message | No | Notification message | |
| priority | No | Monitor priority (1-5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only says 'Create' but does not mention authentication, idempotency, rate limits, or effects like overwriting. This is a significant 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 7-word sentence with no wasted words. However, it lacks structural elements like bullet points or additional context, slightly compromising completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 parameters (4 required) and no output schema, the description is incomplete. It does not explain the return value, how to construct query/message, or any restrictions, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple 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 descriptions for all 8 parameters. The description adds no additional 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 'Create a new Datadog monitor (alert)', specifying the verb (create), resource (Datadog monitor), and action. It distinguishes from sibling tools like datadog_get_monitor and datadog_list_monitors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, no prerequisites (e.g., API keys), and no exclusions. It only states the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datadog_get_monitorBRead-onlyIdempotent
Get details for a specific Datadog monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Datadog API key | |
| app_key | Yes | Datadog Application key | |
| monitor_id | Yes | Monitor ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and repeatability profile is fully covered structurally. The description adds no extra behavior (e.g. permission scope, rate limits, what fields the monitor payload contains), so it sits at minimum viable given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficiently sized for a simple getter, though it is arguably too terse to carry any routing or credential 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?
Simple read tool with full schema coverage, annotations covering safety, and no output schema. Still, without an output schema the description should hint at what a monitor payload includes (status, thresholds, tags) and how credentials should be supplied – it does neither.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 three parameters (api_key, app_key, monitor_id) are documented in the schema. The description adds no syntax for monitor_id (numeric vs string, where to find it) or guidance on credential sourcing, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('details for a specific Datadog monitor'), which distinguishes it from datadog_list_monitors and datadog_create_monitor by name. It is clear what the call returns at a high level, though it doesn't explicitly contrast itself with the list 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?
Usage is only implied by the word 'specific' – an agent can infer this is the fetch-by-ID counterpart to list_monitors, but the description never says when to use this versus datadog_list_monitors or datadog_query_metrics, nor where the monitor_id comes from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datadog_list_dashboardsCRead-onlyIdempotent
List Datadog dashboards.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Datadog API key | |
| app_key | Yes | Datadog Application key | |
| filter_shared | No | Filter to shared dashboards only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered structurally. The description adds nothing beyond that—no pagination behavior, no mention of the filter_shared option, no return shape—so it contributes no 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?
It is a single clean sentence with no filler, but it is under-specified rather than genuinely concise—there is no front-loaded scope, return, or filtering detail to reward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and complete annotations, the minimal description is adequate to call the tool. It still omits any indication of result volume or how filter_shared changes the set, which would help an agent plan 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%, so api_key, app_key, and filter_shared are all documented in the schema itself. The description adds no extra meaning, such as what filter_shared actually surfaces, 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 (list) and resource (Datadog dashboards), so an agent knows exactly what it retrieves. It does not, however, distinguish itself from related siblings such as datadog_list_monitors or datadog_list_events, so differentiation is left to the tool 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?
There is no guidance on when to use this tool versus the monitor, event, or metric-query siblings, and no mention of prerequisites or exclusions. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datadog_list_eventsCRead-onlyIdempotent
List Datadog events stream for a time range.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time as Unix timestamp (default: now) | |
| tags | No | Comma-separated tags to filter events | |
| start | No | Start time as Unix timestamp (default: 1 hour ago) | |
| api_key | Yes | Datadog API key | |
| app_key | Yes | Datadog Application key | |
| sources | No | Comma-separated event sources | |
| priority | No | Filter by event priority |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds no behavioral context such as rate limits, pagination, authentication requirements, or result size limits beyond what the schema and 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?
It is a single front-loaded sentence with no wasted words. However, it is arguably too terse for a tool with seven parameters and no output schema, leaving useful context unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimally adequate given rich annotations and complete schema coverage. It does not describe return format, pagination, or authentication needs, but no output schema exists nor is expected to be explained in depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters, including start/end defaults and tag/source filters, are already documented in the schema. The description only mentions 'time range' and adds no extra parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('Datadog events stream'), with scope ('for a time range'). The purpose is clear, but it does not differentiate from sibling Datadog tools such as datadog_query_metrics or datadog_get_monitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 saying 'for a time range' but gives no explicit guidance on when to use this tool versus metric queries, dashboards, or monitor retrieval. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datadog_list_monitorsB
List Datadog monitors (alerts) with optional name or tag filters.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter monitors by name | |
| page | No | Page number (0-indexed) | |
| tags | No | Comma-separated monitor tags to filter by | |
| api_key | Yes | Datadog API key (DD-API-KEY) | |
| app_key | Yes | Datadog Application key (DD-APPLICATION-KEY) | |
| page_size | No | Monitors per page (max: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only states 'list' and optional filters. It omits key details: pagination (despite page/page_size in schema), authentication requirements (api_key/app_key), or read-only nature. This is insufficient for a listing 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 a single sentence with no wasted words, but it may be too sparse. Adding pagination or output hints could improve without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not explain return values or pagination behavior. For a listing tool with page/page_size parameters, this is a significant gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds 'optional name or tag filters' which mirrors the schema but does not provide additional context. 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 explicitly states the verb 'List', the resource 'Datadog monitors (alerts)', and optional filters by name or tags. This clearly differentiates it from sibling tools like get_monitor or create_monitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing monitors with optional filters but does not explicitly guide the agent on when to use this tool vs. alternatives like datadog_get_monitor for a single monitor or datadog_list_dashboards for other resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datadog_query_metricsCRead-onlyIdempotent
Query Datadog metrics time-series data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End time as Unix timestamp (default: now) | |
| from | No | Start time as Unix timestamp (default: 1 hour ago) | |
| query | Yes | Datadog metric query (e.g. avg:system.cpu.user{*}) | |
| api_key | Yes | Datadog API key | |
| app_key | Yes | Datadog Application key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond that: no mention of auth requirements, rate limits, or return shape, so it's a minimal contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It's a single front-loaded sentence with no wasted words. However, it's arguably too terse to function optimally for a 5-parameter tool with required credentials.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 requiring api_key/app_key and a Datadog query string, the description omits key context: it doesn't explain the required authentication, what time-series response format to expect, or how pagination/limits work. With no output schema, this leaves 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 description coverage is 100% (all 5 parameters documented, including query format example and time defaults), so the schema does the heavy lifting. The description adds no parameter-level meaning beyond what's already provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource: 'Query Datadog metrics time-series data.' The resource 'metrics' distinguishes it from sibling datadog tools (datadog_get_monitor, datadog_list_dashboards, datadog_list_events), but it doesn't explicitly call out the differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, no prerequisites, and no exclusions. An agent has to infer usage purely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datamuse_suggestionsC
Get autocomplete suggestions for a word prefix.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| prefix | Yes | Word prefix to autocomplete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing beyond the core action. It does not state that this is a read-only lookup, mention rate limits, or describe the shape of results; for a no-annotation tool that is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is appropriately terse for a simple lookup. It is efficient but arguably too spare to route the agent among siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema coverage and no output schema, the description is minimally sufficient. It omits any differentiation from datamuse_words, which is the main thing an agent would need in this dense tool set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both 'prefix' and 'limit' documented in the schema itself, so the baseline of 3 applies. The description only restates the prefix concept and adds no format or syntax 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 ('Get') and resource ('autocomplete suggestions') scoped to a word prefix, so the operation is unambiguous. However, it does not distinguish itself from the near-identical sibling datamuse_words, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance and no mention of the closest alternative, datamuse_words. The agent is left to infer from the name alone which of the two datamuse tools fits a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datamuse_wordsB
Find words by meaning, sound, spelling, rhyme, or adjective/noun relationship.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| nouns_for | No | Nouns commonly described by this adjective | |
| means_like | No | Words with similar meaning | |
| rhymes_with | No | Words that rhyme | |
| sounds_like | No | Words that sound similar | |
| spelled_like | No | Wildcard pattern (? = one char, * = any) | |
| adjectives_for | No | Adjectives commonly used with this noun |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It doesn't disclose whether at least one search parameter is required, how multiple parameters combine (AND/OR), rate limits, or the response format. These gaps matter for a 7-param tool with all-optional parameters.
Agents need to know what a tool does to the 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 verb and enumerates the search dimensions efficiently. 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 7-parameter, all-optional tool with no annotations and no output schema, the description is too thin. It should explain parameter combination behavior, whether at least one criterion is needed, and what the results contain. Key behavioral 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 coverage is 100%, so parameter descriptions are already fully documented in the schema. The description lists the same modes (rhyme, sound, spelling, meaning, adjective/noun) but adds no syntax, format, or combination details 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 ('Find') and resource ('words') and enumerates the search modes (meaning, sound, spelling, rhyme, adjective/noun relationship). This differentiates it from most siblings, though 'datamuse_suggestions' is a related sibling that isn't addressed. The purpose is 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 implies usage by listing the search modes, but never states when to use this tool versus alternatives like datamuse_suggestions or dictionary_lookup. No explicit when/when-not guidance is given; the agent must infer that this is a general word-finding tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_add_to_dateC
Add a duration to a date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| days | No | ||
| hours | No | ||
| years | No | ||
| months | No | ||
| minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the core action, omitting details on side effects (if any), error handling, timezone handling, or return type. For a date arithmetic tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single, concise sentence. However, for a tool with 6 parameters, a bit more structure (e.g., note on timezone) would improve clarity without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and 6 parameters without descriptions. The description fails to explain return value, valid date formats, or constraints, making it incomplete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not describe any parameter (e.g., date format, units, constraints). The agent receives no additional meaning beyond the schema field types and required 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?
The description 'Add a duration to a date' clearly states the tool's action (add) and resource (date), distinguishing it from sibling tools like datetime_date_diff or datetime_format_date.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives like datetime_business_days or datetime_convert_timezone. The description does not mention prerequisites, use cases, or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_business_daysB
Get business days between two dates.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose behavioral traits such as whether it counts weekends, holidays, or requires specific date formats.
Agents need to know what a tool does to the 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, immediate clarity, no extraneous 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 tool with no output schema and low schema coverage, the description is incomplete. Does not explain return value (count or list), date format, or business day 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 0% with no parameter descriptions. Description does not add meaning beyond parameter names, e.g., required date format or range validation.
Input schemas describe structure but not intent. Descriptions should explain 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 states the verb 'Get' and the resource 'business days between two dates'. Distinct from sibling tools like datetime_date_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives like datetime_date_diff or datetime_add_to_date. Missing context about excluding weekends/holidays.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_convert_timezoneCRead-onlyIdempotent
Convert a datetime from one timezone to another.
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | Yes | ||
| to_timezone | Yes | ||
| from_timezone | Yes |
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 structurally. The description adds nothing beyond that — no mention of DST edge cases, how ambiguous or nonexistent local times are resolved, or what the response contains, all of which are real behavioral concerns for timezone conversion.
Agents need to know what a tool does to the 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 with zero padding — the conversion direction is stated immediately. It is arguably under-specified rather than bloated, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% schema coverage and no output schema, the description is the only documentation an agent gets, and it omits both input formats and return shape. For a datetime operation where string format ambiguity causes failure, this is a meaningful 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 0%, so all three parameters are bare untyped-prose strings with no documentation. The description only restates the parameter roles implicitly and gives no format guidance (e.g. '2024-01-01T12:00:00Z' vs '2024-01-01 12:00', 'America/New_York' vs 'EST'), leaving the single most error-prone aspect of the call unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Convert') and resource ('a datetime... timezone') with both source and target scope stated, which is more than the bare name gives. It is distinguishable from siblings like datetime_current_time and timezone_info, 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?
There is no guidance on when to use this versus the several other datetime/timezone siblings, and no stated preconditions. It also omits any hint about accepted input forms (ISO 8601 strings, IANA identifiers vs abbreviations), which is exactly what an agent needs before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_current_timeCRead-onlyIdempotent
Get the current date and time, optionally in a specific timezone.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| timezone | No |
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 fully covered. The description adds nothing beyond that—it does not disclose the default timezone, the expected format semantics, or the shape of the returned value.
Agents need to know what a tool does to the 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 with no wasted words. It is appropriately sized for a simple two-parameter utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero schema descriptions and no output schema, the description leaves the format parameter completely opaque and the default timezone unstated. An agent cannot reliably use the format option based on the provided 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 description coverage is 0% for both parameters. The description mentions the timezone parameter implicitly ("optionally in a specific timezone") but says nothing about the format parameter—whether it accepts strftime-style tokens, ISO 8601, or something else. It fails to compensate for the documentation 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 states a specific verb ("Get") and resource ("current date and time") with an optional timezone qualifier, so the core operation is unambiguous. However, it offers no differentiation from a crowded set of datetime siblings such as time_api_current_by_zone, epoch_now, or datetime_convert_timezone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage hint is that a timezone can optionally be supplied. It never says when to choose this tool over siblings like time_api_current_by_zone or datetime_convert_timezone, nor does it state the default timezone behavior when the parameter is omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_date_diffC
Calculate the difference between two dates.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | ||
| date2 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose input format requirements, output unit, timezone handling, or any edge cases. The behavioral traits are largely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence, but it lacks critical details. It is not overly verbose, but the brevity sacrifices informational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 absence of annotations, output schema, and parameter descriptions, the description is far from complete. It fails to provide enough context for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds no information about the parameters. The agent has no guidance on what date formats are accepted or how the parameters should be structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 calculates the difference between two dates, which is specific and distinguishes it from sibling tools like datetime_add_to_date or datetime_business_days. However, it does not specify the unit of the output, which could be ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like datetime_business_days or datetime_format_date. The description does not mention any prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_format_dateC
Format a date string.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| format | No | ||
| locale | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral transparency burden. It does not disclose what date formats are accepted, how invalid inputs are handled, or what the output looks like. The brief description adds no 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 extremely concise (4 words) but at the cost of informativeness. It does not earn its place as it fails to provide any guidance or context that would be 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?
Given the tool's complexity (date formatting with format and locale parameters) and the absence of an output schema, the description is severely incomplete. It does not explain format tokens, locale usage, or return value 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 0%, so the description must explain the parameters. The description adds no meaning for 'date', 'format', or 'locale' beyond the schema, which only specifies them as strings. This is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Format a date string' clearly states the action and the resource. It distinguishes from sibling tools like datetime_convert_timezone which change timezones, and datetime_date_diff which computes differences, so the purpose is 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?
No usage guidelines are provided. There is no indication of when to use this tool versus alternatives like datetime_convert_timezone, nor are there any prerequisites or exclusions for using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetime_week_numberA
Get the ISO week number for a date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description 'Get the ISO week number' implies a read-only operation with no side effects, but does not disclose any potential errors, permissions, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential purpose without extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameter, the description covers the basic purpose but fails to specify the return value format or param constraints, which are needed 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 has no description for the 'date' parameter (0% coverage). The description does not specify the expected date format (e.g., YYYY-MM-DD), leaving the agent to infer from the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'ISO week number for a date', which is distinct among sibling datetime tools like datetime_date_diff and datetime_business_days.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternative datetime tools. The purpose implies usage for week number calculations, but lacks differentiation from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dblp_search_authorsCRead-onlyIdempotent
Search DBLP for computer science researchers.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Author name. | |
| max_results | No | Max results (default 10, max 30). |
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 fully covered. The description adds nothing beyond them — no note on result format, ranking, or whether names are matched as prefix/fuzzy.
Agents need to know what a tool does to the 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 with zero filler. It is appropriately sized, though its brevity is partly under-specification rather than pure economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with full schema coverage and no output schema, the description is minimally adequate. It leaves unstated what an author result contains and how this differs from the several other author/publication search tools in the catalogue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 only two parameters, both documented ('Author name.', 'Max results (default 10, max 30).'). The description adds no extra semantics such as name-format expectations or disambiguation behavior, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('DBLP for computer science researchers'), which maps cleanly to author lookup. However it never distinguishes itself from sibling author search tools like openalex_search_authors or clarifies that results are author records rather than publications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no prerequisites, and no mention of the alternatives (openalex_search_authors for cross-domain author search, dblp_search_publications for papers). The agent must infer selection 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.
dblp_search_publicationsBRead-onlyIdempotent
Search DBLP for computer science publications.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Title, author, or keyword. | |
| max_results | No | Max results (default 10, max 30). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, fully covering the safety profile. The description adds no behavioral context beyond that (e.g., result format, pagination, ranking) but does not contradict it, so a minimum-adequate 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?
A single, front-loaded sentence with zero waste. It is appropriately short for a simple search tool, though terseness contributes to the missing usage/scope 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 two-parameter search with full schema coverage and rich annotations, the description is minimally sufficient. It omits any hint of return structure or scope boundaries, which would help an agent distinguish it from adjacent scholarly search 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 coverage is 100%, with query and max_results both described in the schema (including default 10 and max 30). The description adds nothing 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?
States a specific verb ('Search') and resource ('DBLP ... publications'), so the agent knows it retrieves CS publication records. However it does not differentiate from close siblings like dblp_search_authors or arxiv_search/openalex_search_works, leaving the agent to infer 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 no when-to-use guidance, no prerequisites, and does not name alternatives such as dblp_search_authors or other scholarly search tools. Usage is only loosely implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de_bruijnA
Generate a de Bruijn sequence B(k,n) containing every k-ary substring of length n exactly once.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | Alphabet size (2-10) | |
| n | Yes | Substring length (1-10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the defining output property (every k-ary substring appears exactly once), which is genuinely useful behavioral context, but says nothing about the output format, length, or handling of edge cases. A 3 reflects partial disclosure for an unannotated 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?
A single sentence, front-loaded with the verb and result, that defines the output mathematically. 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 two-parameter deterministic generator with fully documented parameters and no output schema, the definition is adequate: an agent knows exactly what it produces. A little more on the output representation (e.g., string vs array) would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both k and n already documented (alphabet size 2-10, substring length 1-10). The description's B(k,n) notation restates the roles but adds no meaning beyond the schema, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (de Bruijn sequence) and defines the output precisely as B(k,n) containing every k-ary substring of length n exactly once. It's clear what it produces, though it doesn't differentiate itself from neighboring combinatorics/math helpers like gray_code or necklace_count, which it doesn't need to since they compute different objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use or when-not-to-use guidance, and no alternatives named. However, for a deterministic mathematical generator the usage is largely implied by the purpose, so this is minimally adequate rather than misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deck_drawC
Draw cards from a deck.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of cards to draw (default 1) | |
| deck_id | Yes | Deck ID from deck_new |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It doesn't disclose whether drawing modifies the deck (removes cards), what happens when the deck is empty, if there's a limit on count, or any authentication needs. The only behavioral hint is the default count from the schema, not the description. This is a significant gap for a mutation-like 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 a single, efficient sentence with no waste. It is front-loaded with the core action. However, it is arguably too brief, missing key context that would earn a 5 for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and two parameters, the description is incomplete. It doesn't explain the return value (e.g., list of cards), side effects, or prerequisites. For a tool that likely mutates state, this leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (count and deck_id) are fully documented in the schema. The description adds no additional meaning beyond what the schema provides—it doesn't explain constraints on count or deck_id format. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (draw) and resource (cards from a deck), which is clear. However, it is quite terse and doesn't differentiate from siblings like deck_new or deck_shuffle, nor does it specify the scope (e.g., draw from an existing deck vs create a new one). It's minimally viable but lacks the specificity of a 4 or 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?
There is no guidance on when to use this tool versus alternatives. It doesn't mention that a deck must be created first (deck_new) or if it can be shuffled (deck_shuffle). No exclusions or prerequisites are stated. The description merely repeats the core action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deck_newB
Create and shuffle a new deck of cards.
| Name | Required | Description | Default |
|---|---|---|---|
| deck_count | No | Number of decks (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it only restates the create-and-shuffle action. It says nothing about whether a deck identifier is returned, whether state persists for later draws, or any side effects of creating a new deck.
Agents need to know what a tool does to the 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 short sentence with the action front-loaded and zero filler. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero-required-parameter constructor with full schema coverage and no output schema, the description covers the essential operation. It falls slightly short by not hinting at the returned deck handle that downstream tools like deck_draw would need, but the tool itself is simple enough that 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?
There is one optional parameter with 100% schema coverage ('Number of decks (default 1)'), so the schema already documents it fully. The description adds no extra meaning about deck_count, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb phrase and resource ('Create and shuffle a new deck of cards'), so an agent knows exactly what it produces. It does not explicitly differentiate from siblings like deck_shuffle or deck_draw, leaving the create-vs-shuffle distinction 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?
Usage is only implied: the tool is for starting with a fresh shuffled deck before drawing or shuffling. There is no explicit when-to-use statement, no prerequisites, and no named alternative despite deck_shuffle and deck_draw existing as obvious siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deck_shuffleC
Reshuffle an existing deck.
| Name | Required | Description | Default |
|---|---|---|---|
| deck_id | Yes | Deck ID to reshuffle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation (the deck's existing order is replaced) but doesn't state whether the previous order is preserved, whether this requires ownership/auth, or whether the operation is idempotent. For a mutation tool with zero annotation coverage, this is a significant 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?
One short sentence with zero waste. The verb and object are front-loaded and there is nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and no usage guidance, the description is thin. An agent cannot tell what the tool returns, what happens to the prior order, or how it relates to deck_new/deck_draw.
Complex tools with many parameters or behaviors need more documentation. Simple 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 single parameter deck_id is already fully documented. The description adds no syntax or format details 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?
States a specific verb 'reshuffle' and resource 'deck', distinguishing it from sibling deck_draw and deck_new. Missing only the disambiguation from deck_new that a 5 would require.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance is given. The description does not mention prerequisites, whether the deck must exist, or the relationship to deck_new/deck_draw.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepl_get_usageARead-onlyIdempotent
Get DeepL API usage and quota information for the current billing period.
| Name | Required | Description | Default |
|---|---|---|---|
| auth_key | Yes | DeepL Auth Key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds the meaningful detail that results are scoped to the current billing period, but says nothing about response shape, rate limits, or authentication behavior beyond the required key 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?
One sentence, zero filler, with the resource and its time scope front-loaded. Nothing could be removed 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?
For a simple single-parameter read tool with full annotation coverage and no output schema, the description says what is returned (usage and quota) and the period it covers. Only minor gaps remain, such as whether quota is per-character or per-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?
There is a single parameter with 100% schema description coverage, so the schema fully documents auth_key. The description adds no syntax or acquisition guidance for the key, 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 (Get) and resource (DeepL API usage and quota information) with a clear time scope (current billing period). It is easily distinguished from the other DeepL siblings (translate_text, translate_document, list_languages), though it doesn't name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the tool for checking remaining quota before translating, but there is no explicit when-to-use guidance, no mention of when other DeepL tools apply, and no note about failure modes such as an invalid key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepl_list_languagesARead-onlyIdempotent
List all languages supported by DeepL for translation.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Language direction (default: target) | |
| auth_key | Yes | DeepL Auth Key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, read-only, idempotent, open-world lookup. The description adds that the result is the set of supported translation languages, but does not mention auth requirements or the source/target distinction beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant wording. It communicates the tool's scope 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 read-only lookup with full schema coverage and annotations, the description is mostly sufficient. One minor gap is that it does not clarify the source/target option in prose, though the schema already documents 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%, including the source/target enum and the required auth_key, so baseline is 3. The description does not add meaning beyond the schema, such as how source versus target language lists differ.
Input schemas describe structure but not intent. Descriptions should explain 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: lists languages supported by DeepL for translation. The purpose is clear, but it does not differentiate this tool from translation-related siblings such as deepl_translate_text or deepl_get_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description—this is the tool for discovering supported languages—but there is no explicit guidance on when to choose it over related DeepL tools or how the type parameter should influence use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepl_translate_documentB
Submit a document (PDF, Word, PowerPoint) for translation via DeepL.
| Name | Required | Description | Default |
|---|---|---|---|
| auth_key | Yes | DeepL Auth Key | |
| filename | No | Filename with extension (e.g. report.pdf) | |
| formality | No | Formality level | |
| source_lang | No | Source language code (auto-detected if omitted) | |
| target_lang | Yes | Target language code (e.g. DE, FR, JA) | |
| document_url | Yes | Publicly accessible URL of the document to translate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose key behaviors like asynchronous submission, result retrieval, or auth/authz 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?
Single sentence, concise, and front-loaded with key action and supported formats, but lacks structure for additional 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?
With no output schema and sibling tools for text translation, the description misses critical info about asynchronous nature and result handling.
Complex tools with many parameters or behaviors need more documentation. Simple 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 all parameters with descriptions (100% coverage). The tool description adds minimal semantic value beyond listing document 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?
Description clearly states the tool submits a document for translation via DeepL, lists supported formats (PDF, Word, PowerPoint), and implicitly distinguishes from deepl_translate_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?
Usage is implied: use for document translation, but no explicit comparison to sibling deepl_translate_text or guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepl_translate_textB
Translate text into another language using DeepL's neural translation engine.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text or array of texts to translate (max 50 texts per call) | |
| auth_key | Yes | DeepL Auth Key from deepl.com. Free tier keys end with :fx. | |
| formality | No | Formality level (supported in some languages) | |
| source_lang | No | Source language code (auto-detected if omitted) | |
| target_lang | Yes | Target language code (e.g. EN-US, EN-GB, DE, FR, JA, ZH, ES) | |
| tag_handling | No | Enable tag handling | |
| preserve_formatting | No | Preserve original formatting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'neural translation engine' without mentioning rate limits, authentication requirements (auth_key is required but not highlighted), or the array input limit of 50 texts. The tool's safe/mutating behavior is not indicated.
Agents need to know what a tool does to the world before calling 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, concise sentence that conveys the core purpose without extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is insufficient. It does not cover return values, error handling, or the nuances of array inputs, tag handling, or formality constraints. The complexity of the tool requires more contextual 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 baseline is 3. The description does not add any semantic detail beyond what the schema already provides; it merely restates the tool's function without explaining parameters like text, target_lang, or formality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Translate text into another language using DeepL's neural translation engine.' It specifies the verb (translate) and resource (text), and distinguishes from sibling tools like deepl_translate_document which handles documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as deepl_translate_document for documents or deepl_get_usage for quota checks. The description does not mention when to avoid using it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deezer_chartC
Get Deezer chart (top tracks/albums/artists).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | tracks, albums, artists, playlists | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It fails to mention authentication requirements, rate limits, or output format. The minimal description gives no insight into how the tool behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, but it sacrifices useful detail for brevity. It is appropriately front-loaded but fails to include necessary information that could be provided without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and low schema description coverage, the description should compensate with more detail. It does not explain the output format, pagination, or any default behavior, leaving the tool contextually incomplete.
Complex tools with many parameters or behaviors need more documentation. 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 two parameters (type, limit) with only 50% description coverage. The tool description adds no additional meaning beyond the schema, leaving the 'limit' parameter undocumented. The description does not clarify the valid values for 'type' beyond what is 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 clearly states the tool gets a Deezer chart listing top tracks, albums, or artists. It uses a specific verb and resource, and distinguishes from sibling tools like deezer_get_album or deezer_search. However, it doesn't explicitly state that it retrieves the global chart, which could add specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternative Deezer tools such as deezer_search or individual get tools. The description only indicates the purpose, leaving the agent to infer when a chart query is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deezer_get_albumCRead-onlyIdempotent
Get a Deezer album by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
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 fully covered by structured data. The description adds nothing beyond that — no mention of rate limits, ID format expectations, or behavior on a nonexistent ID.
Agents need to know what a tool does to the 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 short sentence with no filler, and the resource is front-loaded. It is efficient but so terse that it omits anything that would earn its place beyond the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a lookup tool with no output schema, one undocumented parameter, and no annotations gap to fill, the description should at least indicate what an album record includes or what a bad ID yields. As written it is barely more informative than the tool name.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter with 0% schema description coverage; the schema only says 'id' is a number. The description adds 'by ID' but does not clarify whether this is a Deezer-native numeric album ID or whether IDs from search results are directly reusable, leaving the sole parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain 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 a Deezer album') and scopes it to lookup by ID, which distinguishes it from deezer_search. However, it does not differentiate from deezer_get_track or deezer_get_artist beyond the noun, and offers no note on what an album payload contains versus a search result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus deezer_search (e.g., when you already have an album ID from a prior search result). The reader must infer that an ID is required first and must come from elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deezer_get_artistBRead-onlyIdempotent
Get a Deezer artist by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
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 no behavioral context such as authentication needs, rate limits, error behavior, or return shape, so it restates the operation without enriching the agent's behavioral model.
Agents need to know what a tool does to the 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 with zero wasted words. For a simple lookup tool, this is appropriately 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 simple single-parameter lookup with rich safety annotations and no output schema, the description is usable but incomplete. It omits return shape and ID acquisition details that would help an agent 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?
With one parameter and 0% schema description coverage, the description should explain the ID. It identifies it as a Deezer artist ID, which adds some meaning beyond the bare schema property, but it does not say where to obtain the ID or what happens if it is invalid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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'), resource ('Deezer artist'), and lookup key ('by ID'). It is clear, but it does not name or distinguish the likely alternative deezer_search, so a 4 rather than 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?
There is no guidance on when to use this versus deezer_search or deezer_get_track/deezer_get_album, nor how to obtain the ID. 'By ID' implies the prerequisite but gives no alternatives or exclusions, matching the no-guidance anchor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deezer_get_trackB
Get a Deezer track by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It fails to mention read-only nature, error handling, or any side effects. Minimal 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?
Single sentence, no wasted words, and the key information is front-loaded. Every word is earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool simplicity (one parameter, no output schema), the description lacks return value description, typical behavior, or error cases. Incomplete for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple 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 description should compensate. It adds 'by ID' indicating the parameter's role, but does not specify format, source, or constraints beyond the schema declaring it a number.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it gets a Deezer track by ID, using a specific verb and resource. Among sibling tools like deezer_get_album and deezer_get_artist, it uniquely identifies the action and target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus alternative tools like deezer_search or other get_track tools. No context for prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deezer_searchC
Search Deezer for tracks, artists, or albums.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| type | No | track, artist, album, playlist | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only implies a read-only search operation but does not mention authentication requirements, rate limits, pagination behavior, or any potential side effects. The description is too minimal to adequately inform the agent.
Agents need to know what a tool does to the world before calling 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 of six words, efficiently conveying the core action and target. It is front-loaded and contains no superfluous information, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 absence of annotations, output schema, and the presence of sibling tools, the description is incomplete. It does not explain return values, pagination, or how to interpret results. The tool is simple, but a more complete description would include guidance on search behavior and 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?
The input schema has only one parameter with a description (type), and schema description coverage is low at 33%. The description lists the entity types ('tracks, artists, or albums') which loosely corresponds to the type parameter, but does not explain the purpose of the 'q' or 'limit' parameters. More elaboration on how to use these parameters would be needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Search') and the resource ('Deezer for tracks, artists, or albums'). It is specific about the entity types covered, which helps differentiate from sibling tools like deezer_search_playlist that focus on playlists. However, it does not explicitly differentiate from deezer_chart or deezer_get_* tools, but the verb and resource combination is 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?
No guidance is provided on when to use this tool versus alternatives such as deezer_get_album, deezer_get_artist, or deezer_search_playlist. There is no mention of prerequisites, context, or 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.
deezer_search_playlistCRead-onlyIdempotent
Search for Deezer playlists.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds nothing beyond that—no note on result count, pagination, ranking, or what a playlist record contains.
Agents need to know what a tool does to the 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 short sentence with no padding, so nothing is wasted. However, it is under-specified rather than concise—there is barely any content to front-load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% parameter coverage, the description should carry the load but doesn't. An agent gets no idea of return shape, result limits, or query behavior, which matters for an open-world 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 0% for both parameters (q, limit). The description does not explain that q is a free-text query or what limit constrains, leaving the agent to guess value ranges and semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Deezer playlists), which is clear on its own. It doesn't distinguish itself from siblings like deezer_search or deezer_chart, so an agent can't tell from the description alone why it would pick this over the general Deezer 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?
No when-to-use guidance, no mention of alternatives such as deezer_search, deezer_get_album, or deezer_get_artist. The agent must infer that this is playlist-specific search purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_todoDelete a Boardroom todoADestructive
Hard-deletes a todo and any comments on it. Use sparingly: prefer drop_todo so history is preserved. agent_id required for the audit log.
| Name | Required | Description | Default |
|---|---|---|---|
| todo_id | Yes | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds important behavior beyond them: comments are cascade-deleted and agent_id is required for the audit log. It does not explicitly state irreversibility or what happens if the todo is absent, but the core destructive semantics are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the destructive action and scope, followed by the alternative and audit requirement. Every sentence contributes directly to correct tool selection or 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 two-parameter destructive tool with no output schema, the description covers what is destroyed, why to avoid it, and the audit requirement. It is largely complete, though it could mention any permission scope or failure 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 0%, so the description must carry parameter meaning. It clarifies agent_id's purpose ('required for the audit log') but adds no detail about todo_id beyond its self-explanatory name, leaving one parameter semantically thin.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Hard-deletes') and exact resource scope ('a todo and any comments on it'), clearly distinguishing it from sibling drop_todo. An agent can immediately understand this is a permanent deletion operation rather than an archival drop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use sparingly' and names the preferred alternative: 'prefer drop_todo so history is preserved.' This gives both a when-not-to-use condition and a concrete sibling tool to route to instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
derangement_calcBRead-onlyIdempotent
Count and optionally enumerate derangements (permutations with no fixed points).
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Size of permutation (1-20) | |
| enumerate | No | List all derangements (n <= 8) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint, so the safety profile is covered structurally. The description adds that enumeration is optional and supplies the mathematical definition, but says nothing about result size, ordering, or growth of counts. Added value exists but is modest against the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the primary action front-loaded and the optional behavior as a subordinate clause. Zero filler; 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 tiny pure-computation tool with full schema coverage, complete annotations and no output schema, the description is sufficient to invoke correctly. It could be richer only by routing to siblings or describing the output shape, which is a minor gap for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (n with its 1-20 range, enumerate with its n <= 8 constraint) are documented in structured form. The description's 'count and optionally enumerate' maps loosely onto the two parameters but adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count/enumerate) and a precise resource (derangements), and even defines the term as permutations with no fixed points. An agent knows exactly what computation it gets. It does not name or distinguish itself from the nearby permutation_calc / combination_calc siblings, 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 gives no when-to-use guidance and never mentions the closest alternatives (permutation_calc, combination_calc) or when enumeration should be preferred over counting. The only usage hint, n <= 8 for enumerate, lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
descriptive_statsBRead-onlyIdempotent
Compute descriptive statistics: mean, median, mode, std, variance, skewness, kurtosis, quartiles, IQR, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Numeric data array |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld behavior, so the safety profile is covered. The description adds a list of computed metrics but does not disclose edge-case behavior, numeric input requirements, empty-array handling, precision, or return format beyond the stat names.
Agents need to know what a tool does to the world before calling 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 wasted wording. It immediately identifies the operation and lists the 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?
The tool is simple, but without an output schema the description should more clearly specify the return values; 'and more' leaves the output set vague. It is adequate for a one-parameter pure computation tool but lacks edge-case and output-format 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?
The schema covers 100% of the single parameter, documenting `data` as a numeric array. The description does not add syntax or input constraints beyond what the schema already provides, so the baseline of 3 applies when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — compute descriptive statistics — and enumerates the main metrics returned. It is clear what the tool does, but it does not distinguish itself from nearby siblings such as statistics_calc, variance_calc, percentile_calc, or running_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like statistics_calc, variance_calc, or percentile_calc, nor any note about prerequisites or exclusions. The usage is only inferable from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfs_searchBRead-onlyIdempotent
Depth-first search on a graph. Finds a path, visit order, reachable count, and detects cycles.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of edges | |
| start | Yes | Start node | |
| target | No | Optional target node | |
| directed | No | Whether the graph is directed (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds useful result semantics by saying it returns a path, visit order, reachable count, and cycle detection, but it does not explain how target or directed flags affect behavior or what the return structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. It front-loads the algorithm and follows with the output summary, 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?
Given rich annotations and full schema coverage, the description covers the core purpose and output categories. However, with no output schema, it could be more complete about how the optional target affects the path result and how the cycle-detection output is represented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 in the input schema. The description does not add any parameter-specific meaning beyond the schema, which is acceptable at baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific algorithm and resource ("Depth-first search on a graph") and lists the outputs it produces ("path, visit order, reachable count, and detects cycles"). It is clear what the tool does, but it does not explicitly distinguish itself from siblings like bfs_search or graph_analyze.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use DFS versus BFS, Dijkstra, or graph_analyze. The only implied usage is that it operates on graphs, which is evident from the tool name and schema; no alternatives, prerequisites, 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.
diceware_passphraseB
Generate a secure random passphrase using the diceware word list.
| Name | Required | Description | Default |
|---|---|---|---|
| words | No | Number of words (3-12, default 6). | |
| separator | No | Word separator (default '-'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It asserts the output is 'secure' and random but does not explain the source of randomness, whether generation is local/offline, or what the returned value looks like. For a security-relevant generator with zero annotation coverage, this leaves meaningful gaps.
Agents need to know what a tool does to the 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 with no filler; the purpose is conveyed immediately and nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 generator with fully documented parameters and no output schema, the description is minimally sufficient. It could reasonably note that it returns a passphrase string and that generation is local, but the core need is 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%, with 'words' documented as 3-12/default 6 and 'separator' as default '-', so the schema already does the heavy lifting. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Generate a secure random passphrase') and names the algorithm family (diceware word list), so the agent knows exactly what this produces. It does not explicitly differentiate itself from near siblings like password_generate or random_string, but the passphrase-vs-password distinction is reasonably implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 stated preconditions, and no mention of alternatives such as password_generate for shorter secrets. The agent must infer applicability purely from the name and sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionary_lookupBRead-onlyIdempotent
Look up a word's definition, phonetics, and examples.
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes |
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 the useful detail of what is returned (definition, phonetics, examples), but says nothing about behavior for unknown words or whether multiple senses are 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?
A single front-loaded sentence with no filler; the returned fields are listed efficiently. Nothing redundant, though it is brief to the point of under-specification on alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup tool with full annotation coverage and no output schema, the description names the returned fields, which substitutes adequately for a return-value contract. Only the sibling-routing guidance 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?
Only one parameter ('word') at 0% schema description coverage, but the name is fully self-explanatory and the description's phrasing 'a word's definition' reinforces it. No added guidance on format, casing, or whether inflected forms resolve.
Input schemas describe structure but not intent. Descriptions should explain 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 ('a word'), and enumerates the returned fields (definition, phonetics, examples). It does not distinguish itself from siblings like wiktionary_lookup or dictionary_lookup_language, 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?
There is no guidance on when to use this versus wiktionary_lookup, dictionary_lookup_language, or urban_define, and no mention of prerequisites or language scope. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionary_lookup_languageCRead-onlyIdempotent
Look up a word in a specific language (es, fr, de, it, ja, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | ||
| language | Yes | Language code (e.g. es, fr, de, it, ja) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing beyond them: no indication of what a lookup returns (single entry vs. multiple senses), whether the word must be in the target language's script, or how unknown words are handled.
Agents need to know what a tool does to the 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 with no waste, but the brevity is achieved by omission rather than economy — nothing about behavior, return shape, or alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of what the lookup returns, on a tool whose entire value is the returned entry. For a two-parameter lookup with half its schema undocumented, the description leaves an agent guessing about output format and word formatting.
Complex tools with many parameters or behaviors need more documentation. 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 only 50% schema description coverage, the description needs to compensate and does not. It merely repeats the language-code examples already present in the schema and says nothing about the 'word' parameter — e.g. whether it must be in the target language, accented, or lowercase.
Input schemas describe structure but not intent. Descriptions should explain 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 a word) scoped to a non-English language via the language code, which is more than a tautology. But it never distinguishes itself from close siblings such as dictionary_lookup, wiktionary_lookup or jisho_search, so an agent cannot tell from the description whether this returns definitions, translations, or entries in a monolingual dictionary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only implied usage (look up non-English words). There is no statement of when to prefer this over dictionary_lookup or wiktionary_lookup, no mention that the language parameter is mandatory for non-English lookups, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_textA
Compare two texts line by line and show added/removed lines.
| Name | Required | Description | Default |
|---|---|---|---|
| text_a | Yes | First text (original). | |
| text_b | Yes | Second text (modified). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behavior and output shape (added/removed lines), but it does not explicitly state that the operation is read-only or side-effect-free.
Agents need to know what a tool does to the world before calling 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 contains no filler. 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 two-input utility with no output schema, the description adequately explains the comparison and the return shape. It does not address edge cases like whitespace or case sensitivity, but the core context is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already documented as original and modified text. The description adds no parameter-level detail 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 gives a specific verb (Compare) and resource (two texts) and specifies the operation as line-by-line. The added/removed output distinguishes it from sibling similarity or distance tools such as string_distance and edit_distance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 implies when the tool is useful, but there is no explicit guidance about when to prefer it over related text-comparison siblings. It also does not mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digimon_allARead-onlyIdempotent
List all Digimon with names, images, and levels.
| 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 destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the useful detail of which fields are returned, but says nothing about result size, pagination, or how large 'all' might be for an open-world 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?
One sentence, front-loaded with the action and covering the return fields — no filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with annotations covering the safety profile and no output schema, the description supplies enough to call it and interpret the result. A note on result size or completeness of the list would close the remaining 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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No syntax or format guidance is needed.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List all Digimon') and names the fields returned (names, images, levels), so the agent knows exactly what comes back. It does not distinguish itself from the siblings digimon_by_name or digimon_by_level, which is the only gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'all' implies this is the unfiltered bulk endpoint and that filtered lookups belong elsewhere, but the description never names the alternatives (digimon_by_name, digimon_by_level) or states a condition for choosing them. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digimon_by_levelARead-onlyIdempotent
List Digimon filtered by evolution level.
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Level: Fresh, In Training, Rookie, Champion, Ultimate, or Mega |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint, so the safety profile is covered. The description adds the level-filtering scope but does not discuss result shape, ordering, or whether matching is exact/case-sensitive, so it adds only moderate 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?
A single front-loaded sentence with no wasted words. It immediately conveys the tool's action and filter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-parameter listing tool with full schema coverage and annotations, the description is adequate. It could be slightly stronger if it clarified exact-match behavior or that it returns a list, but no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single level parameter already lists all accepted values. The description merely restates that filtering is by evolution level and adds no extra 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 a specific verb and resource (list Digimon) plus the filtering dimension (evolution level). It does not explicitly distinguish this from sibling tools like digimon_all or digimon_by_name, 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?
Usage is implied: call this when you need Digimon filtered by evolution level. However, it gives no explicit guidance on when to prefer it over digimon_all or digimon_by_name, and no exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digimon_by_nameBRead-onlyIdempotent
Look up a specific Digimon by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Digimon name (e.g. Agumon, Greymon) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: it doesn't say whether matching is exact or partial, or what happens when the name is not found, which is the one piece of behavior an agent can't infer.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though the terseness leaves the distinction from sibling listing tools unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple: one required parameter, full schema coverage, annotations present, and no output schema to explain. The description is minimally adequate but omits the one thing that matters for a lookup tool, namely exact vs. fuzzy name matching and the not-found 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% and the single parameter already carries its own description with examples ('Agumon, Greymon'), so the baseline of 3 applies. The description's 'by name' phrasing restates the schema rather than adding matching-rule detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Look up a specific Digimon by name'), so an agent immediately knows it retrieves one entity keyed by name. It does not distinguish itself from the sibling digimon_all or digimon_by_level, which is the only clear gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Look up a specific Digimon by name' implies the trigger condition (you already know the name), but no alternative is named and there is no explicit when-not guidance pointing to digimon_all for listing or digimon_by_level for filtered browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digit_dpB
Count integers from 1 to N whose digit sum equals a target value using digit DP.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Upper bound (positive integer, max 1e15) | |
| target_digit_sum | Yes | Target digit sum (0-135) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It is a deterministic pure-computation tool, so the implicit safety profile is benign, and 'using digit DP' hints at the algorithmic approach. However, it does not state that the result is a single integer count, whether N is inclusive, or anything about runtime scaling for the 1e15 bound.
Agents need to know what a tool does to the 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 with the verb and the count condition first, and no wasted words. The trailing 'using digit DP' is mild implementation detail but does convey the approach, 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 two-parameter pure math function with full schema coverage and no output schema, the description covers what the tool computes and implicitly what it returns (a count). It could add inclusive/exclusive semantics for N, but nothing critical to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (n with its 1e15 cap, target_digit_sum with its 0-135 range) are already fully documented in the schema. The description only restates '1 to N' and adds no syntax, format, or edge-case meaning beyond that, 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?
States a specific verb ('Count') and a precisely bounded resource ('integers from 1 to N whose digit sum equals a target value'), which is enough for an agent to distinguish it from generic DP siblings like sos_dp or coin_change. It does not name an alternative or clarify boundaries against brute-force counting approaches, 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 never says when to prefer this over an alternative (e.g., direct enumeration) or what the valid operating context is. The usage is only implied by the purpose sentence; there are no explicit when/when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dijkstra_pathC
Find the shortest path between two nodes in a weighted graph (Dijkstra's algorithm).
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of [from, to, weight] triples. | |
| source | Yes | Source node name. | |
| target | Yes | Target node name. | |
| directed | No | Treat graph as directed (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It omits critical traits: that Dijkstra does not support negative edge weights, the default directedness, whether a path is always returned when one exists, and what the response contains (path vs. cost).
Agents need to know what a tool does to the 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 tight sentence with the purpose front-loaded and no filler. It is efficient, though the brevity comes at the cost of the usage and behavior detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description should explain what the tool returns (path sequence, total weight, unreachable-node behavior) and the negative-weight limitation. For a 4-parameter algorithmic tool, one sentence is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 source, target, edges, and directed. The description adds only the notion of a weighted graph, which the schema's [from, to, weight] triple description also implies, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find), resource (shortest path between two nodes), and the algorithm used, so the agent knows exactly what computation occurs. However, it offers no differentiation from close siblings like astar_path, bellman_ford, or bfs_search, which an agent must choose between in a large graph-algorithm family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prefer Dijkstra over astar_path (heuristic-guided), bellman_ford (negative weights), or floyd_warshall (all-pairs). No prerequisites or exclusions are stated, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dinic_max_flowC
Compute maximum flow in a network using Dinic's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| sink | Yes | Sink vertex | |
| edges | Yes | Edges as [u, v, capacity] triples | |
| source | Yes | Source vertex | |
| vertex_count | Yes | Number of vertices (max 10,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it discloses nothing about behavior beyond the algorithm name. It does not state assumptions (directed edges, integer capacities), complexity/limits, or failure modes for invalid source/sink.
Agents need to know what a tool does to the 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 with zero padding. It is appropriately terse, though it is arguably under-specified rather than optimally concise given the missing behavioral 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?
There is no output schema, so the description is responsible for explaining what is returned (a max-flow value, a flow assignment, or both), and it says nothing. Combined with no annotations and no disclosed assumptions, the definition leaves significant gaps for a non-trivial algorithm 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 all four parameters (vertex_count, edges, source, sink) are already documented in the schema, including the [u, v, capacity] edge format. The description adds nothing beyond this, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compute) and resource (maximum flow in a network) and even names the algorithm, so the operation is unambiguous. However, it gives no hint of how it relates to siblings like edmonds_karp or min_cost_max_flow, which also compute flows, so differentiation is left to the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g., directed graph, non-negative capacities), and no mention of the competing flow algorithms among the siblings. The agent must infer everything from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discogs_get_artistCRead-onlyIdempotent
Get a Discogs artist by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| artist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the basic safety profile is free. The description adds nothing on top: no authentication requirement, no mention of the api_key parameter's role, no rate-limit or not-found behavior, and no indication of what the response contains.
Agents need to know what a tool does to the 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 short sentence that is fully front-loaded and contains no filler. Nothing in the sentence is wasted, even if the sentence as a whole is under-informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with zero schema descriptions and no output schema, the description is too thin. It should at minimum disclose the auth role of api_key and what an artist payload includes, and it should point to discogs_search_artists for ID discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. 'By ID' partially covers artist_id, but api_key is never mentioned despite being a parameter an agent must reason about (likely required for auth), and no format or type expectations for artist_id are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb and resource (get a Discogs artist) and the lookup key (by ID), which is enough to tell it apart from non-artist siblings like discogs_get_release or discogs_marketplace_stats. It never differentiates itself from discogs_search_artists, the sibling most likely to be confused with 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?
There is no when-to-use guidance and no named alternative. An agent is not told that discogs_search_artists should be used first to resolve a name into the ID this tool requires, nor is any error condition on an unknown ID described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discogs_get_labelB
Get a Discogs record label by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| label_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but only uses the verb 'Get', implying read-only behavior. No information about rate limits, authentication, or side effects is provided, which is insufficient for a tool with zero 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, efficient sentence that front-loads the core purpose. No extraneous information 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 get-by-ID tool without an output schema, the description is minimally adequate but lacks details on return format, error handling, and the role of the optional api_key. The sibling context includes many related tools, but no cross-referencing is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. The api_key parameter is completely undocumented in both the schema and the description. The description only hints at 'by ID' but adds 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 clearly states the action ('Get') and the resource ('Discogs record label by ID'). It uniquely identifies this tool among siblings like discogs_get_artist and discogs_get_release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 other Discogs tools or alternatives. There is no mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discogs_get_releaseC
Get a Discogs release by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states 'Get', implying a read operation, but fails to disclose rate limits, authentication requirements (api_key), return format, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence. While there is no waste, it sacrifices important details. For a simple tool, this is acceptable but not excellent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simplicity of the tool and absence of output schema or annotations, the description is incomplete. It does not mention what data the response contains, any prerequisites, or potential errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It does not explain release_id (e.g., numeric ID meaning) or api_key (how to obtain, required for authenticated requests). No value added 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 verb 'Get' and the resource 'Discogs release', and specifies the identifier method 'by ID'. This distinguishes it from sibling tools like discogs_search_releases or discogs_get_artist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives (e.g., search_releases). The context implies it is for fetching a single release by ID, but no when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discogs_marketplace_statsC
Get Discogs marketplace stats for a release.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and a one-sentence description, there is no disclosure of behavioral traits (e.g., read-only, destructive, rate limits). The description does not compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, but it could be expanded to include more context without becoming overly verbose. The structure is minimal but acceptable for a simple 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?
Given the lack of output schema, param descriptions, and annotations, the description fails to provide complete context. It does not specify what stats are returned or any limitations.
Complex tools with many parameters or behaviors need more documentation. 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, and the description does not explain the release_id or api_key parameters, leaving their purpose and format unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Discogs marketplace stats for a release' clearly states the tool's action and resource, and it distinguishes from sibling tools like discogs_get_release or discogs_search_releases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor any context such as prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discogs_search_artistsCRead-onlyIdempotent
Search for artists on Discogs.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, and the description adds no further behavioral context such as pagination, result limits, or whether authentication is required via the unexplained api_key. With the lower bar set by annotations, adding nothing beyond them merits only a 2.
Agents need to know what a tool does to the 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 with zero padding. It is efficient, though its brevity is arguably under-specification rather than optimal concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and 0% schema description coverage, the description omits what results look like (artist list, pagination), how to authenticate, and how it differs from adjacent Discogs tools. Annotations cover only the safety profile, leaving too much unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate but does not. The 'q' query is broadly implied by 'search', but there is no guidance on expected format (artist name text vs. ID) and no explanation of the optional api_key parameter at all.
Input schemas describe structure but not intent. Descriptions should explain 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 (artists) scoped to Discogs, which separates it from discogs_get_artist by retrieval mode. However, it never explicitly contrasts with siblings like discogs_search_releases or discogs_get_artist, so the differentiation is 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 no indication of when to use this versus discogs_get_artist, discogs_search_releases, or external search tools like mb_search_artists. Usage is only inferable from the tool name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discogs_search_releasesC
Search for music releases on Discogs.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| type | No | ||
| year | No | ||
| genre | No | ||
| artist | No | ||
| format | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to mention behavioral aspects such as rate limits, search result pagination, or how releases are matched. The description is overly simplistic.
Agents need to know what a tool does to the world before calling 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, minimal sentence that is concise but lacks necessary information. It is not overly verbose, but under-specification reduces its value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters, no output schema, and no annotations, the description is incomplete. An AI agent would lack crucial context about parameters like 'api_key' (required? usage?) and search behavior. More detail is needed for effective 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?
Despite 7 parameters with 0% schema description coverage, the tool description provides no additional meaning about the parameters such as 'q', 'artist', 'type', 'format', 'genre', 'year', or 'api_key'. No parameter usage details or constraints are mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Search') and resource ('music releases on Discogs'), effectively differentiating it from sibling tools like discogs_search_artists or discogs_get_release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like discogs_get_release for precise release data or discogs_search_masters for master releases. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_channelsCRead-onlyIdempotent
List channels in a Discord guild.
| Name | Required | Description | Default |
|---|---|---|---|
| guild_id | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds no behavioral context beyond the purpose itself, such as pagination, ordering, channel types returned, or permission requirements.
Agents need to know what a tool does to the world before calling 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 redundant or filler content. It is appropriately sized for a simple list operation, even though it omits details covered under other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool, the description leaves important gaps: it does not explain the format of guild_id, what channel fields are returned, whether pagination is needed, or which channel types are included. With no output schema present, the description should do more to set expectations about 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 schema description coverage is only 50%, and the required guild_id parameter has no description in the schema. The tool description also adds no format or meaning for guild_id or bot_token, so the agent receives little help on how to supply the critical required 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 names a specific verb and resource: list channels in a Discord guild. It is clear enough to distinguish from sibling tools like discord_members or discord_send, though it does not explicitly mention 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 provides no guidance on when to use this tool versus alternatives such as discord_search or discord_members. It only implies usage through the purpose statement, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_membersCRead-onlyIdempotent
List members of a Discord guild.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| guild_id | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. |
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 almost no behavioral context beyond the basic purpose: it does not mention pagination, rate limits, required permissions, or whether results are filtered or complete.
Agents need to know what a tool does to the world before calling 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 front-loaded sentence with no wasted words. It is appropriately concise, though the brevity contributes to the gaps in other dimensions rather than being a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no output schema and low schema coverage, the description is too thin. It does not explain the limit behavior, guild_id requirements, or what the returned member list contains, leaving meaningful gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with just bot_token documented. The description does not explain guild_id format or the meaning, default, or maximum of limit, so it fails to compensate for the 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 gives a specific verb and resource ('List members of a Discord guild'), so an agent can distinguish it from message-oriented siblings like discord_read and discord_search. It does not explicitly differentiate from discord_channels, but the resource is clear enough to identify the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of siblings such as discord_search, discord_read, or discord_channels. No prerequisites, authentication context, or exclusions are stated, leaving the agent to infer usage 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.
discord_reactC
Add a reaction to a Discord message.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| channel_id | Yes | ||
| message_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and provides almost nothing: it doesn't mention that this is a write/mutation, that bot permissions and intents are needed, what happens on duplicate reaction, whether reactions can be removed, or any rate limit. Only the bare mutating verb "Add" signals side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler. It is concise to a fault — the brevity comes at the cost of the missing behavioral and parameter detail rather than from tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter write tool with no annotations, no output schema, and only one documented parameter, this description is far too thin. An agent cannot reliably construct the emoji argument or know what the call returns from this alone.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 25% — only bot_token is documented, and channel_id/message_id/emoji are bare strings. The description gives no meaning to any of them and in particular omits the critical emoji format question (unicode character vs. custom emoji as name:id).
Input schemas describe structure but not intent. Descriptions should explain 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 ("Add a reaction to a Discord message"), which clearly distinguishes it from sibling tools like discord_send and discord_read that do not add reactions. The purpose is unambiguous, though it says nothing about DM vs. guild channel 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?
No guidance on when to use this instead of alternatives, no prerequisites, no exclusions. The agent must infer on its own that this is the endorsement/emoji-acknowledgement operation rather than sending a message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_readCRead-onlyIdempotent
Read messages from a Discord channel.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| before | No | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| channel_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered by structured data. Beyond the one-line purpose, the description adds nothing: no pagination behavior, no mention that a bot token may be required, no scope/permission context for reading a channel.
Agents need to know what a tool does to the 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 with zero redundancy and a clear front-loaded verb, but it is terse to the point of under-specification rather than genuinely concise. There is no structural content beyond the purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, no output schema, and a third of the schema undocumented, the description should carry more weight. It leaves pagination semantics, authentication, and return shape entirely unstated, which is insufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% — only bot_token carries a description in the schema. The description says nothing about channel_id format, what 'before' means (pagination cursor?), or what 'limit' defaults to or caps at, so it does not compensate for the low 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 (read) and resource (messages in a Discord channel), which distinguishes it from discord_send and discord_react. It does not, however, differentiate itself from the closely related discord_search or discord_thread 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 no guidance on when to use this versus discord_search or discord_thread, and no prerequisites or exclusion criteria are stated. An agent must infer the retrieval-versus-search distinction from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_searchCRead-onlyIdempotent
Search messages in a Discord guild.
| Name | Required | Description | Default |
|---|---|---|---|
| content | No | ||
| guild_id | Yes | ||
| author_id | No | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| channel_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so safety is covered. The description adds nothing else: no mention of pagination/result limits, whether at least one filter is required, rate limiting, or Discord search API constraints (e.g., guild-level search may require specific permissions).
Agents need to know what a tool does to the 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 short sentence, so it is front-loaded and free of waste, but the brevity is under-specification rather than effective concision. There is room to add necessary filter and scope 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?
With no output schema, 5 parameters at low coverage, and no annotation gaps filled, the description leaves the agent without enough to call the tool correctly — e.g., whether content/author_id/channel_id are filters and how results are returned or bounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 20% (only bot_token is documented), so the description must compensate but does not. It says nothing about content, author_id, or channel_id semantics, nor whether these act as filters or whether one is mandatory in practice.
Input schemas describe structure but not intent. Descriptions should explain 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: searching messages within a Discord guild scope. However it provides no differentiation from siblings like discord_read or discord_thread, leaving the agent to infer that this is a keyword/filter-based retrieval rather than a sequential read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this over discord_read, discord_thread, or discord_channels, and no indication of prerequisites (bot token, permissions, required filters). The agent must guess between sibling message-retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_sendC
Send a message to a Discord channel.
| Name | Required | Description | Default |
|---|---|---|---|
| embeds | No | ||
| content | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| channel_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but discloses nothing about authentication (bot token requirement), rate limits, message length limits, or whether embeds render alongside content. Only the side effect of posting is implied by the verb.
Agents need to know what a tool does to the 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 with no filler, but it is under-specified rather than efficient; brevity here costs information rather than saving 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?
No output schema, no annotations, and four parameters with sparse schema descriptions mean the definition is missing essentials: auth expectations, message/embed constraints, and the result of the send. The one sentence cannot cover a messaging mutation 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 only 25% — just bot_token is documented in the schema. The description adds nothing about content length limits, the expected structure of the embeds array (whose items are untyped), or channel_id format, leaving three of four parameters semantically thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource ('Send a message to a Discord channel'), which clearly separates it from read-side siblings like discord_read and discord_search. It does not explicitly mention threading or reaction variants, but the core action 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?
There is no guidance on when to prefer this over siblings such as discord_thread (thread replies), discord_react, or telegram_send. The agent must infer channel messaging from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_threadC
Create a Discord thread.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| message | No | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| channel_id | Yes | ||
| message_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and adds almost nothing. "Create" implies a mutation, but it does not state required bot permissions, whether the bot must already be in the channel, whether the thread can be removed, or whether it needs a parent 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?
One short, front-loaded sentence with no wasted words, but its brevity reflects under-specification rather than compression of useful 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?
A five-parameter mutation tool with no annotations, no output schema, and two distinct thread-creation modes is described in four words. Nothing tells the agent the operational preconditions or expected result, which is plainly inadequate for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (only bot_token is documented), and the description adds no meaning to name, channel_id, message, or message_id. The critical ambiguity between `message` (initial content) and `message_id` (start the thread from an existing message) is left entirely unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 clear verb and resource ("Create a Discord thread"), so an agent can tell it apart from generic read/write tools. However, it does not differentiate from siblings such as discord_send or discord_read, and does not specify whether the thread is public, private, or forum-based.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no exclusions, and no alternatives are named despite close siblings like discord_send and discord_channels existing. The agent must infer that thread creation is a distinct step from posting a message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disney_all_charactersARead-onlyIdempotent
Browse all Disney characters (paginated).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The only added behavior is that results are paginated, with no mention of page size, total count, or ordering, which is modest value beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the resource and action, with the pagination qualifier appended. 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 one-parameter read-only listing tool this is nearly sufficient, but with no output schema the description gives no idea of what a character record contains or how many pages typically exist. It is minimally adequate rather than 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% and the single 'page' parameter is fully documented in the schema, including its default. The description only restates that pagination exists, adding nothing the schema does not already say.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Browse all Disney characters') with the pagination behavior in parentheses. It does not name the closely-related sibling disney_character_search, so the agent must infer that this is the full-listing counterpart to that search 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 word 'all' implies a full-listing use case and '(paginated)' hints at iteration, but there is no explicit statement of when to use this versus disney_character_search. Usage is inferable but never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disney_character_searchCRead-onlyIdempotent
Search Disney characters by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Character name to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured fields. The description adds nothing beyond that – it does not say whether matching is substring or exact, whether multiple results are returned, or how broad the result set can get.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler; the verb and constraint come first. It is efficient but perhaps too terse for the sibling ambiguity it leaves unresolved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with no output schema, the description is minimally sufficient, but it omits match semantics and, critically, any differentiation from disney_all_characters, which is the most likely source of misselection in this toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'name' parameter, so the schema already carries the semantics. The description's 'by name' phrase restates rather than extends the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Disney characters') with the filtering dimension ('by name'), so an agent knows exactly what the tool does. However, it never distinguishes itself from the sibling disney_all_characters, so the agent cannot rule out that sibling from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus disney_all_characters, and no note on what kind of matching is performed (exact vs. partial, case sensitivity) that would let an agent judge whether a search is the right call. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnd_get_classARead-onlyIdempotent
Get a D&D 5e class by index (e.g. wizard, fighter).
| Name | Required | Description | Default |
|---|---|---|---|
| class | Yes | Class index (e.g. 'wizard', 'fighter') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds little beyond that — no note on response shape or what happens with an unknown index (error vs empty).
Agents need to know what a tool does to the 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 efficient sentence with the key information front-loaded and no waste. It could carry one clause of routing guidance without becoming 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?
For a one-parameter read-only lookup with full schema coverage and no output schema, the description covers what an agent needs to call it. Only a pointer to dnd_list_classes for index discovery 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 single 'class' param is documented in the schema itself. The description's examples mirror the schema, adding no new syntax or format 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 ('Get a D&D 5e class') and clarifies the lookup key ('by index') with concrete examples. It is clearly distinct from dnd_list_classes, though it doesn't name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the examples (wizard, fighter) suggest when the tool applies, but there is no explicit guidance on when to use this versus dnd_list_classes, nor how to obtain a valid index.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnd_get_monsterARead-onlyIdempotent
Get a D&D 5e monster stat block by index.
| Name | Required | Description | Default |
|---|---|---|---|
| monster | Yes | Monster index (e.g. 'goblin', 'adult-red-dragon') |
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 fully covered. The description adds only that the return is a 'stat block', with no detail on missing indexes, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb, the game system, the resource type, and the lookup key. No wasted clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full annotations and a documented parameter, the description is nearly sufficient. The only real gap is what happens on an unknown index, which is a minor omission 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 coverage is 100%, and the schema's own description supplies example indexes ('goblin', 'adult-red-dragon'). The description contributes only the word 'index', so it does not meaningfully exceed 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?
A specific verb ('Get') plus resource ('D&D 5e monster stat block') and lookup method ('by index'). It is clearly distinct from a search-style tool, though it does not name the sibling dnd_list_monsters that would typically precede 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 phrase 'by index' implies the caller must already have an index, which hints at using a list tool first, but no explicit when/when-not or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnd_get_spellARead-onlyIdempotent
Get a D&D 5e spell by name/index.
| Name | Required | Description | Default |
|---|---|---|---|
| spell | Yes | Spell index (e.g. 'fireball', 'magic-missile') |
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 little behavioral context beyond the lookup action and does not mention not-found behavior or return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It communicates the action and identifier immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description is sufficient for correct invocation. It could mention the spell object returned, but the tool's complexity is low enough that 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% and the single 'spell' parameter already includes an example format. The description only restates that lookup is by name/index, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get a D&D 5e spell by name/index. It is clearly distinct from listing tools like dnd_list_spells, 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 phrase 'by name/index' implies usage when the caller already has an identifier, but the description gives no explicit when-to-use guidance or alternative such as dnd_list_spells for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnd_list_classesARead-onlyIdempotent
List all D&D 5e character classes.
| 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 destructiveHint=false, so the safety profile is covered. The description adds the useful fact that the listing is complete ("all") with no filtering, but says nothing about return shape or size.
Agents need to know what a tool does to the 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 short sentence with zero filler, front-loading the verb and resource. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paramless list tool with no output schema, the description should signal what comes back (class names only, or name+index pairs). That gap is small but real, since the agent cannot see the response shape anywhere else.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. There is nothing for the description to document and nothing ambiguous about the call signature.
Input schemas describe structure but not intent. Descriptions should explain 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 ("D&D 5e character classes") with the scope qualifier "all". It's clearly distinguishable from dnd_get_class by the list-vs-get verb, though the description never explicitly names 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?
Usage is only implied: an agent can infer this is the enumeration step before dnd_get_class. There's no explicit when-to-use, no exclusions, and no reference to the sibling tools it competes with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnd_list_monstersBRead-onlyIdempotent
List D&D 5e monsters, optionally by challenge rating.
| Name | Required | Description | Default |
|---|---|---|---|
| challenge_rating | No | Filter by CR (e.g. '1', '0.25') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so safety and determinism are covered. The description adds nothing beyond that: no note on result volume, pagination, or whether the list is exhaustive, which are the behaviors that actually matter for a bulk list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized for a one-parameter list tool, though the terseness leaves no room for the result-shape caveat an agent might want.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and annotations cover its safety profile, but there is no output schema and the description says nothing about what a monster record contains or how large the unfiltered list is. For a bulk-listing tool with no return-value documentation anywhere else, that is a real 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 documents CR formatting with examples. The description restates the same filter ('by challenge rating') without adding syntax, accepted values, or behavior for unmatched CRs, so it only matches 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?
States a specific verb and resource ('List D&D 5e monsters') plus the optional filter, which is enough to tell it apart from dnd_get_monster in practice. It never names the sibling explicitly, so the listing-vs-single-record distinction is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'optionally by challenge rating' implies you can call it bare to get everything or filter by CR, which is useful usage shape. There is no explicit statement of when to use this versus dnd_get_monster, nor any note about breadth of results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnd_list_spellsBRead-onlyIdempotent
List D&D 5e spells, optionally filtered.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Filter by spell level (0-9) | |
| school | No | Filter by school (e.g. 'evocation') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is well covered. The description adds little behavioral detail beyond noting optional filtering, and does not discuss pagination or result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no redundant or filler content. For a simple read-only list tool, this is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple, read-only, and has complete parameter documentation plus rich annotations, so an agent can invoke it correctly. Still, the description is minimal and leaves the agent to infer list behavior such as result completeness or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 the level and school filters are fully documented in the schema. The description only says results are 'optionally filtered' and adds no syntax, defaults, or interaction details beyond the structured 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 states a specific verb and resource: 'List D&D 5e spells.' It also indicates optional filtering, which helps distinguish it from a single-spell fetch. However, it does not explicitly contrast itself with the sibling dnd_get_spell.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'optionally filtered' implies that the filters can narrow results, but there is no explicit guidance on when to use this list tool versus dnd_get_spell, nor any stated exclusions or prerequisites. Usage must largely be inferred from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
do_accountARead-onlyIdempotent
Get the DigitalOcean account profile and limits.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | Yes | DigitalOcean personal access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful scope detail by noting it returns both 'profile and limits', but does not disclose auth failure behavior, rate limits, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Efficient, though it is thin enough that it borders on under-specification rather than crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 single-parameter tool whose annotations cover safety, the description conveys enough to call it correctly. Return format is not described, but no output schema exists, so a small 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?
With a single parameter at 100% schema description coverage, the schema fully documents access_token. The description adds no parameter-level detail, so the baseline of 3 for high-coverage schemas 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 ('Get') and resource ('DigitalOcean account profile and limits'), which clearly distinguishes it from siblings like do_list_droplets and do_list_apps. It doesn't explicitly differentiate from other account-oriented tools, but the service-scoped resource makes the intent 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 purpose implies a single obvious use case (fetch account info), but the description offers no explicit when-to-use or when-not-to-use guidance and names no alternatives. Usage is only inferable 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.
dog_api_breedsCRead-onlyIdempotent
List dog breeds with details from The Dog API.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 0) | |
| limit | No | Number of breeds to return (max 50, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds nothing beyond source attribution — no note on pagination behavior, result ordering, total counts, or what 'details' includes, which is exactly the context an agent would need.
Agents need to know what a tool does to the 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 short sentence with the purpose front-loaded and no filler. It is efficient, though the brevity is partly what leaves the gaps elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complete schema docs and safety annotations, the description is minimally sufficient to call the tool. It still lacks the sibling disambiguation that the crowded dog/cat breed namespace makes necessary.
Complex tools with many parameters or behaviors need more documentation. Simple 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 page and limit fully documented including defaults and the 50-item cap. The description adds no parameter meaning, so the baseline 3 for fully documented schemas 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 verb and resource ('List dog breeds') and adds the data source, but the sibling set contains dog_list_breeds, dog_breed_list, and dog_breed_image, and the description gives no basis for choosing between them. An agent cannot distinguish this from those siblings without opening each 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?
There is no when-to-use guidance, no mention of the closely named alternatives, and no stated conditions or prerequisites. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dog_api_random_imageBRead-onlyIdempotent
Get a random dog image from The Dog API.
| 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, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing beyond attribution — it doesn't say what is returned (image URL vs. binary), that results are non-deterministic, or whether any external network/auth dependency 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?
A single front-loaded sentence with zero filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial no-param fetch this is almost sufficient, but with no output schema the description should state what comes back (an image URL) and it should disambiguate from dog_random_image. As written, an agent can call it but cannot predict the response 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?
The tool takes zero parameters, so the baseline of 4 applies; the schema fully documents the empty object and there is nothing for the description to clarify.
Input schemas describe structure but not intent. Descriptions should explain 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 a random dog image') and names the upstream source ('The Dog API'), which is what separates it from the very crowded random-image family. It does not, however, distinguish itself from near-identical siblings such as dog_random_image or dog_breed_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pick this over dog_random_image (a nearly identical sibling), dog_breed_image, cat_api_random_image, or shibe_random_image. The agent is left to guess 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.
dog_breed_imageARead-onlyIdempotent
Get random image(s) of a specific dog breed.
| Name | Required | Description | Default |
|---|---|---|---|
| breed | Yes | Breed name (e.g. husky, bulldog/french) | |
| count | No | Number of images (1-50, default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety, side-effect and network-behavior questions are answered structurally. The description adds only that results are random and can be plural; it says nothing about breed-name matching behavior, handling of unknown breeds, or rate limits. Some added value, but thin against an already-complete 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?
A single short sentence with the key differentiator, "specific dog breed", placed where it is read first. No filler, no redundancy with the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only image fetch with full schema coverage, complete annotations and no output schema, nothing essential is missing. The remaining gap is the lack of any hint about breed-name normalization or behavior on an unrecognized breed, which an agent would need to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'breed' has an example ('husky, bulldog/french') and 'count' has its range and default (1-50, default 1) documented in the schema itself. The description adds nothing about breed string matching, which the schema example only hints at with the slash format. Baseline 3 is correct when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get random image(s)") plus a scope qualifier ("of a specific dog breed") that separates it from the generic random-dog-image siblings such as dog_random_image and dog_api_random_image. It doesn't name those siblings explicitly, so an agent must infer the distinction rather than being routed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by the phrase "specific dog breed"; there is no explicit statement of when to pick this over the multiple dog-image alternatives in the sibling list (dog_random_image, dog_api_random_image, http_dog_image, shibe_random_image) or a note that breed names should come from dog_breed_list. Adequate inference, no real guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dog_breed_listARead-onlyIdempotent
List sub-breeds of a specific dog breed.
| Name | Required | Description | Default |
|---|---|---|---|
| breed | Yes | Breed name (e.g. bulldog, hound) |
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 safety is covered. The description adds only that the result is a list scoped to sub-breeds, without explaining return format, whether breed matching is exact or partial, or error behavior for unknown breeds. With annotations present, this is adequate but thin.
Agents need to know what a tool does to the world before calling 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. Every word contributes to stating the action and resource. Nothing is buried or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full schema coverage and clear annotations, the description is nearly sufficient. It states the scoped list operation, though it could note that the result is a list of sub-breed names to fully set expectations. Overall it is complete enough 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%, and the breed parameter already documents that it expects a breed name with examples like bulldog and hound. The description reinforces the single-breed scope but adds no syntax, matching rules, or format details beyond the schema. Baseline 3 is appropriate when the schema carries parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "List sub-breeds of a specific dog breed." It is clearly distinct from sibling tools like dog_list_breeds or dog_api_breeds that list all breeds, though it does not explicitly name those alternatives. The scope is understandable 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 phrase "of a specific dog breed" implies the tool is used when a breed name is already known, but it does not explicitly say when to choose this over dog_list_breeds or dog_api_breeds. There are no exclusions or prerequisites stated. Usage is inferable but not fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dog_fact_randomARead-onlyIdempotent
Get a random dog fact.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, idempotent and open-world, so the safety profile is fully covered without the description. The description adds only the word 'random', which is already implied by the tool name; nothing about call frequency, caching, or response variability is disclosed. With annotations carrying the burden, this is the minimum-viable 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the action and result. Nothing extraneous, nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, annotation-covered read tool with no output schema, the description is sufficient to call it correctly. The only shortfall is that the agent gets no hint about the shape of the returned fact, but with no output schema that 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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description correctly implies no input 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?
States a specific verb and resource ('Get a random dog fact'), so the agent knows exactly what comes back. It does not distinguish itself from nearby siblings such as cat_fact, useless_fact_random, or number_fact, which is the only thing missing for 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 on when to use this versus the many other random-fact siblings, and no exclusions or prerequisites. The agent must infer usage 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.
dog_list_breedsBRead-onlyIdempotent
List all dog breeds and sub-breeds.
| 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 destructiveHint=false, so the safety profile is fully covered. The description adds one piece of real behavioral information the annotations don't carry: results include sub-breeds, implying a hierarchical/grouped payload rather than a flat list. It stops short of describing result shape or ordering.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler, which is appropriate for a trivial lookup. It is arguably over-trimmed given the crowded dog-breed sibling family, but nothing in it 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 no-param read with no output schema, an agent still doesn't know the return shape beyond 'breeds and sub-breeds' (flat names? grouped objects? images attached?). Annotations cover safety, but the description could have said more about 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 tool takes zero parameters, so there is nothing for the description to disambiguate; the schema also closes the object with additionalProperties=false. Baseline of 4 applies for a no-arg 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?
Specific verb 'List' plus resource 'all dog breeds and sub-breeds' makes the operation unmistakable, and mentioning sub-breeds signals the nested shape of the result. However, the sibling list contains dog_breed_list, dog_api_breeds and dog_breed_image, and the description gives no way to tell which one an agent should pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus the near-duplicate siblings (dog_breed_list, dog_api_breeds) or versus dog_breed_image for images. Usage has to be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dog_random_imageBRead-onlyIdempotent
Get random dog image(s) from Dog CEO API.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of images (1-50, default 1) |
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, so the safety profile is covered. The description adds only the source API and the fact that multiple images can be returned; it says nothing about rate limits, response shape, or failure modes 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?
A single front-loaded sentence with no filler. It is appropriately sized for a simple tool, though it is so short that it omits useful routing context rather than being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the single parameter is fully documented, and annotations cover the safety and openness profile, so little more is required. The missing piece is sibling differentiation, which matters given the crowded image-endpoint namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'count' parameter (1-50, default 1) is fully documented in the schema itself. The description's '(s)' hints at the batch capability but adds no formatting or behavior detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get random dog image(s)') and names the source ('Dog CEO API'), so the agent knows exactly what it returns. It does not differentiate from near-duplicate siblings such as dog_api_random_image or dog_breed_image, though the API source does separate it from generic image 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?
There is no when-to-use guidance, no exclusions, and no mention of alternatives like dog_breed_image (breed-specific) or dog_api_random_image. With many dog/cat/image siblings in the list, the agent must infer selection 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.
dohdns_resolveB
Resolve DNS records for a domain via Google DNS-over-HTTPS.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Domain name to resolve. | |
| type | No | Record type: A, AAAA, MX, TXT, CNAME, NS (default: A). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the Google DNS-over-HTTPS protocol, which is a useful detail, but does not state that the operation is read-only, whether authentication is required, rate limits, error behavior, or return format—leaving significant gaps for a network-facing 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 a single, well-structured sentence that front-loads the core action and resource. Every word earns its place, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 DNS lookup tool with full schema coverage and no output schema, the description is nearly complete. It states what the tool does and its resolution method, but does not describe the return format or error behavior, which 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 schema itself documents both the domain name and the record type with a default value. The description adds no additional semantic meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (resolve), a specific resource (DNS records for a domain), and the underlying protocol (Google DNS-over-HTTPS). This clearly distinguishes the tool from sibling domain-related tools like rdap_domain (registration data) and domainsdb_search (domain search), so an agent can identify its purpose 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 only says what the tool does; it provides no guidance on when to use it versus alternatives or when not to use it. There is no mention of related tools such as rdap_domain for registration lookups, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
do_list_appsCRead-onlyIdempotent
List DigitalOcean App Platform apps.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Apps to return (max 200, default 25) | |
| access_token | Yes | DigitalOcean personal access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds nothing further: no pagination behavior, no auth/token scope context, no note about default result count beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clean sentence with no filler and the verb front-loaded. It is efficiently sized, though its brevity is partly the cause of the missing guidance rather than a strength in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial two-parameter read tool with full schema coverage and read-only annotations, the description is just barely sufficient. It omits pagination behavior and the return shape, which matter modestly for a list endpoint, 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?
Schema description coverage is 100% – the limit parameter is documented with its max (200) and default (25), and access_token is described as a DigitalOcean personal access token. The description adds no meaning beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List DigitalOcean App Platform apps.' The domain qualifier separates it from generic list tools, but it never distinguishes itself from close siblings like fly_list_apps, do_list_droplets, or do_list_databases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 conditions for use, no exclusions, and no routing to alternatives. An agent must infer on its own when App Platform app listing is the right call versus other DigitalOcean or app-listing siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
do_list_databasesBRead-onlyIdempotent
List DigitalOcean managed database clusters.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | Yes | DigitalOcean personal access token |
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 and idempotency profile is fully covered without the description. The description adds only the clarification that these are 'managed database clusters' rather than databases inside a cluster; it says nothing about pagination, scoping to the token's team, or auth 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?
A single front-loaded sentence with no filler; the resource and provider are the first things the reader encounters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-parameter listing tool with no output schema, the description is adequate but thin: it does not say what a returned cluster record contains or whether results are paginated, which is the remaining burden when no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple 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 access_token parameter, which is already documented in the schema as a DigitalOcean personal access token. The description adds no meaning about token scope, permissions required, or per-page behavior, so the baseline 3 for schema-covered parameters 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 ('List') and resource ('DigitalOcean managed database clusters'), and the provider qualifier distinguishes it from the many other list-style tools in the environment, including turso_list_databases and neon_list_databases. It stops short of explicitly naming the sibling it replaces, so 4 rather than 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?
There is no statement of when to use this tool, when not to, or which alternative to pick when multiple database providers are configured. The agent must infer from the provider name alone that this is the DigitalOcean-specific listing endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
do_list_dropletsARead-onlyIdempotent
List DigitalOcean droplets (signals when any are powered off).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Droplets to return (max 200, default 25) | |
| tag_name | No | Filter droplets by tag | |
| access_token | Yes | DigitalOcean personal access token |
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 results 'signal when any are powered off,' which is useful behavioral context, but it does not elaborate on output format, pagination, or rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted material. The primary operation is stated first, and the parenthetical adds a useful signal without distracting from the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool, the description plus rich annotations and fully documented schema provide nearly everything an agent needs to invoke it correctly. The only minor gap is that it does not describe the response shape in more detail, though no output schema exists and the mention of powered-off signaling 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%, so the parameters limit, tag_name, and access_token are already fully documented in the schema. The description does not add parameter-specific meaning beyond what the structured 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 uses a specific verb and resource: 'List DigitalOcean droplets.' It clearly distinguishes the tool from nearby siblings such as do_account, do_list_databases, and do_list_apps, and adds a useful behavioral note that results signal powered-off droplets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 by the name and description: use this to enumerate DigitalOcean droplets. However, it does not explicitly state when to use this versus related tools like do_account or do_list_apps, nor does it mention prerequisites beyond the access_token already documented in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_get_propertyCRead-onlyIdempotent
Get details for a specific Domain property listing.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| listing_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. Beyond that, the description adds nothing about authentication requirements for api_key, rate limits, error behavior for an invalid listing_id, or what 'details' actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It is appropriately sized but so terse that it omits useful context, which is a completeness issue rather than a conciseness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, both parameters lack schema descriptions, and the description does not explain what fields are returned or where listing_id should come from. For a simple lookup this is nearly complete, but the undocumented api_key and return-content gap leave it inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It only implies that listing_id identifies the property, and it says nothing at all about the api_key parameter or accepted identifier format, leaving both parameters semantically thin.
Input schemas describe structure but not intent. Descriptions should explain 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 details for a Domain property listing), so the agent can tell it is a detail lookup rather than a list/search. It does not explicitly differentiate itself from the sibling domain_search_listings, which keeps it at 4 rather than 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 phrase 'specific Domain property listing' implies this is used after a listing_id is known, likely from domain_search_listings, but no alternative is named and no explicit when-to-use guidance is given. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainsdb_searchBRead-onlyIdempotent
Search registered domain names by keyword or pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | No | TLD zone filter (e.g. 'com', 'org', 'io'). | |
| limit | No | Max results (default 20). | |
| domain | Yes | Domain keyword to search (e.g. 'google', 'shop'). |
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 fully covered. The description adds nothing beyond the purpose statement – no result limits (beyond schema's default), no pagination, no rate-limit or pattern-syntax behavior. With annotations doing the heavy lifting, a 2 for the description's marginal contribution 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?
A single front-loaded sentence with zero waste. It's appropriately sized for a simple search tool, though the phrase 'or pattern' is left unexplained, so some ink is spent on an unelaborated concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage, complete annotations, and no output schema, the description is minimally adequate. It leaves open what 'pattern' means and what a result contains, but the structured fields cover most of what an agent needs to 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?
Schema description coverage is 100%, with each parameter (domain, zone, limit) documented inline, so baseline is 3. The phrase 'keyword or pattern' loosely hints at domain-param format but doesn't clarify wildcard/pattern syntax that the schema doesn't cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search registered domain names') and adds the query mode ('by keyword or pattern'). It doesn't explicitly distinguish itself from the only related sibling, domainsdb_tlds, but the collision risk is low since that tool enumerates TLDs rather than searching 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?
Usage is implied by the purpose ('search ... by keyword or pattern') but there's no explicit when-to-use guidance, no mention of when to prefer domainsdb_tlds versus this, and no prerequisites stated. An agent can infer the use case but gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainsdb_tldsB
List available top-level domains (TLDs) from DomainsDB.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies a read-only enumeration but says nothing about freshness, caching, ordering, or how large the result set is, which matters for a globally scoped TLD list.
Agents need to know what a tool does to the 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 with no waste; the parenthetical '(TLDs)' is a minor redundancy but aids comprehension. Nothing else is present to bloat 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?
With no parameters, no annotations, and no output schema, the definition is minimal but not wrong; it never indicates the shape or size of the returned TLD entries, which is the main remaining gap for an agent deciding 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 takes zero parameters, so there is no parameter semantics to document; the baseline for a parameterless tool is 4. Nothing in the description conflicts with the empty 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 (List) and resource (top-level domains/TLDs) with the source (DomainsDB), so the agent knows exactly what it returns. It does not, however, differentiate itself from related siblings such as domainsdb_search or rdap_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?
There is no guidance on when to call this versus domainsdb_search or the other domain-related siblings, and no prerequisites or exclusions are stated. Usage must be inferred purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_search_listingsCRead-onlyIdempotent
Search Australian property listings on Domain.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| suburb | No | ||
| api_key | No | ||
| maxPrice | No | ||
| minPrice | No | ||
| pageSize | No | ||
| postcode | No | ||
| listingType | No | Sale or Rent | |
| maxBedrooms | No | ||
| minBedrooms | No |
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 only the geographic scope ('Australian'), but omits behavioral facts an agent needs: that an api_key credential is required, whether results are paginated or capped, and how openWorld querying behaves if all filters are omitted.
Agents need to know what a tool does to the 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 efficient, front-loaded sentence with no filler, so it is concise; but the brevity is under-specification rather than density, and the single sentence carries almost no operational 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 10-parameter search tool with no output schema and near-zero schema coverage, the description should at minimum explain the credential requirement, filter semantics, and result behaviour. None of that is present, so the definition is inadequate to call the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 10% — just listingType ('Sale or Rent') — across 10 parameters including state, suburb, postcode, price and bedroom ranges, api_key and pageSize. The description contributes no parameter meaning whatsoever, leaving nearly every field's format, optionality semantics and interaction undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 Australian property listings on Domain'), which is unambiguous and tells an agent exactly what kind of data comes back. It does not, however, distinguish this from sibling tools like domain_get_property or domain_suburb_stats, which also touch Domain property 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?
There is no guidance on when to use this versus domain_get_property or domain_suburb_stats, no mention that filters can be combined, and no note about pagination or what to do when no filters are supplied (all 10 parameters are optional). Usage is only implied by the word 'Search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_suburb_statsCRead-onlyIdempotent
Get property market statistics for an Australian suburb.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| suburb | Yes | ||
| api_key | No | ||
| postcode | No | ||
| propertyCategory | No |
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 scope by specifying Australian suburbs, but it says nothing about authentication requirements, data freshness, or what kind of market statistics are 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 a single front-loaded sentence with no filler. It is efficiently structured, though extremely sparse for a tool with five parameters and multiple required 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 five-parameter open-world tool with zero schema description coverage, the description is too thin. An agent would not know how to format state, whether postcode or propertyCategory are optional, or that an API key may be required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden of explaining the five parameters. It only mentions 'suburb' implicitly and says nothing about state format, optional postcode, propertyCategory values, or the api_key requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 property market statistics for an Australian suburb. It is clear what the tool does, but it does not distinguish itself from related sibling tools like domain_get_property or domain_search_listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool instead of alternatives, no prerequisites, and no note about the api_key parameter. The agent is left to infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dot_productB
Compute the dot product of two vectors. Returns magnitude, angle, and orthogonality check.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First vector. | |
| b | Yes | Second vector (same length). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses what is returned (magnitude, angle, orthogonality check), which is useful, but says nothing about length-mismatch handling or error behavior. For a simple deterministic pure function the risk surface is small, so a 3 is reasonable.
Agents need to know what a tool does to the 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 the primary action front-loaded and the return summary following. No filler, though it is minimal rather than rich.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 disclosure of the return contents (magnitude, angle, orthogonality check) is genuinely necessary and present. Combined with fully documented params, this is essentially complete for a simple two-vector computation.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'a' and 'b' documented including the same-length constraint on 'b'. The description adds no parameter-level 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?
States a specific verb ('Compute') and resource ('dot product of two vectors'), clearly distinguishing this operation from the sibling cross_product. It does not explicitly name alternatives, but the operation itself is unambiguous and self-identifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this versus alternatives like cross_product, matrix_operate, or setops_calculate. No prerequisites or context conditions are stated, leaving selection to the model's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_readBRead-onlyIdempotent
Read Google Drive file metadata and a safe text preview when available.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | Google Drive file id | |
| access_token | No | Google Drive access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds a genuinely new fact, that the text preview is 'safe' and only available 'when available' (i.e., not for binary/unpreviewable files), but leaves unclear what 'safe' means, whether size limits apply, or how the access_token is used.
Agents need to know what a tool does to the 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 with no filler; every clause (metadata, text preview, availability caveat) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only source of return-shape information, and it names only two outputs without saying what metadata fields, preview length, or truncation behavior to expect. It is adequate to select the tool but thin for interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (file_id, access_token) are documented in the schema. The description adds no format, scope, or auth detail beyond what the schema already states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (read a Google Drive file) and adds scope (metadata plus a text preview). It implicitly contrasts with the sibling drive_search (search vs. read-by-id) but never names the alternative 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?
There is no statement of when to use this tool versus drive_search, onedrive_read, or dropbox_read_file, and no prerequisites. The only hint at usage is that it takes a specific file, which an agent must infer from 'file metadata'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_searchBRead-onlyIdempotent
Search or list Google Drive files in the connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Advanced Drive query string | |
| limit | No | Files to return (max 100, default 20) | |
| query | No | File-name search text | |
| page_token | No | Drive page token from a previous response | |
| access_token | No | Google Drive access token |
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 by structured data. The description adds only the 'connected account' scoping note; it says nothing about result caps, pagination flow, or how the query is interpreted.
Agents need to know what a tool does to the 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 clean sentence with zero padding, appropriately front-loaded. It is efficient rather than verbose, though it leans toward under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter search/list tool, the description omits how to combine q and query, how page_token chains with limit, and how this differs from drive_read. Annotations and schema cover safety and field meaning, but the operational gaps leave an agent guessing on the core search 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 baseline is 3. The description contributes nothing about the parameters, and notably does not resolve the ambiguity between 'q' (advanced Drive query string) and 'query' (file-name search text), which is the single most error-prone choice here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Search or list Google Drive files in the connected account.' An agent knows it queries Drive file listings rather than file contents. It does not distinguish itself from the nearby sibling drive_read, 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?
There is no guidance on when to search versus list, when to use this rather than drive_read, or how to choose between the two search parameters. The agent must infer everything from the parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_get_accountBRead-onlyIdempotent
Get the current Dropbox account profile.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | Dropbox access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds only the notion of 'current' account (i.e., resolved from the credential), and says nothing about what the profile contains or whether fields vary by account type.
Agents need to know what a tool does to the 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 short sentence with the resource front-loaded and no filler. It is appropriately sized, though so terse that it borders on under-specification rather than crisp completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read-only getter with full annotation coverage and a documented single param, the description is barely adequate. With no output schema, an agent gets no hint of the returned profile fields (email, name, account id, etc.), which would have been the one valuable addition here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter at 100% schema description coverage ('Dropbox access token'), so the schema already explains it. The description adds no meaning about token source, scopes required, or per-token identity — baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get', 'the current Dropbox account profile') and implicitly scopes to the authenticated account. It is distinguishable from the Dropbox siblings (list_folder, search, read_file) by resource, though it never explicitly contrasts with 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?
No indication of when to call this versus other Dropbox tools, nor any prerequisite such as needing a valid access token or that the token determines whose profile is returned. The agent must infer all usage context from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_list_folderARead-onlyIdempotent
List files and folders in a Dropbox path (empty path = root).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Folder path (empty string for root) | |
| limit | No | Entries to return (max 2000, default 100) | |
| access_token | No | Dropbox access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds nothing about pagination (Dropbox listings use a cursor; the limit alone will not exhaust large folders) or the shape of returned entries, which are genuine behavioral concerns for this 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?
A single front-loaded sentence with no filler; the scope-defining parenthetical is placed immediately after 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?
There is no output schema, and the description says nothing about what entries look like or how to page through a folder with more than the limit. With annotations covering safety and the schema covering parameters, this is adequate but leaves a real operational gap around pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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; baseline is 3. The description's 'empty path = root' restates the schema's own 'empty string for root' rather than adding information (e.g., path format, leading slash rules).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List files and folders in a Dropbox path') and clarifies the root case. It does not reference the sibling dropbox_search, which also returns file listings, so an agent must infer the distinction between enumerating a folder and searching across the account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'empty path = root' gives minimal usage context for one parameter, but there is no guidance on when to use this versus dropbox_search or dropbox_read_file. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_read_fileARead-onlyIdempotent
Read UTF-8 text from a Dropbox file up to 10 MB, returning chunks at character boundaries. PDF and Office documents are not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Full Dropbox file path | |
| max_bytes | No | Maximum bytes to return (default 4000 to fit chat responses, min 4, max 1000000) | |
| start_byte | No | Zero-based byte offset (default 0). Use the previous result's end_byte to continue. | |
| access_token | No | Dropbox access token |
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 context beyond that: a 10 MB file cap, UTF-8-only support, chunking at character boundaries, and unsupported PDF/Office documents.
Agents need to know what a tool does to the 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 waste. The core action is front-loaded, followed immediately by the size, encoding, chunking, and unsupported-format constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 definition is nearly complete for a read-only file tool: annotations cover safety, the schema covers parameters, and the description covers format limits and unsupported types. It does not explain auth requirements, but access_token is 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 coverage is 100%, so path, max_bytes, start_byte, and access_token are already fully documented. The description's mention of chunking and character boundaries adds some meaning for continuation, but it does not materially extend the 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 verb and resource: reading UTF-8 text from a Dropbox file. It also scopes the operation with a 10 MB limit, chunked reads, and unsupported document types, making it clearly distinct from listing or searching 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 negative guidance that PDF and Office documents are not supported, which helps prevent misuse. However, it does not explicitly route the agent to dropbox_search or dropbox_list_folder when the path is unknown or when a non-text file must be handled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_searchBRead-onlyIdempotent
Search Dropbox for files and folders by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results to return (max 1000, default 25) | |
| query | Yes | File or folder name to search for | |
| access_token | No | Dropbox access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds one genuinely useful behavioral clue — matching is against names, not file contents — but says nothing about pagination, result ordering, or whether folders/subfolders are included.
Agents need to know what a tool does to the 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 with no wasted words. It is arguably too terse for a search tool that could carry scope or pagination caveats, but nothing in it 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?
This is a simple read-only tool with no output schema and full parameter documentation in the schema, so the description is minimally adequate. It leaves open whether content search, path scoping, or result ordering applies — details an agent might reasonably need when composing a query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 query, limit, and access_token are already fully documented. The phrase 'by name' reinforces the query semantics but adds no new detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('Dropbox for files and folders') with a clear matching criterion ('by name'). It does not explicitly name sibling tools like dropbox_list_folder, so the distinction must be inferred, 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?
No guidance is given on when to choose this over dropbox_list_folder or dropbox_read_file, nor on prerequisites such as scope/permissions of the access token. The 'by name' phrase implies a use case but no exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drop_todoDrop a Boardroom todoBDestructive
Marks a todo as dropped (decided not to do it). Soft state, not a delete. Use when a todo is obsolete but the history still matters. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| todo_id | Yes | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond annotations: the operation is a soft state transition with history retained, not a data deletion. However, this sits in mild tension with destructiveHint=true and idempotentHint=false, and the description never says whether the state change is reversible, whether re-dropping an already-dropped todo errors, or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded sentences with the core semantics first and the usage condition after. 'agent_id required' is slightly redundant with the schema's required list, but nothing else 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 two-parameter state-mutation tool with annotations but no output schema, the description covers purpose, state semantics, and when to use it. It leaves open reversibility, error behavior on an already-dropped todo, and response 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 0%, so the description carries the full burden for both parameters. It only says 'agent_id required', which merely restates the schema's required array and explains nothing about what agent_id identifies or what format todo_id takes.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Marks a todo as dropped') plus the semantic scope ('decided not to do it', 'soft state, not a delete'). It effectively distinguishes itself from the delete_todo sibling without naming it, though it never explicitly names the alternative 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?
'Use when a todo is obsolete but the history still matters' gives a clear activation condition and implicitly frames the delete_todo alternative via 'not a delete'. It stops short of naming siblings or stating exclusions (e.g., don't use on already-completed todos).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dummy_image_urlC
Generate a placeholder image URL with custom size, colors, and text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text to show on the image | |
| width | No | Width in pixels (default 600) | |
| height | No | Height in pixels (default 400) | |
| bg_color | No | Background hex color without # (default cccccc) | |
| fg_color | No | Text hex color without # (default 000000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully clarifies the output is a URL (not image bytes), but says nothing about defaults, whether an external service is involved, rate limits, or whether the URL is stable/expiring. For a zero-annotation tool this is thin.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is appropriately sized for a simple utility tool, though it also could not afford more because it omits sibling routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, all-optional utility with no output schema, the description is barely adequate: it conveys the output type but omits default behavior and any distinction from the numerous sibling placeholder generators. Nothing critical is missing for basic invocation, but the description is not fully self-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%, and the description's mention of 'size, colors, and text' merely paraphrases the width/height, fg_color/bg_color, and text parameters already documented. Per the baseline rule for full schema coverage, a 3 is appropriate since the description adds no syntax or format detail (e.g., hex-without-#) 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 ('Generate'), a specific resource ('placeholder image URL'), and the distinguishing features (custom size, colors, text), so an agent immediately knows the operation. It does not, however, differentiate this tool from the many sibling placeholder/image generators (placeholder_image, placehold_image, robohash_url, avatar_url, placekitten_image), leaving the agent to guess which generator to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or when-not-to-use guidance and no pointer to alternatives, despite a crowded set of near-identical image-URL siblings. The agent gets a description of what the tool produces but nothing about when it is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dummyjson_productsBRead-onlyIdempotent
Browse fake product data from DummyJSON.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Offset for pagination | |
| limit | No | Max results (default 10, max 30) |
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 one real fact beyond that — the data is fake/synthetic, so results should not be treated as authoritative — but says nothing about pagination behavior, result ordering, or total count, which matters for a paged browse 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?
A single front-loaded sentence with zero padding. It is efficient, though its brevity is part of why the usage and pagination gaps exist.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with full schema coverage and safety annotations, the description is minimally adequate. It falls short on what the returned product records contain and on routing against dummyjson_search_products, both of which an agent would need before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: skip ('Offset for pagination') and limit ('Max results, default 10, max 30') are fully documented in the schema, so the baseline is 3. The description adds nothing about the paging model (e.g., whether total count is returned to compute further pages).
Input schemas describe structure but not intent. Descriptions should explain 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 ('Browse') and resource ('fake product data') with its source (DummyJSON), so the agent knows exactly what it returns. It does not, however, distinguish itself from the sibling dummyjson_search_products, which is the key ambiguity for a listing tool in this family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus dummyjson_search_products or dummyjson_quotes. The agent must infer from names alone that this is the unfiltered browse/paginate endpoint and the sibling is the query endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dummyjson_quotesBRead-onlyIdempotent
Browse a collection of quotes from DummyJSON.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds little beyond confirming it's a browsing operation; it doesn't mention pagination, rate limits, or response format, but annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero waste, front-loaded with the tool's purpose. It is appropriately sized for a simple browsing 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?
Given the simple operation, annotations covering safety, and a schema that fully documents the only parameter, the description provides enough to call the tool correctly. It could be improved by mentioning that it's a static list or any pagination behavior, 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%, and the single 'limit' parameter is fully documented in the schema. The description adds no extra meaning or syntax beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Browse') and resource ('quotes') from a named API, so an agent knows it retrieves a list. However, it doesn't differentiate from sibling tools like dummyjson_random_quote or quote_search, which also deal with quotes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The agent is left to infer that it's for browsing a collection, but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dummyjson_random_quoteBRead-onlyIdempotent
Get a random quote from DummyJSON.
| 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 safety is fully covered by structured data. The description adds nothing beyond that — no note that successive calls return different quotes, no response shape, no rate-limit or availability 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?
A single short sentence, front-loaded with the verb and resource, with no filler whatsoever.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero params and rich annotations the description is largely sufficient for selection, but with no output schema it does not say what the returned quote contains (quote text, author, id) or that repeated calls yield different results. That leaves a modest gap an agent would benefit from having filled.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing to document; four is the baseline for a no-param tool. The description correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain 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 a random quote') plus the source ('from DummyJSON'), so the action is unambiguous. It does not distinguish itself from sibling tools like dummyjson_quotes, quote_random, or zen_quote_random.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to call this versus the many other quote tools in the sibling list (dummyjson_quotes, quote_random, quote_search, zen_quote_random, kanye_quote). The agent must infer usage 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.
dummyjson_search_productsARead-onlyIdempotent
Search fake products by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is clear. The description adds the useful context that the products are fake/mock data, but says nothing about result format, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It immediately communicates the tool's action and input type.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a very simple one-parameter search tool with full schema coverage, complete annotations, and no output schema, the description is mostly sufficient. A small gap remains around what a result contains or whether search is field-limited, but nothing critical prevents 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?
There is only one parameter and schema description coverage is 100%, so the schema already documents the query parameter as a search keyword. The description reinforces the keyword-search intent but adds no syntax or 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: search fake products by keyword. It is clearly a search tool, but it does not explicitly differentiate itself from nearby siblings such as dummyjson_products, which likely lists products rather than searching 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?
Usage is only implied: an agent can infer this tool is for keyword-based product search. There is no explicit guidance on when to use it instead of dummyjson_products or other product-related siblings, and 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.
duval_factorizeB
Compute the Lyndon factorization of a string using Duval's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string to factorize (max 1,000,000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies a pure, side-effect-free computation by naming a deterministic algorithm, which is reassuring, but it does not state that it is read-only or describe the return structure (the list of Lyndon factors) or performance 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?
A single front-loaded sentence with zero filler; every word (verb, resource, algorithm, input type) 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 compute tool with no output schema, the description should describe what is returned (the ordered sequence of Lyndon factors), which it omits. Combined with the absence of annotations, there is a gap, though the input side is fully covered by 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 coverage is 100%: the single 'text' parameter is fully documented, including the 1,000,000-char limit. The description adds no syntax or format detail beyond 'a string', so the schema does all the work and 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 ('Compute'), a precise mathematical resource ('the Lyndon factorization of a string'), and even names the underlying method (Duval's algorithm). This is far more specific than a tautology and lets an agent distinguish it from other string algorithms, though it does not explicitly contrast itself with siblings like suffix_array_build or z_algorithm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use context, no prerequisites, and no alternatives. An agent learns what it computes but nothing about when this operation is preferable to other string-decomposition tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_get_categoriesCRead-onlyIdempotent
Get the eBay category tree for a marketplace.
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | Yes | ||
| marketplace | No | ||
| client_secret | Yes | ||
| category_tree_id | No | Category tree ID (0 = US default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds only 'for a marketplace' — it says nothing about the OAuth client credentials requirement, whether the tree is returned in full or paginated, or how large the response is, which are real behavioral facts an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. It is efficient, though arguably efficient at the cost of the information the agent actually 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?
A four-parameter tool requiring credentials, with 25% schema coverage and no output schema, needs the description to explain auth, the marketplace/category_tree_id relationship, and the shape of the returned tree. None of that is present, so the definition is not complete enough for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%: only category_tree_id is documented (0 = US default). The description mentions 'marketplace' but does not clarify how marketplace relates to category_tree_id (redundant or complementary), what valid marketplace codes look like, or that client_id/client_secret are eBay OAuth credentials.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the eBay category tree') and scopes it to a marketplace, so it is distinguishable from the ebay_search / ebay_get_item siblings. It does not name those siblings, but the resource is unambiguous enough to separate it from item-retrieval 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?
There is no statement of when to call this versus alternatives, no mention that it is a taxonomy/bootstrap call typically made before using category IDs in searches, and no prerequisites or exclusions. The agent must infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_get_itemCRead-onlyIdempotent
Get full details for an eBay item by item ID.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | eBay item ID (e.g. v1|123456789|0) | |
| client_id | Yes | ||
| fieldgroups | No | ||
| marketplace | No | ||
| client_secret | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds only 'full details' and says nothing about the required eBay credentials, rate limits, or what fieldgroups controls, so it contributes little beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no waste, appropriately brief for a simple getter. Its terseness is a coverage problem rather than a structural one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool requiring credentials and offering fieldgroups/marketplace options, with no output schema, the description is too thin. It does not explain authentication needs or what the optional parameters change, leaving real 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?
Only item_id is documented in the schema (20% coverage); fieldgroups and marketplace have no description anywhere, and client_id/client_secret are undocumented. The description confirms lookup is 'by item ID' but does not compensate for the missing semantics on the remaining 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?
States a specific verb (get), resource (eBay item), and lookup key (item ID), letting an agent distinguish it from ebay_search and ebay_get_categories. It does not, however, differentiate it from the sibling ebay_get_item_by_legacy_id, leaving ambiguity about which item-ID flavor to 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?
No guidance on when to use this versus ebay_search or ebay_get_item_by_legacy_id, and no preconditions stated. The agent must infer that it has an item ID in hand.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_get_item_by_legacy_idCRead-onlyIdempotent
Get an eBay item by its legacy item ID (classic numeric ID).
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | Yes | ||
| marketplace | No | ||
| client_secret | Yes | ||
| legacy_item_id | Yes | Legacy eBay item ID (numeric) | |
| legacy_variation_id | No | ||
| legacy_variation_sku | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing further — no note that it requires client credentials, that it performs an authenticated external API call that may fail for expired/ended listings, or anything about response 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?
A single tight sentence with the key differentiator front-loaded and no filler. It is appropriately sized, though its brevity is partly the cause of the missing 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 six-parameter authenticated read tool with no output schema and 17% schema coverage, the description is too thin: it never explains the credential parameters, the marketplace scoping, or the two variation parameters that differentiate variant-level lookups from item-level ones.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 17%: of six parameters, only legacy_item_id is documented. The description usefully clarifies that this ID is classic/numeric, but says nothing about client_id, client_secret, marketplace, legacy_variation_id or legacy_variation_sku, leaving most of the surface undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with the defining qualifier 'legacy item ID (classic numeric ID)', which distinguishes it from the sibling ebay_get_item. It stops short of explicitly contrasting the two, so the agent must infer that ebay_get_item is for modern IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use guidance or exclusion. The legacy-vs-modern distinction from ebay_get_item is implied by the parenthetical but never stated, so an agent holding an item ID has no instruction on which of the two eBay item tools to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_searchCRead-onlyIdempotent
Search eBay listings via the Browse API.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query | |
| sort | No | Sort order (e.g. price, -price, newlyListed) | |
| limit | No | Results per page (max 200, default 20) | |
| filter | No | eBay filter string (e.g. price:[10..50]) | |
| offset | No | ||
| client_id | Yes | eBay application Client ID | |
| marketplace | No | Marketplace ID (default: EBAY_US) | |
| category_ids | No | Comma-separated category IDs | |
| client_secret | Yes | eBay application Client Secret |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds nothing beyond naming the Browse API: it doesn't mention that two of the three required parameters are OAuth application credentials, nor rate limits, result caps, or pagination behavior for a search 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?
A single short sentence with no padding, front-loaded with verb and resource. It is efficient but so terse that it conveys only the minimum, so conciseness is not paired with informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Nine parameters, three required including credentials, no output schema, and no mention of auth flow, pagination via offset, or result shape. For a search tool with credential requirements, the description leaves too much for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents q, sort, limit, filter, marketplace, category_ids and the credential fields. The description adds no syntax or format detail beyond what the schema provides, which is acceptable at this coverage level but earns no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (eBay listings) plus the backing API (Browse), which distinguishes it from ebay_get_item / ebay_get_categories by operation type. It stops short of explicitly differentiating scope or result type from 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?
No guidance on when to use this versus ebay_get_item or ebay_get_item_by_legacy_id, no mention of when not to use it, and no prerequisites. The agent must infer all routing 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.
ebird_notable_observationsB
Get notable/rare bird observations from eBird.
| Name | Required | Description | Default |
|---|---|---|---|
| back | No | ||
| api_key | No | ||
| regionCode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only states action without behavioral details like API key handling, rate limits, meaning of 'notable', or region code format.
Agents need to know what a tool does to the 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, efficient. Could add more context without exceeding reasonable 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?
Lacks output schema; no details on returned data format, pagination, or date ranges. Incomplete for a data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%; description adds no parameter info. With 3 parameters, it should compensate but does not explain any parameter purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Get notable/rare bird observations' from eBird. Distinguishes from siblings like ebird_recent_observations (general) and ebird_species_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?
Implied usage: when notable/rare observations needed. No explicit guidance on when to use alternatives like ebird_recent_observations or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebird_recent_observationsCRead-onlyIdempotent
Get recent bird observations from eBird.
| Name | Required | Description | Default |
|---|---|---|---|
| back | No | Days back (max 30) | |
| api_key | No | ||
| maxResults | No | ||
| regionCode | Yes | e.g. AU-VIC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context such as rate limits, return shape, pagination, or what "recent" operationally means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words. The purpose is stated immediately, even though the overall definition is under-specified elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 only 50% schema description coverage, the description should do more to explain the recent-observation window, maxResults behavior, API key usage, and return format. As written, an agent knows the broad purpose but lacks enough detail to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 50%: "back" and "regionCode" have descriptions, while "api_key" and "maxResults" do not. The description itself mentions no parameter semantics, so it does not compensate for the undocumented parameters or clarify how maxResults interacts with recent observations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ("recent bird observations") plus the source ("eBird"). It is clear enough to distinguish from a general species-info tool, though it does not explicitly name the notable-observations 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 use this tool versus alternatives such as ebird_notable_observations. It also does not state when-not to use it or any prerequisites beyond the schema's required regionCode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebird_species_infoCRead-onlyIdempotent
Get information about a bird species from eBird.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| speciesCode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds nothing beyond that — no note about lookup failure behavior for unknown species codes, no coverage of which eBird taxonomy/response the tool surfaces.
Agents need to know what a tool does to the 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 with no filler. Its brevity is appropriate in form but reflects under-specification rather than discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should convey what is returned (taxonomy, names, range, conservation status?) and the expected input format. Neither is present, leaving the agent unable to predict the response shape or construct a valid speciesCode with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does not. The required speciesCode is the critical unknown (eBird codes like 'norcar' vs common/scientific names), and api_key handling is undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource (get information about a bird species from eBird), so the domain is clear, but it is nearly a restatement of the tool name and gives no sense of what 'information' means or how it differs from ebird_recent_observations and ebird_notable_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?
No when-to-use guidance, no exclusions, and no mention of the sibling eBird tools that an agent must choose between. The agent must infer that this is the species-metadata tool versus the observation-listing ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_distanceA
Compute edit distance with full backtrace of insert/delete/replace operations.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source string (max 5,000 chars) | |
| target | Yes | Target string (max 5,000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, but it is a pure deterministic computation with no auth, rate limits, or side effects to disclose. It adds useful context that the result includes an operation backtrace, yet says nothing about return structure or complexity limits (the char caps live only 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?
A single front-loaded sentence that names the operation and its output scope with 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 low-complexity two-string computation with fully documented parameters and no output schema, the description adequately covers what the tool does and roughly what it returns. It stops short of describing the backtrace format, but the tool is simple enough that 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 description coverage is 100% and both parameters (source, target) are fully documented, including the 5,000-char cap. The description adds no syntax or 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?
States a specific verb ('compute'), resource ('edit distance'), and the output scope ('full backtrace of insert/delete/replace operations'). It is clear but does not differentiate itself from close siblings such as damerau_distance, hamming_distance, or string_distance, so an agent still needs outside knowledge to pick among 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?
Usage is only implied by the tool's name and the operation set. There is no explicit when-to-use and no pointer to alternative distance tools, so selection among the many distance/similarity siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edmonds_karpB
Compute maximum flow and minimum cut in a flow network using the Edmonds-Karp (BFS-based Ford-Fulkerson) algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| sink | No | Sink vertex (default: vertices - 1) | |
| edges | Yes | Edges as [from, to, capacity] triples | |
| source | No | Source vertex (default: 0) | |
| vertices | Yes | Number of vertices |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses the algorithm and that it computes both max flow and min cut, but does not state whether inputs are mutated, output shape, or performance/complexity 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?
The description is a single front-loaded sentence with no wasted words. It efficiently states the operation, output, and algorithm.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a computational graph algorithm with no output schema, the description gives the core operation and algorithm but omits return-value shape and assumptions about graph direction/capacities. It is enough to call but 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?
Schema description coverage is 100%, so the input schema already documents vertices, edges, source, and sink. The description adds no parameter-specific 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 specific verb ('Compute') and resource ('maximum flow and minimum cut in a flow network') and names the algorithm. It does not differentiate from sibling max-flow tools such as dinic_max_flow, so it is clear but not fully sibling-aware.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 Edmonds-Karp instead of alternative max-flow tools like dinic_max_flow or min_cost_max_flow. It only identifies the algorithm, leaving selection to the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eertreeB
Build a palindromic tree (eertree) to count distinct palindromic substrings.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string to analyse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does establish that this is a pure computation over a string producing a count. However, it omits what is actually returned (count only, or a tree structure), time/space behavior, and whether arbitrarily long or non-ASCII input is supported.
Agents need to know what a tool does to the 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 front-loaded sentence stating the algorithm and its result, with no filler. It is dense but every clause 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, the description must define the return value, and it only partly does: 'count distinct palindromic substrings' conflicts with the framing of 'build a tree,' leaving it unclear whether the tool returns an integer or a structure. Adequate for a simple one-param tool, but not fully unambiguous.
Complex tools with many parameters or behaviors need more documentation. 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 a single parameter with 100% schema description coverage ('Input string to analyse'), so the schema already documents it fully. The description adds no format, length, or encoding detail beyond that, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Build'), the construct ('palindromic tree (eertree)'), and the outcome ('count distinct palindromic substrings'). This differentiates it reasonably from siblings like palindrome_check and manacher_palindrome, though it never explicitly signals that 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?
No guidance on when to choose this over palindromic siblings such as manacher_palindrome or palindrome_check, and no statement of inputs or constraints. Usage must be fully inferred from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elevenlabs_get_historyCRead-onlyIdempotent
Get the TTS generation history for an ElevenLabs account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| voice_id | No | Filter history by voice ID | |
| page_size | No | ||
| start_after_history_item_id | No |
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 only the account scope and does not disclose pagination behavior, ordering, rate limits, or what the returned history items contain.
Agents need to know what a tool does to the world before calling 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 is concise, though arguably too terse for a tool whose schema leaves three parameters undocumented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, 25% schema coverage, and no output schema, the description should explain pagination and response shape. It does not, leaving an agent without enough context to use the optional filters 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 only 25%; only voice_id has a schema description. The description does not explain api_key, page_size, or start_after_history_item_id, so it fails to compensate for the low 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 clear verb and resource: get TTS generation history for an ElevenLabs account. It is specific enough to distinguish from voice/model/TTS siblings, though it does not explicitly name alternatives or scope boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings such as elevenlabs_list_voices or elevenlabs_text_to_speech. The intended use is only implied by the phrase 'generation history'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elevenlabs_get_modelsBRead-onlyIdempotent
List available ElevenLabs TTS models and their supported languages.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds useful information beyond them: that each model's supported languages come back as part of the response, which matters because there is no output schema. It still says nothing about authentication or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, zero filler. Nothing could be removed 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?
For a simple read-only, no-parameter listing tool whose annotations cover the safety profile, the description gives the resource and the payload content (models plus supported languages). Only a hint about which sibling to use for voices 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 api_key has 0% schema description coverage, and the description never mentions it. However, an api_key parameter is self-explanatory to an agent, so the practical cost is low. A 3 reflects that the description adds nothing but the parameter is unlikely to be misused.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('List') plus a specific resource ('ElevenLabs TTS models and their supported languages'), so the agent knows exactly what this returns. It does not differentiate from siblings like elevenlabs_list_voices or elevenlabs_get_voice, which is the only thing holding it back 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 gives no when-to-use guidance, no mention of alternatives such as elevenlabs_list_voices, and no prerequisites. At best the phrase 'supported languages' hints that it is used to pick a model before TTS, but that is inference rather than stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elevenlabs_get_voiceBRead-onlyIdempotent
Get metadata for a specific ElevenLabs voice by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| voice_id | Yes | ||
| with_settings | No | Include voice settings (stability, similarity_boost) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The word 'metadata' hints that audio is not returned, but the description says nothing about what fields come back, auth requirements, or how with_settings changes the payload.
Agents need to know what a tool does to the 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 short front-loaded sentence with no filler. It is efficient, though its brevity is partly the source of the missing detail elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should say what metadata is returned, and two of three parameters are undocumented. For a lookup tool with an optional settings flag, this leaves the agent guessing at invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 33%: voice_id and api_key have no schema descriptions, and only with_settings is documented. The description adds no meaning to any of the three parameters, so it fails to compensate for the coverage 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?
States a specific verb (Get) and resource (metadata for a specific ElevenLabs voice) and identifies the lookup key (ID). This cleanly separates it from elevenlabs_list_voices, though it doesn't name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by ID' implies you must already have a voice_id, which is weak usage guidance. It never states when to use this instead of elevenlabs_list_voices to discover a voice, nor when with_settings should be enabled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elevenlabs_list_voicesBRead-onlyIdempotent
List all available voices in ElevenLabs.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety and repeatability are covered structurally. The description adds only the minor fact that all voices are returned with no filtering; it says nothing about pagination, whether results are account-scoped, or that an API key is required for auth.
Agents need to know what a tool does to the 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 tight sentence with no filler and the core action front-loaded. It is efficient, though so terse that there is no room for the usage or auth context a caller actually 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?
The tool is simple (one param, no output schema, rich annotations), so the description is close to adequate. But it omits how many voices are typically returned, whether results include metadata like voiceId/labels needed to chain into elevenlabs_text_to_speech, and the api_key requirement, which are the gaps that matter most here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single required parameter (api_key) is completely undocumented in both schema and description. The description does not say whether the key is account-level, whether it is read from the environment, or what form it takes, so it fails to compensate for the coverage 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 specific verb and resource ('List all available voices') and scopes it to ElevenLabs, so an agent knows exactly what the call returns. It does not explicitly contrast with the sibling elevenlabs_get_voice (single-voice lookup) or heygen_list_voices, leaving differentiation to the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus elevenlabs_get_voice, elevenlabs_get_models, or elevenlabs_get_history. The only implicit cue is the word 'List', which an agent must infer means 'browse/choose a voiceId before a text-to-speech call'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elevenlabs_text_to_speechB
Convert text to speech with a selected ElevenLabs voice. Returns base64-encoded audio.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to synthesize (max 5000 characters) | |
| style | No | 0.0-1.0 style exaggeration | |
| api_key | Yes | ||
| model_id | No | ElevenLabs model ID (default: eleven_monolingual_v1) | |
| voice_id | Yes | ||
| stability | No | 0.0-1.0 (default: 0.5) | |
| output_format | No | mp3_44100_128, pcm_16000, etc. (default: mp3_44100_128) | |
| similarity_boost | No | 0.0-1.0 (default: 0.75) | |
| use_speaker_boost | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output format (base64 audio) but does not disclose rate limits, authentication requirements, or potential side effects (e.g., cost per character). The description is insufficient for a tool with external API calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences, front-loading the action and output format. No extraneous 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 9 parameters, no output schema, and no annotations, the description is too sparse. It doesn't explain how to obtain a voice_id, doesn't mention the need for an API key, and doesn't clarify the structure of the base64 output. The tool is complex but the description is minimal.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no parameter semantics beyond what is in the input schema. The schema already covers 6 of 9 parameters with descriptions (67% coverage). The description does not explain parameter relationships or provide guidance on picking voice_id or model_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Convert text to speech'), the resource ('selected ElevenLabs voice'), and the output format ('Returns base64-encoded audio'). It distinguishes itself from sibling tools like elevenlabs_list_voices or elevenlabs_get_voice by specifying the conversion functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like elevenlabs_get_voice or elevenlabs_get_history. There is no mention of prerequisites (e.g., need for a valid voice_id from list_voices) or context for choosing models or parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_deleteC
Delete an email by UID.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| No | |||
| folder | No | ||
| password | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as permanence of deletion, side effects, or required permissions. For a destructive tool, this is a significant 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 short sentence with no wasted words, but it is overly minimal and lacks important details, bordering on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and 4 parameters mostly undocumented, the description fails to provide sufficient context for correct tool usage, especially for a destructive 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 has 4 parameters (uid, folder, email, password) with no descriptions, and the description only mentions uid. The purpose of folder, email, and password is left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Delete), the resource (email), and the identifier (UID). It is specific and distinguishes from sibling tools like email_get or email_send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that you need the UID to delete, but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_getCRead-onlyIdempotent
Get a specific email by UID.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| No | |||
| folder | No | ||
| password | No |
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 structurally. The description adds nothing beyond that: no note on what happens when the UID does not exist, whether it errors or returns null, or what credentials/auth are needed for an open-world mailbox 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?
A single front-loaded sentence with no filler. It is concise to the point of under-specification, but nothing in it is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four parameters, zero schema documentation, and no output schema; the description covers only one parameter and no error or auth behavior. For a retrieval tool in a mailbox that requires identity/credential context, this leaves significant gaps before an agent could call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, and it explains only uid. The other three parameters (email, folder, password) are completely unexplained in both schema and description, leaving an agent guessing whether they are credentials, mailbox selectors, or optional overrides.
Input schemas describe structure but not intent. Descriptions should explain 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 a specific email') and scopes it to a single item by UID, which implicitly separates it from siblings like email_search or email_read_inbox. It stops short of explicitly naming which sibling to use when the UID is unknown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: call this when you already have a UID. There is no explicit statement of when not to use it, no pointer to email_search or email_read_inbox for discovering UIDs, and no mention of required credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_mark_readC
Mark an email as read.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| No | |||
| folder | No | ||
| password | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but fails to disclose behavioral traits, such as whether the tool is idempotent, requires authentication (implied by parameters), or what happens if the email is already marked as 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 description is very concise (one sentence), but it is too brief, omitting essential information, so it does not earn its place despite being short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 requiring authentication and having an output schema, the description is incomplete; it lacks details on authentication, parameter roles, and return behavior, making it insufficient 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 0%, and the description adds no meaning to the four parameters (uid, folder, email, password). It does not explain that uid is the email identifier, folder is optional, or that email/password might be used for authentication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Mark an email as read,' which is a specific verb and resource, and it distinguishes from sibling tools like email_delete and email_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 no guidance on when to use this tool versus alternatives, such as suggesting to first list emails with email_read_inbox, or mentioning prerequisites like authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_read_inboxCRead-onlyIdempotent
Read emails from an inbox.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| limit | No | ||
| folder | No | ||
| password | No |
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. The description adds no behavioral context such as credential handling, default folder behavior, pagination, or what is 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 single sentence is front-loaded but drastically under-specified for a four-parameter tool. This is excessive brevity rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not compensate by explaining credentials, folder selection, result limits, or return behavior. Only the annotations provide safety context; the call semantics remain incomplete.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage, and the description does not explain any of them. In particular, email and password are ambiguous and security-sensitive, while limit and folder defaults are unspecified.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource: reading emails from an inbox. It does not differentiate this tool from nearby siblings such as email_search, email_get, gmail_read, or mailroom_read, so an agent cannot tell when this inbox reader is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, prerequisites, or exclusions. It does not explain how this differs from email_search, email_get, or other inbox-reading siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_searchCRead-onlyIdempotent
Search emails in an inbox.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| limit | No | ||
| query | Yes | ||
| folder | No | ||
| password | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety behavior is covered by structured data. Beyond that, the description adds nothing about what query syntax is supported, whether results are paginated, or how limit/folder affect the result 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?
The single sentence is short but not informative — it front-loads a vague scope instead of actionable detail. Brevity here reflects under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 5 wholly undocumented parameters, and no explanation of search semantics or authentication, the description omits nearly everything an agent needs to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all 5 parameters, including an authentication-related 'password' parameter and a required 'query' parameter. The description does not mention any parameter, its format, or its role, leaving every parameter entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb (search) and resource (emails) but adds only 'in an inbox', which does not distinguish it from siblings such as email_read_inbox, email_get, or gmail_search. An agent cannot tell from this text what makes 'search' different from simply reading the inbox, or whose inbox is targeted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of alternatives (email_read_inbox, email_get, gmail_search), and no preconditions. The agent must infer everything about tool selection 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.
email_sendC
Send an email via Gmail/IMAP.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | ||
| bcc | No | ||
| body | Yes | ||
| No | |||
| subject | Yes | ||
| password | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It fails to mention that email and password parameters are for authentication, any rate limits, delivery guarantees, or error scenarios. The description is too minimal to inform an agent about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While very concise (one sentence), the description is under-specified for a tool with 7 parameters and no annotations. It sacrifices necessary detail in favor of brevity, leaving critical information absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity (7 parameters, no annotations, no output schema), the description is grossly incomplete. It does not explain authentication, return value, or how to handle failures. Among sibling email tools, it is the only send tool, but that context is not leveraged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any parameter's meaning beyond their names. It adds no value over the schema—missing details like the format of 'to' (single or comma-separated?), or that 'email' and 'password' are authentication credentials.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Send an email via Gmail/IMAP' clearly states the action (send email) and the service (Gmail/IMAP), distinguishing it from sibling tools like email_delete, email_get, email_read_inbox, and email_search which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention prerequisites, typical use cases, or situations where another email tool (e.g., email_read_inbox) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emojihub_by_categoryARead-onlyIdempotent
Browse emojis by category (smileys, animals, food, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category slug (e.g. smileys-and-people, animals-and-nature) |
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 results are organized by category, but does not describe return format, pagination, or whether all matching emojis are 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?
A single short sentence front-loads the resource and filtering dimension with no wasted words. It is appropriately sized for a simple one-parameter lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only category browse tool with full schema coverage and annotations, the description is nearly complete. A minor gap is that it does not explicitly point to a category-list source or clarify whether output includes all emojis in the category.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 category parameter is already documented with examples such as smileys-and-people and animals-and-nature. The description's category examples add little beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: browse emojis by category. It distinguishes this from retrieving a random emoji, but does not explicitly name sibling tools such as emojihub_random or emoji_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?
Usage is implied by 'by category', but the description gives no explicit guidance on when to choose this tool over emojihub_random or emoji_lookup. The agent must infer the selection rule from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emojihub_randomARead-onlyIdempotent
Get a random emoji with name, category, and HTML/Unicode codes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, destructiveHint=false, and idempotentHint, which cover the safety profile. The description usefully adds what the payload contains (name, category, HTML/Unicode codes), but says nothing about whether repeated calls return different emojis, which is a meaningful trait for a 'random' tool and sits oddly with idempotentHint=true.
Agents need to know what a tool does to the 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 short sentence that front-loads the action and the resource, then lists the return fields. Nothing is wasted and nothing needs to be moved forward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters, no output schema, and annotations carrying the safety profile, the description covers the essentials by stating the fields a caller receives. Only the variability of a random draw and the absence of sibling differentiation keep it from being 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 tool takes no parameters, so there is nothing for the description to disambiguate; the schema is empty and fully self-explanatory. The baseline of 4 for a zero-parameter tool 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 ('Get') and resource ('a random emoji') and names the fields returned (name, category, HTML/Unicode codes). It does not, however, distinguish itself from the sibling emojihub_by_category or emoji_lookup, so an agent must infer that 'random' is the differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus emojihub_by_category (which presumably returns an emoji from a chosen category) or emoji_lookup. Usage is only implied by the word 'random'; there are no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emoji_lookupBRead-onlyIdempotent
Search emojis by name or keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g. heart, fire, smile). |
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 nothing beyond that: no match behavior (exact vs partial vs alias), no result shape, no rate/limit context. Acceptable but thin given annotations do the heavy lifting.
Agents need to know what a tool does to the 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 short sentence, front-loaded and waste-free. It is terse to the point of under-specification, which keeps it just below a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full schema coverage and annotations, the essentials are present. But with no output schema, the agent gets no indication of what is returned (emoji characters, names, unicode codepoints), which is a real gap for a 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% and the single parameter already carries examples ('heart, fire, smile'), so per the calibration rule the baseline is 3. The description adds no matching semantics (substring vs exact, case sensitivity) 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?
Specific verb+resource ('Search emojis') with the lookup dimension (name or keyword) stated. It does not, however, distinguish itself from sibling emoji/data tools like emojihub_random, emojihub_by_category, or github_emojis, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use or when-not-to-use guidance is given; the query example implies keyword lookup but the description never says how this differs from the other emoji siblings or what to do with an empty result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entropy_calculateBRead-onlyIdempotent
Calculate Shannon entropy of text (measures randomness/information density).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to measure. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, open-world, non-destructive calculation, so the safety profile is covered. The description adds the conceptual meaning of Shannon entropy but says nothing about the output unit, normalization, character encoding, or how the entropy score is reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words. The parenthetical definition is compact and helps clarify the metric 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 simple one-parameter calculation with full schema coverage and annotations, the definition is mostly adequate. However, there is no output schema and the description does not explain what the returned entropy value represents, such as bits versus nats or normalized versus raw entropy.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter, 'text', and schema description coverage is 100%, so the schema already defines it adequately. The description says the calculation is 'of text,' but it adds no details about encoding, preprocessing, or empty-input behavior 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 verb and resource: 'Calculate Shannon entropy of text,' and the parenthetical clarifies that it quantifies randomness/information density. It is distinguishable from generic text-analysis siblings, though it does not explicitly name alternatives or contrast scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 what the metric means but gives no explicit guidance on when to choose this tool over related analysis tools such as wordfreq_analyse, frequency_analyse, or tfidf_calculate. Usage is only implied by the concept of measuring randomness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epoch_convertARead-onlyIdempotent
Convert a Unix epoch timestamp to ISO 8601 and human-readable formats.
| Name | Required | Description | Default |
|---|---|---|---|
| timestamp | Yes | Unix epoch (seconds or milliseconds). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds value by disclosing the output formats (ISO 8601 and human-readable), which are not covered by annotations and there is no output schema to carry 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 sentence with no wasted words, and it front-loads the action and result format. It is appropriately sized for this simple conversion 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 straightforward conversion with full schema coverage and annotations that cover safety, the description provides enough context: what it does and what formats it returns. It could mention the timezone assumption (e.g., UTC) but otherwise 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 single parameter (timestamp) with a description that it is a Unix epoch in seconds or milliseconds. The description adds no further meaning beyond what the schema already provides, so baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Convert) and resource (Unix epoch timestamp) plus the output formats (ISO 8601 and human-readable). It clearly distinguishes from a tool like epoch_now that returns the current time, though it doesn't explicitly name siblings or exclusions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 epoch_now, datetime_convert_timezone, or datetime_format_date. It merely states the conversion, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epoch_nowA
Get the current Unix epoch timestamp in seconds and milliseconds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clearly states that the tool returns the current epoch timestamp in seconds and milliseconds, which is useful output-format information. It does not mention timezone, precision, or that no authentication is required, leaving some behavioral context implicit for a simple 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 a single front-loaded sentence with no wasted words. It communicates the core action and return units 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 zero-parameter, no-output-schema tool, the description sufficiently explains what is returned: current epoch time in seconds and milliseconds. It could add the exact output shape or note that no input is needed, but it 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?
The tool takes zero parameters, so there is no parameter semantics to document. Per the baseline for zero-parameter tools, a score of 4 is appropriate because no parameter explanation 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 verb and resource: get the current Unix epoch timestamp. It also names the returned units (seconds and milliseconds), which is helpful. However, it does not explicitly differentiate from sibling tools like epoch_convert or datetime_current_time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no exclusions, and no named alternatives. The usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
er_latest_ratesBRead-onlyIdempotent
Get latest exchange rates from ExchangeRate-API (open endpoint).
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency code (default: USD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive, so the safety profile is covered. The description contributes one piece of extra context — 'open endpoint', i.e. no credentials required — but says nothing about snapshot freshness, rate limits, fallback behavior for an unsupported base code, or whether the response is a full rate map.
Agents need to know what a tool does to the 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 short sentence with the verb and resource front-loaded and no filler. Nothing redundant or 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 one-parameter read-only tool with full schema coverage and clear annotations, the definition is minimally sufficient. But with no output schema, the return shape (a map of quote currencies to rates relative to base?) is never described, and the crowded currency-tool namespace is not addressed, leaving the agent guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 optional 'base' parameter is documented there as 'Base currency code (default: USD)'. The description never mentions the base parameter, whether it accepts symbols or names, or what happens when omitted, so it adds nothing 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 ('Get latest exchange rates') plus the upstream provider (ExchangeRate-API), so the operation itself is unambiguous. However, the sibling list contains at least eight near-identical currency tools (exchangerate_latest, currency_api_rates, frankfurter_latest, forex_latest, vatcomply_rates, wise_exchange_rates, coinlore_rates, etc.) and the description does nothing to distinguish this one from 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?
No when-to-use or when-not-to-use guidance, and no mention of the obvious alternatives. The only implicit hint is '(open endpoint)', which suggests no auth/key is needed, but an agent still cannot decide between this and exchangerate_latest or frankfurter_latest from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_mlb_scoresARead-onlyIdempotent
Get current MLB scores from ESPN.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, open-world, non-destructive operation. The description adds limited context by indicating the data source (ESPN) and freshness ('current'), but does not describe return format, whether scores are live or final, or any rate-limit behavior. With annotations covering the safety profile, 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?
The description is a single, front-loaded sentence with no wasted words. It immediately states the action, sport, and source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with annotations covering safety behavior, the description is nearly complete. It could clarify whether results are live versus final or what the response shape looks like, but the absence of an output schema makes explaining return values less 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?
The tool has zero parameters, so the baseline is 4. The description does not need to compensate for missing parameter documentation, and the schema is fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get current MLB scores from ESPN.' It clearly distinguishes this tool from sibling score tools for NFL, NBA, NHL, and soccer, as well as from espn_news and espn_team_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 phrase 'current MLB scores' implies the usage context, but there is no explicit guidance on when to use this versus espn_news or espn_team_info. It is adequate but relies on the agent inferring the correct context from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_nba_scoresBRead-onlyIdempotent
Get current NBA scores from ESPN.
| 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 safety is fully covered. The description adds essentially nothing beyond them — no indication of whether results are live-updating, how fresh they are, or whether it is a snapshot of one day's games.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with zero filler. Nothing in it is redundant or 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 no-parameter read tool whose annotations carry the safety profile, the essentials are present, but 'current' is undefined and the overlap with nba_games is unaddressed. An agent can invoke it, but cannot predict whether it will get live scores or a finished-games summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty with 100% coverage, so there is nothing for the description to disambiguate. A baseline 4 applies; a small deduction is warranted because the description never signals that no team/date filtering is possible, which an agent might otherwise assume.
Input schemas describe structure but not intent. Descriptions should explain 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 NBA scores) plus the source (ESPN), which separates it from the NFL/MLB/NHL/soccer siblings by sport. However, it does not distinguish itself from the non-ESPN sibling nba_games, which plausibly does the same thing, so the differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus nba_games, or versus espn_news/espn_team_info in the same family. It also never defines 'current' (live in-progress scores? today's finals? latest completed games), which is exactly the decision an agent needs to make before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_newsCRead-onlyIdempotent
Get ESPN sports news.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sport | No |
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 fully covered. The description adds nothing beyond that: no mention of news source, freshness, regional coverage, pagination, or return format. With annotations carrying safety, the description still contributes no 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 single sentence is front-loaded and free of waste, but it is too sparse to provide any structure for a tool with two undocumented parameters. Brevity here is under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two parameters with 0% description coverage, no output schema, and a large sibling set, the description is materially incomplete. It does not explain the sport filter, the limit, or what news content is returned, leaving the agent to call it largely blind.
Complex tools with many parameters or behaviors need more documentation. 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 are two parameters (limit and sport), and schema description coverage is 0%. The description mentions neither parameter, so an agent cannot infer valid values (e.g., which sport names are accepted) or the meaning of limit from any source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a verb and resource ('Get ESPN sports news'), so the intent is discernible. But it does not distinguish what kind of news (headlines, articles, recaps) or how it differs from the many ESPN score tools and general news tools in the sibling list. The purpose is vague rather than misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the ESPN score siblings or news_top_headlines/news_search. No exclusions, no alternatives, no context about freshness or scope. The agent is left to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_nfl_scoresBRead-onlyIdempotent
Get current NFL scores from ESPN.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent and non-destructive, so safety is covered and the description does not contradict them. The description contributes the provenance (ESPN) and the freshness scope ("current"), but says nothing about response shape or whether scores are live-updating or cached.
Agents need to know what a tool does to the 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 short sentence with the verb and resource front-loaded and zero filler. Nothing could be removed 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 no output schema and no parameters, the description is the only place an agent can learn what comes back — game list, team names, scores, quarter/clock status, or week/schedule scope. None of that is stated, so the agent cannot anticipate the return payload.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the schema carries all the input burden and there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless 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?
States a specific verb+resource ("Get current NFL scores") plus the data source (ESPN), which cleanly separates it from the sport-variant siblings like espn_nba_scores and espn_mlb_scores. It is not explicitly contrasted with them, but the NFL qualifier makes the selection 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?
Only the word "current" hints at scope (live/recent games). There is no statement of when to use this versus espn_news or espn_team_info, no note that historical or future games are out of scope, and no preconditions named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_nhl_scoresARead-onlyIdempotent
Get current NHL scores from ESPN.
| 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, so the safety profile is covered. The description adds that results come from ESPN and are current, but does not mention freshness, live-vs-final behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single, front-loaded sentence with no wasted language. It states the action, object, qualifier, and source 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 no-parameter, read-only scores lookup, the description is nearly complete: it identifies the sport, source, and currency of the data. A minor gap is that it does not clarify whether "current" means today's games, live games, or latest finals, and there is no output schema to supplement 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?
There are zero parameters, so parameter semantics are not a burden. The description does not need to explain input syntax, and the empty schema is consistent with the tool's simple lookup 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 gives a specific verb ("Get") and resource ("current NHL scores") with the source ("ESPN"). It cleanly distinguishes this from sibling tools like espn_nfl_scores and espn_nba_scores by naming NHL explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the use case: retrieving current NHL scores. It does not spell out when to prefer this over siblings such as espn_news or espn_team_info, but the context is sufficiently clear for a simple read-only lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_soccer_scoresCRead-onlyIdempotent
Get soccer scores from ESPN.
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | e.g. eng.1, usa.1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds nothing beyond that: no indication of data freshness (live vs. cached), no note that omitting league changes scope, no rate-limit or coverage caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. It is efficient, though the terseness borders on under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low complexity with one documented parameter and no output schema, so much of the burden is lifted. Still, the description leaves open what time window the scores cover and what the default behavior is without a league, which an agent needs in order to trust the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional parameter 'league' is documented in-schema with examples (eng.1, usa.1). The description adds no meaning on top, so the baseline of 3 applies — notably it never explains what happens when league is omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource (get soccer scores) is stated, but it is essentially an expansion of the tool name and gives no scope: nothing says whether these are live scores, today's fixtures, or final results. It also does nothing to distinguish itself from the parallel espn_nfl_scores / espn_nba_scores / espn_mlb_scores siblings beyond the sport word already in the 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?
There is no guidance on when to pick this over the ESPN siblings or over sportsdb_* / esports_* alternatives, and no mention of any preconditions such as needing a valid league slug. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
espn_team_infoCRead-onlyIdempotent
Get team information from ESPN.
| Name | Required | Description | Default |
|---|---|---|---|
| sport | Yes | ||
| league | Yes | ||
| team_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds nothing beyond that — no note about ESPN coverage gaps, failure modes for invalid team IDs, or rate/availability 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?
One short sentence with no waste, which is structurally fine. But its brevity is under-specification rather than economy — there is room to add the missing guidance without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameter documentation, so the description carries the burden of explaining return shape and input formats; it explains neither. Combined with the huge sibling list of overlapping sports tools, an agent lacks what it needs to call this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across all three required parameters (sport, league, team_id), so the description is the only place semantics could be supplied. It offers no formats or examples — e.g. whether sport is 'football'/'basketball', what league slugs look like ('nfl', 'eng.1'), or whether team_id is numeric or a slug.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource ('Get team information from ESPN'), so the general intent is clear. But it does not say what 'team information' contains (roster, record, venue, branding) nor how it differs from siblings like sportsdb_search_team or nba_teams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this tool versus the many other team/sports tools in the sibling list, and no prerequisites or exclusions. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esports_get_matchBRead-onlyIdempotent
Get details for a specific esports match by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| match_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered elsewhere. The description adds nothing beyond them — no indication of what a match record contains, whether an API key is required, or any rate/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the key qualifier ('by ID') front-loaded and no filler. It is lean to the point of being terse, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with no output schema and full annotation coverage, the description is minimally sufficient to call the tool correctly. It is still silent on the api_key parameter and on what 'details' comprises, which leaves gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies only that match_id is an ID identifying the record; the required api_key parameter and the numeric type/format of match_id are nowhere explained.
Input schemas describe structure but not intent. Descriptions should explain 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 details') and resource ('a specific esports match') scoped by ID, which distinguishes it from the sibling list tool esports_matches. However the description never names that sibling explicitly, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a specific esports match by ID' implies this is the single-record lookup used after obtaining an ID from esports_matches, but there is no explicit when-to-use/when-not guidance or named alternative. Usage is implied, not documented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esports_matchesCRead-onlyIdempotent
Get esports matches from PandaScore.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | e.g. lol, csgo, dota2 | |
| page | No | ||
| status | No | running, upcoming, past | |
| api_key | No | ||
| per_page | No |
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 only the provider name and nothing about auth requirements (the api_key param), rate limits, pagination semantics, or what a match record contains — thin for an open-world third-party API call.
Agents need to know what a tool does to the 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 with zero waste, which is structurally clean. However, this is brevity by omission rather than earned conciseness — the tool has five parameters and none are addressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, zero-required, open-world listing tool with no output schema, the description should at minimum describe the result shape (a paginated match list) and the required auth. Instead it is one sentence that leaves the agent guessing about pagination and the api_key.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 40% (game and status documented, page/per_page/api_key bare), and the description adds no parameter meaning beyond the schema. It does not explain pagination defaults, page-size limits, or how to supply the key, so it fails to compensate for the coverage 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?
States a concrete verb and resource ('Get esports matches') plus the data source (PandaScore), which is enough to know what the tool returns. It does not distinguish itself from the sibling esports_get_match (single match by ID), leaving the listing-vs-lookup boundary 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?
There is no when-to-use guidance at all: no mention of filtering by game/status, no routing to esports_get_match, esports_tournaments, esports_teams or esports_players, and no note that an api_key is expected. The agent must infer everything from parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esports_playersC
Search esports players on PandaScore.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'Search esports players' but does not mention read-only nature, return type, authentication, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is too brief to be useful. It fits the tool name but lacks necessary 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 search tool, the description is incomplete. No output schema exists and parameter semantics are missing. It does not explain what data is returned or how to use the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning beyond parameter names. It does not explain what 'search' expects (e.g., player name) or the purpose of 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Search) and the resource (esports players) on a specific platform (PandaScore). It distinguishes itself from sibling tools like esports_teams, esports_matches, 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?
No guidance on when to use this tool versus alternatives like esports_teams or esports_matches. No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esports_teamsC
Search esports teams on PandaScore.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | ||
| search | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose any behavioral traits such as return format, pagination, rate limits, or authentication needs. The simple statement 'Search esports teams' provides no 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 very concise and front-loaded, but it omits necessary details for effective usage. Acceptable structure for a simple tool, but could be expanded helpfully without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is critically incomplete. It does not explain return format, parameter constraints, or any behavioral context needed 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 0%, so the description should explain the parameters. It does not. While 'game' and 'search' are somewhat self-explanatory, the description adds no value beyond the parameter names, failing to compensate for missing 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 action ('Search'), resource ('esports teams'), and platform ('PandaScore'). Among sibling tools like esports_get_match, esports_players, etc., this tool is distinctly about teams, so differentiation is 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?
No guidance on when to use this tool over alternatives. The description does not mention what the 'game' or 'search' parameters should contain, nor does it compare with esports_players or other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esports_tournamentsC
Get esports tournaments from PandaScore.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | ||
| status | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description lacks behavioral details such as whether the tool returns a list or single tournament, authentication requirements, or rate limits. The description is too minimal to inform the agent about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, which aids conciseness, but it sacrifices necessary detail. It is not verbose, yet it fails to provide sufficient information for effective tool use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, no parameter explanations, and the presence of sibling tools for esports, the description is incomplete. It does not provide enough context for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters (game, status, api_key). No valid values, required status, or usage hints are given, leaving the agent to guess their 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 action ('Get'), resource ('esports tournaments'), and source ('from PandaScore'). However, it does not differentiate from sibling tools like 'esports_matches' or 'esports_get_match', which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention context, prerequisites, or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etsy_get_listingBRead-onlyIdempotent
Get details for a single Etsy listing by listing ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| includes | No | Comma-separated includes (Images, Shop, etc.) | |
| listing_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, openWorld, and non-destructive, and the description adds no context beyond that — nothing about auth via api_key, rate limits, error behavior when an ID is invalid, or what the includes parameter changes. It doesn't contradict the annotations, but it contributes no behavioral signal of its own.
Agents need to know what a tool does to the 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 with no filler; the resource and lookup key come first. It is efficient but so terse that it leaves useful space unused rather than being fully optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description says nothing about what 'details' are returned or how includes (Images, Shop) expands the response. For a simple read tool with rich annotations this is adequate but leaves a real gap around return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: includes has a schema description, but listing_id and api_key are undocumented. The description clarifies that listing_id is the lookup key, partially compensating, but it says nothing about api_key being a required credential, leaving the auth requirement for the agent to infer.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (a single Etsy listing) plus the lookup key (listing ID), which clearly separates it from etsy_search_listings and etsy_get_shop_listings. It doesn't name a sibling explicitly, so it stops 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?
The phrase 'by listing ID' implies the tool should be used when a listing ID is already known (versus searching), but this is inferred rather than stated. No explicit when-not or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etsy_get_shopBRead-onlyIdempotent
Get details for an Etsy shop by shop ID or numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| shop_id | Yes | Shop ID or shop name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds nothing about return shape, what happens with an unknown shop ID, or any API-key/auth constraint beyond the schema's required `api_key`, which keeps it at a minimum-viable level.
Agents need to know what a tool does to the 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 with no filler. Brevity is good, but the same one sentence is doing too little work, so it sits below the top tier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with strong annotations, the definition is adequate but leaves open what a "detail" response contains and how errors surface, and there is no output schema to compensate. It is callable but not fully informative.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50% (the `api_key` parameter is undocumented), so the description must carry some load. It clarifies that `shop_id` accepts an ID form, but its wording "shop ID or numeric ID" is vaguer than and slightly at odds with the schema's "Shop ID or shop name", leaving the accepted identifier forms ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 details for an Etsy shop") and identifies the lookup key, so an agent knows this is a single-shop lookup rather than a list. It does not name or distinguish itself from the nearby `etsy_search_shops` / `etsy_get_shop_listings` siblings, which costs it the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus `etsy_search_shops` (find a shop) or `etsy_get_shop_listings` (items within a shop). The agent must infer the single-record vs. search distinction 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.
etsy_get_shop_listingsCRead-onlyIdempotent
Get active listings for an Etsy shop.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| api_key | Yes | ||
| shop_id | Yes | ||
| sort_on | No | ||
| sort_order | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds the useful 'active' scoping but says nothing about pagination, rate limits, or authentication requirements. With annotations carrying the safety burden, this is a modest but real value add.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of waste. However, it is arguably too terse for the parameter surface it needs to support, which slightly undercuts the benefit of its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 undocumented parameters, no output schema, and only safety annotations, the description is incomplete. It should explain pagination, sorting options, and the authentication requirement to be 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 coverage is 0% for six parameters, and the description only implies shop_id via 'Etsy shop'. It does not clarify limit, offset, sort_on, sort_order, or the required api_key, leaving the schema to speak for itself in a context where it cannot.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 active listings for an Etsy shop'), clearly distinguishing it from single-listing or shop-detail siblings. It does not explicitly contrast with etsy_search_listings, so a 4 rather than 5 is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives like etsy_search_listings or etsy_get_listing. The implied use case (get listings for a known shop) is present, but there are no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etsy_search_listingsCRead-onlyIdempotent
Search active Etsy listings by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (max 100, default 25) | |
| offset | No | ||
| api_key | Yes | Etsy API key | |
| sort_on | No | Sort field (created, price, score, updated) | |
| keywords | Yes | Search keywords | |
| location | No | ||
| max_price | No | ||
| min_price | No | ||
| sort_order | No | asc or desc | |
| taxonomy_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds useful scoping context by stating that only active listings are searched, but it does not discuss pagination, rate limits, or the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is efficient but arguably too sparse for a tool with ten parameters, though conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a ten-parameter search tool with no output schema, the description is incomplete. It omits key behavioral details about filtering options, pagination, authentication requirements beyond the schema's api_key field, and how results 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?
Schema description coverage is only 50%, and the description mentions only keyword search, which is already documented in the schema. It does not explain the unpriced parameters such as location, max_price, min_price, taxonomy_id, or offset. The description fails to compensate for the 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 a specific verb and resource: searching active Etsy listings by keyword. It does not explicitly differentiate from siblings like etsy_search_shops or etsy_get_shop_listings, but the resource and action are 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 no guidance on when to use this tool versus alternatives such as etsy_search_shops, etsy_get_shop_listings, or etsy_get_listing. It only states what the tool does, leaving all routing decisions to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etsy_search_shopsCRead-onlyIdempotent
Search for Etsy shops by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| api_key | Yes | ||
| shop_name | Yes | Shop name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety and repeatability are covered. The description adds only that matching is by name; it says nothing about pagination behavior (limit/offset exist), result caps, or ordering — context the annotations do not supply but which matters here.
Agents need to know what a tool does to the 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 short sentence that is front-loaded and zero-waste, but its brevity comes from omission rather than precision — key call-shaping information is simply absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, no output schema, and undocumented pagination and auth parameters, the description leaves too much unstated for an agent to call this correctly on the first try — particularly how many results come back and how to page through them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 25%: only shop_name is documented, and the description merely restates it. The limit and offset parameters have no type, range, default, or maximum guidance anywhere, and api_key is undocumented — the description does nothing to close that 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?
States a specific verb+resource ('Search for Etsy shops') and the search key ('by name'), which separates it from etsy_get_shop (lookup by ID) and etsy_search_listings (different resource). It stops short of describing what a match or result set looks like, so it is clear but not maximally informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus etsy_get_shop or etsy_search_listings, no mention of whether the search is fuzzy or exact, and no prerequisites beyond the implicit api_key parameter. The agent must infer the routing decision entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
euler_pathB
Check whether a graph has an Eulerian path or circuit. Reports degree analysis and start/end vertices.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Edges as [u, v] pairs | |
| directed | No | Whether the graph is directed (default: false) | |
| vertices | Yes | Number of vertices (0-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It adds useful output context by saying it reports degree analysis and start/end vertices, but it does not describe directed-graph handling, edge cases, or the exact return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core purpose and followed by a useful output note. 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?
For a three-parameter algorithmic tool with no output schema and no annotations, the description gives a reasonable high-level summary. However, it omits return format, directed-graph behavior, and edge-case handling that an agent might need to interpret results 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 vertices, edges, and directed with defaults. The description adds no parameter-specific semantics beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: checking whether a graph has an Eulerian path or circuit. It is clear what the tool does, but it does not differentiate itself from the sibling euler_tour 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?
There is no explicit when-to-use guidance, no alternatives named, and no conditions for choosing this over euler_tour or other graph tools. Usage is only weakly implied by the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
euler_totientA
Compute Euler's totient function phi(n) - the count of integers up to n that are coprime with n.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Positive integer to compute totient for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the burden of behavioral disclosure. It accurately describes the mathematical operation, but does not state that it is a pure read-only calculation, what type it returns, or how edge cases such as n=1 are handled.
Agents need to know what a tool does to the world before calling 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. Every clause contributes to defining the function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure mathematical function with a fully described input parameter, the description is nearly sufficient. It could explicitly state that the result is a non-negative integer, but the term 'count' strongly implies this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already documented as a positive integer. The description's mention of phi(n) and the coprime count adds mathematical context but no additional constraints or formatting details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Compute) and a specific mathematical resource (Euler's totient function phi(n)), then defines the function precisely. This uniquely identifies the tool among number-theory siblings such as prime_check or moebius_function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only states what the tool computes, leaving usage entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
euler_tourB
Compute Euler tour of a tree with tin/tout timestamps, depths, and subtree sizes.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Root vertex (default 0) | |
| edges | Yes | Tree edges as [u, v] pairs (0-indexed) | |
| vertex_count | Yes | Number of vertices |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does disclose the computed outputs (tin/tout timestamps, depths, subtree sizes), which is meaningful for a pure-computation tool, but says nothing about input validity requirements, handling of non-tree or disconnected input, or complexity.
Agents need to know what a tool does to the 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 with no filler; the core action and the produced artifacts are packed in 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 and no annotations, the description must cover both behavior and returns; it lists the output fields but not their structure or indexing, and gives no routing guidance against the similarly named euler_* siblings. Adequate but with clear gaps for a 3-parameter 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 vertex_count, edges, and the root default are already fully documented in the schema. The description adds no additional semantics (e.g., indexing conventions, edge ordering) beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Compute Euler tour of a tree') plus the produced outputs (tin/tout timestamps, depths, subtree sizes). The phrase 'of a tree' implicitly separates it from graph-path tools like euler_path and number-theoretic euler_totient, but it never names or explicitly excludes 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?
There is no statement of when to use this tool versus alternatives such as euler_path, euler_totient, or other tree-decomposition tools (heavy_light_decomposition, lowest_common_ancestor). No preconditions or input expectations are given either, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
europeana_recordB
Get details of a Europeana cultural heritage record by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Europeana record ID (e.g. /123/abc). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It implies a read-only retrieval ('Get details') but says nothing about authentication, rate limits, error behavior, or what happens with an invalid ID.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for a simple one-parameter lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity get-by-ID tool with one fully documented parameter, the description is close to sufficient. The lack of an output schema and annotations leaves some gaps around return content and error handling, but invocation remains 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 the single id parameter is documented with an example in the schema. The description adds no meaning beyond 'by ID', so the baseline 3 applies when the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get details) and resource (Europeana cultural heritage record by ID), so an agent can understand the action. However, it does not explicitly distinguish this retrieval tool from the sibling europeana_search, leaving the agent to infer that one is for IDs and the other for 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 explicit guidance on when to use this tool versus europeana_search or other alternatives. The phrase 'by ID' implies the caller must already have a record ID, but this is left to inference rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
europeana_searchC
Search Europeana for European cultural heritage objects (art, books, music, film).
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | Results per page (max 100, default 10). | |
| query | Yes | Search query. | |
| start | No | Result offset (default 1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, and it provides none. It says nothing about authentication, rate limits, pagination behavior, or what a result entry contains, leaving the agent to guess at operational constraints for an external-API 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?
A single front-loaded sentence with no filler; the verb and resource lead. It is efficient but arguably too terse, and could have spent a few more words on scope or alternatives without becoming 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?
For a simple 3-parameter search with a fully documented schema and no output schema, the description is minimally adequate. However, for an external cultural-heritage search it omits anything about result shape, relevance fields, or the detail-lookup companion tool, which an agent would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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', 'rows' (max 100, default 10), and 'start' (default 1). The description adds no query-syntax, field-scoping, or filtering guidance beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Europeana) and narrows the scope with concrete examples of the domain (art, books, music, film). An agent can tell what it retrieves, but the description never distinguishes it from the sibling 'europeana_record', which likely fetches a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites, and no mention of the sibling tool for retrieving an individual item. The agent must infer that this is the discovery entry point and 'europeana_record' the detail lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventbrite_create_eventC
Create an event on Eventbrite under an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Event name/title | |
| api_key | No | ||
| end_utc | Yes | End time in UTC, e.g. 2026-07-01T21:00:00Z | |
| currency | Yes | ISO currency code, e.g. USD | |
| timezone | Yes | IANA timezone, e.g. America/New_York | |
| venue_id | No | ||
| start_utc | Yes | Start time in UTC, e.g. 2026-07-01T19:00:00Z | |
| organization_id | Yes | Eventbrite organization id that will own the event |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It conveys mutation and organization ownership, but omits authentication needs, side effects, event status, validation, and error behavior for a write 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 single sentence is front-loaded and free of filler. It is concise, though extremely terse for an 8-parameter mutation 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 complex create operation with no annotations, no output schema, and 8 parameters, the description is incomplete. It states the core action but omits required-field guidance, authentication, return behavior, and mutation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, leaving api_key and venue_id undocumented. The description adds no parameter meaning beyond the schema and does not compensate for those 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 states a specific verb, resource, platform, and ownership scope: 'Create an event on Eventbrite under an organization.' An agent can distinguish this from eventbrite_get_event and eventbrite_search_events 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?
It gives no guidance on when to use this tool versus alternatives, prerequisites, or conditions. Usage is only implied by the verb 'Create.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventbrite_get_attendeesCRead-onlyIdempotent
Get attendees for an Eventbrite event.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| event_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds nothing beyond that: no word on pagination of attendee lists, result limits, authentication requirements for the api_key parameter, or whether attendee PII is 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?
A single short sentence with no filler, front-loaded with the action. It is efficient, though that efficiency comes partly from omitting almost all useful 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?
With no output schema and 0% parameter coverage, the description should explain what attendee records contain, how pagination works, and how credentials are supplied. None of that is present, leaving the agent to guess at the shape and limits of the 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?
Schema description coverage is 0% for both parameters. The phrase 'for an Eventbrite event' hints that event_id identifies the event, but the api_key parameter (authentication) is entirely undocumented and no format details are given, so the description does not compensate for the coverage 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?
It states a verb and resource ('Get attendees') but essentially restates the tool name, adding only that the event is an Eventbrite event. With siblings like eventbrite_get_event and eventbrite_search_events in the namespace, the description does nothing to distinguish scope (e.g., attendee list vs. single attendee vs. event 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?
There is no guidance on when to use this versus eventbrite_get_event or eventbrite_search_events, and no mention of prerequisites such as needing an event_id or valid API credentials. Usage is only inferable from the name and required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventbrite_get_eventBRead-onlyIdempotent
Get details for an Eventbrite event by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| event_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds nothing beyond that — no note on authentication (despite an api_key parameter), rate limits, or what the response contains.
Agents need to know what a tool does to the 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 with no filler. It is optimally sized for what it attempts, though the content itself is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% parameter coverage, the description should say more about return contents and the api_key requirement. For an open-world read tool the agent is left guessing what identifying fields or auth setup it needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It explains event_id only implicitly ('by ID'), and the api_key parameter — likely an auth credential for the open-world API — is never mentioned anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 details for an Eventbrite event) plus the lookup key (by ID). It is distinguishable from write siblings like eventbrite_create_event, though it never references eventbrite_search_events or the other Eventbrite getters to clarify the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'by ID' suggests the agent first needs an event ID, presumably from eventbrite_search_events, but no alternative or precondition is named. There is no explicit when-to-use or 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.
eventbrite_get_venueCRead-onlyIdempotent
Get details for an Eventbrite venue.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| venue_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered externally. The description adds nothing beyond that — no note on auth (api_key is present but unexplained), no error behavior for an invalid venue_id, no hint about what fields come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single waste-free sentence, so it is concise, but conciseness here comes at the cost of under-specification rather than efficiency — there is nothing to front-load because nothing substantive is said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% parameter documentation, the description should describe at least the return shape (name, address, coordinates) and the role of api_key. It leaves both entirely unaddressed for a two-parameter 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 0%, so the description carries the full burden and fails: it never mentions venue_id (the sole required param) or api_key (untyped, undocumented). Nothing explains the expected format of a venue ID or whether api_key is required for authentication.
Input schemas describe structure but not intent. Descriptions should explain 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 details') and a specific resource ('an Eventbrite venue'), which is clear enough to act on. It does not, however, differentiate itself from near-identical siblings like tm_get_venue or seatgeek_get_venue, nor from eventbrite_get_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no guidance on when to use this tool versus alternatives such as eventbrite_search_events or the venue tools from other providers. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventbrite_list_categoriesCRead-onlyIdempotent
List Eventbrite event categories.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
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 no behavioral context beyond the bare purpose, such as authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized, though its brevity leaves important semantics unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations and no output schema, the minimal description is barely adequate. It could still clarify what a category contains and how the optional api_key affects access.
Complex tools with many parameters or behaviors need more documentation. 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 one optional api_key parameter with 0% description coverage, and the description does not explain it or whether authentication is required. With low coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain 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: listing Eventbrite event categories. It is distinguishable from sibling tools like eventbrite_search_events and eventbrite_get_event, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The agent must infer usage 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.
eventbrite_search_eventsCRead-onlyIdempotent
Search for events on Eventbrite.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| api_key | No | ||
| location_address | No | ||
| start_date_range_start | No |
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 fully covered without the description. The description adds nothing on top of that: it does not mention the API-key/auth requirement, result limits, pagination, or rate limiting — the kind of context that would actually earn credit here.
Agents need to know what a tool does to the 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 short, front-loaded sentence with zero redundancy, so nothing needs cutting. But the terseness is under-specification rather than efficiency; there is only one clause of substantive content for a four-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 0% parameter coverage, and no annotations about return shape, the description carries the full burden and does not meet it. An agent knows it searches Eventbrite, but not what a result contains, whether a credential is required, or how dates and locations must be formatted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all four parameters (q, api_key, location_address, start_date_range_start) are undocumented in both schema and description. The word 'search' weakly implies a query string, but nothing explains the date-range parameter's format (ISO? YYYY-MM-DD?), what location_address accepts, or that api_key is a credential — a substantial gap the description fails to compensate 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?
States a specific verb+resource combination ('Search for events') scoped to Eventbrite, which cleanly separates it from the same-named siblings (eventbrite_get_event, eventbrite_create_event, eventbrite_get_venue) that use a different verb. However, it does nothing to distinguish it from other event-search tools in the catalog such as seatgeek_search_events, tm_search_events, or yelp_search_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of when to prefer this over the SeatGeek or Ticketmaster search siblings, and no stated prerequisites despite an api_key parameter implying authentication is required. The agent must infer everything about applicability from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evil_insult_randomARead-onlyIdempotent
Get a random insult (for entertainment only).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language code (default: en). Supports en, es, de, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, non-destructive, open-world operation. The description adds only the entertainment-only caution and does not expand on content tone, possible offensiveness, or return behavior beyond what the annotations and schema 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 a single, front-loaded sentence with zero wasted text. It immediately states the action and adds only a brief usage 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 simple random-content tool with rich annotations and fully documented schema, the definition is nearly complete. It could optionally mention that insults may be offensive or that language support is available, but the essential call 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 input schema has 100% description coverage for the single optional lang parameter, including its default and supported language codes. The tool description does not mention language behavior at all, so the schema is doing the parameter documentation work and 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 a random insult." This clearly identifies the tool's function, but it does not differentiate from similar sibling tools such as joke_random, dadjoke_random, or chuck_random.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical "for entertainment only" gives a usage context, implying this is not for serious or professional use. However, it does not explicitly say when to choose this over sibling random-content tools or when to avoid it beyond the entertainment caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exchangerate_codesARead-onlyIdempotent
List all supported currency codes and their names. Requires an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ExchangeRate-API key (required) |
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 the authentication requirement, which is useful behavioral context. It does not describe rate limits, response format, or pagination, so it provides only moderate additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted language. The primary purpose is front-loaded, and the API key requirement follows 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 read-only listing tool with complete schema coverage and no output schema, the description states what is returned and notes the authentication requirement. It is nearly complete, though it could mention whether the result is a full list or paginated.
Complex tools with many parameters or behaviors need more documentation. 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, api_key, and schema description coverage is 100%, so the schema already documents its purpose. The description repeats that an API key is required but adds no syntax or format details beyond the schema. Baseline 3 is appropriate when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: it lists supported currency codes and their names. This distinguishes it from sibling tools that fetch latest rates, convert currencies, or retrieve historical rates. It does not explicitly name those siblings, 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 should be used when you need the list of supported currency codes, but it does not state when to prefer it over alternatives such as exchangerate_latest or frankfurter_currencies. There are no explicit exclusions or usage conditions beyond the API key requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exchangerate_convertCRead-onlyIdempotent
Convert an amount from one currency to another.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target currency code (e.g. EUR) | |
| from | Yes | Source currency code (e.g. USD) | |
| amount | No | Amount to convert (default 1) | |
| api_key | No | Optional for conversion (uses latest rates if omitted) |
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 no further behavioral context, such as rate source, freshness, or auth implications, so it contributes little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. Its brevity is efficient, though it borders on under-specification rather than ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four-parameter conversion tool with full schema coverage and annotations, the description is adequate but incomplete. It does not clarify the source of exchange rates, freshness, or behavior when api_key is omitted beyond what the schema already says.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 meaning beyond that, which is acceptable at 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 states a clear verb and resource: converting an amount between currencies. It does not distinguish this tool from sibling converters such as frankfurter_convert or forex_convert, 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?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no exclusions. An agent must infer usage purely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exchangerate_historicalA
Get historical exchange rates for a specific date. Requires an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | Day number (1-31) | |
| base | No | Base currency code (default USD) | |
| year | Yes | 4-digit year | |
| month | Yes | Month number (1-12) | |
| api_key | No | ExchangeRate-API key (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that an API key is required, which is a critical behavioral trait. However, it does not mention other traits like rate limits, error handling for invalid dates, or that it is a read-only operation (though implied). The disclosure is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences), front-loaded with the purpose first, and every sentence earns its place. No extraneous 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 and no annotations, the description is insufficiently complete. It does not explain the returned data format, valid date ranges, or the role of the optional 'base' parameter (though the schema states default USD). For a tool with 5 parameters and no output schema, the description should provide more 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 has 100% coverage with descriptions for all 5 parameters. The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get historical exchange rates for a specific date.' This distinguishes it from sibling tools like exchangerate_latest (current rates) and exchangerate_convert (conversion). The verb 'get' and resource 'historical exchange rates' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool should be used when historical rates for a past date are needed, but it does not explicitly exclude other use cases or mention alternatives (e.g., 'use exchangerate_latest for current rates'). The context is clear but lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exchangerate_latestARead-onlyIdempotent
Get latest currency exchange rates for a base currency. Works without API key using the free tier.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency code (default USD) | |
| api_key | No | ExchangeRate-API key (or set EXCHANGERATE_API_KEY). Optional for latest rates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior, and the description adds the one thing they cannot: authentication/cost context, namely that the free tier needs no API key and a key is optional. It stops short of describing rate source, refresh cadence, or coverage of currencies.
Agents need to know what a tool does to the 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 the core action front-loaded and no filler. The second sentence is genuinely load-bearing (auth/cost), though the definition is thin enough that it could have afforded one more clause on return shape.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-optional-param read tool with annotations and full schema coverage, the essentials are present. What is missing is any indication of what the response contains (rate map vs. metadata) and the expected update frequency, which matters because 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 description coverage is 100%, with both 'base' (default USD) and 'api_key' documented inline, so the schema does the heavy lifting. The description adds only the indirect hint that api_key is optional; it gives no format or default 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 verb and resource: retrieve the latest exchange rates for a given base currency. The purpose is unambiguous, but the description never distinguishes it from the many rate-fetching siblings (exchangerate_historical, exchangerate_convert, er_latest_rates, frankfurter_latest, forex_latest, currency_api_rates), so an agent gets no help choosing among 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?
Mentions that it works without an API key on the free tier, which hints at a usable default, but there is no explicit when-to-use/when-not-to-use guidance or pointer to a sibling for historical or conversion needs. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excuser_randomARead-onlyIdempotent
Get a random excuse, optionally by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category: family, office, college, party, or unspecified |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that output is random and category-filterable, but does not explain return format or any behavioral nuances 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?
A single, front-loaded sentence with no wasted words. It delivers the core action and the only option immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 randomized retrieval tool with full schema coverage and rich annotations, the description is nearly sufficient. It could mention that no category returns any excuse, but that is minor given the simplicity and structured hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 optional 'category' parameter is fully documented in the schema, including allowed values. The description only restates that category is optional, adding no meaningful 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 states a specific verb and resource: 'Get a random excuse', and notes the optional category filter. It is clear what the tool returns, though it does not distinguish itself from the many other random-generation 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 phrase 'optionally by category' implies how to narrow results, but there is no explicit guidance on when to use this tool versus alternatives or when not to use it. Usage is only lightly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exponential_growthB
Model exponential growth or decay: final = initial * e^(rate*time). Includes doubling time or half-life.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Growth rate (positive=growth, negative=decay). | |
| time | Yes | Time elapsed. | |
| initial | Yes | Initial value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full disclosure burden. It usefully reveals that the tool is a deterministic formula computation and hints at extra outputs (doubling time / half-life), but it never says what the response actually contains or how the two modes are selected, leaving real behavioral ambiguity.
Agents need to know what a tool does to the 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 the core operation front-loaded. The trailing 'Includes doubling time or half-life' is slightly ambiguous about whether those are outputs or options, but it is short and wastes little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should clarify the return value, and it only gestures at 'final' plus an unclear mention of doubling time/half-life. For a simple pure calculator this is borderline adequate, but the return contract remains fuzzy.
Complex tools with many parameters or behaviors need more documentation. Simple 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 documents all three parameters including the sign convention for rate. The description only restates the formula, adding no syntax, units, or format detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific operation (model exponential growth/decay) and an explicit formula tying inputs to output, so an agent knows exactly what is computed. It does not, however, distinguish itself from numeric siblings like calc_compound_interest or geometric_series, 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?
There is no statement of when to use this tool versus alternatives, and no conditions or exclusions. The formula implies the use case, but routing guidance is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extended_gcdB
Compute the extended GCD of two integers, returning Bezout coefficients and optionally the modular inverse.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First integer | |
| b | Yes | Second integer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the return content (Bezout coefficients, modular inverse), which is the key trait for a pure math function, but it omits any note on failure cases (e.g., no inverse exists when gcd(a,b) != 1) or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the operation and ends with the return values. No padding or redundancy, though it could be split for clarity around the optional inverse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 cover return values, and it does so briefly. However, it promises an optional modular inverse while the input schema exposes only required a and b with no controlling option, leaving the agent unsure how that return is triggered.
Complex tools with many parameters or behaviors need more documentation. Simple 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 ('First integer', 'Second integer') documented in the schema, so the baseline of 3 applies. The description adds no constraints or semantics for a and b beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compute') and resource ('extended GCD of two integers') and enumerates the returns ('Bezout coefficients and optionally the modular inverse'). It is distinguishable from siblings like gcd_calculate and gcd_lcm_calc, though it never explicitly contrasts itself with 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?
There is no guidance on when to prefer this over gcd_calculate, modular_arithmetic, or chinese_remainder, nor any stated preconditions for use. The reader must infer the use case entirely from the term 'extended GCD'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_car_dataC
Get Formula 1 car telemetry data from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| session_key | Yes | ||
| driver_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits like read-only status, rate limits, or data freshness. The verb 'Get' implies a read operation, but this is not explicit. The description carries the full burden for behavioral transparency but fails to provide meaningful 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 sentence with no extraneous content, making it efficient. However, its brevity comes at the cost of completeness, as it omits essential details about usage and parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two required parameters, no output schema, no annotations, and many sibling F1 tools, the description is insufficient for an agent to use the tool effectively. It fails to explain what the returned telemetry contains or how to construct a valid 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?
With 0% schema description coverage, the description must compensate but does not. The parameters 'session_key' and 'driver_number' are not explained, despite being required. The description adds no meaning beyond what the schema's types (number) reveal, leaving agents to guess their 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 'Get Formula 1 car telemetry data from OpenF1,' which clearly identifies the tool's purpose as retrieving telemetry data. However, it does not specify what telemetry fields are included (e.g., speed, throttle), limiting clarity compared to more detailed alternatives. It distinguishes from siblings like f1_laps or f1_positions by explicitly mentioning 'car telemetry 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?
No guidance is provided on when to use this tool versus other F1 tools such as f1_laps, f1_pit_stops, or f1_weather. The description lacks any context for selection or exclusion, leaving the agent to infer usage solely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_driversC
Get Formula 1 driver info from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| session_key | No | ||
| driver_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It fails to disclose rate limits, required authentication, data freshness, or the effect of omitting parameters. The only hint is the data source 'OpenF1', but this is insufficient for safe use.
Agents need to know what a tool does to the world before calling 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, achieving conciseness. However, the sentence is vague and does not efficiently convey essential details. It is front-loaded with the action but lacks substance in terms of scope and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 optional parameters, no output schema, and many sibling F1 tools, the description is incomplete. It does not clarify what 'driver info' entails, how to filter, or what the return format is, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameter names and types are documented but their meaning is not. The description adds no explanation of `session_key` or `driver_number` (e.g., whether they are filters or identifiers). This forces the agent to guess parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'driver info' from 'OpenF1', indicating a retrieval operation. However, it does not differentiate from sibling F1 tools like f1_sessions or f1_car_data, missing an opportunity to specify exactly what driver information is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives such as f1_sessions or f1_laps. The description does not mention context or exclusions, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_lapsC
Get Formula 1 lap data from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| lap_number | No | ||
| session_key | Yes | ||
| driver_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states the basic purpose. It fails to disclose any behavioral traits such as read-only nature, data source freshness, error handling, or required authentication, leaving the agent with minimal 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 extremely short (6 words), which is concise but sacrifices necessary detail. It is front-loaded with the action, but the brevity leaves out parameter context, making it less useful overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three parameters and lack of output schema, the description is incomplete. It does not clarify what data is returned, how parameters relate, or how this tool differs from siblings, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, and the description does not explain any parameter. The meanings of 'session_key', 'driver_number', and 'lap_number' are left entirely to the agent to infer from names, which is insufficient 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 clearly states 'Get Formula 1 lap data', using a specific verb and resource. It implicitly distinguishes from sibling tools like f1_car_data or f1_drivers by focusing on 'lap data', though it could be more precise about the type of lap 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?
No guidance is provided on when to use this tool versus other F1 data tools (e.g., f1_sessions, f1_positions). The description lacks context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_pit_stopsC
Get Formula 1 pit stop data from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| session_key | Yes | ||
| driver_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the behavioral burden. It only states data retrieval, without disclosing response format, authentication needs, rate limits, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but overly brief. It front-loads the action but lacks structure or additional clarifying 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?
Given the absence of output schema and annotations, and the presence of many sibling F1 tools, the description is too sparse. It does not inform the agent about expected return data, parameter usage, or the tool's role within the ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain what 'session_key' or 'driver_number' mean, how to obtain them, or that driver_number is optional. No value added beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'pit stop data' from 'OpenF1'. It distinguishes from sibling F1 tools by specifying pit stops, but lacks explicit differentiation from similar data retrieval tools like f1_laps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like f1_laps or f1_car_data. The description does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_positionsC
Get Formula 1 position data from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| session_key | Yes | ||
| driver_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior, but it only states 'get data'. It does not disclose mutation, data freshness, error handling, or side effects. The agent cannot infer safety or reliability from this minimal text.
Agents need to know what a tool does to the world before calling 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 short sentence, efficiently front-loaded with the action verb. However, it is under-specified for the tool's complexity, sacrificing completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and the presence of multiple F1 siblings, the description fails to specify what data is returned or how to interpret results. The agent cannot assess if this tool meets its needs without additional 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 coverage is 0% and the description does not explain what 'session_key' or 'driver_number' represent. The parameter names offer weak hints, but no meaning is added beyond the schema's bare structure, failing to clarify how to query position 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 uses a specific verb 'Get' and resource 'Formula 1 position data', clearly indicating data retrieval. However, it does not distinguish from sibling F1 tools like f1_laps or f1_drivers, leaving ambiguity about what 'position data' entails (e.g., driver standings, track positions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, no prerequisites, and no exclusions. The AI agent receives no context to choose it over sibling tools for specific F1 data needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_sessionsCRead-onlyIdempotent
Get Formula 1 sessions from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| country_name | No | ||
| session_type | No |
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 only 'from OpenF1' (the data source); it says nothing about result volume, ordering, pagination, or how filters combine, which is the context a list endpoint would benefit from.
Agents need to know what a tool does to the 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 short sentence with no filler, which is structurally sound but reflects under-specification rather than economy. Nothing is front-loaded beyond the bare purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter list tool with no output schema and no parameter descriptions, the description does not supply the missing detail. There is no indication of return shape, whether sessions span multiple years by default, or how empty results behave.
Complex tools with many parameters or behaviors need more documentation. 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 (year, country_name, session_type) have 0% schema description coverage and the description explains none of them. Whether year is required, the accepted format of session_type, or how country_name matches (exact vs fuzzy) is entirely undocumented, forcing the agent to guess valid 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?
States a verb and resource ('Get Formula 1 sessions') and names the upstream source (OpenF1), so the basic intent is inferable. But it never defines what a 'session' is (race, qualifying, practice) or distinguishes this from sibling F1 tools like f1_laps or f1_drivers, leaving scope vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus siblings such as f1_drivers, f1_positions, or f1_laps, and no mention of prerequisites or typical usage patterns. An agent can only guess that this is a top-level list of sessions to seed other queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_team_radioC
Get Formula 1 team radio messages from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| session_key | Yes | ||
| driver_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description bears full responsibility for behavioral disclosure. It only states that the tool retrieves messages, with no mention of read-only nature, authentication, rate limits, data freshness, or response characteristics. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling 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 with no superfluous words. However, its brevity borders on under-specification, but given the tool's simplicity, it is appropriately 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?
Despite the tool having only two parameters and no output schema, the description lacks essential context such as the structure of the returned data, any time or session constraints, and how this tool fits among the F1 siblings. More context would improve the agent's ability to use 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 has 0% description coverage, meaning the schema itself provides no explanations for parameters. The description adds no additional meaning to 'session_key' or 'driver_number', failing to clarify their purpose (e.g., what a session key represents or how to obtain a driver number).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 that the tool retrieves Formula 1 team radio messages from the OpenF1 data source, using a specific verb ('Get') and resource ('team radio messages'). This distinguishes it from sibling F1 tools that retrieve other data types (e.g., car data, drivers, laps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus the many sibling F1 tools (e.g., f1_car_data, f1_weather). The description does not mention prerequisites, typical use cases, or alternative tools, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
f1_weatherC
Get Formula 1 weather data from OpenF1.
| Name | Required | Description | Default |
|---|---|---|---|
| session_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks behavioral context such as side effects, data freshness, or limitations. It only states the basic function; does not disclose that it is a read-only operation or any other traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single short sentence, which is concise but overly minimal. It lacks structure and additional details that could aid 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 data retrieval tool with one parameter and no output schema, the description is incomplete. It does not specify the return format, possible values, or any dependency on other tools, leaving the agent to infer missing 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 has 0% description coverage for the required 'session_key' parameter. Description adds no explanation about what a session_key is or how to obtain it, which is crucial 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?
Description clearly states the verb 'Get', the resource 'Formula 1 weather data', and the source 'OpenF1'. Among many F1 sibling tools, this distinguishes itself as the weather-specific 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?
No guidance on when to use or when not to use this tool. No mention of alternatives or prerequisites like obtaining a session_key from another F1 tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faker_companiesB
Generate fake company data for testing.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Locale code (default: en_US). | |
| quantity | No | Number of companies (max 100, default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the one-line purpose. It does not state whether output is random/non-deterministic, whether it is safe and side-effect free, or what a returned company record looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. Nothing redundant or 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?
The tool is simple with only two fully documented optional params, but with no output schema the description should ideally hint at the shape of the generated company data and its randomness. It is adequate but leaves the return contract to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 locale and quantity fully documented in the schema. The description adds no parameter meaning beyond that, 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?
States a specific verb+resource ('Generate fake company data') and adds use-case intent ('for testing'). It implicitly differs from siblings like faker_persons and faker_texts via the 'company' resource, but does not explicitly differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for testing' implies the context of use, but there is no explicit guidance on when to choose this over faker_persons, faker_texts, or lorem generators, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faker_personsB
Generate fake person data (name, email, phone, address) for testing.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Locale code (default: en_US). | |
| quantity | No | Number of persons (max 100, default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It says what is generated but does not clarify randomness, side effects, safety, or return structure beyond a brief field list.
Agents need to know what a tool does to the 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 states the action, output fields, and testing context. 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 generator with fully documented inputs and no output schema, the description is mostly complete because it lists the generated fields. It could say more about the return shape, but the core 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?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no parameter-level meaning beyond what the input schema provides, making the baseline score 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: 'Generate fake person data,' and lists representative fields. It is clearly a person-data generator, though it does not explicitly distinguish itself from all similar 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?
'For testing' gives an implied usage context, but there is no guidance on when to choose this over alternatives or when not to use it. The intended testing scenario is present but underdeveloped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faker_textsC
Generate fake text/article data for testing.
| Name | Required | Description | Default |
|---|---|---|---|
| quantity | No | Number of texts (max 100, default 3). | |
| characters | No | Approx characters per text (default 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether the output is lorem-style or natural-language, whether it is deterministic, or what the return shape is (e.g. an array of strings). Only the minimal 'fake text' behavior is conveyed.
Agents need to know what a tool does to the 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 with no wasted words. It is efficient, though arguably too terse to carry the behavioral load that the absent annotations leave to 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 generator with full schema coverage but no output schema and no annotations, the description is minimally viable but omits output format and any indication of what the generated text looks like. Adequate, not 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%, with both parameters documented (quantity max/default, characters default), so the baseline of 3 applies. The description adds nothing beyond the schema about parameter meaning or interaction.
Input schemas describe structure but not intent. Descriptions should explain 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 verb (Generate) and resource (fake text/article data) with a stated purpose (for testing). It is distinguishable from siblings like faker_companies and faker_persons by resource type, though it does not explicitly name a sibling to contrast against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, no exclusions, and does not mention alternatives such as lorem_generate or random_lorem_ipsum, which occupy the same 'synthetic text' space. An agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fakestore_categoriesB
List all fake store product categories.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a flat, unfiltered read ("all") but says nothing about return shape, whether results are static, or rate limits. For a trivial zero-arg read there is little to disclose, but the description still adds nothing beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is appropriately sized for a zero-argument list tool, though it is arguably too terse to be maximally helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero-param list endpoint with no annotations and no output schema, the description covers the essential behavior. The only real gap is that it does not describe the shape of a returned category, which an agent might want when composing follow-up calls.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters ({} with additionalProperties false), so the baseline for parameter semantics is 4. There is no parameter information the description could add or omit.
Input schemas describe structure but not intent. Descriptions should explain 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 (fake store product categories), which is unambiguous and distinct from siblings fakestore_products and fakestore_product. It does not, however, explicitly contrast itself with those siblings, so it is clear but without named 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?
No guidance on when to choose this tool versus fakestore_products, nor any mention of how the returned categories are meant to be used (e.g., as filters). Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fakestore_productB
Get a single fake product by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID (1-20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it doesn't say what happens for an out-of-range or nonexistent ID, whether the result is cached, or what the response contains. 'Get' implies a safe read, but that is inference rather than 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?
A single short sentence with the verb and resource front-loaded and zero filler. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial single-item lookup this is minimally adequate, but with no output schema and no annotations the description could reasonably describe the shape of the returned product or the failure behavior for an invalid ID. It leaves those gaps unfilled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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's valid range (1-20) is already documented in the schema. The description adds no syntax, format, or constraint information 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?
States a specific verb ('Get') and resource ('a single fake product by ID'), so the operation is unambiguous. It does not name or contrast with the obvious sibling fakestore_products (the collection variant), so sibling differentiation is left to inference from 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?
Usage is only implied: the phrase 'by ID' signals a lookup-style call rather than a browse/search. There is no explicit guidance on when to use this versus fakestore_products or the many other product tools (dummyjson_products, amazon_product), and no preconditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fakestore_productsBRead-onlyIdempotent
List fake e-commerce products (for testing and prototyping).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max products (default 10). |
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 the useful fact that the product data is fake/test data rather than real commerce data, but says nothing about ordering, pagination, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with a scope qualifier; no wasted words. It is arguably too terse 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?
For a read-only one-param list tool with rich annotations and no output schema, this is mostly sufficient. A stronger definition would say what a product record contains or that the dataset is static and small, but nothing critical to 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 single optional 'limit' parameter is fully documented in the schema (100% coverage) with its default of 10, so the description carries no extra burden. The description adds nothing beyond the schema, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'List' + 'fake e-commerce products,' and the parenthetical signals the dataset's nature. It is distinguishable from fakestore_product (single item detail) and fakestore_categories by the plural 'products', though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for testing and prototyping' implies when it is appropriate, but there is no explicit guidance about when to prefer dummyjson_products or fakestore_product, and no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feedly_actionD
Perform a Feedly action: get_feedly_feeds, get_feedly_streams, search_feedly, get_feedly_categories, mark_as_read.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| query | No | ||
| action | Yes | ||
| api_key | No | ||
| entry_ids | No | ||
| stream_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It does not mention whether actions are destructive, authentication requirements (though api_key parameter hints), rate limits, or return behavior. This is a critical gap for a tool with multiple actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence), which is concise but at the expense of essential information. It is not well-structured; it simply lists actions. Overly brief descriptions that omit critical details are not considered effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no schema descriptions, no annotations, and no output schema, the description is severely incomplete. It fails to provide context on how the tool works, parameter relationships, or expected results, making it nearly unusable without external knowledge.
Complex tools with many parameters or behaviors need more documentation. 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 has 0% description coverage, and the description adds almost no parameter meaning. It indirectly lists possible action values but does not explain api_key, stream_id, query, count, entry_ids. The agent cannot understand how to use parameters from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it performs Feedly actions and lists five specific actions, giving some clarity. However, it does not explain the overall purpose or what Feedly is, and the verb 'Perform' is vague. It is minimally adequate to distinguish from sibling tools, but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention any prerequisites, context, or exclusions. The agent is left to infer, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fenwick_2dB
2D Fenwick tree for point updates and rectangle sum queries.
| Name | Required | Description | Default |
|---|---|---|---|
| cols | Yes | Number of columns | |
| rows | Yes | Number of rows | |
| operations | Yes | Array of {type, row, col, row2?, col2?, value?} operations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral burden. It doesn't mention that the tree is built from an initial grid (if any), whether updates/queries are interleaved via operations array, the order of operations, or performance characteristics. The reference to 'operations' hints at a batch interface but leaves details 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?
A single, well-structured sentence that is completely front-loaded and contains no wasted words. It efficiently conveys the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and there are no annotations, so the description should ideally explain what the operations array contains and how results are returned. It provides the essential concept but omits these details, making it minimally adequate for a 3-parameter tool with 100% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 itself documents rows, cols, and operations with fairly detailed descriptions. The tool description adds little beyond the schema; it implicitly references the operations parameter but doesn't elaborate on the operation types or format. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific data structure (2D Fenwick tree) and the supported operations (point updates, rectangle sum queries), which is more informative than the bare name. It doesn't distinguish this from siblings like fenwick_tree or fenwick_range, but it effectively conveys 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?
No guidance on when to use this versus other Fenwick tools (fenwick_tree, fenwick_range) or other computational geometry/data structure tools. The description only restates the algorithmic capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fenwick_rangeC
Fenwick tree with range update and range query support using two BITs.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Initial array values | |
| operations | Yes | Array of {type, left, right, value?} operations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It notes the implementation uses two BITs but says nothing about output shape (does it return the final array, a list of query results, or nothing?), complexity, or constraints on the operation list — the details an agent actually needs for a computation 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?
A single front-loaded sentence with no filler; every clause carries information. It is arguably too terse for the amount of undocumented behavior, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description is the only source of behavioral detail, and it omits what the tool returns and how operations are encoded. For a two-parameter algorithmic utility whose whole contract lives in the operation format, that leaves a meaningful 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 nominally 100%, so the baseline is 3, and the description does add the context that operations span range-update as well as range-query semantics. However, the schema's `operations` entry only says '{type, left, right, value?} operations' without enumerating the accepted `type` tokens, and the description does not supply them either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 concrete data structure and states its capability precisely: a Fenwick tree supporting both range update and range query via two BITs. That is enough to separate it in spirit from fenwick_tree (point update + range query) and fenwick_2d, but it never names those siblings, so the differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of fenwick_tree or fenwick_2d as alternatives, even though three near-identical Fenwick tools exist in the sibling list. The agent must guess which variant applies from the capability phrase alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fenwick_treeC
Build a Fenwick tree (Binary Indexed Tree) from values and run point updates and range sum queries.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Initial array of numbers | |
| operations | No | Operations: {type:'update',index,delta}, {type:'query',left,right}, {type:'point_query',index} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a stateless compute (build then run operations) but says nothing about return format, whether results preserve order relative to operations, error handling for out-of-range indices, or complexity. The operation types are only surfaced via the schema, not the description.
Agents need to know what a tool does to the 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 efficient sentence front-loads the core purpose with zero filler. It is appropriately sized, though the terseness comes at the cost of the routing and output detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description must cover behavior and results, and it only partially does. It covers the build-and-operate model but never states what a query or update returns, which matters most for a computation tool whose output shape is otherwise undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 and the three operation shapes are already documented structurally. The description adds conceptual framing (values -> tree -> update/query) but no extra syntax or semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: builds a Fenwick tree (Binary Indexed Tree) from an input array and runs point updates plus range sum queries. That is unambiguous about what the tool computes. It fails to differentiate from close siblings like fenwick_range and fenwick_2d, which an agent would need to distinguish before choosing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or when-not-to-use guidance at all. Given that fenwick_range and fenwick_2d exist alongside this tool, the absence of any routing advice leaves the agent to guess which variant applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fft_transformB
Fast Fourier Transform (Cooley-Tukey radix-2) with optional inverse.
| Name | Required | Description | Default |
|---|---|---|---|
| signal | Yes | Array of real-valued samples. | |
| inverse | No | Perform inverse FFT (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the algorithm (Cooley-Tukey radix-2), which implies a power-of-two input length, and mentions the inverse option. However, it omits critical behavioral details such as explicit input-length constraints, output format (e.g., complex array), and inverse normalization.
Agents need to know what a tool does to the world before calling 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 wasted words. It efficiently conveys the core operation and the optional inverse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not explain the return format or input constraints. For a mathematical transform, an agent needs to know the expected input length (power of two) and the output representation (complex values), neither of which is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 syntax, format, or semantic details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific mathematical transform, names the algorithm (Cooley-Tukey radix-2), and mentions the optional inverse. It does not explicitly differentiate from related siblings such as ntt, goertzel, or convolution, 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?
There is no guidance on when to use this tool versus alternatives like ntt or goertzel. The only usage-related phrase is 'with optional inverse,' which does not explain the conditions for selecting forward versus inverse mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fibonacci_sequenceA
Generate Fibonacci numbers and optionally check if a number is Fibonacci.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | How many Fibonacci numbers (1-100, default 10). | |
| check | No | Optional number to test if it is a Fibonacci number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It conveys that this is a deterministic computation with an optional membership test, but it never states that it is side-effect free, whether both parameters can be combined, or what the result looks like on failure to find a Fibonacci match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding; the generation capability and the optional test are both conveyed compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 math tool with no output schema and no annotations, the description covers both behaviors adequately. The main remaining ambiguity is how the two parameters combine, which is a minor gap given the schema's clarity.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are already documented in the schema (n as count with 1-100 range and default 10, check as an optional test value). The description adds only the conceptual role of the check parameter, 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 resource (Fibonacci numbers) and two concrete capabilities: generating a sequence and testing membership. No sibling tool in the list overlaps with Fibonacci, so no differentiation is needed, but the dual behavior could be stated more crisply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally check if a number is Fibonacci' implies that the check parameter drives the second mode, but the description never states when to use one mode versus the other or how they interact when both parameters are supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fidelitycopy_copyB
Create a deterministic FidelityCopy receipt for exact copy work. AI may request the copy, but this tool computes source/output hashes and returns PASS only when the selected mode proves exact or approved fidelity.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Verification mode. Defaults to raw_bytes. | |
| output_ref | No | Output pointer used in the receipt. | |
| source_ref | No | Source pointer used in the receipt. | |
| output_text | No | Output text for approved_transform mode. | |
| source_text | No | Exact source text to copy. Mutually exclusive with source_base64. | |
| output_base64 | No | Output bytes for approved_transform mode as base64. | |
| source_base64 | No | Exact source bytes as base64. Mutually exclusive with source_text. | |
| provenance_ref | No | Optional Boardroom, issue, PR, or CopyRoom pointer for audit trail. | |
| allowed_changes | No | Required for approved_transform PASS. | |
| destination_label | No | Human label for the output destination when output_ref is not supplied. | |
| copyroom_source_packet | No | CopyRoom source packet used as the source of truth. Mutually exclusive with source_text/source_base64. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It usefully discloses that the tool is deterministic, computes source/output hashes, and returns PASS only when the selected mode proves fidelity — real behavioral value. But it omits the failure state (FAIL?), whether it persists a receipt as a side effect, and any permission or rate considerations.
Agents need to know what a tool does to the 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 the core action front-loaded and no filler. Slightly domain-jargon-heavy (FidelityCopy, PASS) but economical and appropriately sized for the information given.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with a nested CopyRoom object, no annotations, and no output schema, the description leaves gaps: it does not explain what a receipt contains or how failure is signaled, nor which modes need which inputs. Since no output schema exists, more return-value context would have been expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters, including the mutually exclusive source/output variants and the mode enum, are documented in the schema. The description only refers obliquely to 'the selected mode' and adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (a deterministic FidelityCopy receipt) and clarifies the core behavior of hashing source/output and returning PASS. It distinguishes itself conceptually from generic copy tools by framing itself as a verification receipt generator, though it never names sibling alternatives like fidelitypass_verify_copy or copypass_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing 'AI may request the copy, but this tool computes...' implies the tool is invoked after a copy operation to verify it, giving implied context. However there is no explicit when-to-use/when-not guidance and no reference to the sibling verification tools (fidelitypass_verify_copy, copypass_run/status) that an agent would need to choose between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fidelitypass_verify_copyB
Recompute a FidelityCopy/FidelityPass verdict from source and output bytes, or return N/A when no exact 1:1 copy is in scope. Missing bytes, stale metadata, or prose-only AI proof cannot PASS.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Verification mode. Defaults to raw_bytes or the provided receipt mode. | |
| receipt | No | Optional previous FidelityCopy receipt to compare against recomputed hashes. | |
| copy_scope | No | Explicit FidelityPass scope. Use not_applicable to record the XPass N/A row when no exact copy is in scope. | |
| output_ref | No | Output pointer used in the recomputed receipt. | |
| proof_text | No | Optional prose proof. Prose alone is suppressed, not accepted as PASS. | |
| source_ref | No | Source pointer used in the recomputed receipt. | |
| output_text | No | Exact output text to verify. Mutually exclusive with output_base64. | |
| source_text | No | Exact source text to verify. Mutually exclusive with source_base64. | |
| scope_reason | No | Reason why FidelityPass is N/A for this target. Used only when exact_copy_required=false or copy_scope=not_applicable. | |
| output_base64 | No | Exact output bytes as base64. Mutually exclusive with output_text. | |
| source_base64 | No | Exact source bytes as base64. Mutually exclusive with source_text. | |
| provenance_ref | No | Optional Boardroom, issue, PR, or CopyRoom pointer for audit trail. | |
| allowed_changes | No | Required for approved_transform PASS. | |
| receipt_payload | No | Alias for receipt. | |
| exact_copy_required | No | Set false only when the target has no exact 1:1 copy, transcription, mirroring, or preservation scope. Returns N/A. | |
| copyroom_source_packet | No | CopyRoom source packet used as the source of truth. Mutually exclusive with source_text/source_base64. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that N/A can be returned and that missing bytes, stale metadata, or prose-only AI proof cannot PASS, which is real behavioral context. However, it says nothing about whether recomputation writes a receipt, side effects, auth/scope requirements, or the shape of the verdict 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?
Two tight sentences with no filler; the verdict recomputation and the N/A outcome are front-loaded. Efficient, though the second sentence is a dense caveat list rather than a structured statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with nested objects, no annotations, and no output schema, the description covers the core outcome but leaves the return format (what a verdict/receipt contains) and mutation/auth behavior unaddressed, which an agent would need to act confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 16 parameters (including enums for mode and copy_scope, and the nested copyroom_source_packet) are already documented in the schema. The description adds the raw-bytes intent but no parameter-level meaning beyond it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Recompute') and resource ('FidelityCopy/FidelityPass verdict') with source and output bytes named as inputs. It implicitly distinguishes itself from fidelitycopy_copy (which creates a copy) by being the recompute/verification step, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one when-not condition ('N/A when no exact 1:1 copy is in scope') and a failure caveat about missing bytes/stale metadata/prose-only proof. It stops short of stating when to reach for this tool versus fidelitycopy_copy, copypass_run, or qc_copy_audit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_commentsCRead-onlyIdempotent
Get all comments on a Figma file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | ||
| personal_access_token | No |
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 useful scope detail that it returns ALL comments, implying no filtering or pagination, but says nothing about authentication via personal_access_token or 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?
A single tight sentence with no filler, and the resource is front-loaded. It is efficient but under-informative rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool the annotations cover safety, but with two parameters at 0% schema coverage and no output schema, the description should at least explain file_key and personal_access_token. It leaves authentication and return-value expectations entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters are undocumented in the schema. The description only implies that a Figma file identifier is needed via 'on a Figma file'; it does not explain the file_key format, whether personal_access_token is required or optional, or how authentication works.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get all comments on a Figma file'), making the operation immediately recognizable and easily differentiable from figma_post_comment. It does not explicitly name or contrast with any sibling tool, which keeps it 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?
There is no guidance on when to use this tool versus figma_get_file, figma_get_node, or figma_post_comment, and no mention of required permissions or authentication despite a personal_access_token parameter. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_componentsBRead-onlyIdempotent
Get all published components in a Figma file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | ||
| personal_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that only published components are returned, which is useful scope context. It does not mention authentication requirements, pagination, or result limits, so it is not rich beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It efficiently conveys the action, scope, and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations and no output schema, the description is minimally adequate. However, it leaves the authentication parameter unexplained and does not clarify whether results are paginated or scoped to a particular file version. Those omissions matter for a two-parameter tool with zero schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the two undocumented parameters. It implies that a Figma file is targeted, loosely corresponding to file_key, but never explains personal_access_token or authentication requirements. The parameter semantics are therefore substantially under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all published components in a Figma file.' The 'published' qualifier narrows scope usefully. It does not distinguish this tool from siblings such as figma_get_file or figma_get_node, 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?
There is no guidance on when to use this tool versus alternatives like figma_get_file, figma_get_node, or figma_get_team_projects. The description also omits any prerequisites or context about when published-components listing is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_fileBRead-onlyIdempotent
Get a Figma file's structure and metadata - pages, frames, and component count.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | How deep to traverse the node tree (default: full) | |
| file_key | Yes | Alphanumeric file ID from the Figma URL | |
| personal_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, open-world, non-destructive operation, and the description is consistent with that. The description adds useful content scope (pages, frames, component count) but does not disclose auth requirements, rate limits, or depth traversal behavior 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?
It is a single front-loaded sentence with no filler. The purpose and the main returned artifacts are stated 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?
With no output schema, the description should carry more of the return-value and auth burden. It gives a useful high-level return summary (pages, frames, component count), but it omits credential requirements and does not clarify how depth affects the returned 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?
The description adds no parameter-level meaning beyond the schema. Schema coverage is only 67%, and the undocumented personal_access_token parameter is left completely unexplained in both the schema and the description, so the definition does not compensate for the coverage 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 gives a clear verb and resource: it retrieves a Figma file's structure and metadata, and it enumerates what is included (pages, frames, component count). It does not explicitly distinguish itself from nearby Figma tools such as figma_get_node or figma_get_components, so it falls short of the sibling-differentiation bar for 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 states what the tool does but provides no when-to-use guidance, no exclusions, and no named alternatives. An agent must infer from the purpose alone whether to choose this over figma_get_node or figma_get_components.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_imagesC
Export/render Figma nodes as images (PNG, JPG, SVG, or PDF).
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Image scale factor 0.01-4 (default: 1, PNG/JPG only) | |
| format | No | png, jpg, svg, or pdf (default: png) | |
| file_key | Yes | ||
| node_ids | Yes | Comma-separated node IDs or array of node ID strings | |
| personal_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it does not mention that a personal access token is required, whether the operation is read-only, what happens with invalid node IDs, or whether the result is a URL vs binary data. It only restates the output formats that are already visible in the schema enum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no filler. It is appropriately sized for a short definition, though the space saved is not reinvested in critical operational details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, no annotations, no output schema, and an authentication parameter present, the definition is too thin. It omits token requirements, return shape, and error behavior, leaving the agent underprepared 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 60%, with file_key, node_ids, and personal_access_token undocumented. The description only echoes the format enum already present in the schema and adds no meaning about node ID syntax, token requirements, or scale applicability 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?
States a specific verb+resource ('Export/render Figma nodes as images') and lists supported output formats, so the agent knows exactly what the tool produces. It does not explicitly distinguish itself from nearby siblings such as figma_get_node or figma_get_file, which is the only gap at this level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 export tool versus figma_get_node, figma_get_file, or the comment/component tools. The agent must infer that this is for image rendering, but no conditions, prerequisites, 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.
figma_get_nodeCRead-onlyIdempotent
Get a specific node by ID within a Figma file.
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | Node ID (e.g. '1:2' or '1-2') | |
| file_key | Yes | ||
| personal_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so safety is covered elsewhere. The description adds nothing about authentication requirements (the personal_access_token parameter is unexplained), whether the returned node includes children recursively, or rate/scope limits of the Figma API.
Agents need to know what a tool does to the 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 with no filler. It is efficient but underspecified rather than genuinely concise — nothing is wasted, but not much is delivered either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 third of parameters undocumented, the description carries the remaining explanatory burden and does not discharge it. An agent cannot tell from this what shape the node payload takes, whether children are included, or how auth is 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?
Schema description coverage is 33% — only node_id is documented in the schema. The description does not explain file_key (expects a Figma file key from a URL) or the role of personal_access_token, so two of three parameters remain opaque in both places.
Input schemas describe structure but not intent. Descriptions should explain 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') plus resource ('a specific node by ID') and scope ('within a Figma file'). An agent can distinguish it from figma_get_file and figma_get_images by the word 'node', but the description never names those siblings or contrasts the use case 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?
No guidance on when to reach for this rather than figma_get_file, figma_get_images, or figma_get_components. The only implied usage is 'you already have a node ID', which is restated by the required parameter list, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_get_team_projectsCRead-onlyIdempotent
List all projects for a Figma team.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | Yes | Team ID from your Figma team URL | |
| personal_access_token | No |
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 fully covered. The description adds nothing beyond that — no pagination behavior, no auth/scope requirements, no hint about what a project object contains or what an empty result means.
Agents need to know what a tool does to the 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 with zero filler. It is efficiently structured, though the brevity comes at the cost of omitting useful detail rather than being tightly complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema and no nested objects, the annotations cover safety, but the description still omits the undocumented auth parameter and any notion of return shape or pagination. An agent could call it, but not confidently for a team with many projects.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%: team_id is documented in the schema, but personal_access_token has no description anywhere and the description does not compensate by explaining that it is the auth credential. With half the parameters undocumented, the description leaves a real 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 states a specific verb and resource ('List all projects for a Figma team'), making the operation unambiguous. It does not differentiate from Figma siblings such as figma_get_file or figma_get_components, so an agent must infer from names alone which one returns projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus other Figma tools, no prerequisites, and no mention that a team_id must come from the team URL path rather than a file or node ID. The agent gets a purpose but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
figma_post_commentC
Add a comment to a Figma file, optionally pinned to canvas coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Canvas X coordinate to pin the comment | |
| y | No | Canvas Y coordinate to pin the comment | |
| message | Yes | ||
| file_key | Yes | ||
| personal_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It says 'add' (a mutation), but never discloses that authentication is required via the personal_access_token parameter, what permissions the token needs, whether the comment notifies collaborators, or what the response contains.
Agents need to know what a tool does to the 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 with no filler, and the optional coordinate behavior is stated compactly. It is efficient, though the brevity comes at the cost of the missing behavioral detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, the description does too little. It omits the auth token requirement, permission scope, and any indication of what a successful call returns (e.g., a comment ID or thread reference).
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 40% (x and y are documented; message, file_key and personal_access_token are not). The description adds meaning for the coordinate pair by framing x/y as an optional pinning mechanism, but it leaves the authentication parameter completely unexplained — a significant gap for a tool that will fail without 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?
States a specific verb (add) and resource (comment) scoped to a Figma file, plus the optional pinning behavior. An agent can distinguish this from figma_get_comments, though the description never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is the write counterpart to the reading tools like figma_get_comments. However, the description gives no explicit when-to-use guidance, no mention of prerequisites such as file access level, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_sync_listList the sync manifest for a projectA
List the files stored for a project with their content hash, size, and version. This is the diff surface: compare your local file hashes against content_hash.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project to list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It implies a read-only operation and discloses returned fields, but does not mention permissions, pagination, ordering, or whether deleted files are included—details that would be valuable for a sync manifest 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?
Two tightly written sentences with zero waste. The purpose is front-loaded, followed by the key usage hint, making it easy to scan 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 one-parameter list tool with no output schema, the description adequately covers purpose, returned fields, and usage context. It omits pagination and ordering behavior, which are minor gaps for a simple manifest listing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 single parameter ('project') is fully documented in the schema. The description reinforces that it applies to a project but adds no syntax, format, or constraint details beyond what the schema already provides, matching the baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('files stored for a project') along with the exact fields returned (content hash, size, version). The phrase 'This is the diff surface' distinguishes it from sibling tools like file_sync_pull, file_sync_prune, and file_sync_put by clarifying its 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 sentence 'This is the diff surface: compare your local file hashes against content_hash' gives a clear condition for when to use the tool. However, it does not explicitly name alternatives (e.g., file_sync_pull) or state when not to use it, leaving some 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.
file_sync_prunePrune expired files from the sync storeA
Delete this account's files (rows and their bytes) that are past their retention horizon.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety burden. It usefully discloses what is destroyed (rows and their bytes) and what is protected (only files past retention horizon), but omits permissions required, reversibility, idempotency, and rate limits for a destructive 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?
A single front-loaded sentence that names the action, the target, and the scope constraint 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 destructive, annotation-free, zero-parameter tool the description does reasonably well by bounding scope, but it lacks confirmation/irreversibility warnings and any hint of what the call returns or whether it is safe to repeat.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies the operation is parameterless and account-scoped rather than inviting spurious 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?
States a specific verb (delete/prune) and resource (this account's files, rows and their bytes) with a clear scope qualifier (past their retention horizon). The destructive scope inherently distinguishes it from siblings like file_sync_list and file_sync_pull, though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The retention-horizon phrasing implies when to use it (cleaning up expired data), but there is no explicit when/when-not guidance, no mention of prerequisites such as authentication or an account context, and no statement of whether it runs automatically or on demand.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_sync_pullGet signed download URLs for stored filesA
Return short-lived (5 min) signed download URLs for the requested files (or all files in the project). URLs fetch the exact stored bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | No | Optional: specific paths. Omit for all. | |
| project | Yes | Project to pull from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does real work: it discloses that URLs are short-lived (5 min) and that they return the exact stored bytes (no transformation). It omits permission/auth requirements and behavior for nonexistent paths, but the core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the return type and expiry front-loaded; 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 tool with full schema coverage and no output schema, the description covers what is returned, how long it is valid, and scope. A note on permissions or missing-path behavior would make it 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 both parameters are already documented, including 'Omit for all' for paths. The description restates the omit-for-all behavior without adding format or validation detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return ... signed download URLs for the requested files') plus scope ('or all files in the project'). It is clearly distinguishable from file_sync_list and file_sync_put by the nature of the output, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(or all files in the project)' implies when to omit paths, giving implicit usage context. However, there is no explicit guidance on prerequisites, such as needing to call file_sync_list first to discover valid paths, and no statement of when to prefer another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_sync_putStore a file in the account sync storeB
Write one file's bytes into your account's private file-sync store (a Storage bucket, scoped to your account). content is base64; the server computes the content hash and size. Overwrites on repeat.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Repo-relative file path within the project. | |
| content | Yes | The file's bytes, base64-encoded. | |
| project | Yes | Project grouping (a single name segment). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose several non-obvious traits: the store is account-scoped/private, content must be base64, the server derives hash and size, and repeat writes overwrite. It does not cover size limits, permission/auth requirements, directory creation, or what is returned after the write.
Agents need to know what a tool does to the 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, front-loaded with the core action, then encoding, then the overwrite caveat. Every sentence carries information an agent would not get from the name or schema alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 3-parameter write tool with no annotations and no output schema, the description covers scope, encoding, derived values, and idempotent-overwrite behavior. It still leaves gaps around failure modes, size limits, and how this write relates to file_sync_pull/list/prune, which matters given those 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 baseline is 3. The description restates that content is base64 (already in the schema) and adds that hash/size are server-computed rather than supplied, but it adds nothing about project or path 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?
States a specific verb and resource: writing one file's bytes into the account's private file-sync store, and adds scope detail (account-private Storage bucket). It implies the write path among the file_sync_* siblings (list/pull/prune) but never names them, so differentiation is by inference rather than explicit statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not guidance, and no mention of file_sync_pull/list as alternatives for reading or checking existing files. The only usage-relevant cue is 'Overwrites on repeat', which is a behavioral fact rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
final_space_charactersBRead-onlyIdempotent
List all Final Space characters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no statement about result size, ordering, pagination, or what a character record contains.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with zero filler. It is terse to the point of telling the agent nothing extra, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read-only list tool this covers the essentials, but with no output schema the description could say something about the returned records (fields, count, pagination) or how it relates to final_space_episodes. Adequate but with a clear 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 tool takes no parameters at all, so there is nothing for the description to disambiguate. Baseline 4 applies for a zero-parameter 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 (List) and resource (Final Space characters), so an agent immediately knows the operation and domain. It does not differentiate itself from the sibling final_space_episodes, but the differing resource makes the split largely self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance, and no mention of the final_space_episodes sibling. With zero parameters and a single obvious purpose, the intended use is strongly implied, which is the minimum-viable level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
final_space_episodesBRead-onlyIdempotent
List all Final Space episodes.
| 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, so safety behavior is covered. The description adds only that all episodes are listed, with no detail on pagination, ordering, authentication, or result completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no wasted words. For a parameterless list tool, this is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 sufficient to understand the basic operation, and annotations cover safety traits. However, with no output schema and no explanation of return shape, ordering, or whether all seasons are included, an agent still lacks some context about what 'all episodes' actually yields.
Complex tools with many parameters or behaviors need more documentation. 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 are no parameter semantics to explain. The baseline for a parameterless tool is 4; the description does not need to document 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 states a specific verb and resource: list Final Space episodes. It is clear what the tool returns at a high level, though it does not explicitly distinguish itself from the sibling final_space_characters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies the tool is used to retrieve episodes, but gives no explicit when-to-use guidance, alternatives, or exclusions. There is no indication of whether it should be used instead of a character-related tool or any search/detail tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nearest_toiletsBRead-onlyIdempotent
Find the nearest public toilets to a location (Australia).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| radius | No | Search radius in metres | |
| latitude | Yes | ||
| longitude | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds useful context that results are limited to Australian public toilets, but says nothing about return format, result limits, default radius, or coverage gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It is concise and readable, though its brevity contributes to gaps in parameter and behavioral detail elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations, the description supplies the key geographic scope and search intent. However, with 4 parameters at 25% schema coverage and no output schema, the missing detail on limit, radius defaults, and result shape leaves it only minimally 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 only 25%, with radius documented as metres but latitude, longitude, and limit undocumented. The description's vague phrase "to a location" does not compensate by explaining coordinate format, limit behavior, or radius semantics, so 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 uses a specific verb ("Find") and resource ("nearest public toilets") with a clear geographic scope ("Australia"). It does not explicitly distinguish itself from the sibling get_toilet_details, though "nearest" implicitly signals a proximity search rather than 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 intended use is implied: search for public toilets near a location in Australia. However, the description gives no explicit when-to-use guidance, no exclusions, and does not mention the complementary get_toilet_details sibling or when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fishwatch_speciesA
Retired upstream: NOAA shut the FishWatch species API. Answers with a plain unavailable error and makes no request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to lean on, the description carries the full behavioral burden and does so completely: it discloses that no upstream request is made and that the caller receives a plain unavailable error. Those are exactly the two facts an agent needs to avoid wasting a call or misinterpreting a failure as transient.
Agents need to know what a tool does to the 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 decisive fact ('Retired upstream') before the behavioral consequence. Nothing is padded and nothing an agent needs is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, no-output-schema, retired endpoint, the description covers status, failure mode, and absence of side effects—everything required. No permissions, pagination, or return-shape details are relevant when no request is made.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters and the description correctly makes no parameter claims, matching the empty schema with additionalProperties false. Baseline for a 0-param tool is 4; there is nothing further to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and lifecycle status: the FishWatch species API endpoint, retired upstream by NOAA. An agent immediately knows what the tool nominally did and that it is dead, distinguishing it plainly from the still-live fishwatch_species_detail 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 word 'Retired' plus 'answers with a plain unavailable error and makes no request' is an unambiguous signal not to call it for data, which functions as an implicit when-not-to-use rule. It does not name a replacement (e.g. fishwatch_species_detail or gbif_search_species), so it stops short of explicit routing to an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fishwatch_species_detailA
Retired upstream: NOAA shut the FishWatch species API. Answers with a plain unavailable error and makes no request.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Species name with hyphens (e.g. atlantic-salmon). Accepted but unused: the upstream API is retired. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so effectively: it discloses that the tool makes no external request and answers with a plain unavailable error. This is exactly the kind of side-effect and outcome transparency an agent needs before calling.
Agents need to know what a tool does to the world before calling 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 pair with the retirement reason and resulting behavior front-loaded. Every clause earns its place and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a retired endpoint with no annotations and no output schema, the description is largely complete: it explains why the tool exists in its current form and what calling it does. The only notable gap is the absence of an explicit do-not-call directive or pointer to an alternative, which 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?
Schema description coverage is 100% and the schema already explains that the name parameter is accepted but unused because the upstream API is retired. The description adds no parameter-level meaning beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's current behavior: it returns a plain unavailable error and makes no request because the upstream NOAA FishWatch species API is retired. This is specific and prevents an agent from expecting useful species data, though it does not explicitly distinguish this tool from its sibling fishwatch_species or restate the original resource purpose beyond the 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 mention that the upstream API is retired strongly implies the tool should not be used for species detail, but there is no explicit when-to-use or when-not-to-use guidance and no named alternative. An agent can infer avoidance, but routing to a working sibling 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.
flood_forecastBRead-onlyIdempotent
Get river discharge flood forecast from Open-Meteo.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Forecast days (default 7, max 92). | |
| latitude | Yes | Location latitude. | |
| longitude | Yes | Location longitude. |
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 fully covered without description help. The description adds only the provenance ('Open-Meteo'), and says nothing about return units (e.g. m³/s), model resolution, or forecast horizon behavior beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler or redundancy. It is arguably terse to the point of leaving value on the table, but nothing in it 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 only 3 fully-documented parameters, annotations covering safety, and no output schema, the definition is technically callable as written. However, for a forecast tool the agent gets no signal about units, spatial resolution, or global-vs-regional coverage, which are the details that affect interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — latitude, longitude and days are all documented in-schema, including the default-7/max-92 bound on days. The description adds nothing beyond the schema for any parameter, 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?
States a specific verb+resource ('Get river discharge flood forecast') plus the upstream provider (Open-Meteo), so the agent knows exactly what data comes back. It does not differentiate from the many nearby weather siblings (weather_forecast, marine_forecast, air_quality_forecast, historical_weather), which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to prefer this over weather_forecast or marine_forecast, and no stated preconditions or geographic coverage limits. The only usage signal is implicit in the phrase 'river discharge flood', which the agent must infer means hydrological rather than general weather forecasting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowpass_disagreement_queueC
List or resolve FlowPass Driver versus Verifier disagreements.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Defaults to list | |
| run_id | No | Optional FlowPass run id to filter | |
| reviewer_note | No | Human note for disagreement resolution | |
| disagreement_id | No | Disagreement id for resolve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and idempotentHint=false, but the description adds no behavioral context about what resolving a disagreement does, whether it is reversible, what permissions are needed, or what side effects occur. It merely restates the operations.
Agents need to know what a tool does to the world before calling 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 wasted words. It is very concise, though the extreme brevity means it does not provide structural detail about the two modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 100% schema coverage and annotations, the description is minimally adequate: it tells the agent the tool's domain and actions. However, it does not explain the resolve outcome or return behavior, and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 action, run_id, reviewer_note, and disagreement_id. The description adds no parameter meaning beyond what is already in the structured schema, making the baseline score 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 specific actions (list or resolve) and a specific resource (FlowPass Driver versus Verifier disagreements). It is clear enough to distinguish from sibling FlowPass tools, though the dual action makes it slightly less precise than a single-purpose definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 two operations but does not explain when to choose list versus resolve, nor does it name any alternative or condition for using this tool over related FlowPass tools. Usage is only implied by the action enum in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowpass_quarantineB
List, add, or resolve FlowPass quarantines for flows that should not be trusted as gates.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Defaults to list | |
| reason | No | Reason when adding a quarantine | |
| flow_id | No | Flow id for add or resolve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the agent knows this is a non-destructive, non-idempotent operation. The description adds domain context about what a quarantine represents. However, it does not clarify what 'resolve' changes, whether add/resolve are reversible, or what a quarantine record holds beyond what annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the operations and resource. No wasted words, though it is perhaps too terse to fully scaffold a three-mode polymorphic 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 polymorphic tool with three actions, no output schema, and only lightweight annotations, the description leaves several gaps: it does not explain the shape of a quarantine, what 'resolve' returns or requires, or how the modes relate to the other flowpass_* siblings. It is minimally adequate but incomplete given 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%: the action enum includes 'Defaults to list', and reason/flow_id are documented as applying to add/resolve. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states specific verbs (list, add, resolve) and a specific resource (FlowPass quarantines), plus a scope qualifier ('flows that should not be trusted as gates'). An agent can identify the resource and operations. However, it does not differentiate this tool from sibling flowpass_* tools (flowpass_record, flowpass_status, etc.), which all share the FlowPass namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The three operational modes are implied by the verbs and the action enum, and 'should not be trusted as gates' hints at the domain reason. But there is no explicit guidance on when to quarantine vs. record, resolve, or check status, nor any prerequisites or exclusions. Usage is only implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowpass_recordBRead-onlyIdempotent
Convert supplied rrweb or structured session events into a draft FlowPass pack. This safe MCP surface does not start a live browser recording by itself.
| Name | Required | Description | Default |
|---|---|---|---|
| target_url | Yes | Target URL the recording or session events came from | |
| session_events | No | Structured event summaries or pre-captured rrweb-derived step labels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is known. The description adds a meaningful behavioral boundary: no live browser recording is started. That is genuinely useful context not in the annotations. However, it doesn't disclose what a 'draft pack' is, whether it persists, or what happens to prior drafts.
Agents need to know what a tool does to the 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, front-loaded with the core operation and immediately followed by the key constraint. No wasted words. Could be slightly tighter, but the structure is efficient and the most important caveat is prominent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema coverage and rich annotations, the description is adequate but leaves gaps. It doesn't clarify the output (no output schema exists, so some return-value context would help), the meaning of 'draft', or how this relates to sibling pack-registration tools. An agent can invoke it, but may not know the correct usage path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 target_url and session_events are fully documented in the schema. The description mentions the input domain (rrweb or structured session events) which loosely maps to session_events, but adds no syntax, format, or constraint detail beyond the schema. Baseline 3 applies when the schema carries the parameter 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?
States a specific verb and resource: converts rrweb or structured session events into a draft FlowPass pack. The purpose is clear and concrete. However, it doesn't differentiate from siblings like flowpass_register_pack or flowpass_run, and the exact relationship (does 'record' mean transform-only, or capture?) requires inference. Solid but not fully sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at a constraint ('does not start a live browser recording by itself'), which implies you should use something else for live capture, but no alternative tool is named and no explicit when-to-use guidance is given. The agent must guess when this is the right tool versus flowpass_run or flowpass_register_pack.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowpass_register_packB
Register a FlowPass pack from YAML or an object. Validates plain-English steps, hats, assertions, and optional fixture evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| pack | No | FlowPass pack object | |
| overwrite | No | Allow replacing an existing pack id | |
| pack_yaml | No | FlowPass YAML pack |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false). The description adds useful behavior beyond that: that registration performs validation of steps, hats, assertions, and fixture evidence. However, it does not disclose what happens when a pack id already exists or what the overwrite flag actually destroys, which is the key side-effect risk for a registration 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?
Two tight sentences with the action front-loaded and no filler; the validation scope is compressed into one clause. Nothing is restated from the 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?
There is no output schema, so the description is the only place to learn what a successful registration returns or what a validation failure looks like, and it says nothing about either. It also omits any mention of needing an existing pack id to be free, which matters given overwrite exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 structurally. The description pairs its two input modes with the pack_yaml and pack parameters, adding marginal framing, but never mentions the overwrite parameter or its semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Register a FlowPass pack') and immediately names the accepted input forms (YAML or object). It does not distinguish itself from nearby siblings such as flowpass_run, flowpass_status, or the analogous *_register_pack tools in other pass families, so it is clear but not sibling-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance, and no alternative is named. The only usage signal is the implied 'register before you can run' framing, which the agent must infer from the name and the existence of flowpass_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowpass_reportARead-onlyIdempotent
Fetch a FlowPass report in json, markdown, html, or fix_prompt format for a run started in this MCP session.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format. Defaults to json. | |
| run_id | Yes | The FlowPass run id returned by flowpass_run |
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 one genuine piece of behavioral context — the report must belong to a run started in this MCP session — but omits what happens on failure, whether the report is the final/complete artifact, or any size/latency 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?
A single front-loaded sentence with no filler; the resource and formats come first and the session constraint closes it. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 fetch with full schema coverage and annotations, little more is needed. The one gap is that no output schema exists, so a hint about what the different formats contain (particularly fix_prompt, which is non-obvious) would have closed the loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: run_id is documented as "returned by flowpass_run" and format's enum and default are fully specified in the schema. The description repeats the format list but adds no new meaning (no guidance on when fix_prompt is preferable, no id format details). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ("Fetch") plus the resource ("FlowPass report") and enumerates the four output formats, so the agent knows exactly what it gets back. It does not, however, name or distinguish itself from any sibling (e.g. flowpass_status, flowpass_run, or the other pass-specific report tools), so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"for a run started in this MCP session" implies the precondition (a run must exist from this session) but never states when to call this versus flowpass_status or flowpass_run, nor what to do if the run predates the session. Usage 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.
flowpass_runA
Run FlowPass against a public fixture or registered pack. Returns journey readiness, step verdicts, hat outputs, exclusions, and a stored report. Without fixture proof, returns a plan-only receipt instead of pretending a live journey ran.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Alias for target_url | |
| pack | No | FlowPass pack object | |
| fixture | No | Public fixture evidence for route, CTA, form, success, failure, navigation, handoff, side channels, timing, and accessibility. | |
| pack_id | No | Registered FlowPass pack id | |
| profile | No | Run profile label. Defaults to smoke. | |
| pack_name | No | Registered FlowPass pack name | |
| pack_yaml | No | FlowPass YAML pack using plain-English steps | |
| journey_id | No | Optional journey id override | |
| target_sha | No | Optional PR or commit SHA for receipt staleness checks | |
| target_url | No | Target URL for a one-off FlowPass run | |
| generated_at | No | Optional ISO timestamp for reproducible fixture tests | |
| journey_kind | No | ||
| journey_name | No | Optional journey name override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag non-readonly/non-idempotent. The description adds meaningful behavior beyond them: it enumerates what is returned (journey readiness, step verdicts, hat outputs, exclusions) and discloses that a stored report is produced, plus the plan-only receipt fallback. That fallback rule is genuinely useful and not derivable from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero filler, front-loaded with the action and input modes before the return values and the caveat. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no output schema, the description competently summarizes inputs and outputs, including the degraded mode. It omits what a stored report location/lifecycle looks like and how it differs from flowpass_report, a minor gap given the rich 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 92%, so the schema already explains url, pack, fixture, pack_id, profile, target_sha, etc. The description only reinforces that fixture and pack are the two entry modes, adding little beyond what the schema documents.
Input schemas describe structure but not intent. Descriptions should explain 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 (Run) and resource (FlowPass) with two supported input modes (public fixture or registered pack). It does not name any sibling such as flowpass_status or flowpass_register_pack, so an agent must infer which flowpass_* tool to pick, but the action itself 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?
Gives real selection context: use it with a fixture or a registered pack, and it explains the fallback behavior when fixture proof is absent. It stops short of naming an alternative tool or stating prerequisites (e.g. that a pack must be registered first via flowpass_register_pack).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowpass_statusARead-onlyIdempotent
Fetch the stored FlowPass run status, score, summary, and open disagreement queue entries for a run started in this MCP session.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The FlowPass run id returned by flowpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds meaningful context beyond that: it enumerates what is returned (status, score, summary, open disagreement entries) and constrains scope to runs started in the current MCP session, which affects whether a stored run is retrievable.
Agents need to know what a tool does to the 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 with no filler; the return fields and the session-scoping constraint are packed in 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 usefully enumerates the returned content and notes the session constraint, which is important for a status-lookup tool. It is largely complete, though it could note behavior when the run_id is not found or from another session.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, run_id, and the schema fully documents it at 100% coverage ('The FlowPass run id returned by flowpass_run'). The description adds no format or syntax detail beyond that, so the schema carries the load and 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?
States a specific verb (Fetch) and the exact resources returned (run status, score, summary, open disagreement queue entries) for the FlowPass domain. The phrase 'for a run started in this MCP session' also distinguishes it from the sibling flowpass_run, which starts runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'for a run started in this MCP session' tells the agent the prerequisite context in which this tool applies, implying it is used after flowpass_run. It does not explicitly name alternatives (e.g. flowpass_disagreement_queue, flowpass_report) 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.
floyd_warshallB
Compute all-pairs shortest paths using Floyd-Warshall.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of weighted edges | |
| directed | No | Treat as directed graph (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden but only names the algorithm. It says nothing about the return shape (distance matrix vs. path list), how unreachable pairs are represented, whether negative cycles raise an error, or the O(V^3) cost. Only the core operation is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the algorithm and output scope front-loaded and no filler. It is arguably too terse for a graph algorithm, but that gap is accounted for in completeness rather than padding here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only place an agent could learn what comes back, yet it omits the return format entirely. For a tool whose result (all-pairs distances) is non-obvious to new callers, this leaves a real 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 both parameters (edges, directed) are documented in the schema, so the description correctly leaves them alone. It adds no extra semantics (e.g., duplicate edges, absent nodes, weight sign) beyond the schema, which is a 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?
States a specific verb (Compute), a precise resource (all-pairs shortest paths), and the algorithm used (Floyd-Warshall). The phrase 'all-pairs' implicitly distinguishes it from the single-source siblings (dijkstra_path, bellman_ford, astar_path) that populate the same toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to prefer this over dijkstra_path, bellman_ford, or bfs_search, and no mention of negative-edge capability (the main reason to pick Floyd-Warshall) or negative-cycle limitations. The agent must infer the use case entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fly_create_machineC
Create a new machine in a Fly.io app.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | JSON object of environment variables | |
| image | Yes | Docker image to run (e.g. nginx:latest) | |
| api_key | No | ||
| app_name | Yes | ||
| machine_name | No | Optional machine name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like destructiveness, idempotency, or permissions. It only says 'Create a new machine', omitting that this is a write operation, likely requires authentication, and may have side effects (e.g., starting a machine). Insufficient for a mutation 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 very concise (one sentence), which is positive for brevity, but it omits crucial details needed for correct usage. It could benefit from a structured format listing key capabilities or behavior, while still being succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters, 2 required, and no output schema, the description is too minimal. It does not explain return values, error conditions, prerequisites, or how parameters like api_key should be obtained. The context from sibling tools suggests this is part of a larger system, but the description fails to tie it together.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no meaning beyond the input schema. Schema coverage is 60%, but the description does not explain the undocumented parameters (api_key, app_name, env). For required parameters, only image and machine_name have schema descriptions; app_name lacks both schema and description context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('machine'), and the context ('in a Fly.io app'). It effectively distinguishes from sibling tools like fly_list_machines (list) or fly_get_app (get), which have different verbs and resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites (e.g., app must exist), or scenarios to avoid. The single sentence offers no contextual or comparative advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fly_get_appCRead-onlyIdempotent
Get details for a specific Fly.io app.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| app_name | Yes | Fly.io app name |
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, openWorldHint=true), so the bar is lower, but the description adds nothing beyond that — no indication of what 'details' includes, whether the app must exist, or error behavior on unknown app names.
Agents need to know what a tool does to the 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 with zero filler. It is efficient, though its brevity is arguably a symptom of thin content rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should describe what the returned 'details' contain (status, org, network config, etc.). It also says nothing about required auth or error behavior, leaving a read tool with an open world hint underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: app_name is documented in the schema, but api_key is undocumented in both places. The description mentions only 'a specific Fly.io app', which merely restates the app_name parameter and does not compensate for the coverage 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?
States a concrete verb ('Get') and resource ('details for a specific Fly.io app'), which clearly separates it from fly_list_apps and fly_list_machines. It does not name a sibling explicitly, but the singular 'specific app' versus the list siblings makes 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?
Usage is only implied: the agent must infer that fly_list_apps should be used first to discover an app name, then this tool to fetch that app. No explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fly_list_appsBRead-onlyIdempotent
List all Fly.io apps in your organization.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Fly.io API token | |
| org_slug | No | Organization slug (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds only the organizational scoping context, and omits pagination behavior, result size, and what happens when org_slug is absent.
Agents need to know what a tool does to the 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 with zero filler. Nothing redundant or trailing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations and full schema coverage, the definition is minimally adequate. It leaves unclear whether the list is paginated, whether api_key must be supplied despite being marked optional, and how the optional org_slug changes the result set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 api_key and org_slug are documented in the schema and the baseline of 3 applies. The description reinforces that results are org-scoped but adds no syntax or format detail 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?
States a specific verb and resource: list Fly.io apps. Scope is qualified as 'in your organization.' However, it does not differentiate from siblings like fly_get_app, fly_list_machines, or fly_list_volumes, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus fly_get_app for a single app or other Fly.io list tools. No prerequisites or exclusions are stated; usage is entirely implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fly_list_machinesCRead-onlyIdempotent
List all machines in a Fly.io app.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| app_name | Yes | ||
| include_deleted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so safety is covered. The description adds only the word 'all', implying no filtering/pagination, and says nothing about whether deleted machines appear by default or how many results are 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?
A single front-loaded sentence with no waste. It is efficient but arguably under-specified rather than merely 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?
A list tool with 3 undocumented parameters, no output schema, and no explanation of default inclusion of deleted machines or result format. An agent could call it, but not confidently predict what it gets 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?
Schema description coverage is 0% and all 3 parameters are undocumented in the schema. The description explains only app_name implicitly; api_key and especially include_deleted (which changes the result set meaningfully) are never addressed, so it fails to compensate for the coverage 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?
Names a specific verb (List) and resource (machines) scoped to a Fly.io app, so an agent can tell it apart from fly_create_machine. It does not distinguish itself from other Fly list-style siblings (fly_list_apps, fly_list_volumes), but the resource nouns are different 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 gives no when-to-use/when-not guidance and never mentions the sibling tools. The read-only nature is implied by 'List', but nothing states e.g. that this is for inspection before machine operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fly_list_volumesBRead-onlyIdempotent
List all volumes attached to a Fly.io app.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| app_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds only the app-scoping context and says nothing about result volume, pagination, or auth needs 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?
A single efficient sentence with the resource and scope front-loaded and no filler. It is perhaps too terse given the documentation gaps, but there is no structural 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 list tool with a 2-parameter schema and no output schema, the description covers the core operation but omits the api_key parameter, any auth expectation, and whether results are paginated or 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 0%, so the description must carry the parameter burden. It implicitly maps to 'app_name' via the phrase 'attached to a Fly.io app', but the second parameter, api_key, is never mentioned, leaving authentication semantics entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 ('volumes') scoped to a Fly.io app, so the operation is unambiguous. It does not distinguish itself from nearby siblings such as fly_list_apps or fly_list_machines beyond the resource noun in the 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?
Usage is only implied: you would call it when you need volume information for an app. There is no statement about when to prefer this over fly_list_machines, fly_get_app, or other Fly.io inventory tools, and no prerequisites such as auth requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_by_categoryCRead-onlyIdempotent
Get food products by category from Open Food Facts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior. The description adds the data source and the category-filtering scope, but omits pagination behavior and whether results are exhaustive or capped.
Agents need to know what a tool does to the 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 with no wasted words. It is efficient, though its brevity contributes to the missing usage and parameter 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?
With no output schema and 0% schema description coverage, the description should explain category format, page behavior, and result shape. It leaves an agent without enough information to call the tool confidently beyond the basic category 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 0%, so the description must compensate. It only implies the category parameter's meaning and never explains the page parameter, its default, or how pagination works, leaving half the parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: get food products filtered by category from Open Food Facts. It does not distinguish this tool from siblings like food_search or food_get_product, so an agent must infer when category filtering is preferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies a category-based listing but gives no explicit guidance on when to use this instead of food_search or food_get_product. There are no prerequisites, exclusions, or examples of valid category values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_get_productBRead-onlyIdempotent
Get a food product from Open Food Facts by barcode.
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so safety is covered. The description adds the third-party source ('Open Food Facts'), hinting at data completeness variability, but says nothing about not-found behavior, rate limits, or coverage gaps that a caller of an external database needs.
Agents need to know what a tool does to the 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 clean sentence with the action and key front-loaded. No wasted phrasing, though it is arguably under-specified rather than optimally 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 simple one-parameter lookup with annotations covering safety and no output schema, this is minimally adequate. It stops short of telling the agent what happens on a missing/unknown barcode or what fields the product record will contain.
Complex tools with many parameters or behaviors need more documentation. Simple 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 compensate. It does convey that the single parameter is a barcode, but it doesn't specify format (e.g., EAN/UPC digits, checksum) or whether leading zeros matter, leaving the actual value semantics thin.
Input schemas describe structure but not intent. Descriptions should explain 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 ('food product'), source ('Open Food Facts'), and the lookup key ('by barcode'). The 'by barcode' phrase implicitly distinguishes it from the sibling food_search, but it doesn't name that alternative 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 phrase 'by barcode' implies it should be used when you already have a barcode, which is useful context. However, there is no explicit when-to-use vs. when-not guidance and no mention of the food_search or food_by_category alternatives for discovery-style lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foodish_by_categoryCRead-onlyIdempotent
Get a random food image by category from Foodish API.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Food category (e.g. pizza, burger, biryani, pasta, rice). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description adds nothing about the response shape (image URL vs binary), pagination, or failure behavior for unknown categories. Worse, 'random' implies a different result on each call, which sits awkwardly against idempotentHint=true.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and the random-scoping that matters, with no filler. It is terse to the point of omitting sibling routing, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with annotations and no output schema, the core information is present. What is missing is the return format and any category-coverage caveat, which an agent needs to use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already enumerates example categories (pizza, burger, biryani, pasta, rice). The description adds nothing beyond 'by category', so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a random food image by category from Foodish API.' It is distinguishable from foodish_random (which lacks the category filter) only by inference from the name, since the description never names 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?
No guidance on when to use this versus foodish_random or the meal_* image/filter tools. The agent must infer that this is the category-scoped variant of foodish_random from the tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foodish_randomARead-onlyIdempotent
Get a random food image from Foodish API.
| 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 and destructiveHint=false, so safety is covered; the description only adds that results come from an external API. It does not say what a call yields (image URL, JSON, binary), which matters for a no-param tool. Note the tension between 'random' and idempotentHint=true, though that reads as a likely annotation error rather than misleading description text.
Agents need to know what a tool does to the 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 with no filler; the resource and randomness are stated immediately. It is short enough that little more could be trimmed, though it is arguably too terse rather than too long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters and no output schema, the description should at least hint at the return shape (image URL vs. redirect vs. category field), since nothing else documents it. For a trivial one-sentence tool it is usable, but 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 tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate. Baseline 4 applies to a 0-param 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?
States a specific verb and resource ('Get a random food image') and names the source API, which is enough for an agent to understand the tool. It does not distinguish itself from the sibling foodish_by_category, which a reader has to infer returns images scoped to a category rather than a random one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by the word 'random' – the description never says when to pick this over foodish_by_category or the broader food_* siblings. No prerequisites, no exclusions, no alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_searchCRead-onlyIdempotent
Search for food products on Open Food Facts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | Yes | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the safety and open-world profile is fully covered. The description adds only the upstream provider name, which the openWorldHint already implies, and says nothing about result shape, total counts, or how paging terminates.
Agents need to know what a tool does to the 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 sentence with no waste and the key information front-loaded, but the brevity is under-specification rather than efficiency, and there is no structural hint about pagination or result interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A three-parameter search tool with no output schema and zero parameter documentation needs the description to carry pagination and query semantics. It does not, leaving the agent to guess at indexing base, page size bounds, and what a match represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — query, page, and page_size have no documented meaning anywhere. The description does not compensate: it says nothing about query syntax (product name, brand, barcode?), whether page is 1- or 0-indexed, page_size limits, or defaults.
Input schemas describe structure but not intent. Descriptions should explain 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 (food products) plus the upstream data source (Open Food Facts), which is more than a name restatement. It does not, however, distinguish itself from nearby siblings such as food_get_product, food_by_category, meal_search, or openfda_drug_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?
No indication of when to use this versus food_get_product (single lookup by barcode/id) or the meal/* filter tools. The agent must infer that this is the free-text discovery entry point and that detail retrieval belongs to food_get_product.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forex_convertCRead-onlyIdempotent
Convert a currency amount using Open Exchange Rates.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| amount | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that the operation is read-only, idempotent, non-destructive, and dependent on an open-world source. The description adds the provider name 'Open Exchange Rates', which is useful context, but it omits API-key requirements, rate limits, or anything about the returned conversion.
Agents need to know what a tool does to the world before calling 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 wasted text. Its brevity is efficient, though it leaves the tool under-specified for its parameter 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?
For a four-parameter conversion tool with 0% schema coverage, no output schema, and many competing currency tools, the description is too thin. It does not explain currency-code expectations, rate source behavior, API-key handling, or what the conversion response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden for all four parameters. It only generically implies converting an amount between two currencies and says nothing about currency-code format, supported currencies, amount units, or the optional api_key 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 clearly states a specific verb and resource: 'Convert a currency amount', and names the data provider. However, it does not distinguish this tool from numerous sibling currency-conversion tools such as frankfurter_convert, exchangerate_convert, or forex_rate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the many alternative exchange-rate and conversion siblings. It does not mention prerequisites, supported currencies, or conditions under which another tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forex_currenciesC
List all currencies from Open Exchange Rates.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It indicates a read-only list operation without side effects, but does not disclose authentication requirements, rate limits, or return format. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. However, it lacks details that could be included without verbosity, such as what the list contains. It is not overly long but could be more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should explain the return value. It fails to do so, leaving the agent unaware of whether the result includes currency codes, names, or symbols. Missing context on api_key necessity.
Complex tools with many parameters or behaviors need more documentation. 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 'api_key' is not mentioned in the description. With 0% schema coverage, the description adds no meaning beyond the schema, leaving the agent uninformed about whether the key is required or optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all currencies from Open Exchange Rates. The verb 'List' and resource 'currencies' are specific, but it does not differentiate from sibling tools like 'exchangerate_codes' which may serve a similar 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?
No guidance on when to use this tool versus alternatives such as forex_latest or forex_convert. Lacks any context about prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forex_historicalC
Get historical forex rates from Open Exchange Rates.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | ||
| date | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states a read operation. No mention of rate limits, data source nuances, or any restrictions, leaving the agent without critical behavioral clues.
Agents need to know what a tool does to the world before calling 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 but at the expense of necessary detail. It is under-specified, essentially a tautology of the tool name with added source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3 parameters (1 required), no output schema, and no param descriptions, the description fails to provide enough context for correct invocation. It omits even basic parameter purpose.
Complex tools with many parameters or behaviors need more documentation. Simple 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% and description explains none of the three parameters. Even the required 'date' parameter is not mentioned, forcing the agent to infer from schema definitions 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 clearly states the verb 'Get' and the resource 'historical forex rates' with a source 'Open Exchange Rates'. It distinguishes itself from siblings like 'forex_latest' by explicitly specifying 'historical'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus siblings like 'forex_latest' or 'forex_convert'. The description is too brief to provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forex_latestCRead-onlyIdempotent
Get latest forex exchange rates from Open Exchange Rates.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | ||
| api_key | No | ||
| symbols | No |
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 only the data source ('Open Exchange Rates'), which is somewhat useful for differentiating providers, but it omits the authentication requirement (api_key) that a caller must satisfy.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no padding. Brevity here is genuinely wasted opportunity rather than bloat, but it is efficiently sized for what it says.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three undocumented parameters, no output schema, and heavy sibling overlap in the forex/rates namespace. The description does not give enough to select this tool over its alternatives or to supply a valid api_key/symbols value, so the definition is incomplete 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 0% for three parameters (base, api_key, symbols), so the description carries the full explanatory burden — and it explains none of them. It does not say what base defaults to, what format symbols takes (comma-separated codes?), or that api_key is effectively required for a successful call.
Input schemas describe structure but not intent. Descriptions should explain 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 verb+resource ('Get latest forex exchange rates') and names the upstream provider, so the action is unambiguous. However it does nothing to distinguish itself from the many sibling forex tools (forex_rate, forex_convert, forex_historical, frankfurter_latest, exchangerate_latest).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus forex_rate, forex_convert, forex_historical, or frankfurter_latest, and no mention that an API key is needed. The agent must guess 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.
forex_rateC
Get a forex exchange rate from Alpha Vantage.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| to_currency | Yes | ||
| from_currency | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'Get a forex exchange rate' without mentioning whether it returns real-time data, historical data, or any rate limits. This is insufficient for an agent to understand side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 6 words and front-loaded with the action. However, it could be expanded slightly to cover key details without losing efficiency. Given its brevity, it is well-structured but lacks necessary 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 3 parameters and no output schema, the description is too terse. It does not explain how to form a request, what the response contains, or any required formatting. The agent is left without enough context to use the tool 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?
Schema description coverage is 0%, and the description fails to explain any parameters. Although parameter names like from_currency and to_currency are somewhat self-explanatory, no format or expected values (e.g., ISO codes) are provided. The api_key is not described either, leaving the agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource 'forex exchange rate' from 'Alpha Vantage'. However, it does not distinguish itself from sibling tools like forex_convert, forex_historical, or forex_latest, which also retrieve forex rates. Thus, it lacks 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?
No guidance is given on when to use this tool versus alternatives such as forex_convert or forex_latest. The description provides no context about prerequisites, limitations, or appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foursquare_autocompleteC
Autocomplete a Foursquare place search.
| Name | Required | Description | Default |
|---|---|---|---|
| ll | No | ||
| query | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read operation but provides no details on rate limits, authentication (beyond api_key parameter), error behavior, or response nature. Insufficient for safe agent usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short sentence) and front-loaded. However, it is too brief, sacrificing necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is incomplete. It lacks return value semantics, examples, or usage advice, making it inadequate for effective agent 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 0%, yet the description adds no meaning beyond the parameter names (query, ll, api_key). Does not explain that 'query' is the search string, 'll' is lat/long, or that api_key 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 'Autocomplete a Foursquare place search' clearly states the verb and resource. It distinguishes from sibling tools like foursquare_search_places (full search) and foursquare_get_place (detail retrieval), though it does not elaborate on what 'autocomplete' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use autocomplete versus alternatives like foursquare_search_places or yelp_autocomplete. The description offers no context for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foursquare_get_photosC
Get photos for a Foursquare place.
| Name | Required | Description | Default |
|---|---|---|---|
| fsq_id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure, but it omits any traits such as what happens when no photos exist, API key handling, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It is minimally acceptable in length but fails to provide necessary 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?
Given the lack of output schema and annotations, the description is incomplete. It does not explain what photos are returned (URLs, metadata) or handle edge cases, leaving significant gaps for 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?
Schema description coverage is 0% and the description does not explain the two parameters (fsq_id, api_key). The agent must guess their meaning from context, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get photos for a Foursquare place,' specifying the action (get), resource (photos), and platform (Foursquare). It distinguishes from sibling tools like foursquare_get_place and foursquare_get_tips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The agent must rely on the tool name and siblings to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foursquare_get_placeB
Get details for a Foursquare place by FSQ ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fsq_id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only says 'Get details', implying a read-only operation, but does not disclose any other behavioral traits such as authentication requirements, rate limits, or side effects. This is minimal 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 a single sentence with 10 words, front-loaded with the core purpose. Every word is necessary and there is 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 get-by-ID tool with 2 parameters and no output schema, the description is adequate but minimal. It does not explain what details are returned or how to interpret the response. Given the lack of annotations and schema descriptions, it could be more 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 0%, meaning no parameter descriptions in the schema. The description only mentions 'FSQ ID' but does not describe the 'api_key' parameter at all, nor does it add meaning beyond the parameter names. The description fails to compensate for the lack of 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 uses specific verb 'Get' and resource 'details for a Foursquare place' identified by FSQ ID. It clearly distinguishes this from sibling tools like foursquare_search_places (searching) and foursquare_get_photos (photos).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foursquare_get_tipsC
Get tips/reviews for a Foursquare place.
| Name | Required | Description | Default |
|---|---|---|---|
| fsq_id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as rate limits, authentication, pagination, or error handling. It only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (8 words) but sacrifices necessary detail. It is front-loaded but lacks substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimal description, no output schema, and 2 undocumented parameters, the tool definition is incomplete. It omits crucial details like return format and authentication requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the parameters (fsq_id, api_key). The parameter semantics are entirely dependent on parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'tips/reviews for a Foursquare place,' which distinguishes it from siblings like foursquare_get_photos and foursquare_get_place.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool vs alternatives. No explicit context or use cases are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
foursquare_search_placesC
Search for places on Foursquare.
| Name | Required | Description | Default |
|---|---|---|---|
| ll | No | lat,lng | |
| near | No | ||
| limit | No | ||
| query | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or output format. The phrase 'Search for places' is too vague to inform the agent about side effects or restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words), but this under-specification is not beneficial. For a tool with 5 parameters and multiple siblings, it should include more structured information like parameter roles or usage examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema) and presence of sibling tools, the description is completely inadequate. It does not explain what the tool returns, how to construct queries, or when to prefer it over other Foursquare 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 coverage is only 20% (only 'll' has a description). The tool description adds no parameter explanations beyond what the schema provides, leaving 4 out of 5 parameters undocumented. The agent must infer the purpose of 'query', 'near', 'limit', and 'api_key' from the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search' and the resource 'places' on Foursquare. However, it does not distinguish itself from sibling tools like foursquare_autocomplete or foursquare_get_place, which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 vs alternatives (e.g., foursquare_autocomplete, foursquare_get_place). There is no mention of prerequisites like an API key or context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_bootstrapB
Get Fantasy Premier League bootstrap data (players, teams, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as read-only nature, rate limits, authentication requirements, or data size. The brief description provides minimal 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 a single concise sentence that is front-loaded with the action and resource. It is not verbose, though it could benefit from slightly more detail without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters, no output schema, and no annotations, the description is very incomplete. It fails to explain what 'bootstrap data' entails (e.g., the full static data from the FPL API) or provide any contextual hints 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?
The tool has zero parameters, and schema coverage is 100%. Per guidelines, a baseline of 4 is appropriate since there is no need to explain 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 verb 'Get' and the resource 'Fantasy Premier League bootstrap data' with an explicit listing of data types (players, teams, etc.). It differentiates from sibling tools like fpl_fixtures or fpl_player by indicating it returns a broad static 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?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools focusing on specific FPL aspects, a note on using this for initial data loading or as a base for other calls is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_fixturesB
Get FPL fixtures, optionally for a gameweek.
| Name | Required | Description | Default |
|---|---|---|---|
| gameweek | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden for behavioral disclosure. It does not mention side effects (none expected), rate limits, authentication requirements, or any constraints like maximum gameweek values. The description is too minimal to inform an AI agent about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—just 8 words. It is front-loaded with the core action and includes the optional parameter. Every word serves a purpose, 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?
Given the tool's simplicity (one optional parameter, no output schema), the description is partially complete. It explains what the tool does and the filter option. However, it does not describe the return value structure, which could be useful since there is no output schema. The description is adequate but lacks depth.
Complex tools with many parameters or behaviors need more documentation. 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 'gameweek' is described as optional, which adds meaning beyond the schema (which only specifies type number). However, with 0% schema description coverage, the description could have provided more context about the parameter's format or default behavior (e.g., returns all fixtures if omitted).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves FPL fixtures with an optional gameweek filter. It uses specific verb 'Get' and resource 'FPL fixtures'. However, it doesn't explicitly distinguish itself from sibling FPL tools like fpl_gameweek or fpl_bootstrap, which might also retrieve fixture-related 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or typical scenarios. The description is purely functional without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_gameweekC
Get FPL gameweek details.
| Name | Required | Description | Default |
|---|---|---|---|
| gameweek | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states 'Get FPL gameweek details' without indicating whether the operation is read-only, has side effects, requires authentication, or any other safety-relevant 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 extremely concise, consisting of a single sentence that front-loads the core purpose. Every word earns its place with no 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?
Given the lack of annotations, output schema, and the presence of multiple sibling FPL tools, the description is insufficient. It does not explain what 'details' encompass, how the gameweek parameter maps to data, or what the return structure looks like, making it incomplete for reliable agent 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 has 0% description coverage, and the description fails to add any meaning to the single parameter 'gameweek'. It does not explain its format, range, or relationship to the data, leaving the agent without guidance on valid 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 states the verb 'Get' and the resource 'FPL gameweek details', indicating the tool retrieves information about a specific gameweek. However, 'details' is vague and does not distinguish from sibling tools like fpl_fixtures or fpl_bootstrap, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or scenarios where this tool is appropriate, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_leagues_classicC
Get FPL classic league standings.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| league_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like pagination, error handling, or rate limits, but it only states the basic function.
Agents need to know what a tool does to the world before calling 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 concise sentence with no wasted words, but it could be expanded slightly without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description fails to explain what the standings return looks like, how to paginate, or how to obtain a league_id, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no meaning to the parameters; it does not explain what league_id represents or what the page parameter does, despite 0% 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 action ('Get') and the resource ('FPL classic league standings'), distinguishing it from sibling FPL tools like fpl_player or fpl_fixtures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus other FPL tools, nor are there any prerequisites or context for using league_id or page parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_managerC
Get an FPL manager profile.
| Name | Required | Description | Default |
|---|---|---|---|
| manager_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only implies a read operation ('Get'), but does not disclose any behavioral details like authorization needs, error handling, or what happens if the manager_id is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks necessary detail. It is not overly verbose, but it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and minimal description, the tool lacks contextual completeness. It does not explain what the function returns, any limitations, or how it integrates with other FPL 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 0%, and the description adds no meaning to the 'manager_id' parameter. It does not explain what the ID represents (e.g., FPL manager ID) or any format constraints, leaving the agent without 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 clearly states the verb 'Get' and resource 'FPL manager profile', distinguishing it from sibling tools like fpl_player or fpl_my_team, which focus on different entities. However, it does not specify what the profile contains, leaving some 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 provides no guidance on when to use this tool vs alternatives, such as fpl_my_team or fpl_leagues_classic. No context, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_my_teamC
Get an FPL manager's team for a gameweek.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| gameweek | Yes | ||
| manager_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose behavioral traits such as authentication requirements, rate limits, or whether it's a read-only operation. It only states the basic action.
Agents need to know what a tool does to the world before calling 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, which is concise but arguably too brief. It front-loads the action but omits useful details that could fit without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing crucial information: no output schema, parameter descriptions, or usage context. An agent cannot determine required inputs or expected output without external knowledge.
Complex tools with many parameters or behaviors need more documentation. 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, and the tool description does not explain any parameter semantics (e.g., what manager_id or gameweek represent, or the role of api_key). The agent must infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get') and resource ('FPL manager's team') with a contextual filter ('for a gameweek'), distinguishing it from sibling tools like fpl_manager or fpl_player.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. It merely describes what it does without contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fpl_playerC
Get FPL player details and history.
| Name | Required | Description | Default |
|---|---|---|---|
| player_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read operation but does not disclose any behavioral traits such as rate limits, data freshness, or scope of history 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 a single short sentence, which is concise but lacks structure and detail. It could be expanded minimally to be more useful while remaining 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?
Given the single parameter and lack of output schema, the description should explain what data is returned. It does not, leaving the tool's capabilities unclear.
Complex tools with many parameters or behaviors need more documentation. Simple 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% and the description adds no meaning to the player_id parameter. It does not explain what the ID represents or how to obtain 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 clearly states the verb 'Get' and the resource 'FPL player details and history', which distinguishes it from other FPL tools like fpl_bootstrap or fpl_fixtures. However, it could be more specific about what details and history are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of prerequisites like having a player_id, or what to do if you have a player name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frankfurter_convertBRead-onlyIdempotent
Convert a specific amount between two currencies using ECB rates.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target currency code | |
| from | Yes | Source currency code | |
| amount | Yes | Amount to convert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds the useful context that rates come from the ECB, but does not mention rate freshness, caching, or whether the rate is a snapshot or live value.
Agents need to know what a tool does to the 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-formed sentence with zero filler, front-loading the action and scope. Nothing extraneous and nothing important buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 conversion tool with full schema coverage, annotations covering safety, and no output schema, the description is nearly sufficient. A brief note on rate recency or currency code format would close the remaining 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 amount, from, and to are already documented in the schema. The description adds no format details (e.g., currency code casing, whether amount supports decimals) beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Convert') and resource ('amount between two currencies') and adds the data source ('using ECB rates'). However, it does not distinguish itself from the many sibling conversion tools such as forex_convert or exchangerate_convert, so an agent must infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus forex_convert, exchangerate_convert, or the frankfurter_latest/currencies siblings. The ECB reference hints at scope but no conditions or exclusions are stated, 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.
frankfurter_currenciesA
List all currencies supported by the Frankfurter ECB exchange-rate API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. 'List all currencies' implies a complete, read-only reference lookup with no destructive side effects, which is reasonable context. However, it does not disclose the return shape (codes vs. names) or any auth/rate-limit considerations.
Agents need to know what a tool does to the 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 with no filler; the resource and its source API are stated immediately. 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 zero-parameter, no-output-schema reference tool this is nearly sufficient: it says what is listed and from where. A brief note on the returned identifier format would make it 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 tool takes zero parameters, so the baseline is 4 and there is no parameter semantics for the description to explain. Schema coverage is 100% and additionalProperties is false, so nothing is left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain 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 ('currencies') and adds the scope that they are supported by the Frankfurter ECB exchange-rate API. This is unambiguous, though it does not explicitly contrast itself with sibling rate tools like frankfurter_latest or frankfurter_convert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this versus alternatives. Several siblings surface currency lists (forex_currencies, exchangerate_codes, currency_api_list), yet the description provides no condition or exclusion to discriminate them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frankfurter_historicalB
Get historical exchange rates for a specific date from ECB.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Target currency code (optional) | |
| date | Yes | Date in YYYY-MM-DD format | |
| from | No | Base currency code (default EUR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions the ECB source but does not disclose read-only behavior, rate limits, error handling, weekend/holiday behavior, or the response structure, leaving significant behavioral traits undocumented.
Agents need to know what a tool does to the world before calling 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. Every word earns its place by identifying the action, resource, date specificity, and source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 retrieval tool with a complete parameter schema, the description is minimally adequate. However, without an output schema, it does not explain return values, and it omits usage context relative to siblings, leaving gaps an agent might need to resolve.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 date, from, and to parameters. The description adds no parameter-level meaning beyond what the schema provides, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, resource, scope, and data source: 'Get historical exchange rates for a specific date from ECB.' This clearly distinguishes it from sibling tools that retrieve latest or converted rates, such as frankfurter_latest and frankfurter_convert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus alternatives like frankfurter_latest, frankfurter_convert, or exchangerate_historical. The only implied usage is that it is for historical dates, but no explicit conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frankfurter_latestBRead-onlyIdempotent
Get latest exchange rates from ECB via Frankfurter.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Target currency code (optional, returns all if omitted) | |
| from | No | Base currency code (default EUR) |
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 by naming ECB as the source via Frankfurter, but it does not disclose update frequency, rate limits, or authentication needs.
Agents need to know what a tool does to the 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 with no wasted words. It conveys the operation, recency, and data source 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 read-only tool with two optional parameters, complete schema coverage, and supportive annotations, the description is largely sufficient. It does not need to explain return values because no output schema exists, though it could say more about the reference-rate nature of the data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 the 'to' and 'from' parameters are already documented in the input schema. The description adds no additional meaning about parameter behavior or formats beyond that 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 specific verb ('Get') and resource ('latest exchange rates'), and adds the data source ('ECB via Frankfurter'). It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as frankfurter_historical, frankfurter_convert, or frankfurter_currencies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'latest' implies current-rate usage, but there is no explicit guidance on when to use this versus frankfurter_historical or frankfurter_convert. No exclusions, prerequisites, 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.
freetogame_detailB
Get full details for a specific free-to-play game.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Game ID from freetogame |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It says nothing about permissions, whether the lookup is read-only, what happens for an unknown ID, or what 'full details' includes. For a bare detail endpoint this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the verb and resource with no wasted words. It is efficient, though it is arguably too terse for the disclosure burden it carries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of behavioral context. It is adequate for a simple single-ID lookup but omits anything beyond the basic purpose, leaving an agent with minimal guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 there is only one parameter, whose schema text ('Game ID from freetogame') fully documents it. The description adds nothing about the id's format or source beyond what the schema already states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (full details for a specific free-to-play game), which is clear on its own. It does not explicitly differentiate from the sibling freetogame_list, though 'specific' implies single-item retrieval, 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 phrase 'for a specific free-to-play game' implies this is the detail-fetch counterpart to freetogame_list, but no explicit when/when-not guidance or sibling reference is given. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freetogame_listARead-onlyIdempotent
Browse free-to-play games, optionally filtered by platform or category.
| Name | Required | Description | Default |
|---|---|---|---|
| sort_by | No | Sort: relevance, popularity, release-date, alphabetical | |
| category | No | Filter: mmorpg, shooter, moba, strategy, etc. | |
| platform | No | Filter: pc, browser, or all (default all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a read-only, idempotent, non-destructive, open-world operation. The description adds only that filtering is optional, without disclosing pagination behavior, rate limits, or result sizing, so it provides limited 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?
A single front-loaded sentence with no wasted words. It communicates the core purpose and optional filters 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?
With no output schema, the description does not explain what the browsing response looks like, whether results are paginated, or what sorting does. The full parameter schema and annotations cover a lot, but the description remains minimal for an agent needing to understand the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented, including sort_by, category, and platform. The description mentions platform and category filtering but adds no syntax, defaults beyond what the schema states, or detail about sort_by, 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 a specific verb and resource: browsing free-to-play games, with optional platform or category filtering. It distinguishes itself from freetogame_detail by implying a list/browse operation, though it does not explicitly name the detail sibling as the alternative for single-game 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?
It indicates the tool is for browsing and that filters are optional, which implies when to use it. However, it gives no explicit when-not-to-use guidance and does not route agents to freetogame_detail for retrieving a specific game.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frequency_analyseC
Analyse character or bigram frequencies in text.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Number of top entries to return (default 10). | |
| mode | No | 'character' (default) or 'bigram'. | |
| text | Yes | Text to analyse. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It conveys only that this is an analysis operation; there is no disclosure of the return shape, whether results are sorted, how ties are handled, or any input-size limits — the kind of detail needed for a tool with zero 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?
A single compact sentence with the scope constraint front-loaded and no filler. It is appropriately sized, though it is arguably too terse given the missing usage 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 simple, read-only, three-parameter analysis tool with no output schema, the description is minimally adequate. It omits return-value expectations (e.g., ranked frequency list capped by 'top') and any differentiation from the very similar char_frequency sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (text, mode, top) are already documented in the schema. The description restates the character/bigram mode without adding format or semantics beyond what the schema provides; 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 (analyse) and resource (character or bigram frequencies in text), which is clearer than most siblings. It implicitly distinguishes itself from wordfreq_analyse by naming character/bigram granularity, but it does not explicitly differentiate from the sibling char_frequency, which sounds nearly identical.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of alternatives such as char_frequency or wordfreq_analyse, and no stated constraints on input size. The agent must infer selection entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fruityvice_allARead-onlyIdempotent
List all fruits with nutrition facts from Fruityvice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a read-only, idempotent, open-world, non-destructive operation. The description adds that the source is Fruityvice and that nutrition facts are included, but it does not describe response size, pagination, rate limits, or other operational 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 a single front-loaded sentence with no wasted words. The core purpose and returned data type are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with rich safety annotations, the description is nearly sufficient: it names the source and the returned data. It could still be slightly more complete by indicating whether this returns the entire dataset or a paged/summarized list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so there are no parameter semantics to explain. The baseline score for a zero-parameter tool is 4, and the description does not create any ambiguity about 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 gives a specific verb and resource: 'List all fruits with nutrition facts.' That clearly distinguishes it from a targeted lookup like fruityvice_by_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 phrase 'List all fruits' implies the tool is for retrieving the full fruit dataset rather than querying one fruit. However, it does not explicitly state when to use this versus fruityvice_by_name or mention any exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fruityvice_by_nameARead-onlyIdempotent
Get detailed nutrition info for a specific fruit from Fruityvice.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Fruit name (e.g. banana, apple, strawberry). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds that the return is 'detailed nutrition info' from Fruityvice, but says nothing about error behavior (unknown fruit), auth, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb, resource, and source front-loaded. Zero 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 one-parameter read-only lookup with rich annotations and no output schema, the description gives enough to call it correctly. Minor gap is not describing behavior on unknown fruit names.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'name' parameter is fully documented with examples in the schema. The description adds nothing beyond 'specific fruit', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get detailed nutrition info for a specific fruit') and identifies the source (Fruityvice). It implicitly contrasts 'a specific fruit' with the sibling fruityvice_all, but does not name it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: it suggests use when you have a specific fruit name. There is no explicit when-to-use, when-not-to-use, or reference to fruityvice_all as the alternative for listing all fruits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fun_translateB
Translate text into fun dialects like Yoda, Pirate, Shakespeare, Minion, Dothraki, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to translate | |
| dialect | No | Dialect: yoda, pirate, shakespeare, minion, dothraki, valyrian, pig-latin, morse (default yoda) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the transformation itself: no statement on whether the call is read-only/side-effect free, whether it is deterministic, whether it hits a rate-limited external service, or how unsupported dialects or errors are handled. For a tool with zero annotation coverage this is a meaningful 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?
A single sentence, front-loaded with the action and resource, with the dialect examples doing the scoping work. 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 simple two-parameter transformation with a fully described schema and no output schema or annotations to reconcile, the description tells an agent enough to call it correctly. It could add a note on supported dialect behavior or output form, 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 both 'text' and 'dialect' (including the full option list and the default of yoda) are already documented in the schema. The description's only added signal is the 'etc.', which suggests additional dialects may exist beyond the schema list, a marginal but real contribution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Translate text into fun dialects') and immediately scopes it as playful via the dialect examples, which distinguishes it from real translation siblings like deepl_translate_text, libretranslate_translate, and mymemory_translate. It stops short of naming those siblings explicitly, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the casual phrasing signals this is for novelty/entertainment text transformation, and the dialect examples hint at appropriate inputs. There is no explicit when-to-use, when-not-to-use, or pointer to a real-translation alternative for non-novelty needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gabow_sccC
Find strongly connected components of a directed graph using Gabow's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Directed edges as [u, v] pairs | |
| vertex_count | Yes | Number of vertices (max 50,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It names the algorithm but omits output format, complexity implications, vertex numbering, and the max-vertex constraint (which is only in the schema). For a pure computation tool this is thin, though the algorithm name adds a little method 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?
A single, front-loaded sentence with no wasted words. It states the action, input, and algorithm 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?
Given the presence of two sibling SCC tools and no output schema, the description should describe the return shape (e.g., list of components) and when this implementation is preferable. It instead provides only a one-line algorithmic summary, leaving key context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no syntax or format details beyond what the schema already provides for 'edges' and 'vertex_count'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Find strongly connected components of a directed graph' and names the algorithm. It is clear on its own, but it does not distinguish itself from sibling SCC tools like tarjan_scc or kosaraju_scc, missing that sibling differentiation point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus the alternative SCC algorithms (tarjan_scc, kosaraju_scc). There are no exclusions, prerequisites, or context cues; the agent must infer selection solely from the algorithm name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_of_life_stepA
Run Conway's Game of Life simulation steps (local, no network).
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | Grid string with rows separated by newlines. '#' or '1' = alive, '.' or '0' = dead. | |
| steps | No | Number of simulation steps (default 1, max 20). | |
| width | No | Grid width for random generation (default 10, max 50). | |
| height | No | Grid height for random generation (default 10, max 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the important behavioral trait that the simulation is local with no network access, but it does not describe the return format, determinism, or any limits 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 a single, front-loaded sentence that conveys purpose and the key local/no-network constraint without any wasted words. It is appropriately sized for a simple computation 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 tool with four optional parameters, no output schema, and no annotations, the description is adequate but incomplete. It does not explain what the tool returns (e.g., the resulting grid) or how random generation vs. supplied grid input behaves, leaving gaps for 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?
Schema description coverage is 100%, so the input schema already documents all four parameters thoroughly. The description adds no parameter-level semantics beyond what the schema provides, which is 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 ('Run') and resource ('Conway's Game of Life simulation steps'), and adds the important qualifier 'local, no network'. This clearly distinguishes it from network-dependent siblings and leaves no 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 no when-to-use guidance, no conditions for selecting this tool over alternatives, and no prerequisites. 'Local, no network' is a context clue but does not tell an agent when this tool is appropriate versus other algorithm tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gaussian_eliminationA
Solve a system of linear equations via Gaussian elimination with partial pivoting.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | Augmented matrix rows [a1, a2, ..., an, b] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the method and partial pivoting, which implies numerical stability behavior, but does not state whether it returns a solution vector, handles singular matrices, or has any failure modes. Some behavioral context is given but incomplete.
Agents need to know what a tool does to the 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 sentence, front-loaded with the action and method, zero waste. 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 mathematical tool with no annotations and no output schema, the description is minimal. It does not cover return format, error conditions, or edge cases like non-square or singular matrices. Adequate but with clear 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 description coverage is 100%, so the schema already documents the matrix parameter including its format as an augmented matrix. The description adds no parameter-level detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Solve), specific resource (system of linear equations), and specific method (Gaussian elimination with partial pivoting). This distinguishes it from siblings like linear_solve, matrix_inverse, and matrix_operate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for solving linear systems, but gives no explicit when-to-use guidance, no exclusions, and does not name alternative tools like linear_solve that might overlap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gbif_occurrencesB
Search GBIF biodiversity occurrence records by species and/or country.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50). | |
| country | No | ISO 2-letter country code. | |
| species_key | No | GBIF taxon key to filter by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It doesn't state that this is a read-only query, doesn't mention the 50-result cap or pagination, and doesn't characterize the return shape. For a zero-annotation search tool this is a substantial 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?
A single front-loaded sentence with no filler. The resource and its filter axes are stated immediately; 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 simple search with no output schema and full parameter coverage this is minimally adequate, but it omits anything about result format, whether the two filters combine, or how it relates to sibling GBIF tools. No annotations mean those gaps are unfilled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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, country, species_key) are already documented with formats and ranges in the schema. The description only restates the species/country filtering intent without adding syntax or format detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('GBIF biodiversity occurrence records') and names the filter dimensions (species and/or country). This distinguishes it from siblings gbif_search_species and gbif_species_detail by operating on occurrence records rather than taxa. It lacks an explicit sibling callout but the resource noun is precise enough to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no prerequisites, and no mention of the sibling species tools that an agent would need to choose between. 'By species and/or country' implies the filter combinations but doesn't say when this tool is the right pick over gbif_search_species.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gbif_search_speciesBRead-onlyIdempotent
Search GBIF for biodiversity species by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50). | |
| query | Yes | Species name to search for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world and non-destructive, so safety and repeatability are covered and the bar is lower. The description adds only the name-matching scope; it says nothing about fuzzy matching, ranking, or how many/which taxa come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficiently sized, though its brevity borders on under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, annotation-rich, read-only name search with no output schema, the description covers what the tool does and what it matches on; an agent can invoke it correctly without more. Adding return-shape detail would be nice but is not required here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – the schema documents 'query' as the species name and 'limit' with default 10 / max 50. The description only restates that matching is by name, adding no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('GBIF biodiversity species') plus the matching key ('by name'), so the operation is clear. It stops short of differentiating from its sibling gbif_species_detail, leaving the search-vs-fetch-record distinction to be inferred from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus gbif_species_detail or gbif_occurrences, and no mention of what a search yields (taxon keys) or that those keys feed the detail tool. The agent must guess the pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gbif_species_detailARead-onlyIdempotent
Get full taxonomy details for a GBIF species by key.
| Name | Required | Description | Default |
|---|---|---|---|
| species_key | Yes | GBIF taxon key (numeric). |
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 that the return contains 'full taxonomy details,' which gives some output scope, but it does not disclose error behavior for invalid keys, rate limits, or completeness of taxonomic ranks.
Agents need to know what a tool does to the 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 with no wasted words. It communicates the operation, resource, and selector immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and no output schema, the description is nearly complete. It states the return scope ('full taxonomy details'), though it could briefly enumerate the taxonomic ranks returned to remove any 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%, and the single parameter is fully documented in the schema as a numeric GBIF taxon key. The description adds only 'by key,' which restates the schema rather than adding format examples or constraints. Baseline 3 is appropriate when the schema already does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a clear verb ('Get'), resource ('full taxonomy details for a GBIF species'), and lookup method ('by key'), which distinguishes it from gbif_search_species. It does not explicitly name the sibling or state that this is the key-based detail endpoint, so it falls short of a perfect 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?
Usage is only implied: 'by key' suggests this is appropriate when a GBIF taxon key is already known. There is no explicit guidance on when to use gbif_search_species instead, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcd_calculateBRead-onlyIdempotent
Compute the greatest common divisor (GCD) and least common multiple (LCM) of integers.
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | Array of integers (at least 2). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is fully covered. The description adds only that it computes two quantities at once; it says nothing about handling of negatives, zero, or how many values are 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?
One front-loaded sentence with no filler, appropriate for a simple two-output calculator. It is arguably over-terse rather than padded, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter pure function this is nearly adequate, but with no output schema the description never says the result contains both a GCD and an LCM field or what happens on invalid input. Minor gaps remain for an agent that needs to consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'numbers' parameter is already documented as an array of at least 2 integers. The description adds no format, ordering, or edge-case meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Compute) and two named resources (GCD and LCM) over integers, so intent is unmistakable. It does not differentiate itself from the near-identical sibling gcd_lcm_calc (or extended_gcd), which keeps it 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?
There is no statement of when to use this versus alternatives, and the sibling list contains gcd_lcm_calc, extended_gcd, and modular_arithmetic, which are plausible competitors. The only usage hint, 'of integers', is implicit in the title rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gcd_lcm_calcARead-onlyIdempotent
Calculate GCD and LCM of two or more integers.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | First integer. | |
| b | No | Second integer. | |
| numbers | No | Comma-separated integers (or use a and b). |
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 fully covered externally. The description adds no behavioral context such as how the two input forms interact, whether both GCD and LCM are returned, or edge-case handling (negatives, zero).
Agents need to know what a tool does to the 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 with no filler; the verb and resource lead immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description never says whether the result contains both GCD and LCM or how they are keyed. For a mathematical tool that computes two quantities, that return-value ambiguity is a meaningful gap even though the input side is fully 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% and the schema itself labels a, b, and the comma-separated numbers string, so the baseline is 3. The description only restates the input type ('integers') and adds no guidance on precedence when both a/b and numbers are supplied.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Calculate') and resource ('GCD and LCM'), and clarifies the input scope ('two or more integers'). It does not explicitly differentiate itself from the sibling gcd_calculate or extended_gcd, so an agent must infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the nature of a pure math utility; there is no statement of when to prefer this over gcd_calculate or lcm-related siblings, nor any note that a and b are alternatives to the numbers string.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_geo_eventsARead-onlyIdempotent
Get geographic distribution of news events for a topic from the GDELT GEO API. Returns event clusters with location, article count, and tone score.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Topic or keyword to map | |
| timespan | No | Time window (e.g. '24h', '7d') | |
| maxpoints | No | Max location clusters to return (default 50, max 250) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds the genuinely useful piece annotations cannot carry: the shape of the result (clusters with location, article count, tone score), which matters because there is no output schema. It stops short of noting result caps, data latency, or the 50/250 cluster 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 tight sentences with zero filler; the purpose leads and the return shape follows. Nothing is repeated and nothing is missing for 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 three-parameter, annotation-covered read tool with no output schema, the description covers what it does and what comes back. Minor gaps remain around result limits and freshness of the GEO data, but an agent can call this correctly from the description plus schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (query, timespan, maxpoints) is already documented in the schema. The description adds no syntax, default, or format detail beyond that, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (geographic distribution of news events) plus the backing API (GDELT GEO), which distinguishes it from sibling gdelt_news_search and gdelt_tone_analysis. It never names those siblings explicitly, so the differentiation is implicit rather than enforced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'for a topic' suggests mapping a keyword's coverage. There is no statement of when to prefer this over gdelt_news_search or gdelt_tone_analysis, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_news_searchBRead-onlyIdempotent
Search global news via the GDELT Project. Returns article titles, URLs, sources, dates, countries, and languages. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (keywords, phrases, or operators) | |
| maxrecords | No | Max articles to return (default 25, max 250) | |
| sourcelang | No | Filter by source language (e.g. 'english', 'spanish') | |
| enddatetime | No | End datetime YYYYMMDDHHMMSS (UTC) | |
| sourcecountry | No | Filter by source country code (e.g. 'US', 'GB', 'AU') | |
| startdatetime | No | Start datetime YYYYMMDDHHMMSS (UTC) |
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 that no API key is required and lists returned fields, but it does not disclose result ordering, rate limits, pagination behavior, or other operational details beyond annotations and 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 short sentences, front-loaded with the core purpose, followed by return fields and a useful constraint. There is no filler and every sentence adds something relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 rich annotations, 100% schema coverage, and no output schema, the description covers the core operation and return fields sufficiently for an agent to invoke it. Minor gaps remain around result ordering and when to choose this over sibling GDELT 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 all six parameters are already documented in the schema. The description adds no parameter-specific meaning, such as query syntax examples or date filter behavior, so it only meets the baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search global news via the GDELT Project, and lists the returned fields. It is clear what the tool does, but it does not distinguish itself from GDELT siblings such as gdelt_tone_analysis, gdelt_geo_events, or gdelt_trending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no explicit guidance on when to use this tool versus alternatives, no exclusions, and no mention of use cases beyond generic news search. The only contextual note is that no API key is required, which is useful but not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_tone_analysisA
Analyse the sentiment and tone of global news coverage for a topic over time. Returns average tone scores (negative = negative coverage, positive = positive), trend summary, and timeline. Great for brand monitoring or tracking public sentiment.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Topic or keyword to analyse | |
| timespan | No | Time window (e.g. '24h', '7d', '1month') | |
| sourcelang | No | Filter by source language | |
| sourcecountry | No | Filter by source country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns 'average tone scores (negative = negative coverage, positive = positive), trend summary, and timeline,' which describes the output behavior. However, it lacks details on data source, limitations, or whether it is read-only. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose and output, followed by a use case. Every sentence earns its place; there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description adequately explains the return values (tone scores, trend summary, timeline). It could be improved by mentioning the output format (e.g., JSON) or data scope, but it is essentially complete for an agent to understand what the tool does.
Complex tools with many parameters or behaviors need more documentation. 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 four parameters with descriptions (100% coverage), so the baseline is 3. The tool description adds no extra meaning beyond suggesting the 'query' is a topic. It does not elaborate on the timespan, sourcelang, or sourcecountry parameters, so no additional value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Analyse the sentiment and tone of global news coverage for a topic over time.' It specifies the verb (analyse), resource (global news coverage), and output (average tone scores, trend summary, timeline). This distinguishes it from sibling GDELT tools like gdelt_geo_events and gdelt_news_search, which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 usage context: 'Great for brand monitoring or tracking public sentiment.' This implies when to use the tool. However, it does not explicitly mention alternative tools or state when not to use it, which would be helpful given the sibling GDELT tools. Still, the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_trendingARead-onlyIdempotent
Check whether a topic is trending in global news using GDELT article volume timelines. Returns a trend classification (surging, rising, stable, declining, fading) and volume data over time.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Topic or keyword to check | |
| timespan | No | Time window (e.g. '24h', '7d', '1month') | |
| sourcelang | No | Filter by source language |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds the output vocabulary (surging/rising/stable/declining/fading) and volume-over-time shape, but says nothing about data latency, coverage limits, or what happens with sparse 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?
Two sentences, zero filler, and the core purpose is front-loaded before the return-value detail. Nothing repeats the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states the classification categories and that volume time series is returned. However, it omits the default time window, the thresholds separating classifications, and the granularity of the volume series — details an agent needs to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query, timespan and sourcelang. The description adds no interpretation of parameters — notably no default timespan or how timespan interacts with the trend classification window.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Check whether a topic is trending in global news using GDELT article volume timelines') and enumerates the output classification. It is distinguishable from gdelt_tone_analysis and gdelt_news_search by focus on trend classification, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'check whether a topic is trending' suggests a yes/no trend question rather than a retrieval task. No explicit when-to-use-this-vs-gdelt_news_search or gdelt_tone_analysis guidance, and no stated prerequisites such as the freshness of GDELT data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genderize_nameC
Predict the gender of a person based on their first name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | First name to analyze | |
| country_id | No | ISO 3166-1 alpha-2 country code for localization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose that predictions are probabilistic, that a confidence/probability value or sample count is returned, or how ambiguous or non-Western names are handled — all essential for a statistical inference 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?
A single front-loaded sentence with no wasted words. It is efficiently structured, though its brevity comes at the cost of the guidance noted above.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description is the only place to learn what comes back (probability, count, gender) and how reliable the prediction is. It leaves those gaps open for a statistical-prediction 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 both parameters are documented in the schema, and the baseline is 3. The description mentions only the name input and adds nothing about what the country_id localization parameter does to results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Predict') and resource ('gender of a person') plus the input basis ('first name'), so the capability is clear. However, the sibling 'genderize_predict' appears to do the same thing, and the description makes no attempt to distinguish itself from 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?
No guidance on when to use this versus the near-identical sibling 'genderize_predict', nor any mention of prerequisites or limits. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genderize_predictB
Predict gender from a first name with probability score.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | First name to predict gender for. | |
| country_id | No | ISO 3166-1 alpha-2 country code for localized prediction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the result includes a probability score, which is useful output context, but it does not state that the operation is read-only, nor does it describe confidence interpretation, rate limits, or error behavior. For a simple prediction tool 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, front-loaded sentence with no redundant or filler content. It communicates the core action and the key return detail compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, two-parameter prediction tool with full schema coverage and no output schema, the description is nearly complete. It says what is predicted and that a probability score is returned, though it does not explain the output shape further or provide usage routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 the required name parameter and optional country_id are fully documented in the schema. The description adds no parameter-level meaning beyond what the schema already says, which matches the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (predict gender) on a specific resource (a first name) and even mentions the output includes a probability score. It does not, however, distinguish itself from the sibling tool genderize_name or other prediction siblings, so an agent may need to inspect the schema to be sure which to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of alternatives such as genderize_name, and no prerequisites or exclusions. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genius_artist_songsC
Get songs by an artist on Genius.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits such as authentication requirements (api_key), pagination (per_page), and what constitutes a valid artist ID. It only states the basic operation, omitting crucial details for safe invocation.
Agents need to know what a tool does to the world before calling 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, which is concise. However, it is too terse and lacks the structural elements (e.g., parameter explanations) expected for a tool with 3 parameters and no schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameter count (3), no output schema, and diverse sibling tools, the description is woefully incomplete. It does not cover authentication, pagination, or the nature of the response, making it hard for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to any of the three parameters. 'id', 'per_page', and 'api_key' are not explained, leaving the agent to guess their purpose and format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Get), resource (songs by an artist), and platform (Genius). It implies a list of songs for a given artist, distinguishing from sibling tools like genius_get_artist (artist details) and genius_get_song (single song). However, it doesn't explicitly differentiate from these or from genius_search, which also returns songs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like genius_search or genius_get_song. Lacks any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genius_get_artistCRead-onlyIdempotent
Get a Genius artist by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
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 nothing beyond that: no behavior on an unknown ID, no note about the api_key parameter, no rate-limit or auth context despite openWorldHint=true.
Agents need to know what a tool does to the 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 short sentence with the resource and key front-loaded and zero filler. Brevity is fine, though it shades into under-specification rather than being genuinely economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and has no output schema, but with 0% schema coverage and an undocumented api_key parameter, the description leaves an agent without enough information to invoke it confidently in this large toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. 'By ID' partially explains the id parameter's meaning, but the undocumented api_key string parameter is left entirely unexplained — the agent cannot tell whether it is required, optional, or how to source 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?
States a specific verb ('Get') and resource ('Genius artist') plus the lookup key (by ID), so the operation is unambiguous. It does not differentiate from nearby siblings such as genius_search, genius_get_song, or genius_artist_songs, 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?
No indication of when to prefer this over genius_search or genius_artist_songs, and no prerequisite stated (e.g., that you must already have a numeric Genius artist ID from a search). The agent must infer that a prior lookup is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genius_get_songCRead-onlyIdempotent
Get a Genius song by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered without the description. The description adds nothing beyond them - no note on what happens with an invalid or missing ID, error behavior, or that the call proxies an external API.
Agents need to know what a tool does to the 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 short sentence with no filler, which is appropriately sized for a trivial lookup. However, the brevity is under-specification rather than economy: it front-loads nothing about ID format or the key parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema, the description should at minimum clarify the ID format and the role of api_key. Annotations cover the safety traits, but the parameter story is incomplete in both schema 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 0% with two parameters. The description only implies that "id" identifies a song, without stating its type or format, and never mentions the api_key parameter at all, so it fails to compensate for the coverage 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?
States a specific verb and resource ("Get a Genius song by ID"), so the agent knows it retrieves one song. It does not distinguish this from the close siblings genius_search, genius_get_artist, or genius_artist_songs, so the agent must infer that this requires a known song 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?
"by ID" weakly implies the caller must already have an identifier, which is a hint that genius_search is the right tool otherwise, but that alternative is never named. There is no explicit when-to-use, when-not-to-use, or prerequisite statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genius_searchCRead-onlyIdempotent
Search Genius for songs and lyrics.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| api_key | No |
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 fully covered by structured data. The description adds nothing further: no rate limits, no note on whether an api_key is required or how it is used, and no indication of result shape or size.
Agents need to know what a tool does to the 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 with no waste. It is brief and scannable, though the brevity stems partly from under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% parameter documentation, the description must carry more weight than one sentence. There is no guidance on what a result contains, how to build the query, or how the optional api_key affects behavior, leaving the agent guessing on a two-parameter open-world search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters. The description implies q is a free-text query via 'Search ... for songs and lyrics' but never explains query syntax (song title vs lyric phrase vs artist), and the api_key parameter is entirely unaddressed in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain 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 (Genius) plus the target content (songs and lyrics), so the agent knows exactly what it fetches. However, it never distinguishes itself from nearby siblings such as genius_get_song, genius_get_artist_songs, or lyrics_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?
There is no when-to-use guidance and no mention of alternatives. The agent must infer that this is the discovery step that precedes genius_get_song, and nothing tells it when a direct lookup or lyrics_get would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geojs_lookupARead-onlyIdempotent
Get IP geolocation (country, region, city, lat/lon) from GeoJS. Omit IP for self-lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address (optional, defaults to caller IP). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds useful substance in listing the returned fields and the self-lookup fallback, but says nothing about rate limits, error/failed-lookup behavior, or accuracy limits of GeoJS.
Agents need to know what a tool does to the 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 the core action and the return fields front-loaded, and the omitted-parameter case handled second. No waste, though it is prose rather than structured and does not take advantage of the space saved to add differentiation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 utility with full annotation coverage and no output schema, the description is nearly sufficient: it names the source, the fields returned, and the default behavior. Only the absence of disambiguation from similar siblings and of failure-mode notes leaves 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?
There is a single optional parameter and schema coverage is 100%, so the schema already documents it fully; the description merely restates the default ('Omit IP for self-lookup'). Baseline 3 applies when the schema carries the 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?
States a specific verb and resource ('Get IP geolocation') and lists the fields returned (country, region, city, lat/lon), so the agent knows exactly what it yields. It does not, however, distinguish itself from the many sibling IP-lookup tools in the catalog (ipinfo_lookup, ip_lookup, ip_address_lookup, country_by_ip, ipify_get_ip), which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Omit IP for self-lookup' is a usable cue for the optional-parameter case, but it is a parameter hint rather than when-to-use guidance. With several near-identical IP lookup siblings, the agent gets no direction on when to prefer geojs_lookup over ipinfo_lookup or country_by_ip.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geometric_seriesA
Calculate finite and infinite sums of a geometric series: a, ar, ar^2, ...
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First term. | |
| n | Yes | Number of terms (1-1000). | |
| r | Yes | Common ratio. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It does not disclose what happens for divergent infinite series (|r| >= 1), whether n is ignored when summing infinitely, or what the response contains. For a math tool with no annotations and no output schema, this is a significant 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?
A single efficient sentence that front-loads the verb and scope and packs the series formula inline. 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?
With 3 required parameters, full schema coverage, no annotations, and no output schema, the description is minimally adequate. It omits the divergent/infinite-case behavior and edge conditions (n bounds, |r| threshold), which an agent would need to call the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (a=first term, r=common ratio, n=number of terms 1-1000) is documented in the schema. The description adds the series formula but no parameter syntax or format details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (finite and infinite sums of a geometric series), and even spells out the series form 'a, ar, ar^2, ...'. This is unambiguous and distinguishes it from siblings like harmonic_series or fibonacci_sequence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'finite and infinite sums' implies the n parameter governs which mode applies, but the description never states when to use finite vs infinite, nor how n behaves for the infinite case (e.g., whether n is ignored when |r|<1). Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geopass_runARead-only
Run GEOPass against a public URL. Returns a live-readonly AI answer-engine readiness receipt covering answer extractability, entity clarity, citation/sourceability, freshness cues, content structure, llms.txt, and AI bot visibility. GEOPass reports readiness only and does not guarantee rankings or citations.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Target public http(s) URL for a one-off GEOPass read-only run | |
| checks | No | Optional GEOPass check ids. Defaults to the public-safe live checklist. | |
| target_sha | No | Optional PR or commit SHA for receipt staleness checks. | |
| target_url | No | Alias for url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful behavior beyond that: it explains the receipt is 'live-readonly' and explicitly states 'does not guarantee rankings or citations,' which clarifies the tool's non-authoritative 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?
Two sentences, front-loaded with the action and resource, followed by a useful capability enumeration and a scope disclaimer. Slightly list-heavy but 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 analysis tool with full annotation coverage and a complete schema, the description covers purpose, behavior, and output nature well. It doesn't describe pagination or response format, but there is no output schema and the receipt contents are enumerated, 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 description coverage is 100%, so the schema already documents all four parameters including the url alias and target_sha staleness checks. The description only adds the public-URL scoping constraint, which is already implied by the schema. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Run GEOPass against a public URL') and enumerates the exact receipt dimensions it produces. This clearly distinguishes it from the similarly-named geopass_status 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?
Implies a one-off live-readonly readiness run, but gives no explicit when-to-use vs. geopass_status, no prerequisites, and no exclusions (e.g., that it only works on public http(s) URLs is buried in the parameter schema, not the description).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geopass_statusARead-onlyIdempotent
Fetch the stored in-session GEOPass report and geopass_receipt_v1 envelope for a run started through geopass_run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The GEOPass run id returned by geopass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint and the absence of destructive or open-world behavior, so the safety profile is covered. The description adds real behavioral context beyond that: the data is session-scoped ('stored in-session') and the return payload is a report plus a geopass_receipt_v1 envelope, which is valuable given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence that names the action, the two returned artifacts, and the run lineage, with the key scoping term ('in-session') front-loaded. 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 getter with full parameter documentation and complete safety annotations, this covers what an agent needs: what it fetches and where the run came from. It stops short of describing failure behavior (e.g., run not found or expired session), which is the only remaining 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 the single run_id parameter is already documented as 'the GEOPass run id returned by geopass_run.' The description adds no format, lookup, or validation detail 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?
States a specific verb (Fetch) plus the exact resources (the stored in-session GEOPass report and the geopass_receipt_v1 envelope). It explicitly ties itself to geopass_run as the run origin, so an agent can distinguish the 'start' tool from the 'retrieve result' tool 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 prerequisite is clear: this only applies to 'a run started through geopass_run,' which tells the agent it must call geopass_run first. There is no explicit when-not guidance, but for a paired run/status toolset 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.
get_asana_taskCRead-onlyIdempotent
Get full details of a single Asana task.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| task_gid | Yes | Task GID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — it does not say what 'full details' includes, whether related fields (projects, assignee, custom fields) are expanded, or how auth/api_key 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?
A single front-loaded sentence with no filler; appropriately sized for a simple lookup. It is efficient, though its brevity contributes to the missing sibling and parameter 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 simple read-only lookup with no output schema, the description plus annotations cover the basics, but it never describes what the returned 'details' contain or how it differs from search_asana_tasks. That omission is the main completeness gap for an agent deciding between Asana retrieval 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 coverage is only 50%: task_gid is described tautologically ('Task GID') and api_key has no description at all. The description mentions 'single task' but gives no guidance on GID format, where to obtain it, or how api_key relates to authentication, so it does not compensate for the 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?
States a specific verb and resource ('Get full details of a single Asana task'), so the operation is unambiguous. However, it does not distinguish itself from nearby siblings such as get-like lookups and search_asana_tasks/list_asana_tasks, so an agent must infer which one returns full task 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?
No statement of when to use this versus list_asana_tasks, search_asana_tasks, or update_asana_task. The reader must infer that a Task GID is needed and that search/list are the discovery alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendly_eventBRead-onlyIdempotent
Get details of a single Calendly scheduled event.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| event_uuid | Yes | Event UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds nothing beyond the structured fields: no auth requirement (an api_key param exists), no error behavior for unknown UUIDs, no scope of returned detail. Adequate but thin for a tool with an undocumented credential parameter.
Agents need to know what a tool does to the 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 front-loaded sentence with zero padding. It is efficient, though the brevity reflects a lack of content rather than disciplined compression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 this covers the core purpose, and the annotations handle safety. Missing what an agent needs in practice: how api_key is supplied and whether detail includes invitee/cancellation info. No output schema exists, so some return-shape guidance would have been useful.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50% and the description supplies no parameter information at all. The undocumented api_key parameter is left completely unexplained in both schema and description, so the description fails to compensate for the coverage 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?
States a specific verb+resource ('Get details of a single Calendly scheduled event'), which clearly distinguishes it from the list_* siblings by scope (single vs list). It does not name those siblings explicitly, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'single' implies this is the follow-up to list_calendly_events, but there is no explicit when-to-use, no mention that an event UUID must come from a listing first, and no alternatives named. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendly_userARead-onlyIdempotent
Get the authenticated Calendly user profile.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Calendly Personal Access Token (or set CALENDLY_API_KEY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, idempotent operation. The description adds useful authentication context by specifying that it returns the authenticated user's profile, though it does not describe rate limits or response fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, and the key qualifier "authenticated" is front-loaded. It is appropriately sized for a simple profile lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and fully described auth input, the description is sufficient. It could mention the profile fields returned, but the operation is otherwise 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?
The single api_key parameter is fully documented in the schema, including the environment-variable fallback. The description adds no parameter guidance beyond the schema, which is acceptable at 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?
States a specific verb and resource: get the authenticated Calendly user profile. This clearly distinguishes it from sibling tools such as list_calendly_event_types and get_calendly_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 "authenticated Calendly user profile" makes the intended context clear: retrieve the current user's own profile. It does not explicitly discuss alternatives or exclusions, but none are necessary for this narrow operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cve_detailCRead-onlyIdempotent
Get details for a specific CVE by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | e.g. CVE-2023-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety and idempotency profile is fully covered. The description adds nothing beyond that — no note on what 'details' contains, whether the call hits a live upstream source or a local cache, or what happens for an unknown CVE ID.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is efficient, though so terse that it leaves the reader with no orientation on result shape or error 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?
For a simple single-parameter read tool with full annotation coverage and no output schema, most of what an agent needs is inherited from structured fields. Still, the description never says what a 'detail' record includes (CVSS score, affected products, references) or what an invalid/unknown CVE ID yields, both of which matter for this open-world 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?
Only one parameter exists and schema description coverage is 100%, with the schema itself giving the format example 'CVE-2023-12345'. The description's 'by ID' adds nothing beyond the schema, so the baseline 3 for fully-covered schemas 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 (Get) and resource (details for a CVE) keyed by an identifier, so the operation is unambiguous. However, it does not differentiate itself from the sibling tools search_cve, get_recent_cves, or circl_cve_lookup, which an agent must disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus search_cve (lookup when you already have an ID) or circl_cve_lookup. The 'by ID' phrasing weakly implies you must already know the CVE ID, but no alternative or prerequisite is stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monday_boardBRead-onlyIdempotent
Get details of a specific Monday.com board including columns and groups.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| board_id | Yes | Board ID |
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 well covered. The description adds return-context by saying the result includes columns and groups, but it does not disclose authentication needs (api_key) or error behavior when the board is not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero wasted words. It immediately states what is retrieved and what the response contains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameters and no output schema, the description provides enough context about the returned data (columns and groups). It is slightly incomplete on usage guidance and parameter semantics, but annotations cover the safety profile and no output schema means return-value explanation is not mandatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 50%: board_id has a minimal description ('Board ID') and api_key is undocumented. The tool description adds no parameter-level meaning, such as board_id format or the role of api_key, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('board') and clarifies scope with 'specific Monday.com board including columns and groups.' The word 'specific' implicitly distinguishes it from list_monday_boards, but no sibling tool is explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives such as list_monday_boards for discovery or search_monday_items for item lookup; usage is only implied by the phrase 'specific board.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pinterest_boardBRead-onlyIdempotent
Get details of a specific Pinterest board.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| access_token | No |
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 fully covered; the description only restates that this is a retrieval. It adds no context on authentication needs (the access_token parameter), rate limits, or what happens when a board ID is invalid or private.
Agents need to know what a tool does to the 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 with zero filler. There is no redundancy or trailing caveat to trim; the issue is under-specification elsewhere, not verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is the only place an agent could learn what a board's 'details' include (name, description, owner, pin counts) and how to handle errors or private boards. With one of two parameters undocumented and no return-shape guidance, the definition is too thin for an open-world fetch 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 only 50%: board_id is documented solely as 'Board ID' and access_token has no description at all. The description offers no help here, leaving unclear whether board_id is a numeric ID, slug, or username-qualified path, and whether access_token is optional or required for private boards.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (Pinterest board) with the scope narrowed to a single board by 'specific', which implicitly separates it from list_pinterest_boards. It does not explicitly name a sibling or say what 'details' comprises, so an agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No sentence describes when to call this versus list_pinterest_boards, list_pinterest_pins, or get_pinterest_user, and no prerequisite (e.g., needing a board ID obtained elsewhere, or authentication) is stated. The get-vs-list distinction is left entirely to the reader's inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pinterest_userBRead-onlyIdempotent
Get the authenticated Pinterest user account info.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, openWorld=true, destructive=false, so the safety profile is well covered. The description adds that this targets the 'authenticated' account, but doesn't describe behavior when the token is missing/expired or what fields return. Modest added value over 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 efficient sentence with no waste, front-loading the verb and resource. It is slightly thin but appropriately sized for a simple read 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 single-object read with full safety annotations and no output schema needed, the description is close to adequate. However, it says nothing about the undocumented access_token or auth failure behavior, leaving 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?
One parameter (access_token) has 0% schema description coverage, and the description never mentions it or distinguishes the optional token from a required one (0 required). With low coverage the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('authenticated Pinterest user account info'), clearly a self-lookup against the authenticated account. It's distinct from siblings (which deal with boards/pins), though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'authenticated' implies usage is limited to the token's owner and requires credentials, so context is inferable. But there's no explicit when-to-use vs alternative or prerequisite statement, leaving it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_cvesBRead-onlyIdempotent
Get recently published CVEs from NVD.
| Name | Required | Description | Default |
|---|---|---|---|
| resultsPerPage | No |
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 the data source (NVD) and the recency scope, which is useful, but says nothing about what 'recent' means (a time window? a fixed-size default result set?), whether results are paginated (the schema has no page/cursor parameter), or roughly how many items come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is the right shape for a simple feed tool. It is arguably too terse rather than bloated — the brevity costs information rather than wasting 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 no-required-parameter tool there is no output schema and the description does not explain what 'recent' resolves to, how many results are returned by default, or how this relates to the other CVE tools in the catalog. An agent could call it and get results, but could not predict or control the scope of 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?
Only one optional parameter, resultsPerPage, exists and schema description coverage is 0%, so the description is the only place semantics could be added. It says nothing about the parameter's default, maximum, or accepted range, leaving the agent to guess when setting the page size.
Input schemas describe structure but not intent. Descriptions should explain 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 recently published CVEs') plus the source ('from NVD'), which is more than a restatement of the name. It does not, however, distinguish itself from the closely related siblings circl_cve_recent, search_cve, or get_cve_detail, so an agent cannot tell from the description alone which CVE tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance and no mention of any alternative. The 'recently published' phrase loosely implies a browsing/recent-feed use case as opposed to search_cve or get_cve_detail, but the agent must infer that, and the presence of circl_cve_recent (another recent-CVE tool from a different source) is left entirely unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runA
Call this tool when the user wants the status of a specific Crews run. Returns a ConversationalCard summarising stage progress, token usage, and any failure artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run_id returned by start_crew_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It implies a read operation but does not confirm safety, authentication needs, error handling for invalid run_id, or rate limits. This is insufficient for safe agentic use.
Agents need to know what a tool does to the 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: first specifies when to use, second details return content. No wasted words, front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool without output schema, the description covers purpose and return content adequately. Missing details like error responses, but overall sufficient given tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the run_id parameter fully described as 'The run_id returned by start_crew_run'. The description adds no extra meaning beyond this; 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 retrieves the status of a specific Crews run and lists what the response contains (stage progress, token usage, failure artifact). This differentiates it from siblings like start_crew_run (which initiates runs) and list_runs (which lists runs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when to call the tool but does not contrast it with alternatives like list_runs for retrieving status of multiple runs or start_crew_run for initiating. Without explicit guidance, an agent may misselect among related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_achievementsCRead-onlyIdempotent
Get achievements for a Steam user in a specific game.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | Yes | Steam App ID of the game | |
| api_key | No | ||
| steamid | Yes | Steam64 ID |
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 no behavioral context beyond that, such as authentication needs, rate limits, behavior for private profiles, or what the response contains.
Agents need to know what a tool does to the 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 with no filler. It is concise and immediately communicates the operation and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 this is minimally adequate: the required parameters are documented in the schema and annotations cover safety. However, with no output schema and an undocumented api_key, the description should say more about authentication needs or the shape of the returned achievements.
Complex tools with many parameters or behaviors need more documentation. 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 appid and steamid but leaves api_key undocumented (67% coverage). The description adds no meaning beyond the schema: it does not explain the api_key parameter, nor does it clarify formats or constraints beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: 'Get achievements for a Steam user in a specific game.' It distinguishes the tool from siblings like get_steam_owned_games or get_steam_app_details by focusing on achievements for a user-game pair, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternatives, nor does it state preconditions such as game ownership, profile visibility, or authentication requirements. Usage is only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_app_detailsA
Get store details for a Steam app (game info, price, platforms, Metacritic score).
| Name | Required | Description | Default |
|---|---|---|---|
| l | No | Language code (e.g. english) | |
| cc | No | Country code for pricing (e.g. us, au) | |
| appid | Yes | Steam App ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, data freshness, or error handling. It only lists return 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?
The description is a single sentence that conveys the core purpose without extraneous words. While concise, it could benefit from a structured list of return 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 simple tool with no output schema, the description covers the basic purpose and return types. However, it lacks details on error behavior, data sources, and what happens for invalid app 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 coverage is 100% with clear parameter descriptions. The tool description adds context by explaining the type of data returned (game info, price, platforms, Metacritic), which helps infer the role of optional parameters like cc and l.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Steam app', and lists specific details like game info, price, platforms, and Metacritic score. It distinguishes itself from sibling tools like get_steam_achievements and search_steam_store.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 explicitly state when to use this tool versus alternatives like search_steam_store. It implies usage for known app IDs, but lacks explicit guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_owned_gamesCRead-onlyIdempotent
Get games owned by a Steam user.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| steamid | Yes | Steam64 ID | |
| include_appinfo | No | Include game names (default true) | |
| include_played_free_games | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of pagination behavior, private-profile failures, rate limits, or whether an api_key changes results. For an external-API read tool this leaves meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It's appropriately sized for what it says, though the brevity reflects under-specification rather than disciplined economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, no output schema, and half the parameters undocumented, the description should clarify the api_key requirement, what the booleans toggle, and the profile-privacy caveat. None of that 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?
Schema coverage is 50%: steamid ('Steam64 ID') and include_appinfo are documented, but api_key and include_played_free_games are not. The description says only 'by a Steam user', adding no explanation of what the undocumented parameters do or how api_key affects the call, so it fails to compensate for the coverage 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?
States a specific verb and resource ('Get games owned by a Steam user'), so an agent knows exactly what data is returned. It doesn't explicitly differentiate itself from siblings like get_steam_player_summaries or get_steam_achievements, but the resource noun 'owned games' makes the distinction reasonably inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus get_steam_player_summaries, get_steam_achievements, or search_steam_store. No prerequisites mentioned, such as whether the profile must be public or whether an API key is needed for certain fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_player_summariesCRead-onlyIdempotent
Get Steam player profile summaries for one or more Steam IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Steam Web API key (or set STEAM_API_KEY) | |
| steamids | Yes | Comma-separated Steam64 IDs (up to 100) |
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 almost nothing beyond that—no note on auth requirements (the api_key parameter handles that), rate limits, response shape, or batch behavior 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 a single front-loaded sentence with no filler. It is efficient, though extremely terse for a tool with 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 simple read-only lookup with complete schema descriptions and full annotations, the definition is minimally adequate. However, with no output schema, the description could usefully say what a "profile summary" contains; that omission leaves a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both api_key and steamids, including the comma-separated format and 100-ID limit. The description only restates that one or more Steam IDs are accepted, which is baseline support rather than added semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ("Get") and resource ("Steam player profile summaries") scoped to one or more Steam IDs, which is clear enough for an agent to identify the operation. It does not explicitly distinguish itself from nearby siblings like get_steam_owned_games or get_steam_achievements, 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?
There is no guidance about when to use this tool versus alternatives such as get_steam_owned_games, get_steam_achievements, or get_steam_app_details. The phrase "for one or more Steam IDs" indicates scope but not selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tiktok_userARead-onlyIdempotent
Get the authenticated TikTok user profile (follower count, video count, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | TikTok OAuth access token (or set TIKTOK_ACCESS_TOKEN) |
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 meaningful detail that the profile belongs to the authenticated account (an auth requirement), but says nothing about return shape or token expiry/refresh 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?
A single front-loaded sentence stating verb, resource, and the returned fields with zero filler. Nothing here 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 single-parameter read of the current user's profile with full annotation coverage and full schema documentation, this is nearly complete. Only the absence of any mention of what to do if no token is configured keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema coverage is 100%, with the access_token documented including the TIKTOK_ACCESS_TOKEN env fallback. The description adds no parameter detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (Get) and resource (authenticated TikTok user profile) and enumerates what comes back (follower count, video count). It is distinguishable from get_tiktok_video/list_tiktok_videos by the 'authenticated user' scoping, though those siblings are never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'authenticated' implies a prerequisite, but there is no explicit when-to-use versus list_tiktok_videos or get_tiktok_video, and no statement of when this is not appropriate. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tiktok_videoBRead-onlyIdempotent
Get details of a specific TikTok video by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | TikTok video ID | |
| access_token | No |
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 fully covered. The description adds nothing beyond them — no rate limits, auth/access_token requirements, or error behavior for an open-world external call.
Agents need to know what a tool does to the 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 efficient sentence with the identifying constraint front-loaded and no filler. Slight penalty only because brevity here tips into under-specification rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-by-ID tool with no output schema, the agent knows the shape (a video object) but not which fields return, nor how the undocumented access_token parameter should be supplied. Adequate but with clear 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 only 50%: video_id is documented but access_token has no description anywhere, and the description does nothing to compensate. Saying 'by ID' merely restates the one parameter the schema already explains.
Input schemas describe structure but not intent. Descriptions should explain 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 details of a specific TikTok video') with an ID-based scope. It implicitly distinguishes itself from list_tiktok_videos by requiring a specific ID, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by ID' implies the prerequisite (an ID obtained elsewhere, presumably from list_tiktok_videos), but no when-to-use/when-not or named alternative is given. Usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_toilet_detailsBRead-onlyIdempotent
Get details for a specific public toilet by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| toilet_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and idempotency profile is fully covered. The description adds nothing beyond that — no note on what happens for an unknown ID (error vs empty result). A 3 reflects a minimal-value description against already-rich annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with no filler. It is efficient but perhaps too terse given the parameter gap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should say what 'details' are returned (accessibility, hours, location, etc.) and what happens on a missing ID. For a simple one-parameter lookup this is adequate to call the tool but leaves the agent guessing about the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single parameter, so the description must compensate; 'by ID' does clarify that toilet_id is an identifier rather than a name or coordinates, but nothing about its expected format or source. Minimal but not useless.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (details for a public toilet) and scopes it with 'by ID', so it is clearly a single-record lookup. It does not distinguish itself from the sibling find_nearest_toilets, which is presumably how an agent obtains the ID in the first place.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus find_nearest_toilets or any search tool, and no note that a valid toilet_id must first be obtained from another call. The usage context is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trademark_detailsCRead-onlyIdempotent
Get details for a specific Australian trademark.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| applicationNumber | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds only the jurisdictional scope ('Australian') and says nothing about whether an api_key is required, error behavior for unknown numbers, or what data comes back.
Agents need to know what a tool does to the 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 compact sentence with the resource front-loaded and no filler. It is efficient, though the terseness is part of why so much is left unspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should describe the returned detail set, and with 0% schema coverage it should also explain both parameters. Neither is present, leaving an agent unable to predict the response or the identifier format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning and does not: neither the format/expected shape of applicationNumber nor the role of api_key is explained. The one required identifier is the core of the call and is left undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 details') and resource ('Australian trademark') qualified by 'specific', implying lookup by identifier rather than search. It is distinguishable from search_trademarks in practice, but the description never names or contrasts with 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?
'For a specific ... trademark' implies the caller must already have an identifier, but there is no explicit when-to-use, no mention that search_trademarks should be used first to obtain an application number, and no preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ghibli_filmsARead-onlyIdempotent
List all Studio Ghibli films with directors and descriptions.
| 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, covering the safety profile. The description adds useful scope ('all') and return content ('directors and descriptions'), but it does not mention pagination, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence that states the action, resource, scope, and return fields with 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 no-parameter list tool with annotations and no output schema, the description is nearly complete. It conveys the key return fields, though it could optionally mention whether additional film metadata is included.
Complex tools with many parameters or behaviors need more documentation. 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. The description appropriately does not invent or discuss nonexistent 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, 'List', with a precise resource, 'all Studio Ghibli films', and states the included fields. It is clearly distinguishable from siblings like ghibli_people because it focuses on films rather than people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'List all' implies this is for retrieving the full catalog of Studio Ghibli films, which is straightforward for a no-parameter tool. However, it does not explicitly say when to use this versus alternatives or whether any exclusions apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ghibli_peopleBRead-onlyIdempotent
List characters from Studio Ghibli films.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds the 'Studio Ghibli films' scope but says nothing about whether the full roster is returned at once, ordering, or response shape — real gaps for a zero-parameter 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?
A single short sentence with the resource and scope front-loaded and no filler. Nothing could be removed 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 no output schema, the description is the only place to learn what a character record contains or whether the result is paginated or bounded. Neither is covered, though annotations handle the safety profile and the zero-param schema makes invocation unambiguous.
Complex tools with many parameters or behaviors need more documentation. 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 are zero parameters, so there is nothing for the description to document; the baseline for a no-parameter tool applies. The description correctly conveys that no filtering input is accepted, since the call is a plain list.
Input schemas describe structure but not intent. Descriptions should explain 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 ('characters from Studio Ghibli films'), so the agent knows exactly what it returns. It does not explicitly differentiate itself from the clearly related sibling ghibli_films, leaving that inference to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to use this versus alternatives; the closest sibling, ghibli_films, is never mentioned. The intended usage (a bulk character listing, not a search or detail lookup) is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ghost_list_pagesCRead-onlyIdempotent
List Ghost pages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Pages to return (max 100, default 15) | |
| site_url | Yes | Ghost site URL | |
| content_key | Yes | Ghost Content API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety is fully covered. The description adds nothing beyond that: no pagination behavior, no mention that content_key is required for the call to succeed, no note on what the response contains.
Agents need to know what a tool does to the 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 with zero waste and the resource front-loaded, but it is under-specified rather than efficient - there was room for a clause about scope or filtering at no cost to brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool requiring a site URL and Content API key, the description says nothing about auth prerequisites, pagination, or return shape (no output schema exists). Annotations and schema carry most of the load, but the definition is still thin for a real integration 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%, documenting limit (max 100, default 15), site_url, and content_key. The description adds no 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?
States a specific verb and resource ('List Ghost pages'), and the resource noun 'pages' distinguishes it from ghost_list_posts and ghost_list_tags by name. It doesn't explicitly call out the sibling relationship, but an agent can tell what it returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no mention of the alternative ghost_list_posts or pagination behavior. The agent must infer everything 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.
ghost_list_postsBRead-onlyIdempotent
List published Ghost posts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Posts to return (max 100, default 15) | |
| filter | No | Ghost filter (e.g. tag:news) | |
| site_url | Yes | Ghost site URL | |
| content_key | Yes | Ghost Content API key |
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 word 'published' adds real value by implying drafts are never returned, but nothing is said about pagination limits or how filtering behaves across pages.
Agents need to know what a tool does to the 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 with zero filler; the scope qualifier 'published' comes before any noun the agent might misread. Nothing redundant is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and safety annotations, the core is covered. The gaps are the absence of sibling differentiation and any hint about result volume/paging behavior given the default limit of 15.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit (max 100, default 15), filter syntax example, site_url and content_key all documented in the schema. The description adds no parameter meaning beyond that, 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?
States a specific verb and resource ('List ... Ghost posts') plus a scope qualifier ('published'), so the agent knows drafts are excluded. However, it does not distinguish itself from siblings such as ghost_list_pages or ghost_list_tags, which an agent could easily confuse with a post listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus ghost_list_pages, ghost_list_tags, or the similarly named wordpress_list_posts / jp_list_posts siblings. No prerequisites (e.g., that a Content API key is required rather than an Admin key) are mentioned either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ghost_list_tagsBRead-onlyIdempotent
List Ghost tags.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Tags to return (max 100, default 50) | |
| site_url | Yes | Ghost site URL | |
| content_key | Yes | Ghost Content API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds no behavioral context beyond that, such as pagination behavior, authentication expectations, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or repetition. It is maximally concise, even if that concision leaves other dimensions under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with fully documented parameters and rich safety annotations, the definition is minimally sufficient to invoke the tool. However, the description does not clarify return shape, pagination expectations, or how this fits alongside the other Ghost listing 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 site_url, content_key, and limit are already documented in the schema. The description adds no parameter meaning beyond what the schema provides, which is acceptable but not value-adding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: list Ghost tags. That clearly separates it from sibling resources such as ghost_list_pages and ghost_list_posts, though it does not state scope or special filtering 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?
It gives no guidance about when to use this tool, when to prefer alternatives, or what prerequisites apply. The intended use is only implied by the word 'List' and the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
giphy_randomARead-onlyIdempotent
Get a random GIF from Giphy, optionally by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional tag to match | |
| rating | No | Content rating cap | |
| api_key | Yes | Giphy API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, open-world and idempotent behavior, so the description only needs to add context. It adds the 'random' selection behavior, but leaves out practical details such as result variability, rating filtering effects, or response shape; note also that 'random' sits in mild tension with idempotentHint=true, which the description does not address.
Agents need to know what a tool does to the 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 with zero filler. Everything stated is relevant and nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 media lookup with full schema coverage and annotations covering the safety profile, this is nearly complete. The only gap is the absence of any hint about how it differs from giphy_search and giphy_trending in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 tag, rating, and api_key, making 3 the baseline. The description only echoes the tag parameter and says nothing about the rating cap or the required API key, so 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 states a specific verb ('Get') and resource ('a random GIF from Giphy'), so the purpose is unambiguous. Compared with siblings giphy_search and giphy_trending, 'random' implicitly distinguishes it, though the description never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'optionally by tag' implies the two main usage modes (unfiltered random vs. tag-scoped random), which is useful. However, there is no guidance on when to choose this over giphy_search or giphy_trending, and no exclusions or prerequiory notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
giphy_searchCRead-onlyIdempotent
Search Giphy for GIFs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | GIFs to return (max 50, default 10) | |
| query | Yes | What GIF to search for | |
| rating | No | Content rating cap | |
| api_key | Yes | Giphy API key |
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 and idempotency profile is fully covered. The description adds no behavioral context beyond them—nothing about rate limits, API-key requirements, or result paging. With annotations carrying the load, silence earns a low score rather than a 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?
A single front-loaded sentence with zero waste. It is efficient, though terse to the point of under-specification, which is penalized elsewhere rather than here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with full schema coverage and rich annotations, the description is barely sufficient. It omits the one thing structured fields cannot convey: how this search tool relates to giphy_trending and giphy_random.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit, query, rating, and api_key all documented in the schema. The description adds nothing 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 names a specific verb ('Search') and resource ('Giphy ... GIFs'), so the agent knows exactly what it does. It does not distinguish itself from the sibling giphy_trending or giphy_random tools, which are the closest 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 no guidance on when to use this over giphy_trending (browse popular) or giphy_random (get a random GIF). The word 'Search' implies a query is required, but that inference comes from the tool name and schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
giphy_trendingBRead-onlyIdempotent
Get trending GIFs from Giphy.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | GIFs to return (max 50, default 10) | |
| rating | No | Content rating cap | |
| api_key | Yes | Giphy API key |
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 fully covered. The description adds no behavioral context beyond that — nothing about rate limits, API-key failure behavior, or whether trending results are region-scoped — so it contributes little beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with zero filler. There is nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only list tool with full schema documentation and complete annotation coverage, so the description is nearly sufficient as-is. The only missing piece an agent might want is whether results are a flat list and how paging/top-N behavior works, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: limit carries its max 50 and default 10, rating carries its enum, and api_key is described. The description adds nothing about parameter behavior (e.g. that limit caps at 50 or that rating filters results), 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 pairs a specific verb ("Get") with a specific resource ("trending GIFs") and names the provider. It is clear on its own, though it never explicitly contrasts itself with the sibling tools giphy_search and giphy_random; the distinction is inferable from the word "trending" but not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer "use this when you want currently trending GIFs rather than a search term." There is no explicit when-to-use, no exclusion, and no mention of giphy_search or giphy_random as alternatives, so it stops short of the 4-5 tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea_actionA
Interact with the self-hosted Gitea forge REST API: read repos, branches, files, and commits, read Forge Actions runs, jobs, and job logs (to find why a check failed), create branches, single-file commits, and literal find/replace edits to part of a file, open/read/merge/close pull requests, comment, manage issues, and manage push mirrors so the forge owns downstream syncs (for example a calm scheduled mirror to GitHub). To run a few test files on a branch without waiting on full CI: create_test_run(owner, repo, ref, files) dispatches .gitea/workflows/quick-test.yml and returns its run id (each dispatch gets its own request_id, even when you pass one as a label, so concurrent runs never get mixed up). Then get_test_results(owner, repo, run_id) polls status, conclusion, and the last 80 log lines; pass request_id instead of run_id if create_test_run reported the run was not visible yet.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit for get_file, get_commit_status, or create_test_run (the branch/sha to check out and test). | |
| sha | No | Commit SHA for get_commit. | |
| base | No | Pull request base branch. | |
| body | No | Issue, pull request, or comment body text. | |
| head | No | Pull request head branch. | |
| page | No | Page number. | |
| path | No | Repo-relative file path for get_file, upsert_file, and write_file_edits. | |
| repo | No | Repository name. | |
| edits | No | write_file_edits: 1 to 50 { find, replace } edits, applied in order as literal text (never a regex; a "$" in replace is inserted literally). Each find is matched against the file as last read (after any earlier edits in this same call already applied) and must match exactly once, or the whole call is refused before anything is written. | |
| files | No | create_test_run: test file paths to run, as an array or a space-separated string (each *.test.ts, *.test.tsx or *.test.mjs; at most 20). | |
| index | No | Issue or pull request number (Gitea's own field name). Synonym for issue_number/pull_number/number on comment_issue_or_pr, merge_pull_request, close_pull_request, get_pull_request, and get_pull_request_files. | |
| limit | No | list_action_runs (or list_workflow_runs): runs to return (default 20, max 50). | |
| owner | No | Repository owner login. | |
| query | No | Search query string (for search_repos). | |
| state | No | Filter by state: open, closed, all. | |
| title | No | Issue or pull request title. | |
| action | Yes | Action: get_version, search_repos, get_repo, list_branches, create_branch, get_file, get_commit_status, get_commit, list_action_runs, list_workflow_runs (alias of list_action_runs), list_run_jobs, get_job_log, create_test_run (dispatch quick-test.yml on a branch), get_test_results (poll a create_test_run run), upsert_file (replace a whole file's contents), write_file_edits (change part of a file: 1-50 literal find/replace edits, each find must match exactly once; aliases patch_file, replace_in_file, str_replace), list_issues, create_issue, comment_issue_or_pr, comment (alias of comment_issue_or_pr), list_prs, get_pull_request, get_pull_request_files, create_pr (alias of create_pull_request), create_pull_request, merge_pull_request, close_pull_request, get_user, list_push_mirrors, add_push_mirror, delete_push_mirror, sync_push_mirrors. | |
| branch | No | Target branch for branch creation, upsert_file, or pull requests; list_action_runs branch filter. Required for write_file_edits. | |
| job_id | No | get_job_log: Forge Actions job id (from list_run_jobs). | |
| number | No | Issue or pull request number fallback. | |
| run_id | No | list_run_jobs, get_test_results: Forge Actions run id (from list_action_runs or create_test_run). | |
| status | No | list_action_runs (or list_workflow_runs): filter runs by status, for example queued, in_progress, success, failure. | |
| api_key | No | Gitea token fallback. Saved UnClick Gitea login is preferred when omitted. | |
| comment | No | Comment body fallback for comment_issue_or_pr. | |
| content | No | UTF-8 file content for upsert_file (replaces the whole file). | |
| message | No | Commit message for upsert_file or write_file_edits. | |
| base_url | No | Forge base URL, for example https://git.unclick.world or http://localhost:3300. Saved UnClick Gitea login or GITEA_BASE_URL is used when omitted. | |
| end_line | No | get_file: last line to return (inclusive). Omit for end of file; the byte cap may trim earlier (truncated: true + next_start_line). | |
| head_sha | No | list_action_runs (or list_workflow_runs): only runs for this commit sha. | |
| interval | No | Push mirror sync interval, for example 1h0m0s. Defaults to 8h0m0s. | |
| per_page | No | Results per page (max 50). | |
| username | No | Gitea username (for get_user). | |
| max_bytes | No | get_file: response size cap in bytes (default 10000, clamped 256-100000). Slices always end on whole lines. | |
| expect_sha | No | write_file_edits: optional. Refuse with no write if the file's current sha does not match this (the sha the seat last read the file at). | |
| new_branch | No | New branch name for create_branch, or the branch upsert_file should create. | |
| request_id | No | create_test_run: optional label for this run; the tool always adds a unique suffix (or makes a random UUID when omitted) and returns the full request_id, so a reused label never matches an older run. get_test_results: the full request_id create_test_run returned, as an alternative to run_id, for polling a run that was not visible yet right after dispatch. | |
| start_line | No | get_file: first line to return (1-based, default 1). Every response reports total_lines, total_bytes, truncated, and next_start_line so you can walk a big file in slices. | |
| tail_lines | No | get_job_log: trailing log lines to return (default 200, max 2000). Output is capped near 60,000 characters and secrets are redacted. | |
| base_branch | No | Base branch for create_branch or pull requests. Defaults to main. | |
| errors_only | No | get_job_log: return only the matched error lines (no tail). Defaults to false. | |
| mirror_name | No | Mirror remote_name for delete_push_mirror (from list_push_mirrors). | |
| pull_number | No | Pull request number for comment_issue_or_pr, merge_pull_request, close_pull_request, get_pull_request, or get_pull_request_files. | |
| access_token | No | Gitea access token. Saved UnClick Gitea login is used when this is omitted. | |
| commit_title | No | Merge commit title. | |
| issue_number | No | Issue number for comment_issue_or_pr. | |
| merge_method | No | Merge method: merge, squash, rebase, or rebase-merge. Defaults to squash. | |
| delete_branch | No | Delete the head branch after merging. Defaults to false. | |
| commit_message | No | Merge commit message. | |
| remote_address | No | Downstream clone URL for add_push_mirror, for example https://github.com/owner/repo.git. | |
| sync_on_commit | No | Sync the push mirror on every commit. Defaults to false to keep downstream activity calm. | |
| remote_password | No | Token or password for the push mirror remote. | |
| remote_username | No | Username for the push mirror remote. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose useful operational traits: every create_test_run dispatch gets a unique request_id suffix so concurrent runs never collide, and get_test_results returns status, conclusion, and the last 80 log lines. However, for a tool that merges PRs, deletes mirrors, and writes files, it says nothing about auth requirements, permission scopes, whether destructive actions are reversible, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The second paragraph is tight and front-loads the test workflow with a clear purpose. The first paragraph is a long, comma-chained enumeration that substantially duplicates the action enum's own description, so a meaningful share of the text is redundant rather than additive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a 52-parameter dispatcher with no output schema and no annotations, the description covers the highest-friction flow (test dispatch/polling) well and states the overall scope. It leaves gaps an agent would care about: which parameters pair with which actions outside the test path, return shapes for read operations, and the consequences of the mutating actions (merge, close, delete_push_mirror). The rich schema compensates partially, but not fully.
Complex tools with many parameters or behaviors need more documentation. Simple 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 cross-parameter guidance the schema cannot: it shows the create_test_run(owner, repo, ref, files) call shape and the get_test_results(owner, repo, run_id) counterpart, and explains the run_id vs request_id substitution. This ties otherwise-scattered parameters into a usable workflow, though it does not clarify parameter applicability for the remaining actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Interact with the self-hosted Gitea forge REST API') and enumerates the concrete capability groups (repos, branches, files, commits, Forge Actions runs/jobs/logs, branches/commits, PRs, issues, push mirrors). The 'self-hosted Gitea' qualifier distinguishes it from sibling GitHub/GitLab/Bitbucket tools, so an agent can tell what this tool addresses 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?
It gives explicit when-to-use guidance for one sub-flow: create_test_run plus get_test_results is for running a few test files without waiting on full CI, and it explains passing request_id when a run is not yet visible. It also justifies push mirrors as the mechanism for downstream sync. But it offers no when/when-not guidance or alternatives for the 30+ other actions, leaving most selection to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_actionC
Interact with the GitHub REST API: search/read repos, create branches and commits, open PRs, comment, merge, and read workflow checks.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Commit SHA, branch, or tag for list_checks. | |
| base | No | Pull request base branch. | |
| body | No | Issue, pull request, or comment body text. | |
| head | No | Pull request head branch. | |
| page | No | Page number. | |
| repo | No | Repository name. | |
| draft | No | Create a draft pull request. | |
| files | No | Files for push_files: { path, content, encoding? } entries. | |
| force | No | Force-update the branch ref during push_files. Defaults to false. | |
| owner | No | Repository owner login. | |
| query | No | Search query string (for search_repos and search_code). | |
| state | No | Filter by state: open, closed, all. | |
| title | No | Issue or pull request title. | |
| action | Yes | Action: search_repos, get_repo, list_issues, create_issue, list_prs, get_user, list_gists, search_code, create_branch, push_files, create_pull_request, comment_issue_or_pr, merge_pull_request, close_pull_request, list_checks. | |
| branch | No | Target branch for branch creation, file pushes, pull requests, or checks. | |
| labels | No | Comma-separated label names to filter by. | |
| number | No | Issue or pull request number fallback. | |
| status | No | Filter list_checks by status. | |
| api_key | No | GitHub token fallback. Saved UnClick GitHub login is preferred when omitted. | |
| comment | No | Comment body fallback for comment_issue_or_pr. | |
| message | No | Commit message for push_files. | |
| per_page | No | Results per page (max 100). | |
| username | No | GitHub username (for get_user and list_gists). | |
| deletions | No | File paths to delete during push_files. | |
| check_name | No | Filter list_checks by check name. | |
| new_branch | No | New branch name for create_branch. | |
| base_branch | No | Base branch for create_branch, push_files branch creation, or pull requests. | |
| pull_number | No | Pull request number for comment_issue_or_pr or merge_pull_request. | |
| access_token | No | GitHub personal access token (PAT). Saved UnClick GitHub login is used when this is omitted. | |
| commit_title | No | Merge commit title. | |
| issue_number | No | Issue number for comment_issue_or_pr. | |
| merge_method | No | Merge method: merge, squash, or rebase. Defaults to squash. | |
| commit_message | No | Merge commit message. | |
| expected_head_sha | No | Optional safety check: fail if the branch head has moved. | |
| maintainer_can_modify | No | Allow maintainers to modify the pull request branch. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and largely fails it. It does not disclose auth requirements (the schema's api_key/access_token fallback to a saved UnClick login), rate limits, or which of the enumerated actions are destructive (merge_pull_request, close_pull_request are write operations with real consequences). It implies read and write capabilities coexist but gives no safety 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?
A single front-loaded sentence with no wasted words; the capability list is dense but efficient. It is appropriately sized for a name/description slot, though it could have used the saved space to communicate usage rather than only capability breadth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dispatcher with 15 actions, 35 parameters, no annotations, and no output schema, the description is thin. It does not map actions to required arguments, does not flag which actions mutate state, and does not cover authentication behavior, leaving the agent to reconstruct all of this from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 35 parameters (including the action enum and its 15 values) are already documented in the schema. The description adds no per-action parameter mapping or syntax detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Interact with the GitHub REST API') and enumerates capability groups (search/read repos, create branches/commits, open PRs, comment, merge, read checks). This makes the tool's scope clear, though it never contrasts itself with the nearly identical gitea_action or gitlab_action siblings, so it stops short of the sibling-differentiating bar for 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?
There is no when-to-use guidance and no when-not-to-use guidance. Nothing tells the agent how to choose between this tool and gitea_action/gitlab_action, nor which 'action' value fits a given intent, nor any prerequisite conditions. The description is purely a capability list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_emojisA
List all GitHub emojis with their image URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the return content ('with their image URLs'), which tells the agent this is a read-only enumeration rather than a lookup by name, but it says nothing about result size, whether it is static/cached, or whether an image URL is always present.
Agents need to know what a tool does to the 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 with no filler. Every word earns its place: verb, resource, scope (all), and payload (image URLs).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should hint at the return shape, and 'with their image URLs' partially does. For a zero-parameter, zero-risk enumeration this is close to sufficient; a brief note on result size or output key names would make it 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 tool takes zero parameters, so the schema has no semantics to explain and the baseline is 4. Nothing in the description conflicts with the empty parameter object.
Input schemas describe structure but not intent. Descriptions should explain 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 (GitHub emojis) plus what comes back (image URLs). It is distinguishable in substance from siblings like emoji_lookup or emojihub_* because it names GitHub specifically, but it never explicitly contrasts itself with 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?
No when-to-use, when-not-to-use, or alternative named. With three other emoji tools in the sibling list (emoji_lookup, emojihub_by_category, emojihub_random), an agent gets no signal about which to pick for a given emoji need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab_actionA
Interact with the GitLab REST API: search projects, get project details, list issues and merge requests, and look up users. Supports self-hosted GitLab instances.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| query | No | Search query string (for search_projects). | |
| state | No | Filter by state: opened, closed, merged. | |
| action | Yes | Action: search_projects, get_project, list_issues, list_mrs, get_user. | |
| labels | No | Comma-separated label names to filter by. | |
| base_url | No | GitLab base URL (default: https://gitlab.com/api/v4). Set for self-hosted instances. | |
| per_page | No | Results per page. | |
| username | No | GitLab username (for get_user). | |
| project_id | No | Project ID or URL-encoded namespace/project path. | |
| access_token | No | GitLab personal access token (PAT). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. The description only says 'interact' and lists actions, all of which are read-only (search_projects, get_project, list_issues, list_mrs, get_user), but it does not explicitly state that the tool does not modify data. It also does not disclose authentication requirements beyond the schema. Behavioral traits like read-only nature are missing.
Agents need to know what a tool does to the world before calling 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 main purpose and then adds the self-hosted support detail. Every part is informative and 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?
The tool has 10 parameters and no output schema. The description only covers the actions but does not describe the expected return format or pagination behavior. For a moderately complex tool, this leaves gaps in understanding what the agent will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 does not add parameter-level information beyond what the schema already provides. It briefly lists actions but does not explain parameter relationships or provide examples 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 interacts with the GitLab REST API and lists specific actions (search projects, get project details, list issues, list merge requests, look up users). It also mentions support for self-hosted instances, which adds specificity and distinguishes it from other tools. The verb 'interact' is broad but the enumerated actions make 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 does not provide explicit guidance on when to use this tool versus alternatives. Since it's the only GitLab tool among siblings, the need is lower, but there is no mention of when not to use it or comparison to other tools. The context is clear enough for a single-tool scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_readBRead-onlyIdempotent
Read a Gmail message by id.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Gmail response format (default metadata) | |
| message_id | Yes | Gmail message id | |
| access_token | No | Gmail access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds nothing beyond that — no note that the 'raw' format returns base64-encoded RFC822 content or that access_token must be valid — but since it contradicts nothing and annotations carry the burden, a minimum-viable 3 applies.
Agents need to know what a tool does to the 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 with zero filler and no wasted clauses. It is efficient, though the extreme terseness edges toward under-specification rather than optimal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with complete annotations and fully documented parameters, the only meaningful gap is the absent output schema combined with no statement of what a read returns (headers only, body, attachment metadata) or how 'format' changes the response shape. Usable, but not self-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%, including the format enum and default, so the description has little to add; 'by id' merely restates the required message_id parameter. Baseline 3 is appropriate when the schema documents all three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read), resource (Gmail message) and selector (by id), which cleanly separates it from gmail_search and gmail_send in the sibling list. It is clear but does not explicitly name the sibling it is not, 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 phrase 'by id' implies the prerequisite of a previously obtained id, but the description never says when to use this versus gmail_search or what to do if the id is unknown. No explicit when-to-use or exclusion guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_searchBRead-onlyIdempotent
Search Gmail messages in the connected mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Messages to return (max 100, default 10) | |
| query | No | Gmail search query, such as from:alice newer_than:7d | |
| page_token | No | Gmail page token from a previous response | |
| access_token | No | Gmail access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the scope ('connected mailbox') which is minor context, and does not discuss pagination, rate limits, or result format.
Agents need to know what a tool does to the world before calling 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, waste-free sentence that front-loads the core purpose. It is appropriately concise, though it could be slightly more structured to include a usage cue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low complexity, rich schema coverage, and strong annotations, the description is nearly complete for an agent to call the tool. It could be improved by explicitly distinguishing this from gmail_read or email_search, but no essential behavioral or parameter 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%, so all four parameters are documented in the schema. The description does not add any parameter-specific meaning beyond what the schema provides, which is the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search') and resource ('Gmail messages') and adds scope ('connected mailbox'). It is clear what the tool does, but it does not explicitly differentiate from siblings like gmail_read or email_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 gmail_read (for reading a specific message) or email_search (for broader email search). The description only implies usage from the verb 'search' with no exclusions or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_sendC
Send a plain-text Gmail message.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address | |
| body | Yes | Plain-text email body | |
| from | No | Optional From header (defaults to me) | |
| subject | Yes | Email subject | |
| access_token | No | Gmail access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It states the message is plain-text, but does not disclose authentication requirements (e.g., access_token), side effects such as sent-folder behavior, rate limits, or whether the send is immediate and irreversible.
Agents need to know what a tool does to the world before calling 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 wasted words. However, it is under-specified for a five-parameter mutation tool, so its brevity does not fully earn its place as sufficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a mutation tool with five parameters, no annotations, and no output schema, the description is incomplete. It omits authentication needs, behavioral constraints, and any operational context beyond the plain-text format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 thoroughly. The description adds only the plain-text constraint and does not provide additional syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Send) and resource (Gmail message) with a clear scope (plain-text). It does not explicitly distinguish itself from similar sibling send tools such as email_send or other messaging send actions, 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description only implies usage from the name and verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
goertzelB
Compute a single DFT frequency bin using the Goertzel algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| bin | Yes | Target frequency bin index (0 to N-1) | |
| samples | Yes | Array of real-valued samples |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and discloses almost nothing: it does not state whether the result is complex or magnitude, how the bin index maps to frequency, or any numerical/precision behavior. For a pure computation the stakes are low, but the disclosure gap is real.
Agents need to know what a tool does to the 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 with zero filler. Nothing is repeated and nothing needs to be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, fully-documented pure function this is nearly adequate, but with no output schema the description should state what the return value represents (complex bin, magnitude, power). That omission leaves the agent guessing about the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both 'samples' and 'bin' are documented in-schema, including the 0 to N-1 range), so the baseline is 3. The description adds no syntax, units, or format 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 names a specific verb (Compute) and resource (a single DFT frequency bin) and attributes it to the named Goertzel algorithm. The phrase 'single DFT frequency bin' implicitly contrasts with the full-transform sibling fft_transform, but the contrast is never made 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?
No guidance on when to use Goertzel versus fft_transform or any other transform tool. An agent must already know that Goertzel is preferable for a small number of target bins and FFT for the full spectrum; the description provides none of that routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_analyzeB
Analyze a graph: count nodes, edges, connected components, density, degrees, and detect self-loops.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of edges | |
| directed | No | Whether the graph is directed (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It lists exactly what is computed (node/edge counts, components, density, degrees, self-loops), which is useful, but it does not disclose the return format, edge-case behavior, or explicitly state that the operation is read-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 a single front-loaded sentence that lists the analysis outputs without any wasted words. It is appropriately sized for a simple two-parameter analysis 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?
Given the low complexity, the description usefully enumerates the return metrics even though no output schema exists. It does not explain the output format or mention the directed default, but the schema covers the latter and the metric list largely fills the return-value 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 and their meanings are already documented in the input schema. The description adds no additional parameter semantics beyond what the schema provides, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Analyze) and resource (graph) and enumerates the computed metrics, which clearly distinguishes it from tools that perform defined graph algorithms. It does not explicitly name sibling alternatives, 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 no guidance on when to use this tool versus graph-specific siblings like bipartite_check, graph_coloring, or graph_condensation. Usage context is only implied by the word 'Analyze' and the list of metrics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_coloringB
Color vertices of an undirected graph using a greedy algorithm so no adjacent vertices share a color.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Undirected edges as [u, v] pairs | |
| vertices | Yes | Number of vertices (0-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does usefully disclose that the algorithm is greedy, implicitly signaling the result may not use the minimum number of colors, which is meaningful behavioral context. However, it omits the return shape (a color-per-vertex mapping?), behavior on invalid/self-loop input, and any determinism guarantees, so it is only partially complete.
Agents need to know what a tool does to the 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 efficient sentence with the operation and its key constraint front-loaded. Nothing is wasted, though it is terse to the point of omitting usage context, which is a completeness rather than conciseness concern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 algorithm tool with no output schema and no annotations, the description covers the core operation but leaves gaps: the format of the returned coloring, what happens on malformed edge input, and how it relates to sibling graph tools. Adequate but 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?
Schema description coverage is 100%, so both parameters (vertices count, [u,v] edge pairs) are already documented in the schema. The description reinforces that edges define adjacency ('no adjacent vertices share a color') but adds no syntax or format detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (color), resource (vertices of an undirected graph), and method (greedy algorithm) with the constraint (no adjacent vertices share a color). This lets an agent distinguish it from siblings like chromatic_number, but it does not explicitly name that sibling or the distinction, 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 states what the tool does but gives no guidance on when to use it versus alternatives such as chromatic_number, bipartite_check, or graph_analyze. No conditions, prerequisites, or exclusions are provided, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_condensationC
Compute SCC condensation of a directed graph into a DAG using Kosaraju's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Directed edges as [u, v] pairs (0-indexed) | |
| vertex_count | Yes | Number of vertices |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden, and it discloses little beyond the algorithm name. It does not state that the operation is a pure read-only computation, whether output is deterministic/stable-ordered, or how the condensed graph and component mapping are represented. For a computation tool with no output schema, this is a meaningful 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?
A single tight sentence with no filler that leads with the operation and names the algorithm. Efficient, though entirely one clause and slightly abrupt given the absence of any behavioral 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?
Inputs are fully covered by the schema, but with no output schema the description should say what the result looks like (condensed DAG form, SCC membership mapping). The algorithm reference partially compensates by telling the agent what computation 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% (edges as [u, v] 0-indexed pairs; vertex_count), so the schema already documents both parameters. The description adds no format or constraint detail beyond it, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Compute SCC condensation of a directed graph into a DAG'. The agent can tell this transforms SCCs into a DAG, distinct from the mere SCC-listing siblings. However, it never names or distinguishes itself from close siblings like kosaraju_scc or graph_analyze, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not guidance. A sibling named kosaraju_scc exists and likely returns raw SCCs rather than their condensation, yet the description offers no rule for choosing between them. Usage is only obliquely implied by the phrase 'into a DAG'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gray_codeA
Convert between binary and Gray code, or generate n-bit Gray code sequences.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Bit width (1-20) | |
| value | No | Optional value to convert (omit for full sequence) | |
| to_gray | No | If true convert binary to Gray; if false convert Gray to binary (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description must carry behavioral burden. It describes the operation but doesn't disclose output format, error conditions, or determinism. For a pure computation tool, this is minimally adequate.
Agents need to know what a tool does to the 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 primary action, zero 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?
Given low complexity and rich schema, the description covers the core purpose. However, without an output schema, it doesn't describe the return value format (e.g., number vs array for sequences), leaving 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%, so the schema already documents all parameters including defaults. The description adds no syntax or format detail beyond what the schema provides, so 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?
States a specific verb ('Convert', 'generate') and resource ('binary and Gray code', 'n-bit Gray code sequences'). It does not explicitly differentiate from sibling conversion tools, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies two modes (conversion vs sequence generation) via 'or generate n-bit Gray code sequences', but provides no explicit when-to-use guidance or comparison to alternatives like base_convert.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
groq_chat_completionB
Run a fast LLM inference with Groq. Supports Llama 3, Mixtral, Gemma, and other open models at high speed.
| Name | Required | Description | Default |
|---|---|---|---|
| stop | No | Stop sequence(s) | |
| model | No | Model ID (e.g. llama-3.3-70b-versatile, mixtral-8x7b-32768, gemma2-9b-it). Default: llama-3.3-70b-versatile | |
| top_p | No | Top-p sampling (0-1) | |
| prompt | No | Single user message (alternative to messages) | |
| api_key | Yes | Groq API key from console.groq.com/keys | |
| messages | No | Array of {role, content} messages | |
| max_tokens | No | Maximum tokens to generate | |
| temperature | No | Sampling temperature (0-2) | |
| system_prompt | No | System prompt (used with prompt shorthand) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions speed; lacks details on streaming, context length, rate limits, or authorization requirements beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action verb and resource. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description fails to mention return format (e.g., text completion). For a complex tool with 9 parameters, more context (like non-streaming behavior) is needed.
Complex tools with many parameters or behaviors need more documentation. Simple 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 all 9 parameters with descriptions. Description adds no extra meaning beyond listing model names, which the schema already does via default and 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?
Clear verb+resource: 'Run a fast LLM inference with Groq'. Lists supported models (Llama 3, Mixtral, Gemma), distinguishing it from other LLM 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 on when to use this vs. other chat completion tools (e.g., openai_chat_completion, anthropic_create_message). Mentions speed but no explicit comparison or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
groq_list_modelsBRead-onlyIdempotent
List all models available on Groq.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Groq API key |
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 no behavioral context beyond the purpose, such as auth requirements or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It communicates the action and provider immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations and full schema coverage, the description is largely sufficient. It does not describe the return format, but no output schema exists and the omission 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 description coverage is 100%, and the single api_key parameter is fully documented in the schema. The description adds no further meaning, which is acceptable at baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('models') scoped to Groq, which distinguishes it from sibling list-model tools for other providers. It is clear but does not explicitly contrast 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?
Usage is implied by the provider name: use this to enumerate Groq models. There is no explicit when/when-not guidance or named alternative, but the scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guardian_get_articleCRead-onlyIdempotent
Get a specific Guardian article by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| article_id | Yes |
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 fully covered structurally. The description adds nothing beyond them: no auth requirement for api_key, no note on what happens with an invalid or missing ID, no return-shape hint.
Agents need to know what a tool does to the 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 with no filler. Nothing superfluous, and the key constraint (by ID) is placed where it reads first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-record read with rich annotations and no output schema, the description covers the core operation but leaves auth (api_key) and failure/lookup-miss behavior unexplained. Adequate, but with clear gaps for an agent that has never called a Guardian endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, but it only restates that the ID identifies an article. The second parameter, api_key, is never mentioned, and no format or example for article_id is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Get a specific Guardian article by ID' states a concrete verb and resource, and 'by ID' implicitly contrasts with the sibling guardian_search_articles. It does not name that sibling or state a scope boundary explicitly, 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?
No statement of when to use this rather than guardian_search_articles, which is the obvious alternative when the agent has a query instead of an ID. The usage context is only implied by the 'by ID' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guardian_get_editionCRead-onlyIdempotent
Get a Guardian edition by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| edition_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety and repeatability are covered without the description. The description adds nothing beyond the annotations — no note on error behavior for invalid IDs, no indication of what a returned edition contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of padding, but its terseness is under-specification rather than efficiency — it could have carried the definition of an edition at no structural cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and zero schema descriptions, an agent is left not knowing what an edition is, what IDs are valid, or what the api_key parameter does. The definition is not complete enough to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters. 'edition_id' is named but never explained (valid values such as uk/us/au/international are not given), and 'api_key' is completely undocumented in both schema and description. With low coverage the description should have compensated and does not.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('Guardian edition') keyed by ID, so an agent can tell this is a single-record lookup. It does not distinguish itself from Guardian siblings like guardian_get_article or guardian_get_sections, and 'edition' (a regional edition of the paper) is left undefined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus guardian_search_articles or any other Guardian tool, and no mention of what an edition ID is or where to obtain one. The single sentence gives context only by implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guardian_get_sectionsCRead-onlyIdempotent
Get all Guardian sections.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds only the word 'all' and otherwise restates the operation, leaving return shape, pagination, and auth/rate-limit behavior undocumented.
Agents need to know what a tool does to the 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 with no boilerplate or redundant text. It is extremely sparse but not bloated; the missing detail belongs under completeness rather than conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing endpoint with rich safety annotations and no output schema, the description gives enough to identify the resource. However, it leaves the optional api_key and return shape undocumented, so clear gaps remain.
Complex tools with many parameters or behaviors need more documentation. 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 api_key has 0% schema description coverage and is not required. The description never mentions it, so it does not clarify whether authentication is optional or how the key is supplied.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('Guardian sections') and the scope 'all'. It does not explicitly distinguish itself from siblings such as guardian_get_tags or guardian_get_edition, but the resource is distinct enough for an agent to identify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no when-to-use guidance, exclusions, or alternatives. The agent must infer the tool's role from the name and the one-line purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guardian_get_tagsDRead-onlyIdempotent
Get Guardian tags.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent read operation, but the description adds no behavioral context such as authentication requirements, pagination, rate limits, or what the response contains. It does not contradict the annotations, but it contributes almost nothing beyond 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 text is short, but it is under-specified rather than concise. Its single sentence does not front-load useful information about scope, parameters, or output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two undocumented parameters, no output schema, and no behavioral detail, the description is not complete enough for an agent to invoke the tool correctly. It omits essential context such as what tags are returned and how the API key is used.
Complex tools with many parameters or behaviors need more documentation. 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 are two parameters and schema description coverage is 0%, so the description must explain what "q" and "api_key" mean. It mentions neither, leaving both parameters completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get Guardian tags" essentially restates the tool name and does not clarify whether it lists all tags, searches tags by query, or retrieves metadata for a specific tag. It states a verb and resource but offers no scope or detail beyond the 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?
There is no guidance on when to use this tool rather than guardian_search_articles, guardian_get_article, guardian_get_sections, or guardian_get_edition. It neither describes prerequisites nor names alternatives, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guardian_search_articlesCRead-onlyIdempotent
Search for articles on The Guardian.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| api_key | No | ||
| section | No | ||
| to_date | No | ||
| from_date | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds nothing beyond that: no mention of required API key/auth, paging behavior for the page_size parameter, rate limits, or what the response contains—context that would matter for an open-world external 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?
A single front-loaded sentence with no wasted words, so it is concise. However, the brevity is achieved by omitting essential content rather than by efficient phrasing, so it sits at minimum viable rather than strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with no output schema and zero parameter documentation, the description should carry far more weight than one sentence. Annotations cover the read-only/idempotent safety story, but the caller still lacks query-shaping details, authentication notes, and result-format 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 0% across six parameters (q, api_key, section, to_date, from_date, page_size), and the description explains none of them. With no schema text and no description text, an agent gets no indication of date formats, section identifier expectations, default/max page_size, or how api_key is supplied.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource ("Search for articles on The Guardian"). An agent can tell this is a search endpoint, but the description never distinguishes it from sibling tools like guardian_get_article, guardian_get_sections, or guardian_get_tags, so routing between them requires external inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus guardian_get_article (fetch by ID) or the section/tag lookup tools, and no mention of the conditions that shape a query (e.g., date range vs. section filtering). The agent is left to guess 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.
gumroad_get_productBRead-onlyIdempotent
Get details for a single Gumroad product by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID (permalink) | |
| access_token | Yes | Gumroad access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety and side-effect profile is fully covered without the description. The description adds no behavior beyond that, such as auth requirements, error behavior for unknown IDs, or rate limits, so it merits only the baseline-with-annotations 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?
A single front-loaded sentence with no wasted words; the resource and the selecting parameter are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage, complete annotations, and no output schema, the description is sufficient to call it correctly. Only the shape of the returned product data and behavior on invalid IDs are unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are documented in the schema, so the description need not compensate. It only echoes the ID-based lookup, adding no format, permalink-vs-numeric-ID distinctions, or token handling notes 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 details'), a specific resource ('Gumroad product'), and the scope ('single ... by ID'), which implicitly separates it from gumroad_list_products. It does not name any sibling 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?
There is no statement of when to use this versus gumroad_list_products or other Gumroad tools, and no prerequisites beyond the required token. Usage is only inferable from the phrase 'single product by ID'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_saleBRead-onlyIdempotent
Get details for a single Gumroad sale by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| sale_id | Yes | Sale ID | |
| access_token | Yes | Gumroad access token |
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 no further behavior such as auth requirements, error behavior for invalid IDs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Brevity here is appropriate, though it leaves little room for the routing and parameter nuance the tool could use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read lookup with fully documented params, so the description is not badly incomplete. But with no output schema, the agent gets no hint of what a sale record contains or what happens on a missing ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both parameters (sale_id, access_token), so the schema carries the parameter burden. The description only echoes that sale_id is the lookup key, adding no format or sourcing detail.
Input schemas describe structure but not intent. Descriptions should explain 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 details for a single Gumroad sale') plus the lookup key ('by ID'), which implicitly separates it from gumroad_list_sales. It doesn't explicitly name the sibling, so it falls just short of 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?
Usage is only implied: 'by ID' signals you need a known sale ID, but the description never states when to prefer this over gumroad_list_sales or what to do when you don't have an ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_list_productsBRead-onlyIdempotent
List all products in a Gumroad account.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | Yes | Gumroad access token |
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 only that the operation returns all products in an account, but does not disclose pagination behavior, result limits, or auth requirements beyond the schema's access_token field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It is concise, though it is arguably too terse to carry much operational context for a list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with rich annotations and full schema coverage, the description is minimally adequate. However, with no output schema, it does not describe the return shape, pagination, or whether all products are returned in one 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?
There is one parameter with 100% schema description coverage: access_token is documented in the schema as the Gumroad access token. The description adds no parameter details, but with full schema coverage the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 all products in a Gumroad account.' The word 'all' implies a collection-level listing, which distinguishes it from the sibling gumroad_get_product, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states what the tool does and offers no explicit guidance on when to use it versus alternatives such as gumroad_get_product. Usage is indirectly implied by 'list all,' but there is no when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_list_salesARead-onlyIdempotent
List sales from a Gumroad account. Filter by product, email, or date range.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| after | No | Sales after this date (YYYY-MM-DD) | |
| No | Filter by buyer email | ||
| before | No | Sales before this date (YYYY-MM-DD) | |
| product_id | No | Filter by product ID | |
| access_token | Yes | Gumroad access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds only the filtering scope; it says nothing about pagination behavior, result ordering, or volume/rate characteristics of a paginated list 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?
Two short sentences with the resource scope front-loaded and no redundant filler. It is efficient but leaves behavioral gaps rather than wasting 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 paginated read tool with full annotation coverage and full schema coverage, the description is adequate to call it correctly. The main unaddressed item is pagination guidance ('page'), which the schema labels but the description never mentions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 page/after/before/email/product_id/access_token are all documented in the schema itself. The description restates the filterable fields without adding format or interaction details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List sales from a Gumroad account') and names the filtering axes, which separates it from the sibling gumroad_get_sale (single record). It does not explicitly name a sibling, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The filter phrase ('by product, email, or date range') implies the retrieval use case, but there is no explicit when-to-use guidance, no mention of when to prefer gumroad_get_sale, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_list_subscribersBRead-onlyIdempotent
List subscribers for a Gumroad membership/subscription product.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Filter by subscriber email | ||
| product_id | Yes | Product ID of the subscription product | |
| access_token | Yes | Gumroad access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds the useful constraint that the product must be a membership/subscription type, but says nothing about pagination, result size, or token requirements.
Agents need to know what a tool does to the 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 front-loaded sentence with no wasted words. It is efficient, though perhaps too terse to carry any operational 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 fully documented params and rich annotations, the description is minimally sufficient. It omits return shape and pagination behavior, which matters for a list endpoint 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%, so all three parameters including the email filter are fully documented in structured data. The description only reinforces that product_id refers to a subscription product, adding marginal value over 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 (List) and resource (subscribers) scoped to Gumroad membership/subscription products. It is distinguishable from gumroad_list_products and gumroad_list_sales by resource, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus other Gumroad tools, and no prerequisites stated (an access token and product ID are required). The membership/subscription qualifier implies the product must be a subscription product, but that 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.
gutenberg_bookC
Get details for a specific Project Gutenberg book by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric book ID from Project Gutenberg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read via 'Get' but says nothing about whether the ID format is strict, what happens for an unknown ID, or what fields the details include. For a bare public API lookup this is a real but modest 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?
One tight, front-loaded sentence with no waste. It is appropriately sized, though being a single sentence it cannot front-load much beyond the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 minimally sufficient but leaves the return shape ('details' is vague) and the distinction from gutendex_book unexplained. Adequate but with clear 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?
There is a single parameter with 100% schema description coverage ('Numeric book ID from Project Gutenberg'), so the schema already documents it fully. The description adds no syntax or format detail beyond the schema, matching the baseline of 3 when coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (details for a Project Gutenberg book) with the identifier keyed by ID. However, it does not distinguish itself from the close sibling gutendex_book (or gutenberg_search), leaving ambiguity about which of the near-identical book-lookup tools to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance: it never says to use this after gutenberg_search to fetch a specific work, nor how it differs from gutendex_book or gutendex_search. The agent must infer the selection criteria entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gutenberg_searchBRead-onlyIdempotent
Search Project Gutenberg free ebooks by title or author.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (title or author) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint, so the safety and remote-call profile is covered. The description adds only that results are free ebooks and match on title/author; it doesn't state result limits, ranking, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that front-loads the verb and resource with zero filler. Nothing is redundant for a tool this simple.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search the description covers the essentials, but with a dense cluster of near-named siblings and no output schema it should have clarified what results look like or how it differs from gutendex_search. Adequate but leaves a real selection 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?
There is a single parameter with 100% schema description coverage ('Search term (title or author)'), so the schema fully documents it. The description restates this same information rather than adding syntax such as multi-word handling or field targeting, making baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Project Gutenberg free ebooks), with the searchable fields (title or author) named. It does not differentiate itself from the closely-named siblings gutendex_search, gutendex_book, and gutenberg_book, so an agent must infer the relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance and no mention of alternatives. Given three sibling tools that also deal with Gutenberg/Gutendex catalogue data, the agent is left to guess which one to call for a keyword lookup versus a book-detail fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gutendex_bookB
Get details for a Project Gutenberg book by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Gutenberg book ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and discloses almost nothing: it does not state the response shape, whether the resource is public/unauthenticated, or what happens when the ID does not exist. Only the read-only nature is weakly implied by 'Get'.
Agents need to know what a tool does to the 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 short sentence with the verb and resource front-loaded and zero filler. Nothing needs to be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only prose an agent gets, and it omits return-value content and ID format. For a trivial single-parameter lookup this is minimally adequate but leaves real 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 description coverage is 100% ('Gutenberg book ID'), so the schema already defines the single parameter; the description merely rephrases it as 'Project Gutenberg book ID'. Baseline 3 is appropriate since there is no meaningful semantic addition such as numeric vs string format expectations.
Input schemas describe structure but not intent. Descriptions should explain 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 (Project Gutenberg book) and lookup key (by ID), so the operation is unambiguous. However, it does nothing to separate itself from the near-identical sibling gutenberg_book, nor does it point at gutendex_search for the non-ID path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus gutendex_search (search by title/author) or the similarly named gutenberg_book, and no prerequisites or exclusions are given. The only implied guidance is that you must already have an ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gutendex_searchCRead-onlyIdempotent
Search Project Gutenberg free ebooks.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| query | Yes | Search query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, non-destructive, and open-world. The description adds no behavioral context beyond what the name and annotations imply—it does not mention pagination behavior, result limits, or what a 'page' parameter controls.
Agents need to know what a tool does to the world before calling 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 wasted words. While highly concise, the extreme brevity borders on under-specification, but it is structurally sound 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?
For a simple search tool with only two parameters, no output schema, and safety annotations, the description identifies the resource and action. However, it omits any mention of what the search returns, how results are paginated, or how it differs from closely named siblings, leaving the agent with notable 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 input schema has 100% description coverage for both parameters (query and page), so the schema already documents them. The description adds no additional meaning beyond the schema, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('Project Gutenberg free ebooks'), making the core purpose clear. However, it does not differentiate this tool from sibling tools like gutendex_book or gutenberg_search, which leaves ambiguity for an agent selecting among 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 no guidance on when to use this tool versus alternatives, no preconditions, and no exclusions. It simply restates the action, leaving the agent to 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.
haar_waveletB
Haar wavelet transform (forward and inverse) on a power-of-2 length array.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Input values (length must be power of 2) | |
| inverse | No | Inverse transform (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the power-of-2 input constraint and inverse support, but omits return format, error behavior, and whether the operation is pure or out-of-place.
Agents need to know what a tool does to the 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 front-loaded sentence with no wasted words. The size is appropriate for a simple mathematical transform 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 pure transform with full parameter schema coverage, the description covers operation and input constraint. However, with no output schema, it omits return format and error behavior, leaving 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 description coverage is 100%, so the baseline is 3. The description repeats the power-of-2 constraint and forward/inverse nature but adds no syntax, format, or 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?
Names the specific transform, states forward and inverse support, and specifies the power-of-2 input constraint. Clear verb/resource, but it does not distinguish itself from mathematical-transform siblings such as fft_transform or wavelet_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no when-to-use or when-not-to-use guidance and names no alternatives. The inverse flag implies direction, but no selection guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hamming_distanceBRead-onlyIdempotent
Calculate Hamming distance between two equal-length strings.
| Name | Required | Description | Default |
|---|---|---|---|
| text_a | Yes | First string. | |
| text_b | Yes | Second string (must be same length). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, open-world, and non-destructive. The description adds the equal-length requirement, but that constraint is also present in the schema, and it does not describe the return value or what happens when lengths differ.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single sentence with no wasted words, and the core operation is front-loaded. Nothing needs to be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple pure calculation with full parameter documentation and clear safety annotations, the description is mostly complete. It could be slightly stronger by noting that the result is a count of differing positions, but the term Hamming distance makes the return value reasonably inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 as strings, with text_b noting the equal-length requirement. The description adds no parameter-level meaning beyond the schema, which matches 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 states a specific verb and resource: calculating Hamming distance between two strings. It is clear what the tool computes, but it does not distinguish itself from sibling distance/similarity tools such as string_distance, edit_distance, or damerau_distance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage hint is the implicit equal-length requirement. There is no explicit guidance on when to prefer Hamming distance over edit distance or other string comparison tools, and no alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
harmonic_seriesB
Calculate partial sum of the harmonic series H(n) = 1 + 1/2 + 1/3 + ... + 1/n.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Number of terms (1-100000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the exact computation (a deterministic, side-effect-free formula), but says nothing about behavior for out-of-range n, floating-point precision/overflow for large n, or that it grows logarithmically rather than converging.
Agents need to know what a tool does to the 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 front-loaded sentence with the formula appended; no filler, nothing 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?
For a single-parameter pure calculation with full schema coverage and no output schema, the definition supplies everything needed to call it correctly. Only edge-case/range behavior is unaddressed, 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 n is documented in the schema with its 1-100000 range, so the description adds no parameter detail beyond restating n in the formula. Baseline 3 is appropriate when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate) and resource (partial sum of the harmonic series), and spells out the formula H(n) = 1 + 1/2 + ... + 1/n, so an agent knows exactly what is computed. It does not differentiate from nearby siblings such as geometric_series, but the formula makes the operation 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?
There is no statement of when to use this tool or which alternative applies; the description is purely definitional. For a pure math helper that may be acceptable, but no usage guidance is offered at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hash_compareARead-onlyIdempotent
Compare text against an expected hash to verify integrity.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Expected hash value. | |
| text | Yes | Text to hash and compare. | |
| algorithm | No | Hash algorithm (default: sha256). |
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 fully covered and the description does not contradict it. The description adds only the integrity-verification framing; it does not say what the comparison yields (boolean match, mismatch detail) or how algorithm mismatches are handled.
Agents need to know what a tool does to the 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 with the verb, both inputs, and the purpose — nothing redundant and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say what the comparison returns (a match boolean or similar), which it omits. Annotations cover the read-only/idempotent profile, but the return shape remains an inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 three parameters documented including the sha256 default for algorithm. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (compare) with a concrete resource (text against an expected hash) and states the intent (verify integrity), so it is immediately distinguishable from hash_generate. It stops short of naming hash_generate as the complementary sibling, but the operation itself 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?
Usage is implied by 'verify integrity' — the agent can infer this is a check rather than a generation step — but there is no explicit when-to-use guidance, no mention of when to prefer hash_generate, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hash_generateB
Generate a cryptographic hash (md5, sha1, sha256, sha384, sha512) of text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to hash. | |
| algorithm | No | Hash algorithm (default: sha256). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations supplied, so the description carries full burden. It says nothing about determinism, output format (hex vs base64), encoding of input text, or that the operation is pure/read-only and side-effect free. It is a pure function, which is low-risk, but the encoding of the return value is a real 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?
One sentence with zero waste, verb and resource front-loaded, algorithm list placed naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure function with full schema coverage, the description is roughly sufficient to call it. But without annotations or an output schema, an agent still does not know the output format (hex string? length? case?), which is the one substantive missing piece.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are documented in-schema, including the sha256 default. The description's enumeration of allowed algorithms (md5–sha512) mirrors the schema without adding syntax or constraints, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Generate) plus resource (cryptographic hash) plus enumerated algorithm set. Unambiguous and instantly distinguishable from siblings like base64_encode or jwt_decode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of alternatives (e.g., hash_compare for verification, crc32_calculate for non-cryptographic use). The agent must infer applicability 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.
heap_sortB
Sort numbers using the heap sort algorithm. Guaranteed O(n log n) in-place sorting with swap count.
| Name | Required | Description | Default |
|---|---|---|---|
| array | Yes | Array of numbers to sort |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It does add useful traits — the O(n log n) guarantee and in-place operation — but the trailing 'with swap count' is ambiguous (does the tool return a swap count, or just count swaps internally?), and stability, mutation vs. copy semantics, and return shape are 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?
Two tight sentences with the core action front-loaded and the algorithmic property appended. The final clause is slightly under-specified, but there is no 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 single-parameter pure computation tool with no output schema or annotations, the description is serviceable but leaves the return value ambiguous and omits edge-case behavior. It is minimally adequate rather than 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?
One parameter with 100% schema description coverage, so the baseline is 3. The description adds no meaning about the array parameter (e.g., numeric-only, NaN handling, empty-array behavior) 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 states a specific verb and resource ('Sort numbers') and pins the algorithm ('heap sort'), which distinguishes it from generic sorts. It does not explicitly contrast with sibling algorithm variants (bucket_sort, radix_sort, counting_sort), but the named algorithm does most of the differentiating work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prefer heap sort over the many sibling sorting tools, nor any stated preconditions on input. The agent must infer suitability from the complexity claim alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heartbeat_protocolHeartbeat protocolARead-onlyIdempotent
Returns the canonical UnClick AI Seat heartbeat playbook. Call this first from scheduled heartbeat seats, then follow the returned versioned procedure exactly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds that the result is a versioned procedure to be followed exactly and that it should be invoked before anything else, which is useful context, but it says little about what the payload actually contains or how large it is.
Agents need to know what a tool does to the 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, both front-loaded: the first states what is returned, the second states the invocation order and the obligation that follows. Nothing 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?
For a no-argument, read-only fetch with no output schema, the description covers what is returned, when to call it, and what to do with the result. Only a note on the shape or size of the playbook 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 tool takes zero parameters and the schema is fully closed (additionalProperties: false), so there is nothing for the description to disambiguate. The baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb and resource ('Returns the canonical ... heartbeat playbook'), so an agent knows this is a fetch of an operational procedure rather than a data query. The domain term 'UnClick AI Seat' is opaque, and it doesn't distinguish itself from a similar sibling like commonsensepass_protocol, which keeps it below 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?
'Call this first from scheduled heartbeat seats' gives a concrete trigger condition and an ordering constraint. It doesn't name alternatives or when not to call it, so it falls 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.
heavy_light_decompositionC
Perform heavy-light decomposition of a tree for efficient path queries.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Root vertex (default 0) | |
| edges | Yes | Edges as [u, v] pairs (0-indexed) | |
| vertex_count | Yes | Number of vertices |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it discloses nothing beyond the basic operation: no indication of what is returned (e.g., chain/head assignments or a queryable structure), whether the tree must be connected/acyclic, or how the result is meant to be consumed. The 'efficient path queries' phrase hints at intent but not 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?
A single front-loaded sentence with no filler or redundancy. It is tight, though the brevity is partly the source of its informational gaps rather than a deliberate economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter algorithm tool with no annotations and no output schema, the description is too thin. An agent cannot tell what the tool returns or how to use the decomposition, and no constraints (tree validity, indexing) are 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%, so vertex_count, edges, and root are already documented in the schema (including the root default of 0). The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Perform') and resource ('heavy-light decomposition of a tree') plus the intended outcome ('efficient path queries'). It is more specific than a tautology, but it does not differentiate from closely related tree-algorithm siblings such as centroid_decomposition, euler_tour, or link_cut_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or when-not-to-use guidance and no mention of alternatives. Given the many competing tree/graph algorithm tools in the sibling set (lowest_common_ancestor, segment_tree, link_cut_tree, centroid_decomposition), the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hero_allARead-onlyIdempotent
List all superheroes and villains (returns first 50 with IDs).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the result is capped at the first 50 entries and includes IDs, which tells the agent not to assume a complete list and how to chain into hero_get_by_id.
Agents need to know what a tool does to the 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 sentence with the key limitation (first 50) front-loaded in parentheses. 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 zero-parameter, no-output-schema listing tool with rich annotations, the description supplies the one thing that matters: result truncation and ID inclusion. Only the missing routing hint to hero_get_by_id keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline is 4. The description correctly indicates there is nothing to filter by, consistent with the empty 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?
Names a specific verb and resource ('List all superheroes and villains') and implies the distinction from hero_get_by_id by returning only a summary listing. It does not explicitly call out the sibling, 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?
Usage is only implied: listing versus fetching a single record. There is no explicit 'use hero_get_by_id for details' or 'use this when you don't know IDs' guidance despite two relevant siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hero_get_by_idB
Get a superhero/villain by ID from the comic book database.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Character ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It adds that the data comes from a comic book database and is a read-style lookup (implied by 'get'), but says nothing about invalid-ID behavior, errors, or rate limits. For a simple keyed getter this is thin but not hazardous.
Agents need to know what a tool does to the 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 efficient sentence with the key operation and identifier front-loaded. No waste, though it is so terse that it omits context an agent might want.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 could reasonably say what a hero record contains or that it returns the full record, but it does not. For a one-parameter getter the essentials are present, leaving a modest gap around return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single 'id' parameter is documented as 'Character ID' in the schema. The description only restates the ID-based lookup, adding no format, range, or source-of-ID detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetch a superhero/villain by ID, and names the data source (comic book database). It does not differentiate itself from siblings hero_all and hero_powerstats, which fetch the same resource family differently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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' implies the tool is for lookups when an ID is already known, but there is no explicit statement of when to prefer this over hero_all (to discover IDs) or hero_powerstats (for stats). Usage is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hero_powerstatsC
Get power statistics for a superhero/villain.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Character ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but the description discloses nothing about failure modes for invalid IDs, whether the ID namespace matches hero_get_by_id's, or what the statistics consist of. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the 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 efficient sentence with no filler, and the resource is front-loaded. It is arguably under-specified rather than over-long, but there is no wasted prose to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read with no output schema, the description is minimally viable. It omits what 'power statistics' actually contains (e.g. intelligence, strength, speed, durability, power, combat) and how the ID relates to other hero endpoints, leaving real ambiguity for 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?
Schema coverage is 100% for the single parameter (id: 'Character ID'), so the schema already documents it fully. The description adds only the domain context that the ID refers to a superhero/villain, and nothing about the expected ID format or valid range. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get power statistics for a superhero/villain.' An agent knows the operation is a stats retrieval keyed to a character. However, it does not distinguish itself from sibling hero_get_by_id or hero_all, so the agent cannot tell from the description alone which hero tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of prerequisites, and no routing against the obvious siblings hero_get_by_id (likely returns the full character) and hero_all (likely lists characters). The agent must infer the distinction 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.
heygen_create_avatar_videoB
Create an AI avatar video with HeyGen. The avatar speaks a script using a selected voice. Returns a video_id to poll for completion.
| Name | Required | Description | Default |
|---|---|---|---|
| test | No | Set true to generate a watermarked test video (does not use quota) | |
| title | No | Video title for reference | |
| width | No | Video width in pixels (default: 1280) | |
| height | No | Video height in pixels (default: 720) | |
| script | Yes | The text the avatar will speak | |
| api_key | Yes | HeyGen API key | |
| voice_id | No | Voice ID (use heygen_list_voices to find available voices) | |
| avatar_id | Yes | Avatar ID (use heygen_list_avatars to find available avatars) | |
| avatar_style | No | Avatar style: normal, circle, closeUp (default: normal) | |
| background_url | No | URL of background image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should fully disclose behavioral traits. It mentions returns video_id for polling and that test parameter avoids quota, but omits details like processing time, cost, or typical success rates.
Agents need to know what a tool does to the 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 cover the core action and return value. No unnecessary information, well 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 10 parameters and no output schema, the description is somewhat complete but lacks details on post-creation behavior, default value implications, and error states.
Complex tools with many parameters or behaviors need more documentation. Simple 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 well-described parameters. The description adds minimal value beyond the schema, not providing additional nuance or usage tips.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool creates an AI avatar video with HeyGen, clearly distinguishing it from sibling tools like heygen_get_video_status. However, it does not explicitly contrast with other 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 on when to use this tool versus alternatives like heygen_list_avatars or heygen_get_video_status. The description implies polling for completion but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heygen_get_video_statusARead-onlyIdempotent
Check the generation status of a HeyGen video by video ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | HeyGen API key | |
| video_id | Yes | Video ID returned by heygen_create_avatar_video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds no context on polling cadence, status value set, or whether a video URL is returned once complete, which is the useful behavior 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?
A single front-loaded sentence with zero waste; verb, resource, and identifier all appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema and annotations, the essentials are present, but with no output schema the description should explain what a 'status' looks like (e.g., pending/completed/failed, resulting video URL). That is a real gap for a status-check 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 both parameters are documented, including that video_id comes from heygen_create_avatar_video. The description names video ID but adds no format or usage detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb ('Check'), the resource ('generation status of a HeyGen video'), and the identifying key ('by video ID'). It is clearly distinguishable from heygen_create_avatar_video and the list_* siblings, though it doesn't explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies polling after video creation, but never states when to call it versus alternatives or that it's intended for polling. Usage is inferred rather than declared.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heygen_list_avatarsBRead-onlyIdempotent
List all available AI avatars in your HeyGen account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | HeyGen API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful account scoping, but omits pagination behavior, rate limits, and 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 a single front-loaded sentence with no redundant restatement and no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with full schema coverage and rich annotations, the description provides enough context to invoke it correctly. It lacks return-format or pagination details, but those gaps are minor for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is api_key, and the schema description coverage is 100%, so the schema already carries the parameter meaning. The description adds no additional parameter semantics, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List all available AI avatars' with account scope. It is clearly distinguishable from heygen_list_voices by resource, but it does not explicitly name or differentiate against any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, prerequisites, or mention of alternatives. The agent can infer that this is a discovery operation, but the description does not say when to call it versus heygen_list_voices or before heygen_create_avatar_video.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heygen_list_voicesARead-onlyIdempotent
List all available voices for HeyGen avatar videos.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | HeyGen API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds only the implicit claim that the list is complete ('all available'), with no mention of auth scope, rate limits, or whether results are paginated or filtered by language/gender.
Agents need to know what a tool does to the 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 with no boilerplate or redundancy; nothing could be trimmed 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?
For a one-parameter read-only list tool with full annotation coverage, the description says enough to select and call it correctly. The only gap is that there is no output schema and the description doesn't hint at what a voice record contains (id, name, language), which the agent would need to pick a voice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (api_key) and schema description coverage is 100%, so the schema fully documents it; the description adds no extra meaning about the key or its scope. Baseline 3 is appropriate when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all available voices') plus scope ('for HeyGen avatar videos'), which distinguishes it by noun from heygen_list_avatars. It does not explicitly name the sibling, 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 phrase 'for HeyGen avatar videos' implies the use case (fetching a voice before calling heygen_create_avatar_video), but there is no explicit when-to-use or when-not-to-use guidance and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hibp_all_breachesCRead-onlyIdempotent
Get all breaches tracked by Have I Been Pwned.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No |
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 fully covered by structured data. The description adds nothing beyond that: no indication of dataset size, whether results are paginated or cached, or whether the optional domain narrows 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?
One short sentence with no filler, front-loading the action and resource. It is efficient but so terse that efficiency shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 whose annotations cover safety, the core intent is conveyed. The unexplained 'domain' filter is the notable omission, since an agent cannot confidently supply it or know the effect of omitting 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 coverage is 0% for the single 'domain' parameter, so the description carries the full burden and fails. It never says whether 'domain' filters breaches by the affected site's domain or by a user's email domain, which is a meaningful ambiguity in the HIBP 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?
States a specific verb and resource: retrieve all breaches tracked by Have I Been Pwned. The scope word 'all' helps distinguish it from a lookup of one account. However, it does not name the sibling tools (hibp_check_account, hibp_check_password) it needs to be disambiguated 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?
There is no statement of when to use this listing versus hibp_check_account for a specific email or hibp_check_password for a password. The agent must infer the distinction from the names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hibp_check_accountCRead-onlyIdempotent
Check if an email account has been in a data breach.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and open-world. The description adds nothing further: it doesn't say what a positive vs negative result looks like, whether the response lists breaches with metadata, how rate limits apply, or why an api_key parameter exists. For an open-world external API call with a credential parameter, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the brevity is achieved by omitting rather than by discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, zero schema coverage, an unexplained api_key parameter, and no disclosure of return shape, rate limits, or authentication requirements, the description is not sufficient for an agent to invoke this confidently beyond the happy path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full burden. It explains the email implicitly, but the api_key parameter — a second parameter entirely undocumented in the schema — is given no mention or explanation in the description. Only partial compensation for the coverage 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 states a specific verb ('Check') and resource ('email account... in a data breach'), which is clearly distinct from sibling tools like hibp_check_password and hibp_all_breaches. It doesn't explicitly name those siblings, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus hibp_all_breaches (which lists all breaches) or hibp_check_password. No prerequisites, no mention of the required API key, no indication of whether the account must exist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hibp_check_passwordBRead-onlyIdempotent
Check if a password has appeared in a data breach.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is clear without the description. The description adds only the breach-checking domain, not operational details such as whether the password is sent in plaintext, whether k-anonymity is used, or whether rate limits apply. With annotations covering the core 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?
The description is a single front-loaded sentence with no wasted words. It states the operation and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only tool with no output schema, so the description could reasonably explain what a result looks like (boolean, count, breach list) or mention privacy behavior. It does neither, leaving the return semantics and important security context implicit. The core action is clear, but the definition is not fully complete for an agent relying on it alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry meaning for the single parameter. It does identify that the input is 'a password,' but it does not clarify whether the value should be plaintext, hashed, or otherwise formatted. For one obvious parameter this is minimally sufficient, but it leaves a meaningful ambiguity unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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, 'Check,' and a specific resource, 'password,' scoped to appearance in a data breach. It is distinguishable from siblings like hibp_check_account and hibp_all_breaches by focusing on a password rather than an account or breach list. It does not explicitly name those alternatives, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no comparison to sibling tools such as hibp_check_account. A user must infer that this is for password-exposure checks rather than account-exposure checks or breach-list browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
higgsfield_generate_imageA
Generate a Higgsfield image from a prompt. Prefers the customer's connected Higgsfield MCP account login and subscription credits; api_key is only the Cloud API fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducibility | |
| model | No | Optional Higgsfield model id, e.g. nano_banana_pro | |
| style | No | Style name (use higgsfield_get_styles to list available styles) | |
| width | No | Image width in pixels | |
| height | No | Image height in pixels | |
| prompt | Yes | Text description of the image to generate | |
| api_key | No | Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available. | |
| resolution | No | Optional Higgsfield resolution, e.g. 1k, 2k, or 4k | |
| aspect_ratio | No | e.g. 16:9, 4:3, 1:1, 9:16 | |
| negative_prompt | No | What to avoid in the image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the credential preference order (connected MCP login and subscription credits first, api_key as Cloud API fallback), which is non-obvious behavior. However it says nothing about whether generation is asynchronous and must be polled via the sibling higgsfield_get_status, nor about credit consumption or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and the credential behavior second. No filler or restated 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 generation tool with no output schema and an async-looking sibling (higgsfield_get_status), the description should mention that the call returns a job to poll. The credential guidance is good but the lifecycle gap keeps this at an adequate minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 10 parameters are already documented in the schema; the description adds only the api_key fallback nuance, which the schema also states. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Generate a Higgsfield image from a prompt") with the provider brand, which distinguishes it from openai_generate_image and stability_text_to_image. It does not explicitly differentiate itself from the sibling higgsfield_generate_video, but the image/video distinction is self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the verb and the credential note, but there is no explicit when-to-use guidance against the many other image-generation siblings, nor any when-not condition. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
higgsfield_generate_videoB
Generate a Higgsfield video from a prompt. Prefers the customer's connected Higgsfield MCP account login and subscription credits; api_key is only the Cloud API fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducibility | |
| model | No | Optional Higgsfield model id when using the MCP account path | |
| style | No | Soul Style name (use higgsfield_get_styles to list available styles) | |
| prompt | Yes | Text description of the video to generate | |
| api_key | No | Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available. | |
| duration | No | Video duration in seconds | |
| aspect_ratio | No | e.g. 16:9, 9:16, 1:1 | |
| negative_prompt | No | What to avoid in the video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden, and it does disclose the auth-precedence and credit-usage behavior, which is useful. However, it omits significant traits for a video-generation tool: whether generation is asynchronous, that results likely require higgsfield_get_status polling, and any latency/cost 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 tight sentences, front-loading the core action before the auth nuance. No wasted words, though it could be slightly richer given the tool's 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?
No output schema and no annotations, so the description is the only source of behavioral context. It covers auth but not the async result-retrieval flow, which is the key missing piece for an agent that needs to actually obtain the generated video.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 8 parameters are already documented in the schema, and the description's api_key fallback note largely restates the schema's own api_key description. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (Higgsfield video) with the trigger input (prompt). The Higgsfield branding distinguishes it from the many other generate_video siblings (kling, pika, runway), though it does not explicitly name higgsfield_generate_image or explain why one would pick 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?
Provides genuine when-to-use guidance for the auth path (prefer connected MCP account, use api_key only as Cloud API fallback), but gives no guidance on choosing this tool over the other video-generation tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
higgsfield_get_statusARead-onlyIdempotent
Check the status of a Higgsfield generation by ID. Prefers the customer's connected Higgsfield MCP account login; api_key is only the Cloud API fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available. | |
| generation_id | Yes | Generation ID returned by higgsfield_generate_video or higgsfield_generate_image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover readOnly/idempotent/safe. The description adds auth behavior beyond annotations: it prefers the connected MCP account and treats api_key as Cloud API fallback, which is real operational context. It stops short of describing what status values come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, 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 status-polling tool with no output schema, the description does not explain what the returned status looks like or whether polling is expected, leaving a meaningful gap an agent must guess at. Auth is well covered though.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are documented, including which generate tool produces generation_id. The description largely restates the schema's api_key preference, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Check the status of a Higgsfield generation by ID'. This is clearly distinguishable from the generate siblings, though it does not explicitly name them or contrast 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?
Usage context is implied by 'by ID' and the reference to generation IDs from the generate tools, and auth preference (connected login over api_key) is guidance. But there is no explicit when-not or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
higgsfield_get_stylesARead-onlyIdempotent
List Higgsfield models/styles. Prefers the customer's connected Higgsfield MCP account login; api_key is only the Cloud API fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Model type to explore, e.g. image or video (default image) | |
| query | No | Optional model/style search text | |
| action | No | MCP model explorer action (default search) | |
| api_key | No | Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds real behavioral context about credential resolution order, which the agent cannot infer elsewhere. It does not mention result caps, pagination, or response shape, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, and the core purpose is front-loaded before the credential note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and clear annotations, the definition covers purpose and auth adequately. The only gap is that no output schema exists and the description doesn't hint at what the listing returns, though that is largely self-evident from 'models/styles'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (type, query, action, api_key) are already documented, including the api_key fallback semantics. The description mostly restates the api_key rule and adds nothing about 'action' or the meaning of 'type' defaults 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 ('List Higgsfield models/styles'), which separates it from the generate/status siblings by verb alone. It does not explicitly name or contrast those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives auth-selection guidance (prefer connected MCP login, api_key as fallback), which is useful but is about credentials rather than when to call this tool. No explicit statement that this is the discovery step before higgsfield_generate_image/video, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
histogram_createB
Create a histogram from numeric data with configurable bins and ASCII visualization.
| Name | Required | Description | Default |
|---|---|---|---|
| bins | No | Number of bins (default 10). | |
| values | Yes | Array of numbers to histogram. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It mentions 'ASCII visualization,' which hints at output format, but doesn't clarify whether the tool is read-only, what permissions are needed, whether it modifies any state, or what the output looks like beyond ASCII. For a computation tool with no annotations, this is a significant 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?
Single sentence, front-loaded with the core action and resource, and includes key features without any fluff. 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 no annotations, no output schema, and only a brief description, the definition is incomplete for an agent to understand the tool's behavior. It doesn't explain what 'ASCII visualization' entails (e.g., text-based bars), whether the output is a string or structured data, or any constraints (e.g., maximum number of bins). This is inadequate for a tool that produces a visual representation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 ('bins' and 'values') are already documented in the schema. The description repeats 'configurable bins' and 'numeric data' without adding new semantic information. Baseline 3 is appropriate when the schema fully covers 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?
Specific verb+resource: 'Create a histogram from numeric data' clearly states what the tool does. The mention of 'configurable bins and ASCII visualization' further distinguishes it from other numeric/data tools. No sibling tool has a similar purpose, so it stands out unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives. Usage is implied: it's for generating histograms from numeric arrays. In the context of hundreds of siblings, there is no indication of when a histogram is appropriate (e.g., exploratory data analysis) or what alternatives exist (e.g., descriptive_stats). This is minimum viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
historical_weatherA
Get historical daily weather data for a location from Open-Meteo archive (1940 to 5 days ago).
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date in YYYY-MM-DD format. | |
| latitude | Yes | Latitude of the location. | |
| longitude | Yes | Longitude of the location. | |
| start_date | Yes | Start date in YYYY-MM-DD format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden, and it does disclose two useful behavioral facts: the data source (Open-Meteo archive) and the hard temporal limit (1940 to 5 days ago). However, it says nothing about granularity guarantees, units, rate limits, or what a request for an out-of-range date returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the verb, resource, source and range with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a source-less, annotation-less, output-schema-less data-fetch tool, the description covers provenance and date bounds but omits the returned variables/daily aggregation and error behavior for out-of-range dates. Adequate but not 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?
Schema description coverage is 100% with 4 required params, so the schema already documents latitude, longitude, start_date and end_date formats. The description adds only the valid date window, which slightly informs the date params but is not parameter-specific syntax or constraints. 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?
States a specific verb ('Get') and resource ('historical daily weather data') plus the upstream source (Open-Meteo archive) and temporal scope, which distinguishes it from siblings like weather_forecast, weather_hourly and weather_current. It stops short of explicitly naming those alternatives, so it earns a 4 rather than 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 '(1940 to 5 days ago)' bound implies when this tool is appropriate (past dates, not forecasting), but there is no explicit when-to-use statement and no mention of the obvious alternatives such as weather_forecast or climate_normals. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_ask_hnB
Get Ask HN posts from Hacker News.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details such as pagination behavior, rate limits, or the format of returned posts. It only states a high-level action.
Agents need to know what a tool does to the world before calling 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, highly concise and front-loaded. It communicates the core purpose without filler, but omits parameter 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 tool with one optional parameter and no output schema, the description is moderately complete. It specifies the source and type of content but lacks structure details about the returned posts.
Complex tools with many parameters or behaviors need more documentation. 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 one optional parameter (limit) with no description coverage. The tool description does not explain the parameter's purpose or effect, leaving the agent to infer 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 clearly states the tool's function: retrieving Ask HN posts from Hacker News. It distinguishes itself from sibling tools like hn_show_hn and hn_top_stories by specifying the post type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives like hn_show_hn or hn_top_stories. The usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_best_storiesC
Get the best stories from Hacker News.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits beyond fetching stories. No mention of rate limits, ordering, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, but lacks necessary detail. It earns its place but is underinformative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low complexity and presence of siblings, the description is incomplete. It does not address return values or how this tool fits with similar ones.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'limit' parameter. The tool has one parameter but no explicit documentation of its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get the best stories from Hacker News' clearly states the verb and resource, but does not differentiate from the similar sibling tool 'hn_top_stories'. It is clear but lacks sibling 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?
No guidance on when to use this tool versus alternatives like 'hn_top_stories' or 'hn_new_stories'. No context provided for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_itemA
Get a specific Hacker News item by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states 'Get' which implies a read operation but does not disclose any behavioral traits such as rate limits, authentication, or data format. The agent has no additional context beyond the basic action.
Agents need to know what a tool does to the world before calling 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 is front-loaded with the action and resource. It contains no unnecessary words and effectively communicates the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 retrieval tool with one parameter and no output schema or annotations, the description is minimally adequate. It tells what it does and what input is needed, but lacks information about the output structure or potential error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by stating the parameter is the 'Hacker News item ID', which clarifies the numeric input beyond the schema's bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get'), the resource ('a specific Hacker News item'), and the method ('by ID'). It distinguishes this tool from sibling tools like hn_top_stories or hn_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when an item ID is known, but does not provide when-not-to-use or alternative tools. Since the sibling tools include other Hacker News queries, some guidance would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_new_storiesC
Get the newest stories from Hacker News.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only states 'get the newest stories', omitting return format, limit defaults, pagination, or any side effects. Essential behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at one sentence. While brevity is good, the description lacks critical information, making it under-specified rather than efficiently 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 tool that returns a list of stories, the description fails to specify output format or behavior. Agents cannot know what the tool returns 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?
Schema description coverage is 0%. The description does not explain the 'limit' parameter, its meaning, default, or allowed range. Adds no 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 clearly states the action (Get), resource (newest stories), and source (Hacker News). The term 'newest' distinguishes it from siblings like hn_top_stories or hn_best_stories, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like hn_top_stories or hn_show_hn. No context on prerequisites, scope, or usage restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_show_hnCRead-onlyIdempotent
Get Show HN posts from Hacker News.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
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 safety and mutability are fully covered without the description. The description adds nothing beyond them: it does not say how posts are ordered, how many are returned by default, or whether results are paginated. With annotations carrying the behavior profile, this is a thin contribution.
Agents need to know what a tool does to the 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 with zero filler. It is efficient, though the brevity borders on under-specification rather than tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 feed tool with annotations covering safety and no output schema to explain, the essentials are present. Still, the undocumented optional 'limit' and the absent note on ordering/default size leave real gaps an agent would hit on first 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 0% and the single parameter 'limit' is never mentioned in the description, so neither the schema nor the prose explains its default value, maximum, or unit. A bare optional 'limit' number leaves the agent guessing about server-side caps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a specific resource: 'Get Show HN posts from Hacker News'. The feed name 'Show HN' is inherently differentiating from the sibling feeds hn_top_stories, hn_new_stories, hn_ask_hn, and hn_best_stories, so an agent can route correctly even though none of those siblings is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this feed versus hn_top_stories or hn_ask_hn, no prerequisites, and no exclusions. The agent must infer the choice purely from the tool name, which happens to be self-explanatory, but the description contributes no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_top_storiesCRead-onlyIdempotent
Get the top stories from Hacker News.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is fully covered. The description adds nothing behavioral beyond that — no default item count, no maximum, no indication of whether the list is ranked or how fresh it is.
Agents need to know what a tool does to the 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 with no filler, appropriate for a one-parameter read tool. Its brevity is efficient, though it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 an undocumented optional parameter and no output schema, the description should say how many stories come back by default and what the limit bounds are. Neither is present, leaving an agent unable to predict result volume.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter, `limit`, with 0% schema description coverage, so the description carries the full burden of explaining it — and it never mentions it. Default value, allowed range, and what happens if omitted are all undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('top stories from Hacker News'), so an agent knows exactly what it returns. It does not distinguish itself from the nearby hn_new_stories / hn_best_stories siblings, leaving the ranking distinction to be inferred from the tool names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over hn_new_stories, hn_best_stories, or hn_ask_hn, and no note on whether it is a one-shot listing or supports paging. The agent must infer the use case entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hn_userCRead-onlyIdempotent
Get a Hacker News user profile.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds nothing beyond the bare purpose—no indication of what a profile returns, error behavior for unknown users, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. It is efficiently sized, though its brevity is also the source of the missing 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?
A simple read tool with annotations covering safety and no output schema, so the burden is low. Still, it says nothing about the shape or content of the returned profile or failure modes, leaving 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 0% and the description says nothing about the single 'username' parameter. However, the parameter is a trivially self-explanatory identifier, so the gap is minor rather than damaging.
Input schemas describe structure but not intent. Descriptions should explain 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 a ... user profile') scoped to Hacker News, clearly distinct from hn_item and hn_top_stories. It doesn't explicitly name a sibling but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use context, no prerequisites (e.g., needing a username), and no mention of alternative tools for other HN resources. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holidays_by_countryCRead-onlyIdempotent
Get public holidays for a country and year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year (defaults to current year) | |
| country_code | Yes | 2-letter ISO code (US, AU, GB, DE, etc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no mention of what the result contains (holiday names, dates, types), whether it errors on unsupported country codes, or whether missing/unrecognized years fall back to the default.
Agents need to know what a tool does to the 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 with zero filler and the key object front-loaded. It is arguably too terse rather than bloated, but 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 two-parameter read tool with rich annotations and a fully documented schema, the minimum viable information is present. However, with no output schema, the description should at least hint at the return shape (a list of holidays with dates) — that is left entirely unspecified, and the relationship to the other holidays_* tools is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 documents country_code as a 2-letter ISO code with examples and year as defaulting to the current year. The description merely restates that both are inputs, adding no format hints or edge-case behavior 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 ('Get public holidays') with the scoping dimensions (country and year), which is clearer than the bare name. It does not distinguish itself from close siblings such as holidays_next, holidays_countries, or holidays_long_weekends, so an agent cannot tell from the description alone which holiday tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus holidays_next (upcoming holidays) or holidays_countries (list supported countries), both of which sit adjacent in the catalog. Usage is only implied by the description's noun phrase; the agent must infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holidays_countriesARead-onlyIdempotent
List all countries supported by the public holidays API.
| 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 no behavioral context beyond that — nothing about list size, ordering, caching, or whether the result is a static reference 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?
A single, front-loaded sentence 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?
There is no output schema, so the description is the only source of information about the return value — and it does not say whether the result is country names, ISO codes, or both. Since the likely downstream use is feeding a country identifier to holidays_by_country, that omission is a real gap for a low-complexity 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 tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate; the schema is trivially complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list all countries supported by the public holidays API. It is clearly distinguishable from holidays_by_country (which returns holidays for one country), though it never names the sibling or explains the relationship 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?
Usage is only implied: an agent can infer this is a discovery/priming call before holidays_by_country, but the description never says when to call it versus the sibling holiday tools, nor whether it is a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holidays_long_weekendsC
Get long weekends for a country and year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year (defaults to current year) | |
| country_code | Yes | 2-letter ISO code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it discloses nothing beyond the purpose line. It does not define what qualifies as a 'long weekend', whether year defaults are applied, whether holidays are included in the output, or how results are ordered. For a read-only lookup the risk is low, but the behavioral gap is real.
Agents need to know what a tool does to the 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 short sentence with the resource and scope front-loaded and no filler. It is efficient, though its brevity is closer to under-specification than to sharp concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of context, and it omits what a long weekend means and what the response contains. For a simple two-parameter lookup this is minimally adequate, but an agent cannot predict the shape or definition of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both 'year' and 'country_code' are documented in the schema, including the current-year default), so the baseline is 3. The description names the same two concepts but adds no format details such as ISO code handling beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('long weekends') scoped to a country and year, so the action is unambiguous. However, it gives no differentiation from close siblings such as 'long_weekends', 'holidays_by_country', and 'holidays_next', which an agent would need to choose between from name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 rather than the near-identical 'long_weekends', 'holidays_by_country', or 'holidays_next' tools. The implicit usage (find long weekends) is derivable from the name, but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holidays_nextB
Get upcoming public holidays for a country.
| Name | Required | Description | Default |
|---|---|---|---|
| country_code | Yes | 2-letter ISO code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read-only operation, but it does not disclose auth needs, rate limits, the time window covered by 'upcoming', or whether results are capped.
Agents need to know what a tool does to the 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 with no wasted words. It is appropriately sized 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?
Low-complexity tool with a fully documented single parameter, but no output schema. The description should ideally clarify what 'upcoming' returns (date range or result shape); it is adequate but has a clear 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 country_code parameter is already documented as a 2-letter ISO code. The description adds only 'for a country', so the schema already does the heavy lifting; 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 ('Get') and resource ('upcoming public holidays') scoped to a country. Clear on its own, but does not explicitly distinguish it from siblings such as holidays_by_country or holidays_long_weekends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no when-to-use guidance or alternatives. The agent must infer that this is the right tool for upcoming holidays rather than holidays_by_country or long-weekend tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopcroft_karpA
Find maximum matching in a bipartite graph using the Hopcroft-Karp algorithm in O(E * sqrt(V)).
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Edges as [left_vertex, right_vertex] pairs | |
| left_size | Yes | Number of vertices on the left side | |
| right_size | Yes | Number of vertices on the right side |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the algorithm and time complexity O(E * sqrt(V)), but it does not describe the return format, vertex indexing assumptions, or behavior for empty/invalid graphs.
Agents need to know what a tool does to the world before calling 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 includes the purpose, algorithm, and complexity. Every part earns its place, with no wasted 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?
Given the lack of annotations and output schema, the description is only partially complete. It explains the algorithm and complexity but omits the return value shape and indexing conventions, which an agent would need to use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description references E and V but adds no further meaning beyond what the schema provides, such as whether vertices are zero-indexed or how edge pairs map to sizes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: finding a maximum matching in a bipartite graph. It also names the exact algorithm, Hopcroft-Karp, which distinguishes it from sibling tools like dinic_max_flow, edmonds_karp, and hungarian_assign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: for maximum matching in a bipartite graph. However, it gives no explicit guidance on alternatives or when not to use it, such as preferring a different algorithm for weighted or general graphs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hp_all_charactersBRead-onlyIdempotent
List all Harry Potter characters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and open-world behavior, so safety is fully covered. The description adds only the scope signal 'all' (i.e., no filtering applied); it says nothing about result size, pagination, or whether house/role fields are included.
Agents need to know what a tool does to the 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 with no redundancy and the scope word front-loaded. It is not padded, though it is thin enough that it borders on under-specification rather than model concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nullary read tool with full safety annotations, this is close to sufficient. However, with no output schema, the agent learns nothing about return shape or payload volume, which matters for a tool that returns every character in a franchise.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is no parameter semantics to explain; baseline is 4. Nothing in the description conflicts with the empty 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 and resource ('List ... characters') and the word 'all' signals the unfiltered scope. It does not explicitly contrast with the HP siblings (hp_students, hp_staff, hp_by_house), so an agent must infer the differentiation rather than read 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?
No guidance on when to call this versus hp_students, hp_staff, or hp_by_house; the only hint is the implicit 'all'. An agent picking among four Harry Potter tools gets no explicit routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hp_by_houseCRead-onlyIdempotent
List characters by Hogwarts house.
| Name | Required | Description | Default |
|---|---|---|---|
| house | Yes | House name: gryffindor, slytherin, hufflepuff, or ravenclaw |
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 fully covered structurally. The description adds nothing beyond that — no return shape, no note on whether house matching is case-sensitive or how many results 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?
A single front-loaded sentence with no filler. Its brevity is efficient rather than padded, though it is arguably under-specified for the job it must do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with complete annotations and a fully documented schema, this is close to adequate. However, it says nothing about the response (list shape, character fields, ordering), and with no output schema that information would have been valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'house' parameter already lists the four allowed values. The description restates the same fact ('by Hogwarts house') without adding format, case, or behavior details, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('characters') with a clear filter ('by Hogwarts house'). It does not distinguish itself from sibling tools like hp_all_characters, hp_students, or hp_staff, which appear to overlap heavily.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus hp_all_characters (unfiltered listing) or hp_students/hp_staff. The agent must infer that this is the house-filtered variant purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hp_staffB
List Hogwarts staff.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a read-only operation, but the description says nothing about authentication, pagination, rate limits, or the nature of the returned data, leaving key behavioral traits undocumented.
Agents need to know what a tool does to the world before calling 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 or redundancy. It is appropriately sized for a no-parameter list tool and 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?
The tool is simple (no parameters, no annotations, no output schema), so the minimal description is nearly sufficient. However, with no output schema, the description could clarify what the returned staff records contain, and it omits any usage context relative to closely related HP 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 tool takes zero parameters, so there are no parameter semantics to explain. Per the rubric, zero parameters establishes a baseline of 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 states a specific verb ('List') and resource ('Hogwarts staff'), making the tool's function immediately clear. It implicitly distinguishes from siblings like hp_students and hp_all_characters by scoping to staff, but 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?
There is no guidance on when to use this tool versus siblings such as hp_students or hp_all_characters. The description only states what it does, leaving the agent to infer appropriate use cases without any explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hp_studentsB
List Hogwarts students.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden but only implies a read-only list operation. It does not disclose return format, pagination, authentication needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple, no-parameter listing 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 no-parameter tool, the description identifies the resource but omits return shape, pagination behavior, and sibling differentiation. It is minimally adequate but leaves gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. Per the rubric, this establishes a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('List') and resource ('Hogwarts students'). However, it does not distinguish this tool from siblings such as hp_all_characters or hp_staff, leaving some ambiguity about 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?
No guidance is provided on when to use this tool versus alternatives like hp_all_characters, hp_by_house, or hp_staff. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
html_stripA
Strip HTML tags and decode entities to plain text.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | HTML text to strip. | |
| preserve_line_breaks | No | Keep line breaks from block elements (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses the two core operations (tag removal and entity decoding), and the schema adds the line-break default. However, it says nothing about handling of embedded script/style content or malformed markup. For a stateless pure-text transform with no auth or destructive concerns, the lighter burden makes a 3 reasonable.
Agents need to know what a tool does to the 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 tight sentence with the effect front-loaded and zero filler. 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, side-effect-free text transformation with no output schema, the description covers the input handling and states the return concept ('plain text'). Only minor edge-case behavior around non-text block content is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 — including the preserve_line_breaks default — are already fully documented in the schema. The description adds no parameter detail beyond that, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Strip HTML tags') plus the transformation outcome ('decode entities to plain text'). An agent immediately knows exactly what this tool does and can distinguish it from adjacent text utilities like markdown_to_html or text_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the transformation itself — call it when you have HTML and want plain text — but there is no explicit when/when-not statement and no mention of alternatives such as markdown_to_html. Adequate but with a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
httpbin_getBRead-onlyIdempotent
Test an HTTP GET request - see your headers, IP, and args echoed back.
| 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 openWorldHint, so the safety profile is covered structurally. The description adds the concrete payoff — request metadata echoed back — which is useful behavioral context, but says nothing about response format or sizing.
Agents need to know what a tool does to the 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-formed sentence with no waste, front-loading the core action before the outputs. It is efficient but leaves no room for the sibling differentiation that would make it stronger.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameters, so little is required, and the annotations carry the safety profile. Still, for a diagnostic echo endpoint the description could say what shape the echo takes and why an agent would choose it over httpbin_headers or httpbin_ip.
Complex tools with many parameters or behaviors need more documentation. 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 zero parameters the baseline is 4. The mention of 'args echoed back' subtly hints at query-string handling, though the schema declares additionalProperties: false, so the description neither confirms nor clarifies parameter behavior beyond the empty 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 gives a specific verb and resource ('Test an HTTP GET request') and states what is returned (headers, IP, args), so the operation is unambiguous. It does not, however, distinguish itself from the closely related siblings httpbin_headers, httpbin_ip, and httpbin_user_agent, which cover overlapping ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pick this tool over the narrower httpbin_headers/httpbin_ip siblings, nor any note about prerequisites or typical use. The agent must infer selection 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.
httpbin_headersB
Get your request headers as seen by httpbin.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only inspection operation but does not state that explicitly, nor does it describe the return format, whether the headers are echoed back, or any auth/permission 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?
A single front-loaded sentence with no waste. It communicates the action and the target resource immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 inspection tool with no output schema and no annotations, the description is adequate but thin. It omits what the response looks like and any behavioral notes, leaving some gaps an agent might need.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4. The description correctly conveys that no inputs are required, and there is no parameter documentation gap to compensate 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 clear verb+resource ('Get your request headers') and adds the scope qualifier 'as seen by httpbin', which distinguishes it from the broader httpbin_get sibling. It is specific but not maximally differentiated from the many httpbin_* utilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 httpbin_get, httpbin_ip, or httpbin_user_agent. The agent must infer usage from the name alone, and no conditions 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.
httpbin_ipARead-onlyIdempotent
Get your public IP address via httpbin.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds only the fact that the call is served by the external httpbin endpoint and returns the caller's public IP; it says nothing about response shape, rate limits, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and the return value, with no filler. Nothing could be removed 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 trivial no-argument GET with no output schema, naming the returned value (the public IP address) is the key information an agent needs. A brief note on the response field or the provider's availability would be the only remaining 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 tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate, and the schema already forbids additional properties.
Input schemas describe structure but not intent. Descriptions should explain 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 concrete verb and resource ("Get your public IP address") plus the backing service ("via httpbin"), which is exactly what separates it from the near-identical sibling ipify_get_ip. It never explicitly contrasts with that sibling, 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?
There is no when-to-use guidance and no mention of alternatives. The sibling set contains several overlapping tools (ipify_get_ip, ipinfo_lookup, ip_lookup, ip_address_lookup, country_by_ip) and the description gives the agent no basis for choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
httpbin_user_agentBRead-onlyIdempotent
Get your User-Agent string via httpbin.
| 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 safety is fully covered elsewhere. The description adds nothing beyond restating the resource: it never notes that the returned User-Agent is the MCP server's HTTP client identity rather than the end user's browser, which is the one non-obvious behavioral fact here.
Agents need to know what a tool does to the 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 short sentence with the resource front-loaded and no filler. It is terse to the point of omitting useful routing information, but nothing present 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 zero-parameter read-only echo endpoint with no output schema, the description is minimally sufficient: it names the returned value. It does not describe the response shape (plain text vs. JSON field) or caveat that the value reflects the calling client, leaving modest gaps an agent could trip on.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify. The statement that it returns 'your User-Agent string' is the only semantic needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the User-Agent string) and names the httpbin backing service, so an agent knows exactly what value comes back. It stops short of distinguishing this from sibling httpbin_headers, which also surfaces User-Agent among other headers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to pick this over httpbin_headers, httpbin_get, or httpbin_ip. The agent must infer that this is the narrow single-value variant of the header-inspection family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
httpbin_uuidB
Generate a random UUID via httpbin.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. Saying 'random' and 'via httpbin' hints that this is a non-deterministic network call to an external service, but it discloses nothing about UUID version/format, latency, availability of the httpbin dependency, or idempotency. For a zero-annotation tool this is a thin 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?
A single, front-loaded sentence with zero filler. Nothing could be removed 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?
For a trivial zero-parameter tool with no output schema, the description is nearly sufficient, but it omits the return shape (e.g., UUID v4 string) and offers no differentiation from the duplicate UUID tools. Adequate, with clear gaps given there is no annotations or output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so parameter semantics carry no burden and the baseline of 4 applies. There is nothing for the description to explain beyond the zero-argument nature already evident 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 verb and resource ('Generate a random UUID') plus the backing service ('via httpbin'), so the action is unambiguous. However, it does not differentiate from closely competing siblings such as uuid_generate and random_uuid, which produce the same artifact, leaving the agent to guess which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 conditions, and no mention of the alternatives (uuid_generate, random_uuid, random_string) that clearly overlap in function. The agent gets no help deciding between three near-identical UUID generators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_cat_imageARead-onlyIdempotent
Get a cat image for any HTTP status code from http.cat (no network call).
| Name | Required | Description | Default |
|---|---|---|---|
| status_code | No | HTTP status code (e.g. 200, 404, 500). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds that it involves no network call, which is genuinely useful for an agent deciding on latency/reliability, but it never says what actually comes back (an image URL vs image bytes), and 'no network call' sits slightly awkwardly with openWorldHint=true.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with the distinguishing qualifier and the no-network trait appended efficiently. Nothing 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 trivial one-parameter tool this is nearly sufficient, but with no output schema the description should clarify whether it returns a URL or raw image data; that ambiguity is the main remaining 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 a single, well-documented parameter (status_code with examples), so the schema does the heavy lifting. The description's 'any HTTP status code' reinforces the intended range (including non-standard codes) but 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?
States a specific verb and resource ('Get a cat image') plus a distinguishing scope ('for any HTTP status code from http.cat'), which separates it from the many other cat-image siblings such as cat_api_random_image or cataas_random_cat 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?
Usage is only implied: an agent can infer you use it when you need a cat image keyed to an HTTP status code. There is no explicit statement of when to prefer this over the other cat image tools, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_dog_imageARead-onlyIdempotent
Get a dog image URL for an HTTP status code (like httpcat but with dogs).
| Name | Required | Description | Default |
|---|---|---|---|
| status_code | Yes | HTTP status code (100-599). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds real value by disclosing that the return is a URL rather than image bytes and that output is a fixed per-code mapping (httpcat-style), which no output schema supplies.
Agents need to know what a tool does to the 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 sentence, front-loaded with the action and resource, with the analogy doing compact explanatory work. Nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 covers action, input semantics and return type (a URL). The only shortfall is the lack of sibling disambiguation against http_cat_image.
Complex tools with many parameters or behaviors need more documentation. Simple 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 the 100-599 range documented on status_code, so the schema carries parameter meaning. The description reinforces that the code drives selection but adds no format or edge-case 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 (get) and resource (dog image URL) tied to an HTTP status code input, and the httpcat analogy pins down the mapping concept immediately. It does not distinguish itself from the sibling http_cat_image, which the agent must infer from the word 'dogs'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The httpcat comparison implies when this is useful (illustrating a status code), but there is no explicit when-to-use/when-not guidance, and the near-identical sibling http_cat_image is never named or ruled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_create_contactC
Create a HubSpot contact.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Contact email address | ||
| properties | No | Additional contact properties (firstname, lastname, company, phone, ...) | |
| access_token | Yes | HubSpot Private App access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether duplicate emails error or upsert, whether the operation is idempotent, what permissions/scopes are required, or what gets created. For a mutation tool with zero annotation coverage this is a significant 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 single sentence is front-loaded and wastes no words, which is appropriate. It is efficient but comes at the cost of under-specification rather than being genuinely 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 mutation tool with no annotations, no output schema, and a nested properties object, one sentence is inadequate. Key facts an agent needs (idempotency, duplicate handling, required scopes, response shape) are all absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so email, properties, and access_token are all documented in the schema, and the baseline is 3. The description adds no syntax, format, or usage detail for the nested properties object 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 states a specific verb (Create) and resource (HubSpot contact) that an agent can immediately understand. It does not explicitly differentiate from siblings like hubspot_get_contact or hubspot_search_contacts, but the create-vs-read distinction is clear from the 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?
There is no guidance on when to use this tool versus hubspot_search_contacts or hubspot_list_contacts, no mention of prerequisites (an access token is required but unexplained), and no conditions or exclusions. The agent gets no routing help beyond the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_get_contactBRead-onlyIdempotent
Get a single HubSpot contact by id.
| Name | Required | Description | Default |
|---|---|---|---|
| contact_id | Yes | HubSpot contact id | |
| properties | No | Comma-separated properties to return | |
| access_token | Yes | HubSpot Private App access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond the operation itself—nothing about whether all properties or only default properties are returned, nor anything about property filtering or token 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?
A single short sentence with no filler and the key scope ('by id') front-loaded. It is efficient, though it could have used one additional clause to route agents toward search/list alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-resource read tool with full schema coverage and annotations that already communicate safety and idempotency, the description is nearly complete. The main missing piece is whether the response contains full or filtered property data, but with no output schema a brief return-value note would have helped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 contact_id, optional comma-separated properties, and access_token. The description adds no parameter meaning beyond that baseline, so 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 single HubSpot contact') and scopes it to lookup by id, which implicitly distinguishes it from hubspot_list_contacts and hubspot_search_contacts. It does not explicitly name those alternatives, 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?
'by id' implies the precondition that you need a known contact id, which gives implied usage guidance. However, it never says when to use this versus search_contacts (find by other attributes) or list_contacts (browse all), and provides no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_companiesCRead-onlyIdempotent
List HubSpot CRM companies.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor from a previous response | |
| limit | No | Companies to return (max 100, default 25) | |
| properties | No | Comma-separated properties to return | |
| access_token | Yes | HubSpot Private App access token |
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 nothing beyond that—no mention of pagination behavior (even though the 'after' cursor exists), result ordering, or rate limits—so it fails to add value over structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero waste, which is structurally sound. It is arguably too terse to convey anything beyond the name, but it is not padded or disorganized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated listing tool with no output schema, an agent would benefit from knowing the return shape (e.g., that results come with a paging cursor), default ordering, and how this differs from search endpoints. None of that is present, leaving the definition thin despite complete parameter docs and helpful 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 description coverage is 100%, with all four parameters (after, limit, properties, access_token) documented inline, so the schema carries parameter meaning. The description adds no additional semantics beyond restating the resource, which matches the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 HubSpot CRM companies'), so an agent knows exactly what the tool retrieves. It does not, however, distinguish this from related siblings such as hubspot_list_contacts, hubspot_search_contacts, or hubspot_get_contact, which a 5 would require.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (search vs. list, contacts vs. companies vs. deals), and no prerequisites or exclusion conditions are mentioned. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_contactsARead-onlyIdempotent
List HubSpot CRM contacts (most recently created first).
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor from a previous response | |
| limit | No | Contacts to return (max 100, default 25) | |
| properties | No | Comma-separated properties to return | |
| access_token | Yes | HubSpot Private App access token |
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 one genuine behavioral fact not in annotations — results are returned newest-first — but says nothing about pagination flow, rate limits, or the token's permission requirements despite having an 'after' cursor.
Agents need to know what a tool does to the 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 short sentence with no filler, and the most decision-relevant fact (recency ordering) is placed immediately after the resource. Appropriately sized for a simple list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage, an output-free contract and annotations covering safety, the definition is nearly sufficient. The remaining shortfall is disambiguation from hubspot_search_contacts, which sits in the same CRM namespace and could easily be chosen instead.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'after', 'limit', 'properties' and 'access_token' are each documented in the schema, including the max/default for limit. The description adds no parameter meaning beyond that, which is the expected baseline-3 case when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List HubSpot CRM contacts') plus an ordering trait ('most recently created first'), so the agent knows exactly what it retrieves. It does not distinguish itself from the sibling hubspot_search_contacts or hubspot_get_contact, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the ordering note hints that this is a browse-recent flow rather than a targeted lookup, but the description never says when to prefer it over hubspot_search_contacts (filtered search) or hubspot_get_contact (single record). No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_dealsCRead-onlyIdempotent
List HubSpot CRM deals.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor from a previous response | |
| limit | No | Deals to return (max 100, default 25) | |
| properties | No | Comma-separated properties to return | |
| access_token | Yes | HubSpot Private App access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered without the description. The description adds no behavioral context beyond them—nothing about pagination behavior, result ordering, default page behaviour, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the resource front-loaded. It is efficient, though its brevity is under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four-parameter list tool with fully documented params and complete read-only annotations, the description is minimally sufficient to call it. It omits what a returned deal looks like and how paging terminates, which is a real but modest gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters (after, limit, properties, access_token) are documented in the schema itself. The description adds nothing 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?
States a specific verb and resource ('List HubSpot CRM deals'), so an agent immediately knows this is a read operation over the deals collection. It does not differentiate from any sibling (e.g., hubspot_list_contacts, hubspot_list_companies) or explain the scope of the listing, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus any alternative, no mention of prerequisites beyond the schema's access_token, and no exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_search_contactsBRead-onlyIdempotent
Search HubSpot contacts by name, email, or company.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results to return (max 100, default 25) | |
| query | Yes | Search term (name, email, or company) | |
| properties | No | Comma-separated properties to return | |
| access_token | Yes | HubSpot Private App access token |
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 no behavioral context beyond the schema, such as pagination behavior, result limits, search matching behavior, or authentication requirements. It does not contradict the annotations, but it adds little value beyond 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 a single, front-loaded sentence with no filler. It immediately communicates the action, resource, and supported search 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 simple read-only search tool with full schema coverage and rich annotations, the description provides enough context to understand the core operation. It is not fully complete because it omits sibling differentiation and any result-behavior details, but no critical gap prevents an agent from selecting or calling 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 all four parameters are already documented in the schema, including query fields, properties, limit, and access_token. The description restates the query fields but adds no additional meaning, constraints, or format guidance. Baseline 3 is appropriate when the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 HubSpot contacts. It also clarifies that search fields are name, email, or company. It does not distinguish this from sibling tools such as hubspot_list_contacts or hubspot_get_contact, 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?
Usage is implied by the phrase 'Search HubSpot contacts by name, email, or company,' which suggests this tool is for lookup-style queries. However, it does not explicitly say when to use this versus hubspot_list_contacts or hubspot_get_contact, nor does it state exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
huffman_codeA
Build a Huffman coding tree for the given text and return the code table, encoded bit count, compression ratio, and entropy.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to encode (max 100000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; it helpfully enumerates the four outputs (code table, bit count, compression ratio, entropy), giving the agent a picture of the response. However, it omits input constraints, determinism, and any output format details, so gaps remain.
Agents need to know what a tool does to the 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-formed sentence that front-loads the operation and then lists the outputs. Nothing is wasted 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?
No output schema exists, so the description properly compensates by naming the four return values. For a deterministic single-input algorithm tool this is nearly complete, with only minor details like format of the code table left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple 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 the single 'text' parameter fully documented including the max length, so the schema does the heavy lifting. The description adds no meaning beyond confirming that text is what gets encoded, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Build) and resource (Huffman coding tree) for a given input, and enumerates the outputs. It is unambiguous and distinguishable from algorithmic siblings such as entropy_calculate or char_frequency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this tool versus alternatives, no prerequisites, and no exclusions. The purpose implies the use case, but no routing guidance is provided despite many sibling algorithm tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hungarian_assignB
Solve the assignment problem (optimally assign N workers to N tasks) using the Hungarian algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| maximize | No | Maximize instead of minimize (default false) | |
| cost_matrix | Yes | NxN cost matrix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the algorithm and that results are optimal, which is genuinely useful behavioral context, but it says nothing about the return format, how non-square or infeasible matrices are handled, or that the operation is a pure computation with no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core action and packs the problem definition and algorithm into one line 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 computational tool this is nearly adequate, but with no output schema the description gives no hint of what is returned (assignment pairs, total cost) or the matrix constraints, leaving a real gap for an agent trying to consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cost_matrix and maximize are already documented in the schema, establishing the baseline of 3. The description adds only the implicit NxN / square-matrix framing (N workers to N tasks), which is marginal additional 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?
States a specific verb and resource ('Solve the assignment problem'), names the algorithm, and clarifies the operation with the worker/task phrasing. However, it never differentiates itself from algorithmically adjacent siblings such as tsp_solve or min_cost_max_flow, 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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives even though the sibling list contains several optimization solvers. The agent must infer the selection criteria entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_domain_infoCRead-onlyIdempotent
Get email information for a domain from Hunter.io.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| api_key | No |
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 only 'from Hunter.io', which hints at a third-party external call already implied by openWorldHint; it says nothing about API-key requirements, quotas/credits, or what the response contains.
Agents need to know what a tool does to the 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 short sentence is front-loaded and wastes no words, but brevity here is under-specification rather than economy — the one sentence could easily absorb a clause about what is returned or which sibling to prefer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, two undocumented parameters (one of them an auth credential), and no return-value detail, the definition leaves an agent unable to predict the response shape or reliably supply the API key. It is too thin for a tool that hits a credentialed third-party service.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, but it only implies the 'domain' parameter exists and says nothing about 'api_key' — including whether it is required, whether it can come from an environment variable, or what format the domain should take (bare hostname vs URL).
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource (get email information for a domain) but 'email information' is vague — it does not say whether this returns a company profile, an email pattern, contact counts, or a full contact list. It also does not distinguish itself from siblings hunter_find_email and hunter_verify_email, which an agent could easily confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus hunter_find_email (to find a specific person's address) or hunter_verify_email (to validate an address). No prerequisites or exclusions are stated, leaving the agent to infer that this is a domain-level lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_find_emailCRead-onlyIdempotent
Find email addresses for a domain using Hunter.io.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| api_key | No | ||
| last_name | No | ||
| first_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds that this hits an external provider (Hunter.io), but it omits credit consumption, API-key requirements, rate limits, and outcome when nothing is found — meaningful gaps for a paid third-party API.
Agents need to know what a tool does to the 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 with no waste. Brevity is appropriate, though it is arguably under-specified rather than tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no parameter documentation, plus an external paid API. The description does not say what a result looks like, how confidence/verification is expressed, or what happens on empty results — insufficient for an agent to call this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters. The description only implicitly covers 'domain' and says nothing about first_name/last_name filters (which change how results are targeted) or the api_key, so it does not compensate for the 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?
States a specific verb (find) and resource (email addresses) scoped to a domain, and names the upstream provider. It is clear what the tool returns, though it does not explicitly distinguish itself from siblings hunter_verify_email or hunter_domain_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?
No when/when-not guidance and no named alternatives. An agent must infer from the fragment 'for a domain' that this is a domain-based email discovery call rather than verification or enrichment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hunter_verify_emailCRead-onlyIdempotent
Verify an email address with Hunter.io.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so safety is covered. The description adds nothing beyond naming the third-party provider: it does not say whether verification consumes API credits, requires a valid api_key, what statuses come back (deliverable/risky/undeliverable), or how confidence is expressed.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, with zero padding. It is efficient, but its brevity comes at the cost of the usage and parameter detail noted elsewhere rather than being genuinely complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no explanation of what a "verify" result contains, the description leaves the most important thing undefined: how the agent should interpret and act on the verdict. For a 2-parameter, zero-coverage, no-output-schema tool, this is 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 description coverage is 0%, so the description must carry parameter meaning and does not. The required email parameter and especially api_key (an authentication credential) are never mentioned, so an agent cannot tell from the description that a key must be supplied or how the address should be formatted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ("Verify") and resource ("an email address") plus the provider, so the core action is unambiguous. However it does not distinguish this from siblings like hunter_find_email or hunter_domain_info, leaving the agent to infer the boundary from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus hunter_find_email (find an address) or hibp_check_account (breach check), nor any prerequisite or exclusion. The agent gets a capability statement but no routing guidance in a crowded namespace of email/identity tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypothesis_testBRead-onlyIdempotent
Perform statistical hypothesis tests: z-test, t-test, or chi-squared test. Returns test statistic, p-value, and rejection decision.
| Name | Required | Description | Default |
|---|---|---|---|
| tail | No | Tail type (default two) | |
| test | Yes | Type of test | |
| alpha | No | Significance level (default 0.05) | |
| expected | No | Expected frequencies (for chi2) | |
| observed | No | Observed frequencies (for chi2) | |
| sample_std | No | Sample standard deviation (for t-test) | |
| sample_mean | No | Sample mean (for z/t tests) | |
| sample_size | No | Sample size (for z/t tests) | |
| population_std | No | Population standard deviation (for z-test) | |
| population_mean | No | Population mean / null hypothesis value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, no destruction, so the safety profile is covered. The description adds the return shape (statistic, p-value, rejection decision), which is genuine value with no output schema present. It says nothing about error conditions, e.g. chi2 called without observed/expected, but with annotations in place 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?
Two sentences, zero filler, front-loaded with purpose and followed by returns. Nothing could be removed 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 10 parameters, no output schema, and a mode-selector parameter, the description is thin on the one thing an agent most needs: which parameter set goes with which test mode. It compensates by stating the return values, but the valid parameter combinations remain inferable only from scattered schema hints.
Complex tools with many parameters or behaviors need more documentation. Simple 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 property already documents its role, including which test it belongs to ('for chi2', 'for t-test'). The description repeats the test enum but contributes no additional parameter meaning such as which combinations are mutually valid. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Perform') plus a resource ('statistical hypothesis tests') and enumerates the three supported variants (z, t, chi-squared), so an agent immediately knows its function. It stops short of distinguishing itself from nearby stats siblings such as zscore_calculate, normal_distribution, or statistics_calc, which do not perform inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to pick a z-test vs a t-test vs chi2, no prerequisite conditions (large sample and known population sigma for z, sample_std for t, observed/expected pairs for chi2), and no mention of alternatives. The only routing signal is the enum list, which an agent could get from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iban_validateARead-onlyIdempotent
Validate an IBAN and get bank/BIC info via OpenIBAN.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | IBAN to validate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds two genuinely useful facts beyond them: it calls an external provider (OpenIBAN) and it returns bank/BIC metadata rather than a bare boolean. It stops short of saying what happens on an invalid IBAN (error vs. valid=false).
Agents need to know what a tool does to the 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 naming the action, the input, the enrichment, and the provider. Nothing 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?
For a one-parameter read tool with full annotations, this covers intent and output substance. There is no output schema, so a brief note on the shape of the bank/BIC payload or on invalid-IBAN behavior would have closed the last 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?
One required parameter at 100% schema coverage, so the schema already fully documents the input. The description adds nothing about IBAN formatting expectations, which would have been the one place it could have compensated.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Validate') and resource ('IBAN') plus the secondary payoff (bank/BIC info) and the underlying provider (OpenIBAN). No sibling tool does IBAN validation, so differentiation is not required, but the description doesn't need to name 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?
Usage is only implied by the verb 'Validate' — there is no statement of when to reach for this versus doing ad-hoc format checks, nor any note about what input forms are acceptable (spacing, country prefix, length). No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iceandfire_booksB
List or search books in the A Song of Ice and Fire series.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Book title to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only operation through 'List or search,' but does not state whether authentication is required, whether results are paginated, or any other behavioral trait beyond the basic action.
Agents need to know what a tool does to the world before calling 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 wasted words. It efficiently conveys the tool's scope and actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, one optional parameter, and no output schema, the description is minimally adequate. However, it lacks details about return format, search matching behavior, and pagination, which an agent might need for confident 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% for the single parameter, so the schema already documents the name field. The description adds no extra meaning beyond what the schema provides, matching the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a clear verb ('List or search') and resource ('books in the A Song of Ice and Fire series'), which distinguishes it from sibling tools like iceandfire_characters and iceandfire_houses. It does not explicitly name alternatives, but the resource scope is sufficiently specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus similar book-related tools, nor does it clarify when to list versus search or what the optional name parameter is for. The schema provides the parameter name, but no usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iceandfire_charactersBRead-onlyIdempotent
Search characters from A Song of Ice and Fire (Game of Thrones).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Character name to search for | |
| limit | No | Results per page (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds nothing beyond that — no mention of result pagination, empty-result behavior, or that data comes from an external franchise API.
Agents need to know what a tool does to the 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 short sentence with zero filler, front-loading the franchise scope so the agent knows the domain immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, this is minimally sufficient. It could still say more about matching behavior and result set to remove ambiguity 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%, documenting both 'name' and 'limit', so the schema carries parameter meaning. The description adds no extra constraints (e.g., partial vs exact name matching), which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain 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 (characters) scoped to the A Song of Ice and Fire / Game of Thrones universe. It does not name the sibling tools (iceandfire_books, iceandfire_houses), but the resource noun makes the boundary inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus iceandfire_books or iceandfire_houses, nor any note on search semantics (name match type) or paging behavior. The word 'Search' is the only implied usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iceandfire_housesB
Search noble houses from A Song of Ice and Fire (Game of Thrones).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | House name to search for | |
| limit | No | Results per page (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies a read-only search but says nothing about pagination behavior (relevant given the limit param), rate limits, authentication, or what happens when no matches are 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?
A single tight sentence with the verb, resource, and disambiguating franchise context front-loaded. 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 simple two-param search tool with a fully documented schema and no output schema, the description is minimally sufficient. It omits pagination/result-shape context that limit would imply, leaving a small 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 the name and limit parameters are already documented in the schema (including the default of 10). The description adds no additional parameter meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("Search") and resource ("noble houses"), plus the franchise context, so the agent knows exactly what it retrieves. It is inherently distinguished from siblings like iceandfire_books and iceandfire_characters by the resource, though it never names 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?
There is no guidance on when to use this tool versus the sibling iceandfire_books or iceandfire_characters, nor any prerequisites or exclusions. The agent must infer usage purely from the resource noun.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
igdb_get_companyCRead-onlyIdempotent
Get a game company from IGDB by name or ID.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Company name to search for | |
| client_id | No | ||
| company_id | No | IGDB company ID (takes precedence over name) | |
| client_secret | No |
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 fully covered. The description adds no behavioral context beyond that—it does not mention authentication requirements for client_id/client_secret or any rate-limit or return-format 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?
A single front-loaded sentence with no filler, immediately conveying the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 retrieval with annotations covering safety, the description is minimally adequate. However, it leaves out any mention of the authentication parameters and gives no hint about the response shape, which matters because 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 description coverage is 50%, and the description only restates what the schema already says ('by name or ID'). The two auth parameters (client_id, client_secret) are completely undocumented in both the schema and the description, so the description fails to compensate for the coverage 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 states a specific verb ('Get'), resource ('game company from IGDB'), and lookup mechanism ('by name or ID'). It clearly differs from siblings like igdb_get_game or igdb_search_games by resource type, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., a search tool) or when to prefer name over ID. The phrase 'by name or ID' hints at two lookup modes but does not specify which is appropriate or what happens if both are supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
igdb_get_gameBRead-onlyIdempotent
Get full details of a game from IGDB by game ID.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | IGDB game ID | |
| client_id | No | ||
| client_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds only 'full details,' and notably omits any mention of the client_id/client_secret parameters or whether auth is required, leaving a gap the description should fill.
Agents need to know what a tool does to the 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 efficient sentence with the key information (resource, source, lookup key) front-loaded. No waste, though it could do more without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with annotations covering the safety profile and no output schema, the basics are covered. However, the undocumented auth parameters and vague 'full details' leave an agent without guidance on credentials or return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: game_id is documented but client_id and client_secret are undocumented in both schema and description. The description restates the game_id semantics but adds nothing about the two undocumented parameters, failing 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?
Names a specific verb (get), resource (game), source (IGDB), and lookup key (game ID), which implicitly separates it from igdb_search_games. It is clear but doesn't explicitly state what extra scope it covers versus the search 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?
'by game ID' implies you should use this when you already have an ID, but the description never says when to prefer igdb_search_games or what to do if you lack an ID. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
igdb_list_genresBRead-onlyIdempotent
List all game genres from IGDB.
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | No | ||
| client_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered elsewhere. The description adds only the implicit claim that this returns the complete genre set ('all'), with no mention of result size, caching, or rate limits on the IGDB API.
Agents need to know what a tool does to the 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 short sentence with the resource front-loaded and no filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with no output schema, the description could stand on annotations for safety, but it leaves the credential parameters completely unexplained. That is the one piece of information an agent actually needs and it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the two parameters (client_id, client_secret) are undocumented in both the schema and the description. An agent gets no signal that these are IGDB credential strings, how to obtain them, or what happens if they are omitted — a meaningful gap for an authentication-bearing 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?
States a specific verb and resource ('List all game genres') plus the data source ('from IGDB'), which is enough for an agent to identify it. It doesn't explicitly differentiate itself from the nearby igdb_list_platforms sibling, but the resource noun does that implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to call this versus igdb_search_games, igdb_get_game, or rawg_list_genres, and no guidance on prerequisites. An agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
igdb_list_platformsCRead-onlyIdempotent
List gaming platforms from IGDB.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 30) | |
| offset | No | ||
| client_id | No | ||
| client_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered by structured data. The description adds nothing beyond the name: no mention of auth needs (client_id/client_secret are present in the schema), no pagination behavior, no rate-limit or result-shape 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?
A single front-loaded sentence with no filler, which is structurally clean, but the brevity stems from under-specification rather than disciplined editing. It reads as a 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 4-parameter tool with 0 required params and no output schema, the description does not say what a platform record contains (id, name, abbreviation, generation?) or how limit/offset paginate. With annotations covering behavior, this is a significant but not fatal 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 only 25% — offset, client_id, and client_secret are undocumented. The description supplies no parameter meaning at all, so it fails to compensate for the coverage gap; notably, the role of the credentials parameters is left entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain 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) plus resource (gaming platforms) and the data source (IGDB), so it is distinguishable from siblings like igdb_search_games or rawg_list_platforms. It stops short of naming a sibling or clarifying scope (all platforms? paginated?), so a 5 is not warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use, when-not-to-use, or alternative guidance. The agent is not told whether this returns the complete platform catalog or whether it should prefer igdb_search_games for lookup workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
igdb_search_gamesBRead-onlyIdempotent
Search the IGDB games database by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50) | |
| query | Yes | Game name to search for | |
| client_id | No | Twitch/IGDB Client ID (or set IGDB_CLIENT_ID) | |
| client_secret | No | Twitch/IGDB Client Secret (or set IGDB_CLIENT_SECRET) |
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 fully covered externally. The description adds nothing beyond that — no mention of the credential requirement, result ordering, or pagination behavior of an external open-world search. With the bar lowered by annotations, this is still an empty contribution.
Agents need to know what a tool does to the 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 with zero filler; the core action and data source come first. It is efficient but so terse that efficiency shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 says nothing about what a result contains (id, name, platforms, cover art) or how to follow up with igdb_get_game. The auth parameters are covered by the schema, but the missing return-shape and routing guidance leaves real 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 description coverage is 100%, so all four parameters (query, limit, client_id, client_secret) are already documented, including the limit default and max. The description's 'by name' reinforces the primary parameter but adds no format, matching, or credential-fallback 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 and resource: 'Search the IGDB games database by name'. An agent can tell it is a name-based search rather than a by-ID lookup. It does not name or differentiate from siblings like igdb_get_game, igdb_list_genres, or igdb_list_platforms, 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 phrase 'by name' implicitly contrasts with igdb_get_game (detail by ID), but the description never states when to prefer this tool, what happens when multiple games match, or that platform/genre listing tools exist as alternatives. Guidance is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
igniteonly_apiA
Run IgniteOnly💥 on a verified NudgeOnly bridge result or deterministic evidence. Emits a compact public worker wake packet only when safety gates pass.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Human target label such as PR #706, issue #706, or a dispatch ID. | |
| request | No | Optional receipt request with worker, expected_receipt, verifier, and receipt_line. | |
| verified | No | True only when a trusted deterministic verifier has checked the evidence. | |
| bridge_id | No | Optional trusted bridge ID, such as nudgebridge_<hash>. | |
| source_id | No | Optional upstream event, dispatch, PR, issue, or wake identifier. | |
| source_url | No | Optional upstream source URL. | |
| bridge_result | No | Optional bridge result alias. | |
| bridge_status | No | receipt_request, escalation_request, advisory_only, or quiet. | |
| nudge_trace_id | No | Optional upstream NudgeOnly trace ID. | |
| painpoint_type | No | stale_ack, duplicate_wake, unclear_owner, noisy_thread, missing_proof, dormant_worker, or none. | |
| verifier_status | No | Optional verifier status such as passed, verified, confirmed, wakepass_pass, proof_checked, or ack_checked. | |
| painpoint_detected | No | Whether trusted evidence found a painpoint. | |
| nudge_bridge_result | No | Optional output from nudgeonly_receipt_bridge. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the conditional output ('only when safety gates pass') but does not explain side effects, error handling, or authentication needs. Minimal 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?
Two efficient sentences front-load the purpose and condition with no fluff. 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?
Given 13 parameters with nested objects and no output schema, the description is insufficient. It lacks explanation of 'safety gates', what constitutes verified input, and output structure. Missing critical context for complex 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 baseline is 3. The description adds little beyond the schema; it mentions 'verified NudgeOnly bridge result' which maps to some parameters, but does not explain parameter interactions or usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs IgniteOnly on a verified NudgeOnly bridge result or deterministic evidence, and emits a wake packet only when safety gates pass. This distinguishes it from siblings like nudgeonly_api and pushonly_api.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 on verified evidence with safety gates, but lacks explicit guidance on when not to use it or alternative tools. The condition 'only when safety gates pass' provides some 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.
igniteonly_policyA
Return the PinballWake IgniteOnlyAPI guardrails. This is the green ignite sibling to NudgeOnly: verified worker wake packets only, no build, merge, approval, closure, or truth-setting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns guardrails and specifies constraints (verified worker wake packets only, and disallows certain operations), but omits details on side effects, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the action and resource, and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description adequately explains the return value (guardrails) and their nature. It could specify the output format (e.g., JSON), but this is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100% trivially. The description adds no parameter information, but for zero-parameter tools the baseline score is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' and identifies the resource as 'PinballWake IgniteOnlyAPI guardrails'. It distinguishes itself from the sibling 'NudgeOnly' by specifying what is included (verified worker wake packets only) and excluded (no build, merge, approval, closure, or truth-setting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 by labeling this as the 'green ignite sibling' to NudgeOnly, but it does not explicitly state when to use this tool versus alternatives or provide 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.
igniteonly_receipt_consumerB
Consume a NudgeOnly receipt bridge result and emit a compact IgniteOnly worker wake packet when verified. It never edits code, merges, approves, closes, or marks done.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Human target label such as PR #706, issue #706, or a dispatch ID. | |
| request | No | Optional receipt request with worker, expected_receipt, verifier, and receipt_line. | |
| verified | No | True only when a trusted deterministic verifier has checked the evidence. | |
| bridge_id | No | Optional trusted bridge ID, such as nudgebridge_<hash>. | |
| source_id | No | Optional upstream event, dispatch, PR, issue, or wake identifier. | |
| source_url | No | Optional upstream source URL. | |
| bridge_result | No | Optional bridge result alias. | |
| bridge_status | No | receipt_request, escalation_request, advisory_only, or quiet. | |
| nudge_trace_id | No | Optional upstream NudgeOnly trace ID. | |
| painpoint_type | No | stale_ack, duplicate_wake, unclear_owner, noisy_thread, missing_proof, dormant_worker, or none. | |
| verifier_status | No | Optional verifier status such as passed, verified, confirmed, wakepass_pass, proof_checked, or ack_checked. | |
| painpoint_detected | No | Whether trusted evidence found a painpoint. | |
| nudge_bridge_result | No | Optional output from nudgeonly_receipt_bridge. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals the tool emits a wake packet when verified, but lacks detail on side effects, idempotency, or dependencies. The statement about not editing code helps, but overall transparency is insufficient for a mutation-like 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 very concise: two sentences, front-loaded with the primary purpose, followed by a clear exclusion list. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 100% schema coverage, the description does not explain the workflow or how this tool fits with siblings like nudgeonly_receipt_bridge. It also lacks guidance on the 13 optional parameters and 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 coverage is 100% with descriptions for all 13 optional parameters. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific action: consume a NudgeOnly receipt bridge result and emit a compact IgniteOnly worker wake packet when verified. It also explicitly lists actions it does NOT perform (edit code, merge, approve, close, mark done), distinguishing it from potential sibling tools that might do those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 implied usage context by stating what it never does, but does not explicitly say when to use this tool versus alternatives like nudgeonly_receipt_bridge or igniteonly_api. No direct guidance on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
imgflip_get_memesARead-onlyIdempotent
Get the top 100 popular meme templates from Imgflip.
| 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 safety is fully covered. The description adds the useful detail that the result is capped at 100 and reflects popularity, but says nothing about ordering guarantees or whether the list is stable over time.
Agents need to know what a tool does to the 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 with the scope constraint ('top 100 popular') up front and zero filler. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial no-parameter read with no output schema, the description covers what is fetched and how many. A brief note on ordering or the fields each template carries would make it fully self-sufficient, 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 tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. The schema's additionalProperties=false is consistent with the no-argument framing.
Input schemas describe structure but not intent. Descriptions should explain 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 (meme templates), source (Imgflip), and a bounded scope (top 100 popular). An agent immediately knows what it returns. It does not differentiate from the sibling memegen_templates, which appears to fetch a similar template 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?
Usage is only implied by the purpose — you call it when you need meme templates. There is no explicit when-to-use, no exclusion, and no mention of the obvious alternative memegen_templates, so an agent cannot tell which template source to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instapaper_actionC
Perform an Instapaper action: get_instapaper_bookmarks, add_instapaper_bookmark, archive_bookmark, delete_bookmark, get_instapaper_folders.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| limit | No | ||
| title | No | ||
| action | Yes | ||
| password | No | ||
| username | No | ||
| folder_id | No | ||
| bookmark_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It does not disclose that actions like delete_bookmark are destructive, nor mentions authentication, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loads the action list, which is good. However, it lacks depth and could be more structured to improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description fails to provide essential context such as return formats, error handling, or parameter usage patterns. It is insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description only enumerates possible action values but does not explain parameter relationships (e.g., which parameters are needed for each action) or add 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 lists the specific actions (get bookmarks, add, archive, delete, get folders) and states this is for Instapaper. However, it does not distinguish from sibling action tools for other services, though the name implies the service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. It does not mention prerequisites, preferred actions, or scenarios where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intercom_get_conversationBRead-onlyIdempotent
Get a single Intercom conversation by id.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | Yes | Intercom access token | |
| conversation_id | Yes | Conversation id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds nothing beyond that—no mention of auth/permission requirements, not-found behavior, or the shape of the returned conversation.
Agents need to know what a tool does to the 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 with no filler; the resource and lookup key come first. It is efficient but so terse that it leaves behavioral questions unanswered rather than being optimally scoped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and complete annotations, the definition is adequate; there is no output schema to describe. Minor gap: it does not indicate what a returned conversation contains or what happens when the id is invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 access_token and conversation_id are already documented; the description only restates that lookup is keyed on the id. Baseline 3 applies since the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a single Intercom conversation') and the lookup key ('by id'), which implicitly contrasts with the sibling list tool. It stops short of explicitly naming intercom_list_conversations as the alternative for bulk retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus intercom_list_conversations or intercom_search_contacts, and no preconditions or error cases (e.g., unknown id) are mentioned. The agent must infer that 'single ... by id' means one record at a time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intercom_list_contactsCRead-onlyIdempotent
List Intercom contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Contacts to return (max 150, default 25) | |
| access_token | Yes | Intercom access token | |
| starting_after | No | Pagination cursor from a previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety and idempotency are covered. The description adds nothing beyond those structured fields — no note on pagination behavior, result caps, rate limits, or what a page of contacts contains.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though its brevity reflects thin content rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 full schema coverage, annotations, and only three params, the definition is minimally sufficient to invoke the tool. It falls short of complete because it never addresses the list-vs-search relationship or the pagination workflow that the starting_after cursor implies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (max 150, default 25), access_token, and starting_after (pagination cursor) are all documented in the schema. The description contributes no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List Intercom contacts'), which is unambiguous on its own. It does not, however, distinguish this from the closely related sibling intercom_search_contacts, so an agent cannot tell from the text alone which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 rather than intercom_search_contacts, intercom_list_conversations, or any of the many hubspot/xero contact-list siblings. No prerequisites or exclusions are mentioned; the agent must infer that this is the unfiltered enumeration path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intercom_list_conversationsBRead-onlyIdempotent
List recent Intercom conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Conversations to return (max 150, default 20) | |
| access_token | Yes | Intercom access token | |
| starting_after | No | Pagination cursor from a previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds the 'recent' scoping, but does not disclose ordering, pagination direction, or result shape beyond what the schema 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?
A single short, front-loaded sentence with zero filler. It is efficient, though it leaves room to add a routing hint without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and no output schema, the description is broadly sufficient. However, 'recent' leaves ordering and pagination semantics ambiguous, which is the main gap an agent would hit when paging results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so limit, access_token, and starting_after are already fully documented in the schema. The description adds no further parameter meaning such as default sort order or cursor direction, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Intercom conversations) with a scope qualifier (recent). An agent can infer it differs from intercom_get_conversation, but the description never names the sibling to reinforce that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"List recent" implies a browsing use case, but there is no explicit when-to-use guidance, no mention of alternatives like intercom_search_contacts, and no note about when to prefer this over fetching a single conversation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intercom_search_contactsARead-onlyIdempotent
Search Intercom contacts by email.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Email (or partial email) to match | |
| access_token | Yes | Intercom access token |
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 carried by structured data. The description adds no behavioral context beyond that - nothing about partial-match semantics, multiple-match behavior, pagination, or result limits - but it does not contradict the annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource and the matching key front-loaded; nothing is redundant or 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?
With annotations covering safety and the schema covering both parameters, the definition is functional, and no output schema means return values need not be described. However, for a search endpoint nothing tells the agent whether matches are fuzzy, whether all matches are returned, or how access failures surface, which leaves real gaps for a two-parameter authenticated search.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are documented in the schema (query = "Email (or partial email) to match", access_token = "Intercom access token"). The description's "by email" merely restates the query parameter rather than adding matching rules or constraints, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Search Intercom contacts") plus the matching dimension ("by email"), so an agent knows exactly what it does. It does not differentiate from the closely related sibling intercom_list_contacts, which is the one distinction an agent actually needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the tool is for looking up a contact when you have an email or partial email. There is no explicit statement of when to prefer this over intercom_list_contacts or hubspot_search_contacts, and no note about what to do when the query yields nothing or matches multiple contacts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interpolate_calcARead-onlyIdempotent
Linear interpolation (or extrapolation) between two points. Returns the y value for a given x.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X value to interpolate at. | |
| x1 | Yes | X coordinate of first point. | |
| x2 | Yes | X coordinate of second point. | |
| y1 | Yes | Y coordinate of first point. | |
| y2 | Yes | Y coordinate of second point. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds the genuinely useful note that it also extrapolates outside the given range, but says nothing about the degenerate case (x1 == x2) or precision/rounding 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 tight sentences with the operation front-loaded and the return value stated second. Zero 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 pure-math tool with full schema coverage and complete write-safety annotations, the description covers what it does and what it returns. The only gap is the degenerate-point behavior, which 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 description coverage is 100% and each of the five parameters is documented in-schema, so the baseline of 3 applies. The description adds no syntax or constraint detail 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?
A specific verb ('Linear interpolation or extrapolation') plus a precise resource (two points, returns y for a given x). An agent can immediately tell what it computes; only the differentiation from siblings like spline_interpolate is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the math described, but there is no explicit when-to-use or when-to-prefer-alternatives guidance (e.g. versus spline_interpolate for non-linear data). An agent must infer the selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interval_mergeB
Merge overlapping intervals and report gaps, coverage, and the consolidated set.
| Name | Required | Description | Default |
|---|---|---|---|
| intervals | Yes | Intervals as [start, end] pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden, and it does disclose that the operation both merges and derives gaps and coverage rather than merely merging. However, it omits behavioral specifics such as handling of unsorted input, touching vs overlapping endpoints, or empty input, and gives no sense of 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?
A single tight sentence with the action and resource front-loaded ahead of the output list. No filler, though it is arguably under-specified rather than optimally 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 one-parameter computational tool with no output schema and no annotations, the description covers the operation and names the three outputs, which is reasonable. But it leaves 'coverage' and 'gaps' undefined and says nothing about ordering assumptions or return format, so an agent still has gaps to fill.
Complex tools with many parameters or behaviors need more documentation. Simple 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 documents the single parameter as '[start, end] pairs'. The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (merge) plus resource (intervals) and a concrete enumeration of outputs (gaps, coverage, consolidated set). It is unambiguous what the tool does, though it does not distinguish itself from any specific sibling, since none in the list compete for interval merging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 stated when-to-use, precondition, or alternative. The description only says what the tool does, leaving the agent to infer that it is appropriate whenever intervals need consolidating.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invalidate_factInvalidate a factADestructive
Marks a stored fact as no longer valid. Use this when the user corrects a fact, says something has changed, or explicitly asks to forget something. Does NOT delete the fact -- preserves history. Requires the fact_id from a prior save_fact or search_memory result. Do NOT use for new information -- use save_fact instead.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why the fact is no longer valid (optional but recommended) | |
| fact_id | Yes | UUID of the fact to invalidate | |
| session_id | No | Current session ID for the audit log |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context the annotations do not convey: history is preserved rather than deleted, and the call must be seeded with a fact_id from a prior save_fact or search_memory result. It does not address idempotency (calling twice on the same fact) or whether the operation is reversible, though the destructiveHint=true annotation already signals a state-changing write.
Agents need to know what a tool does to the 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 short sentences, each doing distinct work: definition, triggers, non-destructive semantics, prerequisite, and the sibling exclusion. The core behavior 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?
For a three-parameter mutation tool with no output schema, the description covers what it does, when to call it, what it preserves, and the required input source. It stops short of stating what the tool returns or how an invalidated fact looks afterward, which is the only remaining 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 would be 3; the description earns a bump by explaining where fact_id must come from (a prior save_fact or search_memory result), which is provenance the schema does not state. It says nothing about reason or session_id, but those are already documented 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?
States a specific verb and resource ('Marks a stored fact as no longer valid') and immediately distinguishes the operation from deletion ('Does NOT delete the fact -- preserves history'). An agent can separate it from save_fact and from a generic delete without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggering conditions ('user corrects a fact, says something has changed, or explicitly asks to forget something') plus an explicit exclusion with the alternative named ('Do NOT use for new information -- use save_fact instead'). Both when and when-not are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_address_lookupBRead-onlyIdempotent
Look up geolocation, ISP, and timezone for an IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address to look up (omit for current server IP). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds useful context about the categories returned (geolocation, ISP, timezone), but says nothing about rate limits, data freshness, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word contributes to identifying the operation and the data it 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 one-parameter read-only lookup with fully documented schema and annotations, the description covers the essential returned data categories. Its main completeness gap is not helping the agent choose between this and similar IP lookup 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%, including the important default behavior "omit for current server IP." The description adds no parameter meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Look up") plus the returned data types (geolocation, ISP, timezone). It does not distinguish itself from many sibling IP tools such as ipinfo_lookup, ip_lookup, or country_by_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus the many alternative IP lookup siblings, and no exclusions or conditions are stated. The only selection hint is the field list, which is insufficient in this crowded namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_batchC
Batch IP address geolocation lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes | Array of IP address strings | |
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states the basic function, omitting critical details such as whether the operation is read-only, error handling (e.g., invalid IPs), rate limits, or response format. This leaves the agent uncertain about side effects and constraints.
Agents need to know what a tool does to the world before calling 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 concise sentence, which is efficient but underspecified. It sacrifices completeness for brevity. For a simple batch operation, it is adequate but could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lacks completeness given the absence of output schema and annotations. It does not explain the geolocation data returned, data source, or any constraints. The schema also misses a description for 'api_key'. The overall information is insufficient for reliable tool 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 description adds no parameter-specific meaning beyond the schema. The 'ips' parameter is described in schema as 'Array of IP address strings', but the description does not clarify IP format, batch size limits, or how the optional 'api_key' should be used. Schema description coverage is 50%, missing description for 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Batch IP address geolocation lookup' clearly states the tool's function with a specific verb (batch lookup) and resource (IP addresses). It distinguishes from the sibling tool 'ip_lookup' which likely handles single IP 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?
No usage guidelines are provided. The description does not indicate when to use this batch tool versus alternatives (e.g., single IP lookup), nor any prerequisites or limitations. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipify_get_ipBRead-onlyIdempotent
Get your public IP address via ipify.
| Name | Required | Description | Default |
|---|---|---|---|
| ipv6 | No | Use IPv6 endpoint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, covering the safety profile. 'Via ipify' usefully signals a third-party network call, but nothing about rate limits, failure modes, or what happens if the upstream service is unreachable.
Agents need to know what a tool does to the 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 short sentence with the purpose front-loaded and zero filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param lookup with annotations and a documented schema, the essentials are present. It nonetheless omits the ipv6 option and any sense of the external dependency's behaviour, which is the only thing an agent could get wrong here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `ipv6` boolean is fully documented ('Use IPv6 endpoint'), so the schema carries the parameter meaning. The description adds nothing about the flag, which is baseline behaviour when the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get your public IP address via ipify', which tells the agent exactly what it returns. It does not differentiate from the many siblings doing similar work (httpbin_ip, ip_lookup, ipinfo_lookup, country_by_ip), so an agent can't pick it over those on name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to choose this over httpbin_ip or ip_lookup, and no mention of when the ipv6 flag matters. The agent is left to guess from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipinfo_lookupBRead-onlyIdempotent
Get geolocation and ISP info for an IP address (or your own).
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address to look up (omit for your own) |
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 fully covered structurally. The description adds only the default-to-caller's-own-IP behavior, which is also in the schema; it says nothing about the data provider, rate limits, or failure modes for invalid IPs.
Agents need to know what a tool does to the 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 sentence, front-loaded with the core capability and the optional-input case noted in parentheses. Efficient with zero waste, though very terse for a tool with several near-duplicate siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 param coverage and rich annotations, the essentials are present. However, given the dense cluster of IP-lookup siblings, the description lacks the routing context an agent needs to pick this tool confidently, and there is no output schema to clarify the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter's description ('omit for your own') is replicated verbatim in the tool description. Baseline 3 applies since the description adds no format, IPv4/IPv6, or error 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?
States a specific verb and resource ('Get geolocation and ISP info for an IP address') with the zero-arg convenience case. Clear on its own, but it does not distinguish itself from near-identical siblings such as ip_lookup, ip_address_lookup, or country_by_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to prefer this over ip_lookup, ip_address_lookup, or country_by_ip, which all appear in the sibling list. The only implied usage is 'call it with an IP'; there are no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_lookupCRead-onlyIdempotent
Look up geolocation for an IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing beyond them — no mention of the upstream provider, rate limits, whether api_key is needed for higher quotas, or which fields come back (country/city/coords/ISP), all of which matter for an external network call.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is efficient, but the terseness is arguably under-specification rather than true concision given the undocumented second parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should indicate what a geolocation result contains; it does not. Combined with 0% parameter coverage and no disambiguation from sibling IP tools, an agent has too little to call this correctly beyond the happy path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does not meet it. It never mentions api_key at all — the agent cannot tell whether that parameter is optional, how to obtain it, or what happens if it is omitted or invalid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('look up') and resource ('geolocation for an IP address'), so the core operation is unambiguous. However, it makes no attempt to distinguish itself from the many near-identical siblings (ipinfo_lookup, ip_address_lookup, country_by_ip, ip_batch), leaving the agent to guess which IP-geo tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 at all: no mention of how this differs from ipinfo_lookup or ip_address_lookup, no note on batch vs single lookups, and no prerequisites or exclusions. With this many overlapping siblings, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_validateBRead-onlyIdempotent
Validate and classify an IP address (IPv4/IPv6, public/private/loopback).
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to validate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=true, so safety and side-effect behavior is covered. The description adds useful classification dimensions (IPv4/IPv6, public/private/loopback), but it does not explain what happens for an invalid IP or what the validation/classification result looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and no redundant or filler text. Every phrase earns its place by defining the operation and the classification scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich safety annotations, the description is minimally adequate. However, because there is no output schema, the description should ideally state what validation returns (e.g., valid/invalid plus classification) and how malformed input is handled; those gaps leave invocation and result interpretation partly underspecified.
Complex tools with many parameters or behaviors need more documentation. 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 has 100% schema coverage with a clear description ('IP address to validate.'). The description adds no format details, examples, or edge-case notes beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('Validate and classify') and names the resource ('an IP address'), with parenthetical scope covering IPv4/IPv6 and public/private/loopback. This clearly distinguishes it from sibling lookup tools like ip_lookup or ipinfo_lookup, 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?
There is no explicit guidance on when to choose this tool over the many IP-related siblings (ip_lookup, ipinfo_lookup, rdap_ip, virustotal_scan_ip, etc.). The intended use is only implied by the verb 'validate', leaving the agent to infer that this is for syntax/classification checks rather than enrichment lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
is_evenB
Check whether a number is even, via the isEven API.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The number to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose that the check is performed via the isEven API, but it does not mention read-only safety, error handling, or what the return value looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the core action. Every word earns its place, and there is 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?
Given the trivial complexity, complete parameter schema, and absence of an output schema, the description is nearly complete. It could explicitly state that the result is a boolean, but the phrase 'Check whether' strongly implies 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%, and the single parameter 'number' is already documented in the schema. The description adds no parameter-specific 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?
States a specific verb and resource: check whether a number is even. The purpose is unambiguous, but it does not explicitly differentiate from sibling math tools like prime_check or other parity-related operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus alternatives, nor about any prerequisites or exclusions. The description only restates the core function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iss_astronautsARead-onlyIdempotent
Get the list of astronauts currently in space.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered. The description adds only the temporal scope ('currently'), without noting that results change over time or how the list is scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero waste, front-loaded with the operation and the qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read-only lookup with full annotations, this is nearly enough. Only return shape (names vs. names plus craft) is left unstated, and no output schema exists to cover 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?
Zero parameters, so the baseline is 4; there are no parameter semantics to explain and the description correctly implies no 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?
States a specific verb and resource: 'Get the list of astronauts currently in space.' Clearly distinct from the ISS-location siblings by resource, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently in space' implies a live, real-time query, but there's no explicit when-to-use/when-not or reference to alternates like iss_location or iss_position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iss_flyoverBRead-onlyIdempotent
Get upcoming ISS flyover times for a location (lat/lon).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude. | |
| lon | Yes | Longitude. | |
| count | No | Number of flyovers (max 20, default 5). |
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 bar is lower. The description adds no behavioral context of its own — nothing about the time window covered, horizon of 'upcoming', rate limits, or timezone of returned times.
Agents need to know what a tool does to the 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 tight sentence with the resource and the scoping input front-loaded and no wasted words. It is efficient, though the terseness borders on under-specification rather than polished structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with full schema coverage and no output schema, the essentials are present. Still missing is anything about what the returned times look like (array of timestamps? local vs UTC?) or the prediction horizon, which matters for a time-based 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 all three parameters including 'count' (max 20, default 5) are already documented in the schema. The description only echoes lat/lon, adding no format or coordinate-convention detail beyond the structured fields; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get upcoming ISS flyover times) with the scoping qualifier '(lat/lon)', so an agent knows it needs coordinates. It does not, however, distinguish itself from the close sibling iss_pass_times, which plausibly returns the same kind of 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?
'Upcoming' implies this is for forward-looking pass prediction rather than current position (iss_location) or crew data (iss_astronauts), but that routing is left implicit. There is no explicit when-to-use statement and no mention of when to prefer iss_pass_times instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iss_locationARead-onlyIdempotent
Get the current location of the International Space Station.
| 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 only the word 'current,' implying real-time data, but does not explain return format, units, freshness, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It communicates the core operation immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero-parameter tool, the description is minimally adequate, but without an output schema it could say more about the response shape or distinguish itself from the iss_position sibling. Annotations cover safety, but not return-value 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?
There are zero input parameters, so the baseline is 4. No parameter semantics are needed, and the description is consistent with a parameterless call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the current location of the International Space Station.' It is clear what the tool returns, but it does not distinguish itself from nearby siblings such as iss_position or iss_flyover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 by saying 'current location,' but it gives no explicit guidance on when to choose this over alternatives like iss_position, iss_pass_times, or iss_flyover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iss_pass_timesC
Get ISS position relative to an observer location.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Observer latitude. | |
| longitude | Yes | Observer longitude. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and simply doesn't. It does not say whether the result is a current position or a list of computed pass windows, whether it is a read-only computation, or what triggers a meaningful result. The mismatch with the name 'pass_times' makes the behavior even less clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no waste and the resource front-loaded. It is perhaps too terse for what it needs to convey, but there is no padding 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 tool named iss_pass_times with two required coordinates, no output schema, and no annotations, the description should clarify what is being computed and what the caller receives. Instead it describes only a position lookup, leaving the pass-times semantics unexplained and the absence of return-value guidance unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 latitude and longitude are already documented as observer coordinates. The description adds that they are the observer's location, which is marginally more than the schema, but contributes no format, range, or unit information. 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 (ISS position) and an observer-relative frame, but the tool name is iss_pass_times and nothing in the description mentions pass times. That mismatch makes the actual purpose ambiguous, and it is not distinguished from siblings like iss_position, iss_location, or iss_flyover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 rather than iss_position, iss_location, or iss_flyover, which are the obvious alternatives in the sibling list. The description gives no conditions, exclusions, or routing cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iss_positionBRead-onlyIdempotent
Get the current position of the International Space Station.
| 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, so the safety and liveness profile is fully covered structurally. The description adds the word 'current', hinting at a live rather than cached snapshot, but says nothing about update cadence, coordinate format, or data source, which is the kind of context that would actually add 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?
A single front-loaded sentence with no waste. It is arguably too sparse rather than bloated, but as a structural matter it is tight and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the whole burden of explaining what 'position' returns (latitude/longitude, altitude, timestamp?) and how it differs from iss_location. It supplies none of that, leaving an agent to guess at the shape and freshness of 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 takes zero parameters, so there is nothing for the description to disambiguate and the schema imposes no burden. Baseline 4 applies; no parameter-related gaps exist.
Input schemas describe structure but not intent. Descriptions should explain 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) plus a precise resource (current position of the ISS), which is clearly a read of live orbital data. However, the sibling set contains iss_location, and the description does nothing to distinguish this tool from that near-duplicate, so an agent cannot tell them apart without opening both 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?
There is no guidance on when to use this versus iss_location, iss_pass_times, or iss_flyover, nor any stated preconditions (e.g. that it returns a live snapshot rather than a prediction). Usage is only inferable from the name and the phrase 'current position'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
isup_checkBRead-onlyIdempotent
Check if a website/domain is up or down via isitup.org.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check (e.g. google.com). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, and the description corroborates the open-world nature by naming the third-party provider. It does not disclose what a result looks like (e.g. boolean up/down vs. status text) or any rate limits, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though its brevity comes at the cost of not saying anything about the response.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should indicate what the check returns (up/down, response time, HTTP status). That return-shape gap is the main incompleteness for an otherwise 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?
There is a single parameter with 100% schema description coverage including an example (google.com), so the schema carries the meaning. The description adds nothing beyond it, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (website/domain up or down), plus the upstream provider isitup.org. It is clear on its own, though it does not explicitly distinguish itself from availability-adjacent siblings like uptimerobot_get_monitors or mc_server_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The narrow phrasing implies when it applies (quick external uptime check), but there is no explicit when-to-use/when-not-to-use statement and no alternative tool named. The mention of isitup.org at least signals the external dependency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
itis_get_full_recordB
Get full taxonomic record from USDA ITIS by TSN (Taxonomic Serial Number).
| Name | Required | Description | Default |
|---|---|---|---|
| tsn | Yes | Taxonomic Serial Number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not indicate that this is a read-only external lookup, whether authentication or rate limits apply, or what happens for an invalid/unknown TSN. 'Full record' hints at payload breadth but nothing about failure or access 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?
A single front-loaded sentence with no filler; the verb and resource lead and the qualifier follows. The parenthetical TSN expansion mildly duplicates the schema, keeping it just short of perfect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with no output schema, the description is minimally adequate — 'full taxonomic record' gives a rough sense of the return, but it does not characterize the sections of a taxonomic record or error behavior. A little more would make it self-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% and the single parameter is already documented as 'Taxonomic Serial Number.' The description expands the TSN acronym, but adds no format, validation, or example detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (full taxonomic record) with the data source (USDA ITIS) and the exact identifier (TSN). This is clearly distinguishable from the sibling itis_search_by_name, which works by name rather than TSN, though the description does not name that alternative 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?
Usage is implied rather than stated: the reliance on a TSN suggests this is the follow-up call after a name search, but the description never says when to prefer this over itis_search_by_name or other taxonomy tools. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
itis_search_by_nameBRead-onlyIdempotent
Search USDA ITIS for species by common name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Common name to search (e.g. lion, oak, salmon). |
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 little beyond that: it names the source and search axis but does not describe matching behavior, result format, or limits; with annotations carrying the safety burden, this is adequate but thin.
Agents need to know what a tool does to the 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, front-loaded sentence with no wasted words. It is appropriately sized for such 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 one-parameter read-only search tool, the description is minimally sufficient, but it omits return-shape context and does not mention the related itis_get_full_record tool for full records. There is no output schema, so a little more information about what comes back 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 schema already has 100% coverage and documents the single `name` parameter with examples. The description confirms the parameter represents a common name but adds no further syntax, matching, or formatting 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 verb (Search) and resource (USDA ITIS species) with the matching axis (common name). It does not distinguish itself from the related itis_get_full_record tool or other species-search tools, so it is clear but not fully sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence describes what the tool does but gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as itis_get_full_record or other taxonomy search tools. At best, common-name searching is implied by the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jaccard_similarityA
Calculate Jaccard similarity index between two texts (word or character level).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'word' (default) or 'character'. | |
| text_a | Yes | First text. | |
| text_b | Yes | Second text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden, and while it discloses the word/character mode as a behavioral choice, it omits the return value range (0-1), whether it is a pure stateless computation, and any tokenization/case-sensitivity behavior. For a low-risk calculator the gap is modest, but it is not fully disclosed.
Agents need to know what a tool does to the 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 efficient sentence with the metric and inputs front-loaded and zero waste. Every clause (metric, inputs, mode) 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 tool is a simple two-input computation with a fully documented schema and no nested objects, so little context is needed. However, with no output schema the description ideally should state what is returned (a 0-1 similarity score), which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 text_a, text_b, and mode are all documented in the schema. The description's phrase 'word or character level' restates the mode parameter without adding syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), a precise named metric ('Jaccard similarity index'), the inputs ('two texts'), and the granularity option ('word or character level'). This clearly distinguishes it from sibling distance/metric tools like edit_distance, hamming_distance, or cosinesim_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no conditions that select it over alternatives such as cosinesim_compare or string_distance, and no exclusion criteria. An agent must infer its applicability purely from knowing what Jaccard similarity is.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jikan_get_animeBRead-onlyIdempotent
Get anime details by MyAnimeList ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | MyAnimeList anime ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is fully covered; the description adds nothing further — no note on rate limits, error behavior for an invalid ID, or what data is 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?
One short sentence, front-loaded with the verb and resource, 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?
For a trivial one-parameter read tool with full annotations this is minimally sufficient, but it leaves gaps: nothing about what fields 'details' includes or what happens when the ID does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple 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 is already documented as 'MyAnimeList anime ID'; the description's mention of the ID adds no format or type detail beyond the schema, so the baseline 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 ('Get anime details') plus the lookup key (MyAnimeList ID), which is enough to distinguish a by-ID fetch from jikan_search_anime or jikan_top_anime, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by MyAnimeList ID' implicitly tells the agent this is the right tool when an MAL ID is already known, but there is no explicit statement of when to prefer jikan_search_anime for title lookups or of any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jikan_get_characterBRead-onlyIdempotent
Get an anime/manga character by MyAnimeList ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | MyAnimeList character ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing beyond that: no note on invalid-ID behavior, no mention of Jikan's rate limits (a real operational constraint for this API), and no indication of what a successful response contains.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is efficient, though its brevity is partly under-specification rather than deliberate compression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read-only lookup with 100% schema coverage and full annotations, the essentials are present and no output schema is needed. Still missing are the invalid-ID/error case and the API's rate-limit constraint, both of which an agent would benefit from knowing before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already documents 'id' as the MyAnimeList character ID. The description restates the same fact ('by MyAnimeList ID') without adding format or validation detail, which matches the baseline 3 for a fully documented single param.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (anime/manga character) plus the lookup key (MyAnimeList ID), which is enough to distinguish it from the jikan_search_* and jikan_get_anime siblings. It stops short of explicitly naming what it is not (there is no character-search sibling, but the get-by-ID vs. search distinction is only implied).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by MyAnimeList ID' implies the precondition that the caller must already hold a numeric MAL character ID, which is a form of usage guidance. There is no explicit when-to-use statement, no mention of what to do without an ID, and no reference to any alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jikan_search_animeCRead-onlyIdempotent
Search anime on MyAnimeList via Jikan API.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | No | tv, movie, ova, special, ona, music | |
| limit | No | Max results (up to 25) | |
| query | Yes | ||
| status | No | airing, complete, upcoming | |
| order_by | No | score, popularity, rank |
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 fully covered by structured data. The description adds only the provenance ('via Jikan API'); it says nothing about page size limits, pagination depth, or the rate limiting Jikan is known for.
Agents need to know what a tool does to the 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 with zero filler, so nothing needs trimming. But the brevity comes from omission rather than economy; the one sentence does not earn much because it carries almost no decision-relevant 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?
This is a six-parameter search tool with no output schema, so the description should at least indicate what comes back and how paging behaves. Instead it stops at the API name, leaving result shape, page-size behavior, and limit interaction unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 67% schema coverage, four of six parameters (type, status, order_by, limit) are documented in the schema while query and page are left bare. The description adds no meaning to any parameter — no search-syntax hints for query, no default for page — so it fails to compensate for the 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?
States a specific verb (search) and resource (anime) plus the data source (MyAnimeList via Jikan), which distinguishes it implicitly from jikan_get_anime (single lookup) and jikan_top_anime (ranked list). It never names those siblings, so the differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this versus jikan_get_anime, jikan_top_anime, or jikan_search_manga. The agent must infer from the name alone that this is the keyword-search entry point, and nothing explains prerequisites or result expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jikan_search_mangaCRead-onlyIdempotent
Search manga on MyAnimeList via Jikan API.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | Yes |
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 upstream. The description adds nothing beyond restating the API source: no note on pagination, result caps, rate limits, or what a search returns. 'via Jikan API' is the only added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming verb, resource and backend, with no filler. It is efficient but so terse that the brevity comes at the cost of coverage rather than trimming 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 3-parameter, no-output-schema tool, the description should at minimum explain what the optional page/limit do and roughly what comes back. None of that is present, so an agent cannot call it confidently beyond the trivial query case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for three parameters. It implies only that 'query' is a search term; 'page' and 'limit' are never mentioned, leaving the agent to guess whether they are 1-based, capped, or honored at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Search manga') plus the data source ('on MyAnimeList via Jikan API'), which is enough to separate it from data-fetch siblings like jikan_get_anime. It does not explicitly name which sibling to prefer, 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?
There is no when-to-use statement, no contrast with jikan_get_anime or jikan_top_anime, and no mention of when a keyword search is inappropriate (e.g. fetching a known ID). The agent must infer that this is the lookup-by-title entry point from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jikan_top_animeCRead-onlyIdempotent
Get top-ranked anime from MyAnimeList.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | No | tv, movie, ova, special, ona, music | |
| limit | No | ||
| filter | No | airing, upcoming, bypopularity, favorite |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds no behavioral context beyond that: it says nothing about page size, result caps, ordering stability, or rate limits on the MyAnimeList source, so it is only minimally additive.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though the brevity is partly the cause of the missing guidance rather than a virtue in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four optional parameters, 50% schema coverage, and no output schema, yet the description says nothing about pagination behavior, the 25-per-page cap typical of this source, or what fields a ranked entry returns. For a list endpoint the agent cannot call it well without guessing at limit/page 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 is 50%: 'type' and 'filter' carry inline enums, but 'page' and 'limit' are bare numbers. The description supplies no meaning for either — no page size, no maximum, no default — so it fails to compensate for the undocumented half of 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?
Names a specific verb and resource ('Get top-ranked anime') and the source (MyAnimeList), and the 'top-ranked' qualifier distinguishes it from jikan_search_anime and jikan_get_anime. It does not explicitly name those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus jikan_search_anime (query-based) or jikan_get_anime (single record by ID). The agent must infer the ranking-list use case purely from the word 'top-ranked'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_add_commentB
Add a comment to a Jira issue.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text | |
| site | Yes | Jira site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| api_token | Yes | Atlassian API token | |
| issue_key | Yes | Issue key (e.g. ENG-123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits itself. It only implies a write operation and omits permissions, authentication expectations, side effects, and 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?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple add-comment 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?
The tool is simple and all five required parameters are fully described in the schema. However, the description remains minimal and does not compensate for the absence of annotations or usage 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 coverage is 100%, so all parameters are already documented in the schema. The description adds no parameter-level meaning beyond the schema, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: add a comment to a Jira issue. It is easily distinguished from sibling Jira tools such as jira_create_issue, jira_get_issue, and jira_search_issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, prerequisites, or alternatives. It does not explain when adding a comment is appropriate versus using another Jira tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_create_issueB
Create a Jira issue. project_key can be filled from a saved memory default.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Jira site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| summary | Yes | Issue summary / title | |
| api_token | Yes | Atlassian API token | |
| issue_type | No | Issue type name (default Task) | |
| description | No | Plain-text description | |
| project_key | No | Project key (e.g. ENG). Can be a saved default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It says 'Create' but does not disclose permission requirements, whether the token needs specific scopes, rate limits, whether a failure returns partial state, or what the created issue looks like. The saved-default note is the only behavioral hint.
Agents need to know what a tool does to the 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, front-loaded with the verb and resource. Efficient, though slightly under-specified for a write operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations and no output schema. The description does not explain credential requirements, issue type defaults, or what happens on failure. For a 7-param create operation it is too thin to fully guide 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 all 7 parameters. The description only echoes project_key's saved-default behavior, which the schema also mentions. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create a Jira issue.' Distinguishes from siblings like jira_get_issue, jira_search_issues, jira_add_comment, and jira_list_projects. Doesn't explicitly name alternatives, but the create action 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?
Implied usage — you call it to make an issue. The hint about project_key coming from a saved memory default is a useful context, but there is no explicit when-to-use or when-not guidance, no mention of required auth beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_issueBRead-onlyIdempotent
Get a single Jira issue by key, including description and comments.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Jira site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| api_token | Yes | Atlassian API token | |
| issue_key | Yes | Issue key (e.g. ENG-123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a read-only, idempotent, non-destructive, open-world operation. The description adds that the result includes description and comments, but does not cover pagination, comment limits, auth expectations, or error behavior. This is somewhat useful context beyond annotations, 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?
It is a single front-loaded sentence with no wasted words. The core action and returned content are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complete schema parameter coverage and strong annotations, this is nearly sufficient. Since no output schema exists, the description should arguably say more about the shape of the returned issue beyond description and comments, but it covers the essential call 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 description coverage is 100%, so all four parameters are already documented in the schema. The description clarifies that the issue is fetched 'by key', which maps to issue_key, but adds no syntax or format details beyond the schema's example ENG-123.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 single Jira issue by key. The phrase 'single ... by key' implicitly distinguishes it from search/list siblings, but it does not explicitly name an alternative such as jira_search_issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies the tool is used when an issue key is known, but gives no explicit when-to-use guidance, prerequisites, or exclusions. It also does not mention when to prefer jira_search_issues or other Jira siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_list_projectsBRead-onlyIdempotent
List Jira projects, with an optional name query.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Jira site (e.g. mycompany) | |
| Yes | Atlassian account email | ||
| query | No | Filter projects by name or key | |
| api_token | Yes | Atlassian API token | |
| max_results | No | Projects to return (max 100, default 50) |
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 little beyond restating the listing behavior; it omits pagination behavior (max_results default 50, cap 100) and any auth/rate context beyond what the schema 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?
A single front-loaded sentence with no filler; the optional filter is mentioned after the core action. It is efficient, though extremely terse for a tool with auth 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?
No output schema, so the return shape (project fields available) is undisclosed, and the pagination behavior lives only in the schema. For a simple list tool with rich annotations this is acceptable but leaves gaps an agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are already documented (site, email, api_token, query, max_results with default/cap). The description's mention of an optional name query merely echoes the schema's query field, adding no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List Jira projects'), making the operation unambiguous. It does not distinguish itself from sibling Jira tools (jira_search_issues, jira_get_issue), but the resource 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 implies this is the tool for enumerating projects and mentions an optional name query, but gives no explicit when-to-use vs alternatives guidance or conditions for preferring the query filter over listing all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_search_issuesARead-onlyIdempotent
Search Jira issues with JQL (defaults to most recently updated).
| Name | Required | Description | Default |
|---|---|---|---|
| jql | No | JQL query (e.g. 'project = ENG AND status = "In Progress"') | |
| site | Yes | Jira site (e.g. mycompany or mycompany.atlassian.net) | |
| Yes | Atlassian account email | ||
| fields | No | Comma-separated fields to return | |
| api_token | Yes | Atlassian API token | |
| max_results | No | Issues to return (max 100, default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a read-only, idempotent, open-world, non-destructive operation. The description adds that results default to most recently updated, which is useful behavioral context, but it does not cover authentication needs, pagination behavior, or return 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?
It is a single front-loaded sentence with no wasted words. The core action and default behavior are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with full schema coverage and complete safety annotations, the description is largely sufficient. It could be slightly richer about result behavior, but the missing details are mostly covered by structured fields or obvious from the tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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, including JQL, site, email, fields, api_token, and max_results. The description mentions JQL and the default ordering but adds no further 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 gives a specific verb and resource: search Jira issues, specifically via JQL. It is clearly distinct from jira_get_issue and jira_create_issue, 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?
It implies usage by saying the tool searches issues with JQL and defaults to recently updated results. However, it does not state when to use this instead of jira_get_issue or other Jira tools, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jisho_searchBRead-onlyIdempotent
Search Jisho.org Japanese dictionary for words, kanji, or English translations.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Search keyword (English, Japanese, romaji). |
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 and network profile is covered. The description adds no behavior beyond that — no mention of result counts, rate limits, or how kanji vs. word searches differ in 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?
A single front-loaded sentence with zero padding; the verb and resource appear first and the scope qualifier follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with rich annotations and no output schema, the description is minimally adequate but omits anything about what results look like (readings, parts of speech, kanji details) or result limits, which an agent calling a dictionary would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema coverage, so the schema already explains 'keyword'. The description usefully clarifies the accepted input modes (English, Japanese, romaji), which maps directly onto the single parameter and adds practical meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and a specific resource ('Jisho.org Japanese dictionary') plus the three lookup modes (words, kanji, English translations). It does not, however, distinguish itself from sibling dictionary tools such as dictionary_lookup or wiktionary_lookup, leaving an agent to guess which dictionary to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 what it searches but never when to prefer it over the numerous sibling lookup tools (dictionary_lookup, wiktionary_lookup, jisho's own scope for kanji vs. English). No prerequisites, 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.
jobsmith_checkA
Run JobSmith's CV / cover-letter quality rules over a piece of text. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The CV or cover-letter text to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that no API key is required, which is real behavioral context, but says nothing about what the check returns, whether it is deterministic, or whether it is a pure read. For a simple analysis tool that is adequate but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource; the auth note follows immediately. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool this is close to sufficient, but with no output schema the description does not hint at the shape of results (pass/fail, rule violations, scores). Its only added information is the no-key note, so it is minimally complete rather than fully so.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'text' parameter, and the schema already documents 'The CV or cover-letter text to check'. The description restates that it operates 'over a piece of text' without adding format, length, or input constraints 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?
States a specific verb ('Run') and resource ('JobSmith's CV / cover-letter quality rules over a piece of text'), so an agent knows exactly what computation happens. It stops short of naming or contrasting with the sibling jobsmith_rules, so the boundary between the two is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the context (you have CV or cover-letter text you want evaluated against JobSmith rules), but there is no explicit when-to-use, no exclusions, and no routing to jobsmith_rules or language/readability siblings that also analyze text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobsmith_rulesA
Browse JobSmith's rule pack (counts by category and severity), optionally filtered by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter to one category (e.g. ATS, TRUTH, VOICE, PRIVACY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return shape (counts by category and severity), which is useful, but says nothing about read-only semantics, auth requirements, or limits. For a simple read tool 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?
A single front-loaded sentence that names the resource, the return shape, and the optional filter with zero 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 one-optional-parameter browsing tool with no annotations and no output schema, the description covers purpose, output content, and the filter. It is complete enough to call correctly, though a note on what the counts represent or how the rule pack relates to jobsmith_check would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 names the single optional category parameter with examples (ATS, TRUTH, VOICE, PRIVACY). The description only restates that filtering is optional, adding no syntax or matching 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?
States a specific verb (Browse) and resource (JobSmith's rule pack), plus the output shape (counts by category and severity). It does not explicitly contrast itself with the nearby jobsmith_check sibling, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Optionally filtered by category" implies when the parameter matters, but there is no statement of when to use this tool versus jobsmith_check or the other pass/rule tools, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
joke_categoriesARead-onlyIdempotent
List available joke categories from JokeAPI.
| 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 destructiveHint=false, so safety is covered. The description adds only the data source (JokeAPI); it doesn't say whether the result is a static enumeration or whether values map directly to joke_random filter arguments.
Agents need to know what a tool does to the 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 with no filler. It is efficient but arguably too terse, leaving room for one clause about the returned values at no structural cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param, annotation-rich, no-output-schema tool this is nearly sufficient. The only gap is that it doesn't connect the returned categories to joke_random's category parameter, which would make the tool chain obvious.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4. Nothing in the description needs to compensate for schema gaps, and none exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'List available joke categories from JokeAPI.' An agent knows exactly what it returns. It does not, however, differentiate itself from siblings like joke_random or category-listing tools such as trivia_categories/chuck_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 — one can infer this is a discovery call to enumerate valid categories before calling joke_random. There is no explicit 'use this when …' statement or mention of the alternative path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
joke_randomCRead-onlyIdempotent
Get a random joke from JokeAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | single or twopart | |
| amount | No | Number of jokes (1-10) | |
| category | No | Programming, Misc, Dark, Pun, Spooky, Christmas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds only the source API name; it says nothing about how randomness interacts with 'amount' (are 3 jokes guaranteed distinct?), rate limits of JokeAPI, or what happens when no category is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no waste and the purpose front-loaded. It is arguably too terse — one more clause on defaults or amount behavior would earn its place without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool with full schema coverage and rich annotations, the essentials are covered. The remaining gap is the interaction between 'random' and 'amount'/'category' defaults, which neither schema nor description resolves, but no output schema means return shape is also unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — type, amount range (1-10), and the six categories are all documented in the schema. The description adds no parameter guidance beyond that, 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?
States a specific verb+resource ('Get a random joke') and names the backing source (JokeAPI), which implicitly separates it from dadjoke_random, chuck_random, and official_joke_random. It does not explicitly tell the agent how it differs from 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?
No when-to-use, when-not-to-use, or alternative mentioned. The agent is left to infer from the sibling names that other joke tools exist and why this one would be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
josephusA
Solve the Josephus problem: find the survivor in a circle of n people eliminating every k-th.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | Every k-th person is eliminated | |
| n | Yes | Number of people in the circle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the core computation but omits key behavior: input constraints (e.g., n and k must be positive integers), what the returned survivor representation is (position number? 1-based or 0-based?), and any edge-case handling. For a tool with zero annotation coverage, this is a significant 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, front-loaded sentence with zero wasted words. It clearly states the problem and the result to be found. Nothing is missing for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 algorithmic tool with no output schema and no annotations, the description gives the essential problem definition and the two required inputs. It is nearly complete, though it could state the return value's format (e.g., the survivor's position number) to remove ambiguity. Given the tool's simplicity, 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 description coverage is 100%, and both parameters already have clear descriptions in the schema. The tool description essentially restates the same meanings ('circle of n people', 'eliminating every k-th') without adding constraints or format details beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific problem (the Josephus problem) and states the exact computational goal: find the survivor in a circle of n people eliminating every k-th. This is a precise verb+resource statement that lets an agent distinguish it from generic math or algorithm tools. No sibling tool covers the same problem, so explicit differentiation is unnecessary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 defining the problem, so an agent can infer this tool should be used when a user asks to solve the Josephus problem. However, it provides no explicit when-to-use guidance, no prerequisites, and no alternative tools to consider. This is adequate but leaves usage context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_get_postA
Get a single post by ID from JSONPlaceholder.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says nothing about whether the call is read-only, what happens with invalid IDs, or what the response looks like, leaving significant gaps for a tool with zero 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?
One short, front-loaded sentence with no wasted words. It states the action, resource, and source immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple single-parameter lookup, but with no output schema and no annotations, it doesn't disclose return format, error behavior, or read-only nature. It covers the minimum needed to invoke the tool but not much more.
Complex tools with many parameters or behaviors need more documentation. Simple 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 itself documents the id parameter as 'Post ID (1-100)' with a required flag. The description adds no syntax or range details beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (a single post by ID) and names the source (JSONPlaceholder). It clearly distinguishes itself from siblings like jp_list_posts and jp_list_comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 retrieving one post by ID, but does not explicitly say when to use it versus siblings such as jp_list_posts or jp_list_comments. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_list_commentsB
List comments on a post from JSONPlaceholder.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Post ID to get comments for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'List' implies a non-destructive read, which is the key behavioral fact for this public mock API, but nothing is said about pagination, result size, or ordering of the returned comments.
Agents need to know what a tool does to the 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 economical sentence with the action and scope front-loaded and 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 one-parameter read-only list tool with no output schema, the description identifies the resource, scope, and source well enough to invoke correctly. Only minor gaps remain, such as return shape or ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 postId parameter is fully documented in the schema. The description's 'on a post' merely restates the parameter's meaning without adding format or constraint details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (comments on a post) and names the data source, JSONPlaceholder. It is clearly separable from jp_get_post and jp_list_posts, 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 phrase 'on a post' implies a post must already exist and that a postId is required, but there is no explicit when-to-use guidance, no mention of alternatives, and no statement of whether this is the right tool versus jp_get_post for comment data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_list_postsARead-onlyIdempotent
List posts from JSONPlaceholder (fake REST API). Optionally filter by userId.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | Filter by user ID (1-10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds useful context that the source is a fake REST API, so data is placeholder rather than live, but it does not describe response shape or pagination. 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 short sentences, with the core operation front-loaded and the optional filter note compact. 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 list tool with full schema coverage and rich annotations, the description gives enough to call correctly. It omits return format and pagination/ordering details, but those are minor for this API.
Complex tools with many parameters or behaviors need more documentation. 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 single optional userId parameter, including its 1–10 range. The description only restates that filtering is optional, adding no syntax or 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 ('List') and resource ('posts') and names the source API. It implicitly distinguishes from jp_get_post by listing rather than retrieving a single post, but 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?
It mentions the optional userId filter but gives no guidance on when to use this tool versus jp_get_post, jp_list_comments, or jp_list_users. Usage is only implied by the list-posts framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_list_usersARead-onlyIdempotent
List all users from JSONPlaceholder (fake test data).
| 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. The description adds useful context that the data is fake test data, but it does not describe return format, pagination, or other behavioral details beyond the safety profile already 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 description is a single front-loaded sentence with no wasted words. It identifies the action, resource, source, and data nature 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 zero-parameter, annotation-rich list tool with no output schema, the description gives enough to call it correctly: it says all users will be returned and notes the fake test data. It could mention response shape or pagination, but those gaps are minor for this 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?
The tool has zero parameters, so there is no parameter syntax to explain. The baseline for a parameterless tool is 4, and the description does not introduce any misleading parameter claims.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all users' from JSONPlaceholder, and clarifies the data is fake test data. It clearly distinguishes this from post/comment siblings, but does not differentiate from another user-listing tool such as reqres_list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies the tool is for retrieving users but gives no explicit when-to-use guidance, prerequisites, or alternatives. There is no statement about when this should be chosen over other list-users tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_formatBRead-onlyIdempotent
Parse, format, and analyze a JSON string. Returns pretty-printed output and structure stats.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | Raw JSON string to parse and format. |
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 (pretty-print + stats), but does not say what the stats contain, how invalid JSON is handled, or whether openWorldHint implies any external call.
Agents need to know what a tool does to the 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, and the return information is stated up front. Efficient for a one-parameter utility, though the second sentence could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple text utility the core is present, and annotations cover safety. But with no output schema, the description should define what 'structure stats' returns and what happens on malformed input; those gaps matter 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% with a single documented 'json' string parameter, so the schema carries the semantics. The description adds nothing about expected input form (minified vs already-pretty) or size limits, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb set (parse, format, analyze) and resource (JSON string) and mentions the return shape (pretty-printed output + structure stats). However, it does not differentiate from the sibling json_prettify, leaving the agent unsure which to pick for a given formatting task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 and no named alternative, despite json_prettify appearing in the sibling list as an obvious overlap. The agent must infer that json_format is the analysis-plus-formatting variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_prettifyC
Prettify or minify JSON text.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | JSON text to format. | |
| indent | No | Indent spaces (default 2). | |
| minify | No | Minify instead of prettify (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it only restates the two modes already implied by the parameter names. It says nothing about error handling for malformed JSON, whether input is returned unchanged on failure, or what the returned string looks like, all of which matter for a transformation utility.
Agents need to know what a tool does to the 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 short sentence that front-loads the two modes with no filler. It is efficient, though it may be too terse to be genuinely informative given the existence of a near-duplicate 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?
The tool is simple, has only three fully documented parameters, and no output schema, so not much is required. Still, with no annotations, the description could reasonably say what happens with invalid JSON and how indent/minify interact, which it omits entirely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (json, indent, minify) are already documented in the schema, including the defaults. The description adds only the high-level 'prettify or minify' framing and no syntax or interaction detail (e.g. what indent does when minify is true), 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 concrete verb pair (prettify/minify) and the resource (JSON text), so the operation is immediately clear. However, it does nothing to distinguish itself from the sibling json_format, which appears to cover nearly identical ground, so it falls short of the sibling-differentiating bar for 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?
There is no guidance on when to choose this over json_format, nor any mention of prerequisites or alternative tools. The only usage signal is the implicit 'JSON text in, formatted text out', which is not enough for a routing decision between two near-identical siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jwt_decodeA
Decode a JWT token to inspect header and payload claims (does NOT verify signature).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | JWT token string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discharges the most important obligation by explicitly stating the signature is NOT verified — a security-relevant fact the agent must know. It stops short of describing malformed-token behavior or failure modes, so it is strong but not complete.
Agents need to know what a tool does to the 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 sentence, front-loaded with the action and resource, with the critical caveat bracketed at the end. Zero waste and nothing important buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, side-effect-free decode tool with no output schema, the description tells the agent what it gets (header and payload claims) and the key limitation. Only minor gaps remain: no note on error behavior for invalid tokens and no explicit warning about trusting unverified claims.
Complex tools with many parameters or behaviors need more documentation. 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 a single parameter and schema description coverage is 100%, so the schema already documents the 'token' string. The description adds no format guidance (e.g., whether the 'Bearer ' prefix is accepted), which is the baseline expectation when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (decode) and resource (JWT token) plus the exact artifacts produced (header and payload claims). The parenthetical negative scope ('does NOT verify signature') further sharpens what the tool is and is not, so an agent can distinguish it from any verify-style sibling 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?
Usage is implied by the stated purpose — use it to inspect a token's contents — and the non-verification caveat hints at the boundary condition. However, it never says when to prefer this over alternatives (e.g., a verifying introspection tool) or that unverified claims must not be trusted for authorization decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kanye_quoteARead-onlyIdempotent
Get a random Kanye West quote.
| 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, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered without the description. The description adds nothing beyond the name; notably it does not clarify that repeated calls return different quotes, which sits slightly awkwardly with idempotentHint=true, though the read-only nature makes this harmless.
Agents need to know what a tool does to the 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 short sentence with the verb and subject front-loaded and zero wasted words. Nothing could be removed 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 zero-parameter, read-only random-quote tool with annotations covering the safety profile, the description is sufficient to call it correctly. Only the return shape (quote text, author, id) is left implicit, which is low risk for such a simple tool and there is no output schema to cover 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 takes zero parameters and the schema is an empty object, so there is nothing for the description to explain. Baseline 4 applies for a no-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?
States a specific verb and resource ('Get a random Kanye West quote'), which is unambiguous and distinguishes it by author from the many generic random-quote siblings like quote_random or zen_quote_random. It does not, however, acknowledge any of 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?
There is no guidance on when to use this versus quote_random, quote_by_author, chuck_random, or the other quote-style tools in the sibling list, and no exclusions or prerequisites. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keychain_connectA
Store an encrypted platform credential in the UnClick Keychain. Tests the credential against the platform API before saving. Scoped to the caller's UNCLICK_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label to distinguish multiple credentials for the same platform (default: 'default'). | |
| platform | Yes | Platform ID: github, supabase, vercel, stripe, cloudflare. | |
| credential | Yes | API key or token for the platform. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses key behaviors: encrypted storage, credential testing, and caller scoping. It adds value beyond the schema, though it could mention error handling on test failure or existing credential conflicts.
Agents need to know what a tool does to the 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, no fluff, front-loaded with the main action. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lacks information on return values or success/failure indicators. It also does not address idempotency or conflict when a credential already exists. Adequate but incomplete for a write 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?
Schema coverage is 100%, so baseline is 3. The description repeats schema details for platform, credential, and label without adding new semantic information beyond 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 stores an encrypted credential and tests it before saving, specifying the resource ('platform credential') and action. It differentiates from sibling tools like keychain_secure_connect by mentioning testing and scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when storing a platform credential but does not provide explicit guidance on when to use this tool versus alternatives like keychain_secure_connect, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keychain_disconnectBDestructive
Remove a platform credential from the UnClick Keychain. Scoped to the caller's UNCLICK_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Label of the credential to remove. Omit to remove all labels for the platform. | |
| platform | Yes | Platform ID to disconnect: github, supabase, vercel, stripe, cloudflare. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds useful authentication-scope context by saying the removal is 'Scoped to the caller's UNCLICK_API_KEY,' but it does not describe reversibility or what happens when label is omitted beyond what the schema says.
Agents need to know what a tool does to the world before calling 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 waste, and it front-loads the core action. Every sentence earns its place by stating the operation and its caller-scoping constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 destructive tool, the input schema fully documents the parameters and the annotations fully declare the safety profile. The description adds the API-key scoping context, though it could be more complete by routing agents away from keychain_connect or keychain_secure_connect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 platform values and the label omission behavior fully documented in the input schema. The description adds no parameter-specific 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 states a specific verb and resource: 'Remove a platform credential from the UnClick Keychain.' It also adds scope via the caller's UNCLICK_API_KEY, but it does not explicitly differentiate itself from sibling tools like keychain_connect or keychain_secure_connect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 what the tool does but gives no explicit guidance on when to use it versus alternatives such as keychain_connect, keychain_secure_connect, or keychain_status. It also does not state prerequisites or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keychain_list_platformsBRead-onlyIdempotent
List all available platform connectors in the UnClick Keychain catalog, with connection status for the current UNCLICK_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (e.g. 'Developer Tools', 'Business'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds useful context that results are scoped to the current UNCLICK_API_KEY and include connection status, but it does not describe return shape, pagination, or status edge cases; with rich annotations, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the core action and key qualifier immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 catalog listing with one optional filter and no output schema, the description is mostly complete: it identifies the catalog, the resource type, and that connection status is included. It could do slightly more to clarify the relationship to sibling connection tools or the returned status values, but nothing critical is missing for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter and schema description coverage is 100%, so the schema already fully documents 'category'. The description does not mention category filtering or 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 clearly states a specific verb and resource: listing platform connectors in the UnClick Keychain catalog. It also adds scope by saying the result includes connection status for the current API key, but it does not explicitly distinguish this from siblings such as keychain_status or keychain_connect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 a discovery use case but gives no explicit guidance on when to use this tool versus alternatives like keychain_status, keychain_connect, or keychain_secure_connect. No when-not conditions or routing guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keychain_recheckA
Re-prove stored credentials by calling each platform's own API and recording the real result. Nothing else re-tests a credential after it is connected, so a stored key that the provider has since revoked keeps reading as connected. Defaults to only the credentials whose proof is missing or stale. A provider that cannot be reached is reported, never recorded as a failure.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Most credentials to test in one call, 1-100 (default 25). | |
| platform | No | Recheck one platform. Omit to sweep every stored credential. | |
| include_fresh | No | Also re-test credentials whose proof is still fresh (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses important behavior: it calls provider APIs, records real results, defaults to stale/missing proofs, and treats unreachable providers as reported rather than failed. It could say more about exactly what state is updated and whether any connection status changes, but the core behavioral traits are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the action and rationale, then default behavior and unreachable-provider handling. Every sentence contributes useful selection or behavioral context without 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 no-annotation, no-output-schema tool, it explains why the tool exists, when it runs by default, and how unreachable providers are treated. It does not describe the response shape or per-credential result format, which is a gap given there is no output schema, but the operational semantics are 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 `max`, `platform`, and `include_fresh` are already documented in the schema. The description adds useful default-scope context but does not add meaning for each parameter beyond what the schema already 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?
States a specific verb and resource: re-prove stored credentials by calling each platform's API and recording the real result. It also differentiates the tool from status-oriented siblings by explaining that nothing else re-tests a credential after connection, so revoked keys otherwise keep reading as connected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: by default it only tests credentials whose proof is missing or stale, while `include_fresh` allows broader re-testing. It does not explicitly name sibling alternatives such as `keychain_status`, but the default scope and rationale 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.
keychain_secure_connectA
Securely connect a platform credential without exposing the key in chat. Checks environment variables first; if not found, opens a localhost secure input page for the user to paste their key. Call once to get the URL, then call again after the user submits to complete the connection.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label to distinguish multiple credentials for the same platform (default: 'default'). | |
| platform | Yes | Platform ID: github, stripe, openai, vercel, cloudflare, etc. | |
| setup_url | No | Optional URL to the platform's API key settings page, shown on the input page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the two-step flow, env var checking, and localhost page. Does not mention error handling or edge cases, but for a credential connection tool, it is fairly 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?
Three sentences, front-loaded with the main purpose. No wasted words; efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, description explains the two-step process and what to expect (URL from first call). Missing details on second call return value and edge cases (e.g., env var already set), but sufficiently complete for the agent to execute the flow.
Complex tools with many parameters or behaviors need more documentation. Simple 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 3 parameters documented). Description adds minor context: 'setup_url is shown on the input page.' This slight addition justifies above 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 the tool's purpose: securely connecting a platform credential without exposing the key. It distinguishes from siblings like keychain_connect by describing the two-step process involving env variables and a localhost page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance on the two-call pattern: 'Call once to get the URL, then call again after the user submits to complete the connection.' Does not explicitly mention when not to use or alternatives, but the guidance is clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keychain_statusBRead-onlyIdempotent
Check the connection status of one or all platform credentials stored in the UnClick Keychain for the current UNCLICK_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Platform ID to check. Omit to return all connected platforms. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the check is scoped to credentials stored for the current UNCLICK_API_KEY, but it does not explain status values or return 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?
A single front-loaded sentence with no wasted words. It states the action and scope immediately, which is appropriate for this simple 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?
Given the read-only annotations, complete single-parameter schema, and absence of an output schema, the description supplies enough context to invoke the tool correctly. It could be stronger by clarifying the expected status output or how it differs from keychain_recheck.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 that the optional platform parameter returns all connected platforms when omitted. The description adds only the "one or all" framing and API-key scoping, which is useful context but not much 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, "Check," and a specific resource, "connection status of one or all platform credentials stored in the UnClick Keychain." It is clear what the tool does, but it does not explicitly distinguish itself from nearby siblings such as keychain_recheck or keychain_list_platforms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 credential status and mentions "one or all," but gives no explicit guidance on when to use it versus keychain_recheck, keychain_list_platforms, or keychain_connect/disconnect. The only usage detail is inherited from the schema's optional platform parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klaviyo_list_listsCRead-onlyIdempotent
List Klaviyo lists.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Klaviyo private API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing beyond them: no mention of pagination, result volume, rate limits, or the authorization/permission scope required by the private API key.
Agents need to know what a tool does to the 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 four-word sentence with no wasted clauses, but its brevity comes from omission rather than discipline. There is no front-loaded scope statement or qualifier to anchor 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?
A one-parameter read tool is simple and annotations cover the safety profile, but with no output schema the description should at least sketch what a returned list contains or how results are returned. It leaves the agent with only the tool name to work from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 there is a single required api_key parameter documented in the schema, so the baseline of 3 applies. The description contributes no additional meaning about the key's scope or expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"List Klaviyo lists" is a verb+resource restatement of the tool name klaviyo_list_lists, adding no distinguishing detail. Nothing tells an agent how a Klaviyo "list" (an audience/subscriber list) differs from the segments, metrics, or profiles returned by 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?
There is no when-to-use or when-not-to-use guidance, and the three sibling Klaviyo tools (klaviyo_list_segments, klaviyo_list_metrics, klaviyo_list_profiles) are never mentioned as alternatives. The agent must infer the choice from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klaviyo_list_metricsARead-onlyIdempotent
List Klaviyo metrics (tracked events).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Klaviyo private API key |
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 only the semantic gloss that "metrics" means tracked events; it says nothing about pagination, result volume, or whether the full account metric set is returned at once - the main behavioral unknowns for a list 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?
One short sentence, front-loaded with verb and resource, with zero filler. It is arguably too terse for the domain rather than padded, so the brevity is efficient rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only list endpoint with full schema coverage and no output schema, everything an agent needs to invoke it correctly is present; annotations supply the safety profile and the description supplies the domain gloss for "metrics". Nothing needed for a correct 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% for the single api_key parameter, so the schema already carries parameter meaning. The description adds no information about the key's scope or permissions, which is the baseline-3 outcome when structured fields do the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List Klaviyo metrics") and clarifies jargon with "(tracked events)" so an agent unfamiliar with Klaviyo knows these are event definitions, not analytics numbers. It is distinguishable from klaviyo_list_profiles/lists/segments by the resource noun itself, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers this is the discovery call for metric/event definitions, but there is no statement of when to prefer it over klaviyo_list_profiles or klaviyo_list_segments, and no mention of typical follow-on use (e.g., fetching metric-based reporting). No exclusions of any kind.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klaviyo_list_profilesBRead-onlyIdempotent
List Klaviyo profiles (subscribers).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Profiles to return (max 100, default 20) | |
| filter | No | Klaviyo filter expression (e.g. equals(email,'a@b.com')) | |
| api_key | Yes | Klaviyo private API key |
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 only the small semantic clarification that profiles are subscribers; it says nothing about pagination, result caps (the schema notes max 100), or rate limiting. With annotations carrying the weight, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the core verb and resource front-loaded and zero filler. The brevity is efficient, though it borders on under-specification for a listing 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?
There is no output schema, so the description is the only place return shape could be described, yet it says nothing about what a profile record contains or how pagination works. Given the fully documented input schema and the read-only annotations, it is barely adequate but leaves meaningful 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 description coverage is 100%, so limit, filter, and api_key are all documented in the schema, which sets the baseline of 3. The description adds only the gloss that profiles equal subscribers and contributes nothing about filter expression syntax or pagination behavior 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?
States a specific verb (List) and resource (Klaviyo profiles/subscribers), which is unambiguous on its own. However it never distinguishes itself from sibling Klaviyo tools such as klaviyo_list_lists, klaviyo_list_segments, or klaviyo_list_metrics, so an agent must infer from the name alone which object type it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites beyond the api_key in the schema, and no mention of alternatives. An agent has to decide between this and the other Klaviyo list_* tools with no stated criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klaviyo_list_segmentsBRead-onlyIdempotent
List Klaviyo segments (dynamic groups).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Klaviyo private API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only a small domain clarification ('dynamic groups') and does not describe authentication needs, rate limits, pagination, or response behavior. With annotations covering safety, 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, front-loaded sentence with no filler. It communicates the core operation and a brief domain clarification without wasting 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 one-parameter list tool with rich annotations and a fully documented schema, the description is minimally sufficient for invocation. However, because there is no output schema, it could reasonably mention return format or pagination behavior. It remains adequate but with a clear 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 required parameter (api_key) is fully documented in the schema. The description adds no parameter-specific meaning 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 states a specific verb and resource: 'List Klaviyo segments'. The parenthetical '(dynamic groups)' clarifies the domain concept. It is clear enough to distinguish from sibling tools like klaviyo_list_lists or klaviyo_list_profiles, 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 no guidance on when to use this tool versus alternatives such as klaviyo_list_lists or klaviyo_list_profiles. It implies a list operation but offers no prerequisites, exclusions, or contextual selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kling_generate_videoB
Generate a high-quality video from text using Kling AI (Kuaishou). Supports standard and professional modes. Returns a task_id to poll for completion.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Generation mode: std (standard) or pro (professional, slower). Default: std | |
| model | No | Model name: kling-v1 or kling-v1-5 (default: kling-v1) | |
| prompt | Yes | Text description of the video to generate | |
| api_key | Yes | Kling AI API key | |
| duration | No | Video duration: 5 or 10 (seconds). Default: 5 | |
| cfg_scale | No | Guidance scale 0-1 (default: 0.5) | |
| image_url | No | Optional reference image URL for image-to-video | |
| aspect_ratio | No | e.g. 16:9, 9:16, 1:1. Default: 16:9 | |
| negative_prompt | No | What to avoid in the video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral transparency burden. It indicates asynchronous operation by mentioning a task_id for polling, but lacks details on auth requirements (beyond API key), error handling, rate limits, or failure modes. Some context provided, but insufficient.
Agents need to know what a tool does to the 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, 23 words, front-loaded with the core purpose. Every sentence adds value with no redundancy. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters, 100% schema coverage, and no output schema, the description adequately covers the main functionality and async nature. However, missing details on error handling and expected completion times reduce completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 baseline is 3. The description adds minimal extra meaning—only referencing mode and the return of task_id (which is not a parameter). It does not enhance understanding of parameters 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 generates a high-quality video from text using Kling AI, with support for standard and professional modes. It identifies the provider but does not explicitly differentiate from similar video generation siblings like pika_generate_video or runway_generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 over alternatives. It mentions modes but does not explain when to choose standard vs professional or how this compares to other video generators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kling_get_taskBRead-onlyIdempotent
Check the status of a Kling AI video generation task.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Kling AI API key | |
| task_id | Yes | Task ID returned by kling_generate_video |
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 fully covered. The description adds nothing beyond that — it doesn't mention that the task must be polled, what states are returned (processing/completed/failed), or how an invalid task_id 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?
A single front-loaded sentence with no filler. It is efficient, though its terseness contributes to the missing behavioral 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 an async status-check tool with no output schema, the description should ideally explain what status values come back or whether polling is required. Annotations and the complete schema cover safety and inputs, but the return-side semantics are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 api_key and task_id are documented, and task_id even notes it comes from kling_generate_video. The description adds no parameter-level meaning beyond the schema, which is acceptable at full 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 ('Check the status') and a specific resource ('a Kling AI video generation task'), so an agent knows exactly what the tool does. It stops short of contrasting itself with siblings like kling_generate_video or runway_get_task, but the verb+resource pair is 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?
Usage is implied by 'Check the status of a ... task' — a reasonable agent infers this is the follow-up poll to a generation call. However, there is no explicit when-to-use guidance, no mention of polling behavior, and no exclusion of alternatives for other video providers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kmeans_clusterB
Partition points into k clusters using the k-means algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Number of clusters (default 3) | |
| points | Yes | Array of numeric vectors (all same dimension) | |
| max_iterations | No | Max iterations (default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does not disclose that k-means is sensitive to initialization, whether results are deterministic, how convergence/tie-breaking works, or what the output shape is. For an algorithmic tool this leaves meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the action and resource with zero filler. Nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple mathematical tool with full param coverage, but with no output schema and no annotations it omits the return format (cluster labels vs. centroids) that an agent would need to chain results 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%, with k, points, and max_iterations each documented including defaults, so the schema already does the heavy lifting. The description adds nothing beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (partition), resource (points), and method (k-means), so the agent knows exactly what computation occurs. No sibling differentiation is needed since no other clustering tool exists in the sibling list, which keeps it just short of 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 contains no when-to-use guidance, no prerequisites, and no mention of alternatives or constraints. It states only what the tool does, leaving the agent to infer the triggering context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kmp_automatonA
Build a full KMP DFA transition table for streaming pattern matching.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Pattern string (max 1000 chars) | |
| alphabet | No | Alphabet characters (default a-z) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the tool builds a full DFA transition table, which is useful, but it does not describe the output structure, state representation, or any computational constraints beyond the schema's max-length note.
Agents need to know what a tool does to the world before calling 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 wasted words. It efficiently communicates the core operation and intended 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 two-parameter algorithmic tool with a fully documented schema, the description is minimally adequate. However, because there is no output schema, it would ideally explain the returned transition-table format or state representation, which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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, including the default alphabet. The description adds no additional parameter semantics beyond what is already in 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 states a specific verb (Build) and resource (full KMP DFA transition table), making the operation clear. However, it does not explicitly distinguish this from algorithmic siblings such as kmp_search or aho_corasick_search, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for streaming pattern matching' implies a use case, but there is no explicit guidance on when to use this tool versus alternatives like kmp_search or aho_corasick_search. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kmp_searchARead-onlyIdempotent
Find all occurrences of a pattern in text using Knuth-Morris-Pratt algorithm with failure function.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to search in | |
| pattern | Yes | Pattern to find |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds only that all occurrences are returned, without saying whether overlapping matches are included, what the result shape is, or any complexity trade-off beyond naming KMP.
Agents need to know what a tool does to the 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 with no filler; the core action comes first and the algorithm detail follows as a qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description bears the burden of explaining return values, and it only implies matches without specifying indices vs. substrings or overlap handling. Adequate to call correctly, incomplete to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters documented, so the baseline is 3. The description adds nothing beyond the schema about pattern/text semantics (e.g. literal vs regex, empty pattern, case sensitivity).
Input schemas describe structure but not intent. Descriptions should explain 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 ('Find all occurrences of a pattern in text') and even names the algorithm, so the operation is unambiguous. However, it never distinguishes itself from near-identical siblings like rabin_karp_search or aho_corasick_search, which do the same job with different algorithms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'use this when you need pattern matching in text,' but the description gives no when-not conditions and does not mention the obvious alternatives (rabin_karp_search, aho_corasick_search for multi-pattern, text_count_occurrences for a simple count).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knapsack_solveBRead-onlyIdempotent
Solve the 0-1 knapsack problem: pick items to maximize value within a weight capacity.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Array of { name?, weight, value } objects. | |
| capacity | Yes | Maximum weight capacity (integer units, max 100000). |
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 structurally. The description adds almost nothing behavioral beyond restating the problem: it does not say what the result contains, how ties are broken, whether fractional weights are supported, or what happens on infeasible input. With annotations carrying the safety burden, this is a below-baseline but non-contradictory 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?
A single front-loaded sentence with the verb, the algorithm, and the optimization objective in that order. Nothing is padded and nothing needs to be moved earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should explain what a caller receives: the selected items, total value, total weight, or just an optimum value? It also omits distinguishing behavior such as tie-breaking and input integrality. For a solver whose entire value is its return value, that is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with capacity documented as integer units with a max of 100000 and items documented as {name?, weight, value}. The description adds no further semantics about parameter format or constraints, so the schema does all the work and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and named algorithm ("Solve the 0-1 knapsack problem") plus the objective, so the resource is unambiguous. It does not distinguish itself from near-neighbors in the same space such as tsp_solve, simplex_solve, hungarian_assign, or coin_change, so an agent must still rely on the name to 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 usage is implied by the problem definition: an agent holding a capacity and a list of weight/value items knows this applies. However, there is no explicit when-to-use framing, no statement of when a different solver (e.g. tsp_solve, hungarian_assign) is the right choice, and no preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kosaraju_sccB
Find all strongly connected components in a directed graph using Kosaraju's two-pass algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Directed edges as [from, to] pairs | |
| vertices | Yes | Number of vertices (0-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions the two-pass Kosaraju algorithm but does not describe the return format, ordering of components, input assumptions beyond what the schema states, or any performance characteristics. This is a significant gap for an algorithmic tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that contains no filler. It efficiently communicates the action, the graph type, and the algorithm used.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 input schema is fully documented, but there is no output schema and the description does not explain the return value's structure, such as whether components are lists of vertex IDs or how they are ordered. For an algorithmic tool with no annotations, this leaves the agent with a minimum viable but incomplete understanding of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly documented: vertices is the number of 0-indexed vertices and edges is an array of [from, to] pairs. The description adds no further parameter semantics 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 states a specific verb and resource: find all strongly connected components in a directed graph. It also names Kosaraju's two-pass algorithm, which distinguishes it from sibling SCC tools such as tarjan_scc and gabow_scc. An agent can identify what the tool does 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 no guidance on when to choose this tool over alternatives like tarjan_scc or gabow_scc. It only says what algorithm is used, not when that choice is preferable. The usage is implied by the tool name and description, but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
languagetool_checkBRead-onlyIdempotent
Check text for grammar, spelling, and style issues using LanguageTool.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to check. | |
| language | No | Language code (default: auto). E.g. en-US, de-DE, fr. |
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 carried by structured data. The description adds only the scope of issues checked; it says nothing about rate limits (relevant for the hosted LanguageTool API), text-length limits, or how failures surface.
Agents need to know what a tool does to the 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 with no filler; the purpose arrives immediately. It is arguably too terse for what it omits, but nothing present 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?
No output schema exists, so the description is the only place to learn what comes back (issue list, offsets, suggestions) and it does not say. For a low-complexity, two-parameter read-only tool this is adequate but leaves a real gap around return shape and input size limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'text' and 'language' (with example codes and auto default) are already documented in the schema. The description adds no parameter meaning beyond what the schema provides, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain 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 ('check') and resource ('text') plus the exact issue classes (grammar, spelling, style) and the backing engine (LanguageTool). It is clear on its own, but never differentiates itself from the sibling languagetool_languages, which an agent may confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by the verb 'check'; there is no statement of when to prefer this tool, whether languagetool_languages is a prerequisite for looking up codes, or any prerequisite/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
languagetool_languagesARead-onlyIdempotent
List all languages supported by LanguageTool.
| 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 destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the 'all languages' totality, with no note on whether the list is static or whether results are codes, names, or both.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, containing no filler. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only place the agent could learn what comes back (language names, codes, or both on what shape), and that is missing. For a schema-less, annotation-heavy lookup tool, this is adequate but leaves a real 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 tool takes zero parameters, so the baseline applies and there is nothing for the description to compensate for. Not a 5 only because it could have noted that no filtering arguments exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (list) and resource (all languages supported by LanguageTool) with unambiguous scope. No sibling tool does this; languagetool_check is clearly the complement, not an overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description rather than stated: an agent can infer this is the lookup to call before languagetool_check to discover valid language codes, but the description never makes that dependency or routing explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_album_infoCRead-onlyIdempotent
Get album info from Last.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| album | Yes | ||
| artist | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond repeating that data comes from Last.fm. It says nothing about API-key requirements, error conditions such as missing albums, or what kind of album data is 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 single sentence is front-loaded and contains no wasted words. However, it is too thin for a tool with two required parameters and an API-key parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and the description provides no return-value expectations, authentication notes, or usage context. For a parameterized external API lookup, this leaves the agent with significant 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 description coverage is 0%, so the description must compensate for three undocumented parameters. It only vaguely implies that an album is being looked up and says nothing about the required 'artist' and 'album' pairing or the optional 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 album info.' It distinguishes itself from lastfm_artist_info by resource, but it does not differentiate this Last.fm album lookup from the many album lookups offered by deezer_get_album, spotify_get_album, and similar 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?
There is no guidance on when to use this tool versus alternatives. It does not say whether the caller should search for an artist first or whether a direct lookup by artist and album name is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_artist_infoCRead-onlyIdempotent
Get Last.fm artist info.
| Name | Required | Description | Default |
|---|---|---|---|
| artist | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is covered. The description adds nothing beyond that: no indication of what fields are returned, whether a Last.fm API key is needed, or any rate-limit/auth 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 single sentence is economical and front-loaded, with no filler. But its brevity reflects under-specification rather than precision, so it is concise without being sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% parameter description coverage, the description needs to carry more weight. It does not explain the return shape or the api_key parameter, leaving an agent with gaps before it can invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It says nothing about the required 'artist' parameter (name format, disambiguation) or the 'api_key' parameter, which is completely unexplained despite being a potentially critical auth input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb and resource are identifiable ('Get Last.fm artist info'), so an agent knows it retrieves artist data. However, it does not distinguish itself from adjacent siblings like lastfm_search_artists, lastfm_album_info, or lastfm_similar_artists, leaving the agent to infer the distinction from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of lastfm_search_artists or other Last.fm siblings. The description offers no prerequisites, no context about what 'artist info' covers, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_chart_top_artistsCRead-onlyIdempotent
Get the Last.fm chart of top artists.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context beyond the basic purpose, such as authentication via api_key, rate limits, or default chart 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 front-loaded sentence with no wasted words. It states the core action immediately and contains no redundant or filler 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 tool with two undocumented parameters and no output schema, the description is too sparse. It explains the purpose but omits parameter behavior, authentication needs, and any indication of what the chart response contains.
Complex tools with many parameters or behaviors need more documentation. 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 two parameters, but schema description coverage is 0% and the description does not explain either parameter. It gives no meaning for 'limit' or 'api_key', leaving an agent unable to infer their roles from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the Last.fm chart of top artists.' This clearly indicates a read operation for chart data. It does not explicitly distinguish itself from siblings such as lastfm_search_artists or lastfm_chart_top_tracks, 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 no guidance on when to use this tool versus alternatives like lastfm_search_artists, lastfm_similar_artists, or lastfm_chart_top_tracks. It implies usage only through the phrase 'chart of top artists' and includes no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_chart_top_tracksC
Get the Last.fm chart of top tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral details beyond restating the purpose. Since no annotations are provided, the description should disclose traits like required authentication (since api_key is a parameter), rate limits, or read-only nature, but none are 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?
The description is a single sentence, which is concise but underspecified. It fails to front-load important details about parameters or usage, making it minimally 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?
Given the lack of annotations, output schema, and parameter descriptions, the description is severely incomplete. It does not explain the return format, how the chart is determined, or authentication requirements.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage and no parameter descriptions in the tool description, the agent receives no information about what 'limit' or 'api_key' control. This is a critical gap 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 clearly states it retrieves the Last.fm chart of top tracks, using a specific verb 'Get' and resource. However, it does not distinguish from sibling tools like 'lastfm_top_tracks' which may serve a similar 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?
No guidance is provided on when to use this tool versus alternatives such as 'lastfm_top_tracks' or other Last.fm tools. There is no mention of prerequisites or appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_search_artistsCRead-onlyIdempotent
Search for artists on Last.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| artist | Yes | ||
| api_key | No |
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 fully covered structurally. The description adds nothing: it doesn't say what a search matches on, how many results come back by default, whether pagination exists, or — most importantly — whether the required api_key parameter must be supplied by the caller or is injected by the server.
Agents need to know what a tool does to the 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 with no filler, which is the right shape. It is under-specified rather than padded — the fix is more substance, not trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 a 0%-documented three-parameter schema and no output schema, the description does far too little: result shape, match semantics, default limit, and the api_key handling are all unstated. The annotations cover only the read-only profile, leaving the operative details to guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description carries the full explanatory burden and largely drops it. 'Search for artists' hints that `artist` is the query term, but `limit` (defaults? max?) and the credential-like `api_key` are left entirely unexplained — an agent cannot tell whether it is expected to pass a key.
Input schemas describe structure but not intent. Descriptions should explain 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 ('artists') plus the backing service (Last.fm), so the agent knows exactly what it returns. It does not, however, distinguish itself from the many adjacent artist-lookup siblings such as lastfm_artist_info, lastfm_chart_top_artists, discogs_search_artists, and mb_search_artists — the name alone carries that disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pick this over lastfm_artist_info (exact lookup) or lastfm_chart_top_artists (browse/popularity), which are the obvious confusable alternatives in the same namespace. The agent must infer that 'search' means fuzzy name matching rather than lookup or chart browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_similar_artistsC
Get similar artists on Last.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| artist | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but only states the basic operation. It does not disclose side effects, data limits, authentication requirements (api_key parameter not explained), or whether the tool is read-only. Minimal 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 a single concise sentence that front-loads the action. It is efficient but at the cost of omitting necessary details, making it slightly under-informative for its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is too sparse. It fails to provide context about input constraints, return format, or required authentication, making it inadequate for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters (artist, limit, api_key). The agent gains no additional meaning beyond the schema's type definitions, which are insufficient for proper 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 'Get similar artists on Last.fm.' clearly states the verb (get) and resource (similar artists) on a specific platform, distinguishing it from sibling tools like lastfm_artist_info or lastfm_search_artists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, such as lastfm_artist_info or lastfm_search_artists. There is no mention of prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lastfm_top_tracksC
Get top tracks for an artist on Last.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| artist | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not mention read-only nature, authentication requirements (api_key), rate limits, or output format. The basic purpose is stated, but critical behavioral traits are missing.
Agents need to know what a tool does to the world before calling 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 purpose. It is concise and contains no wasted words, but could benefit from additional context without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (3 params, no output schema), but the description is insufficient. It does not cover how to use parameters, expected inputs, or what the output contains. Given the low schema coverage and lack of annotations, the description should provide more complete context for effective 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?
Schema description coverage is 0%, and the description adds no information about parameters. It does not explain 'artist', 'limit', or 'api_key', leaving their roles and constraints entirely to the schema, which has no descriptions. The description fails to compensate for the coverage 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 clearly states the specific action ('Get'), resource ('top tracks'), and context ('for an artist on Last.fm'). It distinguishes from sibling tools like lastfm_artist_info (artist info) and lastfm_search_artists (search artists), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as lastfm_chart_top_tracks. It does not mention prerequisites, exclusions, or context of use, leaving the agent to infer 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.
legalpass_edit_itemB
Apply a human reviewer override to a LegalPass item and return an audit entry with before/after state.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Alias for reviewer_note, for TestPass-style callers | |
| run_id | Yes | The LegalPass run id returned by legalpass_run | |
| finding | No | Replacement finding text, linted by PassGuard | |
| item_id | Yes | The LegalPass item id to edit | |
| verdict | No | Reviewer override verdict | |
| actor_user_id | No | Optional actor id for the override audit entry | |
| reviewer_note | No | Human reviewer note for the audit trail, linted by PassGuard | |
| on_fail_comment | No | Replacement fail comment, linted by PassGuard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two useful traits: this is a mutation (an 'override') and it produces an auditable before/after record. However, it omits whether the override requires reviewer authorization, whether it is reversible, and that inputs are gated by PassGuard linting.
Agents need to know what a tool does to the 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 sentence, front-loaded with the action and scope, followed by the return behavior. 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 an 8-parameter mutation with no annotations and no output schema, the description covers intent and return content but omits the linting gate, the alias relationship between notes and reviewer_note, and any permission or lifecycle requirements. Adequate but with clear 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 description coverage is 100%, so the schema already documents all eight parameters, including the verdict enum and the notes/reviewer_note alias. The description adds no parameter-level detail, 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 pairs a specific verb ('Apply a human reviewer override') with a specific resource ('a LegalPass item') and states the outcome (an audit entry with before/after state). It is clear enough to separate from read-style siblings like legalpass_status, though it does not explicitly contrast with legalpass_verdict or testpass_edit_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 this tool should be used versus legalpass_verdict, legalpass_run, or testpass_edit_item, and no stated preconditions (e.g. an existing run/item, reviewer authorization). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legalpass_runA
Run a LegalPass issue-spotting pass against a URL, contract upload, or repo. With fixture_text, returns deterministic public evidence; without it, returns the guarded run plan.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| pack_id | No | LegalPass pack slug (default: legalpass-mvp-v0) | |
| profile | No | Run profile (default: smoke) | |
| target_sha | No | Optional commit or target evidence SHA to bind the LegalPass receipt to a specific target version | |
| target_url | No | URL target shortcut for TestPass-style callers | |
| fixture_text | No | Public text to check deterministically for dogfood or local proof | |
| jurisdictions | No | Optional jurisdiction routing hints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that fixture_text produces deterministic public evidence while omitting it returns a guarded run plan. However, it does not state side effects, persistence, authorization needs, or whether the run mutates state.
Agents need to know what a tool does to the world before calling 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 front-loaded sentences with no filler. The core action and the fixture_text-dependent return behavior are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must carry more context for a complex 7-parameter run tool. It explains the two return modes but leaves important gaps around authorization, side effects, and how it relates to legalpass_status or legalpass_verdict.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already documents most parameters. The description adds context for fixture_text and target kinds, but it does not clarify pack_id, profile, target_sha, target_url, or jurisdictions 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 names a specific verb and resource: 'Run a LegalPass issue-spotting pass.' It also states the supported target kinds (URL, contract upload, repo). However, it does not differentiate this tool from nearby siblings such as legalpass_verdict, legalpass_status, or other *pass_run tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through target kinds and the fixture_text mode distinction, but it does not explicitly say when to use this tool versus legalpass_status, legalpass_verdict, or other LegalPass siblings. It also omits prerequisites or guidance on when fixture_text should be supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legalpass_save_packB
Save or update a LegalPass custom playbook pack. Requires an enabled citation_verifier hat.
| Name | Required | Description | Default |
|---|---|---|---|
| pack | No | LegalPass pack object | |
| yaml | No | LegalPass pack YAML | |
| pack_id | No | Optional pack id override for YAML payloads | |
| overwrite | No | Allow replacing an existing pack id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the operation is a save/update and requires a specific hat, but it does not disclose mutation side effects, overwrite semantics, permission scope beyond the hat requirement, idempotency, or what happens to the citation_verifier dependency. This is thin for a mutation tool with zero 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 tightly written sentences with no wasted words. The primary action is front-loaded and the prerequisite follows immediately, making it 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?
The description identifies the operation and one prerequisite, and the schema fully documents parameters, but with no annotations and no output schema it leaves important behavioral details unstated (e.g., what save returns, how overwrite defaults, whether pack or yaml is required despite zero required parameters). It is minimally adequate but incomplete for a mutation 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%, meaning all four parameters (pack, yaml, pack_id, overwrite) are already described in the input schema. The description adds no additional parameter 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 gives a specific verb (Save or update) and resource (LegalPass custom playbook pack), making the purpose immediately clear. It does not, however, distinguish this tool from related siblings like legalpass_edit_item or testpass_save_pack, 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 prerequisite (an enabled citation_verifier hat) but gives no guidance on when to choose this tool over alternatives such as legalpass_edit_item or testpass_save_pack. There is no when-to-use or 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.
legalpass_statusA
Fetch the stored LegalPass run result and audit log for a run started through legalpass_run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The LegalPass run id returned by legalpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It usefully discloses that the tool returns a stored run result and audit log, and that the run must have been started through legalpass_run, but it does not describe permissions, error behavior, or whether the run must be complete.
Agents need to know what a tool does to the world before calling 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 action and resource. Every clause contributes: what is fetched, what is returned, and the required run provenance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully states that both a run result and an audit log are returned, which is important return-value context. It remains slightly incomplete because it does not clarify behavior when the run is invalid, incomplete, or 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 single run_id parameter is fully documented in the schema as the id returned by legalpass_run. The description adds no parameter-specific details beyond that baseline, so a 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, 'Fetch', names the resource as the stored LegalPass run result and audit log, and ties it to a run started via legalpass_run. This clearly separates it from legalpass_run (which starts a run) and from unrelated 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 states the context for use: fetching output for a run that was started through legalpass_run. It does not explicitly say when not to use it or name an alternative status-retrieval tool, but the dependency on legalpass_run gives clear implied usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legalpass_verdictC
Lint LegalPass-style verdict text against the issue-spotter guardrail and return the legally reviewed disclaimer banner for Pass-family outputs.
| Name | Required | Description | Default |
|---|---|---|---|
| verdict_text | No | Verdict or finding text to check before display | |
| disclaimer_length | No | Disclaimer length to return (default: results) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It mentions that the tool checks against an 'issue-spotter guardrail' and returns a 'legally reviewed disclaimer banner', but does not disclose any side effects, required permissions, or safety implications (e.g., whether it modifies data). The verb 'lint' suggests non-destructive analysis, but this is not stated explicitly.
Agents need to know what a tool does to the world before calling 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 main action ('lint') and goal. It is concise with no wasted words. However, it could be slightly more structured by separating the guardrail check from the return value for 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 tool with two simple parameters and no output schema, the description provides enough context for basic use. It explains the input (verdict text) and output (disclaimer banner), but does not elaborate on what the guardrail does or the format of the banner. It is minimally complete but leaves room for 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?
The input schema covers both parameters with descriptions, achieving 100% coverage. The description adds context like 'LegalPass-style' and 'legally reviewed', but does not significantly enhance understanding beyond what the schema already provides. As per guidelines, baseline is 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: linting LegalPass-style verdict text against a guardrail and returning a disclaimer banner. It uses specific verbs ('lint', 'return') and identifies the resource ('verdict text', 'disclaimer banner'). While it distinguishes from siblings by mentioning 'LegalPass-style', it could be more explicit about how it differs from 'legalpass_run'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus alternatives like 'legalpass_run'. It does not provide any context about prerequisites, when not to use it, or which scenarios are appropriate. Implied usage is only for verdict text, but no explicit comparison to siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lego_get_setB
Get details for a specific LEGO set by set number.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| set_num | Yes | e.g. 75192-1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention authentication requirements, rate limits, or what 'details' entails (e.g., whether it returns parts, images, or instructions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) and front-loaded. However, it could be more structured, e.g., by listing key parameters or output. It earns its place but is somewhat sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-entity lookup tool, the description is adequate but does not explain the return value or any constraints. Despite no output schema, it could mention what details are provided. Given sibling tools, more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%, with only `set_num` described. The description adds no extra meaning beyond the schema ('by set number' is redundant). It does not explain `api_key` or provide format examples for the set number.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get details'), the resource ('specific LEGO set'), and the identifier ('by set number'). It distinguishes from sibling tools like `lego_search_sets` (search) and `brickset_get_set` (different 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?
No guidance is provided on when to use this tool versus alternatives like `brickset_get_set` or `lego_search_sets`. The description does not mention exclusions or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lego_search_partsCRead-onlyIdempotent
Search LEGO parts by name.
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the name-based search scope but says nothing about rate limits, pagination, or API-key behavior, leaving it at minimum viable given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately concise, though its brevity contributes to the missing parameter and usage context noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and no parameter descriptions, the description is thin. It does not indicate what search results look like or whether an API key is required, so an agent lacks information needed to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the two parameters. It clarifies that the required search parameter is a name query, but it does not explain the optional api_key parameter at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 LEGO parts by name. It is clear what the tool does, but it does not explicitly differentiate from nearby siblings such as lego_set_parts or lego_search_sets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no when-to-use guidance, prerequisites, or exclusions. With siblings like lego_set_parts and lego_search_sets, an agent must infer the intended selection context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lego_search_setsC
Search LEGO sets by name/theme (Rebrickable).
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| api_key | No | ||
| max_year | No | ||
| min_year | No | ||
| theme_id | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions the data source (Rebrickable) but does not disclose any behavioral traits such as rate limits, authentication requirements, or how parameters interact. The brief description adds minimal context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action and resource. No extraneous words, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema or annotations, the description is severely incomplete. It lacks details on required inputs, usage restrictions, and expected output.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage and 6 parameters, the description only explains 'name' and 'theme' (via 'by name/theme'). It does not clarify min_year, max_year, page_size, or api_key, leaving significant gaps for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search' and the resource 'LEGO sets' with criteria 'by name/theme' and source 'Rebrickable'. It effectively distinguishes this tool from siblings like lego_get_set or lego_set_parts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives like lego_get_set or lego_themes. It only implies search functionality without exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lego_set_partsB
Get the parts list for a LEGO set.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| set_num | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states the purpose ('get the parts list') without disclosing behavioral traits such as whether authentication (api_key) is required, rate limits, or what happens on invalid set_num. For a read operation, the description adds no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence of 8 words. It is front-loaded with the verb and resource, making it easy to scan and understand quickly. No extraneous 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 no output schema and a list endpoint, the description does not specify the return format, pagination, or how to handle errors. Sibling tools like 'lego_get_set' may provide more context, but the description alone is incomplete for an agent to use 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?
Schema description coverage is 0%, and the description does not explain the parameters. While 'set_num' is likely the set number and 'api_key' an authentication key, the description adds no meaning beyond the schema. For a minimal description, this is insufficient to compensate for the lack of 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 clearly states the action ('get') and the resource ('parts list for a LEGO set'), which is specific. It distinguishes from sibling tools like 'lego_get_set' (set details) and 'lego_search_parts' (search parts) by focusing on a specific set's parts 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?
No guidance on when to use this tool versus alternatives like 'lego_search_parts' or 'lego_get_set'. Agents have to infer from the description alone, which lacks any when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lego_themesC
List all LEGO themes from Rebrickable.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral transparency. It only states 'list all LEGO themes' but does not disclose whether the api_key is required, if there are rate limits, pagination, or what the response format looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded. However, it sacrifices necessary detail for brevity, which slightly reduces effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of output schema and annotations, the description is incomplete. It does not inform the agent about return values, authentication implications, or any constraints, leaving significant gaps for a simple list 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 0% description coverage for the api_key parameter, and the description does not explain its purpose or whether it is needed. The agent is left without guidance on how to use the 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 clearly states the action (list), the resource (LEGO themes), and the source (Rebrickable). It distinguishes itself from sibling tools like lego_search_sets and lego_get_set, which deal with sets and parts, not themes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or authentication requirements. Sibling tools are not referenced for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lehmer_codeA
Convert between permutations and Lehmer codes, compute permutation rank and unrank.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Permutation size for unranking (use with rank) | |
| rank | No | Lexicographic rank to decode (use with n) | |
| permutation | No | Permutation of [0..n-1] to encode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not explain input validation (e.g. that the permutation must be of [0..n-1]), error behavior for invalid inputs, or what the return shape looks like for the different modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tight sentence with zero filler that front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter pure-function tool with no output schema and no annotations, the description is minimally adequate but omits how the three optional parameters combine into distinct operations and what is 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?
Schema description coverage is 100%, so parameter documentation is already handled by the schema. The description adds no meaning beyond restating the conversion concept; 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 precise verb+resource: converting between permutations and Lehmer codes, plus rank/unrank. This clearly distinguishes it from sibling combinatorics tools like permutation_calc or catalan_calc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'use with rank' and 'use with n' in the schema implies the two modes (encoding vs unranking), but the description itself gives no explicit when-to-use guidance or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libretranslate_detectBRead-onlyIdempotent
Detect the language of a text using LibreTranslate.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to detect language of. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds nothing beyond that — no mention of the network dependency, rate limits, or what the detection returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no waste. It is under-specified rather than bloated, which is a completeness issue rather than a structure one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and the description says nothing about the return value, so an agent doesn't know whether it gets a language code, a name, a confidence score, or multiple candidates — a material gap for a detection 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?
Single required parameter with 100% schema description coverage, so the schema fully documents 'text'. No additional parameter semantics are needed in the description.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Detect the language of a text' via LibreTranslate. Sibling libretranslate_translate makes the distinction inferable, but the description itself does not contrast 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?
No indication of when to use this versus libretranslate_translate, fun_translate, or mymemory_translate, and no note that the text should already be un-detected. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libretranslate_languagesARead-onlyIdempotent
List supported languages in LibreTranslate.
| 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 destructiveHint=false, so the safety profile is covered and the bar is lower. The description adds nothing beyond the name — notably it does not say whether the result is a code list, a code/name map, or whether it reflects the whole supported set or a server-configured subset.
Agents need to know what a tool does to the 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 short sentence with no filler and the key noun front-loaded. It is efficient but almost too sparse — there is room for a clause on what the output contains without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters, the description is the only place to learn what comes back, and it stays silent on return shape (language codes vs display names) and on how the result is meant to be consumed. Adequate to call, but not complete for an agent acting on the 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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No param-level guidance is needed or 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?
Specific verb ("List") plus a well-defined resource ("supported languages") scoped to LibreTranslate. It is unambiguous against siblings like libretranslate_translate and libretranslate_detect, though the description never names 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?
Usage is only implied: an agent can infer this is a discovery call to fetch language codes before calling libretranslate_translate. There is no explicit statement of when to call it or that its output feeds the translate/detect tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libretranslate_translateC
Translate text between languages using LibreTranslate (open source).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to translate. | |
| source | No | Source language code (default: auto-detect). | |
| target | No | Target language code (default: en). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing: no note on rate limits, self-hosted endpoint requirements, offline behavior, or what happens when source detection is used. Calling LibreTranslate 'open source' is characterization, not 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?
A single efficient sentence with the core action front-loaded. It is not bloated, but it is also thin enough that brevity comes at the cost of 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 tool with no annotations, no output schema, and multiple competing translator siblings, the description omits the routing logic and behavioral context an agent needs. It is technically accurate but not sufficient to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 text, source, and target are already documented with defaults (auto-detect, en). The description adds nothing beyond that and does not explain language-code format or auto-detect semantics. Baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Translate) and resource (text between languages) and identifies the backing service (LibreTranslate, open source). It does not differentiate itself from sibling translators like deepl_translate_text, mymemory_translate, or fun_translate, which an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this translator versus the other translate tools in the catalog, nor on prerequisites such as needing a reachable LibreTranslate endpoint. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lichess_puzzle_dailyARead-onlyIdempotent
Get the Lichess daily puzzle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is fully covered. The description adds no behavioral context beyond restating the resource – no note about whether the puzzle rotates, how it is ordered, or what fields come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. Nothing is wasted and the resource is identified immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-arg, read-only lookup with full annotations and no output schema, the description is essentially sufficient. A small gap remains: it doesn't say whether the payload is a FEN/PGN plus rating or a full game history, so the agent must infer the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema coverage is 100% and the empty object schema is unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Get' plus a specific resource 'the Lichess daily puzzle' – an agent knows exactly what comes back conceptually. It does not, however, distinguish itself from the sibling chess_puzzles_random, which is the closest potential confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'daily' implies this returns today's one puzzle, which hints at usage versus a random-puzzle sibling, but there is no explicit when-to-use / when-not statement or named alternative. Guidance is implied only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lichess_top_playersCRead-onlyIdempotent
Get top Lichess players for a game mode.
| Name | Required | Description | Default |
|---|---|---|---|
| nb | No | ||
| perfType | No | bullet, blitz, rapid, classical, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds almost nothing beyond those annotations: it does not explain ranking order, whether the list is bounded, or what happens with no perfType supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but its brevity comes at the cost of under-specification. It does not waste words, but it also leaves out information needed to use the tool confidently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with no output schema, the definition is missing key context: what nb controls, whether it is optional with a default, and what the returned ranking represents. An agent could invoke it, but not with a full understanding of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: perfType is documented and enumerated, but nb has no description in either the schema or the tool description. The phrase 'for a game mode' loosely maps to perfType but does not clarify nb's meaning, range, or default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 top Lichess players') and adds a scope element ('for a game mode'), so an agent understands the basic operation. It does not distinguish itself from close siblings such as chess_leaderboards or lichess_user, and the 'game mode' phrasing is less precise than the perfType enum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of when not to use it, and no reference to alternatives like chess_leaderboards. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lichess_tournamentB
Get details for a Lichess tournament.
| Name | Required | Description | Default |
|---|---|---|---|
| tournament_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for disclosing behavior. It implies read-only but does not mention safety, authentication requirements, rate limits, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimally adequate for a simple lookup tool with one parameter. However, since there is no output schema, it would benefit from mentioning what details are returned (e.g., name, status, rounds).
Complex tools with many parameters or behaviors need more documentation. 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 required parameter 'tournament_id' has no description in the input schema (0% coverage). The description adds no additional meaning, leaving the agent to infer its format from the name 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 'Get details for a Lichess tournament.' clearly states the action (get) and resource (tournament details), distinguishing it from sibling tools like lichess_user or lichess_puzzle_daily.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives, or any prerequisites. The description is purely a statement of purpose without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lichess_userCRead-onlyIdempotent
Get a Lichess user profile.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive, so safety is covered. The description adds no behavioral context beyond them – nothing about what fields the profile contains, rate limits, or behavior for nonexistent users.
Agents need to know what a tool does to the 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 with zero waste. It is arguably under-specified rather than over-long, so it loses only a point for giving the reader too little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with one obvious parameter and annotations covering safety, this is minimally adequate. It is still thin because it says nothing about the returned profile content or the required username format.
Complex tools with many parameters or behaviors need more documentation. 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 username parameter has 0% schema description coverage, so the description must compensate. Saying 'a Lichess user profile' only weakly implies that username identifies the user; there are no details on format, case sensitivity, or whether Lichess usernames are required to exist.
Input schemas describe structure but not intent. Descriptions should explain 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) and a specific resource (Lichess user profile), so the agent knows exactly what it returns. It does not differentiate itself from nearby siblings such as chess_player or lichess_user_games, leaving some ambiguity about which source to prefer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives like chess_player, lichess_user_games, or lichess_top_players. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lichess_user_gamesCRead-onlyIdempotent
Get games for a Lichess user.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| api_key | No | ||
| perfType | No | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not mention pagination, rate limits, API-key requirements, or what kind of game data is 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 single sentence is short, front-loaded, and free of filler. However, its brevity is partly due to under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with no output schema and no parameter descriptions, the definition is too thin. It should explain the optional filters, result limits, and whether an API key is required, but it does none of 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 0%, so the description must compensate, but it only implies the username parameter. It says nothing about max, perfType, or api_key, leaving three of four parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (get games for a Lichess user), so the basic action is clear. It does not distinguish this tool from nearby siblings such as lichess_user or chess_player_games, which leaves some ambiguity about when this specific endpoint is the right choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus alternatives, no prerequisites such as authentication requirements, and no mention of whether it returns ongoing, recent, or historical games. The agent is left to infer usage entirely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_actionC
Interact with the Linear GraphQL API: list and search issues, create issues, get project details, and list teams.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of results to return (default 25). | |
| query | No | Search term (for search_issues). | |
| title | No | Issue title (for create_issue). | |
| action | Yes | Action: list_issues, create_issue, get_project, list_teams, search_issues. | |
| api_key | Yes | Linear API key. | |
| team_id | No | Team ID (required for create_issue, optional filter for list_issues). | |
| priority | No | Priority: 0 (none), 1 (urgent), 2 (high), 3 (medium), 4 (low). | |
| state_id | No | Workflow state ID. | |
| project_id | No | Project ID (for get_project). | |
| assignee_id | No | Assignee user ID. | |
| description | No | Issue description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description says 'Interact with the Linear GraphQL API' implying API calls, but it does not disclose behavioral traits such as rate limits, idempotency, or side effects beyond 'create' actions. The burden falls on the description, which is insufficient.
Agents need to know what a tool does to the world before calling 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 lists actions without redundancy. It is front-loaded with the main purpose. Slightly longer than necessary but still 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 compound tool with 11 parameters and no output schema or annotations, the description only provides a high-level summary. It lacks details on parameter interactions, return values, and error handling. Adequate but leaves 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 covers 100% of parameters with descriptions. The description adds no extra meaning beyond summarizing actions; it does not clarify parameter relationships or constraints. 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 interacts with the Linear GraphQL API and lists five main actions (list/search issues, create issues, get project, list teams). This provides a specific verb-resource mapping. However, it could be more precise about the scope (e.g., 'list and search issues' is broad) and doesn't differentiate from non-existent Linear 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 no guidance on when to use this tool vs. alternatives. Among many sibling tools (github_action, notion_action, etc.), there is no context for choosing Linear_action. It also does not mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_solveBRead-onlyIdempotent
Solve a system of linear equations Ax = b using Gaussian elimination with partial pivoting.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | Coefficient matrix A (square, 2D array). | |
| vector | Yes | Right-hand side vector b. |
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 and the description only needs to add computational traits. It does add the algorithm and pivoting strategy, which hints at numerical stability, but says nothing about behavior on singular or inconsistent systems, or about precision/rounding. Modest added value over 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 front-loaded sentence with no filler; the verb, resource, and method all appear immediately. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what comes back (solution vector, residual, or error on singular input) and it does not. For a solver whose failure modes matter to callers, this leaves 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%, with both 'matrix' and 'vector' already described as A and b respectively. The description's 'Ax = b' phrasing reinforces the mapping but adds no format, shape, or validation detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Solve a system of linear equations Ax = b') and names the algorithm (Gaussian elimination with partial pivoting), so the operation is unambiguous. However, it does not distinguish itself from the sibling tool 'gaussian_elimination', which appears to cover very similar ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus 'gaussian_elimination', 'matrix_inverse', or 'simplex_solve'. There is also no mention of prerequisites such as A needing to be square and non-singular, which the agent must infer from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
line_broadcastC
Broadcast a text message to all followers of your LINE Official Account.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| channel_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it omits the behaviors that matter most: that this is an irreversible mass delivery reaching every follower, that LINE enforces a broadcast quota/rate limits, and that a channel access token with the right scope is required. None of these are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the recipient scope appears before the qualifier. It is efficient but borders on under-specification for a broadcast mutation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 an outbound, irreversible, quota-limited mass-send operation with no annotations, no output schema, and 0% parameter documentation. For that complexity profile, the one-line description leaves out essentials an agent needs before calling: auth token handling, delivery scope, and irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does not. 'message' is inferable from the prose, but 'channel_access_token' is undocumented in both the schema and the description, leaving the agent no guidance on where it comes from or that it is effectively 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 verb (broadcast) and resource (a text message) plus scope (all followers of your LINE Official Account), which implicitly separates it from the sibling line_send_message/line_reply_message that target individuals. It is clear but never names those siblings, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'broadcast ... to all followers' hints at mass delivery versus a 1:1 send, but there is no explicit when-to-use, when-not-to-use, or named alternative (line_send_message, line_send_flex_message, line_reply_message). An agent must reason about the distinction on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
line_get_group_summaryBRead-onlyIdempotent
Get a LINE group's name and picture URL.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ||
| channel_access_token | No |
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 return-value context (name and picture URL), especially since there is no output schema, but it does not mention auth requirements or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It communicates the core purpose and return fields 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?
This is a simple read-only tool with rich annotations and no output schema, so the description's return-field detail is helpful. However, with 0% schema coverage, the lack of parameter and authentication guidance leaves clear gaps for an agent invoking 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 0%, and the description only indirectly implies that group_id refers to a LINE group. It does not explain the format of group_id or the role of channel_access_token, leaving most parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ("a LINE group's name and picture URL"). It clearly identifies both the target object and the exact fields returned, distinguishing it from user-profile-oriented siblings like line_get_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 no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as group membership or authentication. Usage is only implicitly suggested by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
line_get_profileBRead-onlyIdempotent
Get a LINE user's display name, profile picture, and status message.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| channel_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, read-only operation, so the description need not repeat that. It adds value by naming the returned profile fields, but does not mention authentication needs, error behavior, or whether profile visibility depends on LINE user settings.
Agents need to know what a tool does to the 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-formed sentence that front-loads the action and resource with zero filler. It is appropriately sized for a simple profile-retrieval 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 read-only tool with annotations and no output schema, the description usefully lists the returned fields. However, it leaves both parameters undocumented and does not explain the role of the optional access token, which an agent may need in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain that user_id identifies the LINE user or what channel_access_token is for. The phrase 'LINE user's' gives only the loosest hint about the required 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 states a specific verb and resource: get a LINE user's profile, and enumerates the returned fields (display name, profile picture, status message). It is clearly distinguishable from LINE messaging siblings such as line_send_message or line_broadcast, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a LINE user's profile, but gives no explicit guidance on when to use it versus alternatives like line_get_group_summary, nor any prerequisites or exclusions. Usage is inferable but not directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
line_reply_messageB
Reply to a LINE message using a reply token from a webhook event.
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Convenience: single text message to reply with | |
| messages | No | Array of LINE message objects (max 5), or use message for a single text reply | |
| reply_token | Yes | ||
| channel_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a message-sending mutation but says nothing about authentication, permissions, reply-token expiry or single-use constraints, rate limits, or maximum message count.
Agents need to know what a tool does to the world before calling 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 wasted words. It identifies the action and the key prerequisite 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 messaging mutation tool with no annotations, no output schema, four parameters, and only 50% schema description coverage, the description is too thin. It omits authentication expectations, reply-token lifecycle, message-count limits, and what happens on failure or success.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%: message and messages are documented in the schema, while reply_token and channel_access_token are not. The description usefully explains that reply_token comes from a webhook event, but it adds no information about channel_access_token or the relationship between message and messages.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: reply to a LINE message. It also identifies the mechanism, using a reply token from a webhook event. It does not explicitly name sibling alternatives such as line_send_message or line_broadcast, so it is clear but not fully differentiated 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 phrase 'using a reply token from a webhook event' implies when this tool is appropriate: when a reply token is available. However, it does not state when not to use it, how it differs from line_send_message, or that a reply token is typically short-lived and single-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
line_send_flex_messageC
Send a rich Flex Message to a LINE user or group.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| alt_text | Yes | Fallback text shown in push notifications | |
| contents | Yes | Flex Message container as JSON object or string | |
| channel_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that a message is sent, but does not disclose authentication expectations for channel_access_token, recipient ID format, delivery constraints, failure modes, or whether it is push-style versus reply-style.
Agents need to know what a tool does to the world before calling 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 gets directly to the action and target without unnecessary 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 messaging mutation with no annotations, no output schema, and only half of the parameters documented in the schema, the description is too sparse. It omits key context an agent would need, such as authentication via channel_access_token, recipient identifier expectations, and delivery 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 coverage is only 50%, and the description partially compensates by clarifying that 'to' refers to a LINE user or group. However, it adds no semantics for channel_access_token, and recipient ID format remains unspecified. The alt_text and contents parameters are already documented 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 verb and resource: sending a rich Flex Message to a LINE user or group. The message type and target scope make the purpose clear, though it does not explicitly contrast with siblings such as line_send_message, line_reply_message, or line_broadcast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to choose this tool over line_send_message, line_reply_message, or line_broadcast. The description only implies that it is for Flex Messages, leaving the agent to infer the selection criteria from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
line_send_messageC
Send a text message to a LINE user, group, or room.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | User ID, group ID, or room ID | |
| message | Yes | ||
| channel_access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about authentication (channel access token), messaging-quota/rate limits, whether delivery is push-based and counts against the monthly allowance, or what errors look like on invalid IDs — all material for a write 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?
A single front-loaded sentence with no filler, which is efficient. However, the brevity tips into under-specification for a messaging tool with an auth parameter rather than achieving well-judged density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and two of three parameters undocumented, this one-liner leaves out essentials: token requirements, message length/format constraints, and the difference between push and reply/broadcast semantics. An agent could call it, but not confidently or correctly on first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 33%, and the description does not compensate: the undocumented channel_access_token parameter is never mentioned, nor is how a token is obtained or whether it is required versus ambient. The one clarification it does offer (user/group/room targets) merely restates the 'to' field description.
Input schemas describe structure but not intent. Descriptions should explain 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 (send) and resource (text message) plus the target types (user, group, room). It implicitly distinguishes itself from line_send_flex_message and line_broadcast via 'text' and the direct-target framing, but never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use push-send versus line_reply_message (reply token flows) or line_broadcast (fan-out). The agent must infer the choice from sibling names alone; nothing in the description states prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_cut_treeC
Dynamic forest connectivity with link, cut, connected, and path sum queries using link-cut trees.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes | Operations: link, cut, connected, set_value, path_sum with u, v, value fields | |
| vertex_count | Yes | Number of vertices (1-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: no statement of return format, complexity characteristics, whether query state persists between calls, or error behavior for invalid link/cut operations. It only restates the algorithmic domain.
Agents need to know what a tool does to the 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 tight sentence with the core domain front-loaded and the operation set appended. Nothing is wasted, though it is slightly terse given the tool's 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?
For an algorithm tool with no output schema and no annotations, the description should say what a call returns (e.g., aggregate path sums, boolean connectivity results). It defines the operation vocabulary but leaves the response shape to inference, so it is only minimally 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 both parameters and the supported operation names with u/v/value fields are already documented in the schema. The description's operation list duplicates what the schema provides rather than adding format or constraint detail, 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?
Names a specific algorithm and its resource ('dynamic forest connectivity') plus the concrete operations it supports (link, cut, connected, path sum). An agent can distinguish it from generic graph tools, though it stops short of explicitly contrasting with close siblings like union_find or heavy_light_decomposition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites, and no named alternative. The description enumerates operations but never says when this tool is the right choice versus union_find or another connectivity/query tool in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actionable_todosList actionable Boardroom todosARead-onlyIdempotent
Returns the highest-priority unassigned open todos, ranked so an agent can pull the next best chip without relying on prose handoffs. This is the canonical pull lane of the Jobs board, the fleet's shared work queue (humans watch the same todos at /admin/jobs). When you take a chip, claim it with update_todo (assign yourself, status in_progress) so the board shows one owner per job, and close it with complete_todo or a 'Closes UnClick todo: ' line in the merged PR body. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| agent_id | Yes | ||
| include_description | No | Include compact job descriptions so runners can keep the source brief while routing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered; the description adds genuinely new context — the human-visible board at /admin/jobs, the one-owner-per-job invariant, and the two closure paths. Pagination/ordering ties (limit behavior) beyond 'highest-priority' are not disclosed.
Agents need to know what a tool does to the world 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 scope and ranking is front-loaded in the first clause, followed by workflow guidance. It is slightly padded by flavor text ('without relying on prose handoffs'), but nearly every sentence carries operational 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?
There is no output schema, so the description should help an agent anticipate what a 'chip' contains (id, lane, priority fields) and how ranking/limit interact; it does neither. The claim/close workflow and shared-queue semantics are covered well, leaving the return shape as the main 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 only 33%: include_description is documented in the schema, but limit and agent_id are not. The description merely repeats 'agent_id required' (already in the schema's required list) without explaining what the identity is used for, and never mentions what limit controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 precise scope: 'highest-priority unassigned open todos' that are 'ranked.' The phrasing 'canonical pull lane of the Jobs board' distinguishes it sharply from list_todos and other board siblings, so an agent can pick it without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the use case (pull the next best chip from the shared queue) and prescribes the surrounding workflow: claim via update_todo, close via complete_todo or a PR body line. It does not explicitly say when to prefer list_todos instead, so the exclusion 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.
list_asana_projectsBRead-onlyIdempotent
List projects in an Asana workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 100) | |
| api_key | No | ||
| archived | No | Include archived projects (default false) | |
| workspace_gid | Yes | Workspace GID |
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 that results are scoped to a workspace, but does not disclose pagination behavior, default archived filtering, or return shape—useful 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?
A single front-loaded sentence with zero waste. It is appropriately sized for a simple list tool, though extremely terse and leaves some useful detail unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations and a mostly documented schema, the description is adequate but minimal. It omits whether pagination is supported and how the archived flag affects results, which would help an agent call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, with limit and archived already documented in the schema. The description only implies workspace scoping, which maps to the required workspace_gid parameter; api_key remains undocumented. Baseline 3 is appropriate when the schema carries most 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 a clear verb (List) and resource (projects) and scopes it to an Asana workspace, so an agent knows exactly what it does. It does not, however, distinguish it from sibling listing/search tools like list_asana_tasks or search_asana_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives such as list_asana_workspaces or search_asana_tasks. Usage is only implied by the tool name and resource, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_asana_tasksCRead-onlyIdempotent
List tasks in an Asana project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No | ||
| completed | No | Filter to completed tasks only | |
| project_gid | Yes | Project GID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety and idempotency are covered elsewhere. The description adds no behavior beyond that: it does not mention pagination, whether completed tasks are included by default, what auth is needed, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words. However, its brevity comes at the cost of under-specification: there is no structure that tells the agent about defaults, paging, or alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 half the parameters undocumented, the description should carry more weight than one sentence. It leaves the agent guessing about default task status, result limits, authentication behavior, and how this differs from search_asana_tasks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 50%; completed and project_gid are documented in the schema, but limit and api_key have no description anywhere. The description adds no meaning about those parameters, their defaults, or how filtering works, so it does not compensate for the coverage 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 states a specific verb and resource ('List tasks') and scopes it to an Asana project. It is clear what the tool does, but it does not distinguish itself from the sibling search_asana_tasks, which appears to serve a similar listing/search 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?
There is no guidance on when to use this tool instead of search_asana_tasks, get_asana_task, or list_asana_projects. The agent must infer from the name alone that this is the bulk-listing variant, and no conditions, 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.
list_asana_workspacesARead-onlyIdempotent
List all Asana workspaces accessible by the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Asana Personal Access Token (or set ASANA_API_KEY) |
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 useful auth-scoping context ('accessible by the authenticated user') but does not mention pagination, rate limits, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero wasted words. It communicates the operation and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 one optional parameter, full schema coverage, and rich annotations, the description is nearly complete. It could mention that no arguments are required if ASANA_API_KEY is set, but the schema already covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter (api_key) is fully documented in the schema as an optional Personal Access Token with an environment-variable fallback. The description adds no parameter-specific meaning beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all Asana workspaces') plus the scope 'accessible by the authenticated user'. This clearly distinguishes it from sibling tools like list_asana_projects or list_asana_tasks without needing 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 implies this is a top-level discovery/list operation, but it does not explicitly state when to use it versus other Asana tools or mention prerequisites such as obtaining a workspace ID before calling list_asana_projects. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_brain_dumpsList Brain Dumps needing triageARead-onlyIdempotent
Returns tenant-scoped Brain Dumps ordered overdue first, with captured, triage_due, overdue, or resolved state. Use on Continuous Improvement and heartbeat cycles so unresolved dumps cannot disappear behind newer work. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds meaningful context beyond that: tenant scoping, overdue-first ordering, and the set of lifecycle states returned. No return format details, but with annotations and stated ordering this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the resource and ordering front-loaded and the usage context following. Slightly undercut by the ambiguous inline state list that overlaps confusingly with the status enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 partially compensates by describing ordering and the states returned, and annotations cover the safety profile. However, with three parameters at 0% schema coverage and a status enum that conflicts with the prose states, an agent lacks enough to call this correctly with filters.
Complex tools with many parameters or behaviors need more documentation. Simple 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 carries the load, yet it only says "agent_id required" and never explains limit (default 50, max 200) or the status enum. Worse, the states it lists (captured, triage_due, overdue, resolved) do not match the schema's status enum (proposed, voting, locked, parked, rejected), which could actively mislead an agent constructing a status filter.
Input schemas describe structure but not intent. Descriptions should explain 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 ("Returns tenant-scoped Brain Dumps") and specifies ordering (overdue first), which distinguishes it from siblings like brain_dump and triage_brain_dump. The list of lifecycle states is somewhat abstract but the overall purpose is 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?
"Use on Continuous Improvement and heartbeat cycles so unresolved dumps cannot disappear behind newer work" gives a concrete usage context and rationale. It does not name exclusion cases or explicitly point to triage_brain_dump as the alternative for acting on a dump, 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.
list_calendly_eventsBRead-onlyIdempotent
List scheduled events for the authenticated Calendly user.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | e.g. start_time:asc | |
| count | No | ||
| status | No | active or canceled | |
| api_key | No | ||
| user_uri | No | User URI (auto-resolved if omitted) | |
| max_start_time | No | ISO 8601 datetime | |
| min_start_time | No | ISO 8601 datetime |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds that the operation is scoped to the authenticated Calendly user, but it does not mention pagination behavior, default count, rate limits, or output shape; with annotations carrying the main behavioral burden, this is an adequate 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 description is a single front-loaded sentence with no repeated annotation content or filler. Its brevity contributes to under-specification elsewhere, but as a conciseness-and-structure measure it is efficient and well-formed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter list tool with no output schema, the description is minimally adequate: the schema supplies most filter definitions, but the description omits pagination/default count guidance, filtering expectations, and any indication of return shape. The agent can infer the basics from the schema, but the description does not fully carry its share of 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 coverage is 71%, with sort, status, user_uri, max_start_time, and min_start_time described, but count and api_key undescribed. The description adds no parameter meaning beyond the scope phrase and does not compensate for the missing count/api_key semantics or explain defaults, date-range behavior, or sort syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'List scheduled events,' scoped to the authenticated Calendly user. It is clear what the tool does, though it does not explicitly distinguish itself from siblings such as get_calendly_event or list_calendly_invitees.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no exclusions, and no mention of alternatives. The listing use case is only implied by the verb 'List,' leaving the agent to infer when this is preferable to get_calendly_event or other Calendly tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendly_event_typesBRead-onlyIdempotent
List event types for the authenticated Calendly user.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| active | No | Filter to active event types only | |
| api_key | No | ||
| user_uri | No | User URI (auto-resolved if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds useful auth context by saying results are scoped to the authenticated Calendly user, but it does not mention pagination via count or filtering behavior, leaving some behavioral detail uncovered.
Agents need to know what a tool does to the 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 with no filler, which is appropriately concise for a simple list tool. It could have used a little of its brevity budget to explain count or active filtering, but the existing sentence is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the safety profile and the schema documents some parameters, but there is no output schema and the description omits pagination, filtering, and return-shape details. For a simple read-only list tool this is adequate but leaves meaningful gaps 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 only 50%: active and user_uri are described, but count and api_key are undocumented. The description's phrase "authenticated Calendly user" helps explain that user_uri is auto-resolved, but it says nothing about count (pagination/limit) or api_key, so it does not compensate for the coverage 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?
States a specific verb and resource ("List event types") scoped to the authenticated Calendly user, so an agent can distinguish it from list_calendly_events (events, not event types). It does not explicitly name sibling tools or explain when event types differ from events, but the purpose itself 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?
Provides no guidance on when to use this tool versus alternatives such as get_calendly_user or list_calendly_events, and gives no prerequisites or exclusions. The agent must infer usage entirely from the tool name and one-sentence description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendly_inviteesCRead-onlyIdempotent
List invitees for a Calendly scheduled event.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| status | No | active or canceled | |
| api_key | No | ||
| event_uuid | Yes | Event UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive, and open-world behavior. The description adds almost nothing beyond restating the basic operation; it does not mention pagination, count behavior, filtering by status, authentication via api_key, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no wasted words and is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four parameters, partial schema coverage, and no output schema, the description is too sparse. It omits parameter behavior, filtering options, authentication context, and what the returned invitee data looks like.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%, so the description should compensate for undocumented parameters. It does not explain count, status filtering (active or canceled), or api_key usage, and the event_uuid meaning is already covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: listing invitees for a Calendly scheduled event. It distinguishes itself from sibling tools like get_calendly_event by focusing on invitees, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives such as get_calendly_event or list_calendly_events. Usage is only implied by the event UUID requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsList comments on a todo or ideaARead-onlyIdempotent
Returns comments on a specific Boardroom todo or idea, oldest first by default. agent_id required. Reading the same thread repeatedly? Pass 'since' (the created_at of the newest comment you already hold) and 'since_id' (its id) to receive only what landed after it, and 'order': 'newest' to read from the end. The answer then carries a 'cursor' block: newest_created_at and newest_id (feed them back next time) and door_page_full (true when the thread has reached the door's 200-row page cap, so comments past the cap are not visible here; continue on a new chip).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| order | No | 'oldest' is the door's own page order and the only order a forward cursor (since) uses, so polling never skips a row. 'newest' is a tail read: the most recent comments first, without since. | oldest |
| since | No | ISO 8601 timestamp, inclusive at the door's microsecond precision. Comments created at or after this instant are returned; pass since_id to drop the one you already hold at that instant. Use the created_at of the newest comment you have read. | |
| agent_id | Yes | ||
| since_id | No | The id of the comment you already hold at the 'since' instant. Dropped from the answer so the boundary never repeats. Needs 'since'. | |
| target_id | Yes | ||
| target_kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the readOnly/idempotent annotations: default ordering is oldest-first, there is a 200-row page cap, and door_page_full flags truncation with a 'continue on a new chip' escape. It also describes the cursor block returned (newest_created_at, newest_id) and how to feed it back, which annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
What it does is front-loaded and the incremental-polling guidance is packed efficiently. Some internal jargon ('door's page cap', 'continue on a new chip') costs clarity and would be opaque to an agent without prior 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?
With no output schema, the description usefully explains the returned cursor block and truncation flag. Remaining gaps are minor: the limit parameter's range/default is undocumented and target_id/target_kind semantics are left 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?
Schema coverage is only 43%, and the description compensates well: it defines since as the created_at of the newest comment held, pairs it with since_id to avoid boundary repeats, and explains the interaction between order and since. The undocumented 'limit' parameter is only indirectly covered via the 200-row cap and agent_id gets no explanation beyond '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?
States a specific verb and resource ('Returns comments on a specific Boardroom todo or idea') and scopes it to the two valid target kinds, so an agent knows immediately what it retrieves. Siblings like comment_on (writing) and read_messages are clearly distinct from this read-only thread listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 conditional guidance for the two retrieval modes: pass since/since_id when re-reading a thread, and order:'newest' to read from the end. It does not name alternative tools or state when not to use this one, so it falls short of a full routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_expressroom_draftsList DraftRoom Manual draftsARead-onlyIdempotent
Lists Manual DraftRoom drafts. These are draft-only records until promoted into official Jobs. Use official_todo_id or official_job_mirror to find drafts linked to a Jobs Board card, PR number, PR URL, or mirrored job name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| agent_id | Yes | Stable identifier for the calling agent. | |
| express_status | No | Optional status filter. | |
| official_todo_id | No | Optional exact Jobs Board todo UUID mirror. | |
| official_job_mirror | No | Optional fuzzy mirror search text, such as job name, PR number, PR URL, or todo id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive behavior, and closed-world scope. The description adds useful lifecycle context: these are draft-only records until promoted into official Jobs, which helps the agent understand the data state.
Agents need to know what a tool does to the 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 sentences with the core purpose front-loaded, followed by lifecycle context and filter guidance. 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?
Covers purpose, draft lifecycle, and the key mirror filters. It omits mention of the express_status filter and pagination/limit behavior, but annotations cover the safety profile and the schema documents those parameters reasonably well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3. The description adds linking semantics for official_todo_id and official_job_mirror, but does not mention express_status, limit, or agent_id, leaving those to 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 and resource ("Lists Manual DraftRoom drafts") and distinguishes these records from official Jobs by noting they are draft-only until promoted. An agent can tell this is for draft records rather than official job/todo listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that official_todo_id and official_job_mirror can be used to find drafts linked to Jobs Board cards, PRs, or job names, which clarifies filter usage. However, it does not explicitly name when to choose this tool over siblings like list_todos, list_actionable_todos, create_expressroom_draft, or promote_expressroom_draft.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ideasList Boardroom ideasARead-onlyIdempotent
Returns ideas for this tenant sorted by score (upvotes minus downvotes) desc, optionally filtered by status. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: tenant scoping and the scoring formula (upvotes minus downvotes) behind the sort order, which the agent cannot know otherwise. It omits pagination/return-shape 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?
Two sentences, zero filler, with the resource, sort order, and required parameter front-loaded. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and 0% parameter description coverage put the burden on the description. It covers the required param and status filter plus sort semantics, but omits the limit parameter and any indication of result shape or pagination, leaving clear gaps for a list 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 0%, so the description must compensate. It covers agent_id (required) and the status filter, but the limit parameter (default 50, max 200) is never mentioned, leaving a third of the parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain 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 (Returns) and resource (ideas), scoped to 'this tenant', with the ordering rule spelled out as score desc (upvotes minus downvotes). An agent can distinguish it from create_idea/update_idea/vote_on_idea without opening the schema, though it does not explicitly name a 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?
'Optionally filtered by status' implies a filtering use case and the sorting behavior hints at use for reviewing top ideas, but there is no explicit when-to-use/when-not guidance and no named alternative. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lanesList Operations board lanesARead-onlyIdempotent
Returns the Operations board: one lane per function in UnClick, with its traffic light, priority, owners, and whether it is waiting on the operator. This is the standing brief - when nothing is on fire, pull a lane from here the way you pull a chip from the Jobs board. Ranked worst-first (human-blocked, then red, amber, unknown, green). Pass needs_attention to see only what is not settled, group to scope it, include_induction once per session for the standing rules. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Scope to one group, e.g. autopilot, xpass, xgate, ci. | |
| limit | No | ||
| agent_id | Yes | ||
| needs_attention | No | Only lanes that are human-blocked, red, amber, stale-claimed, or never reported on. | |
| include_induction | No | Include the standing rules and the recognised human-action reasons. Worth one call per session. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuine behavior: the worst-first ranking order (human-blocked, red, amber, unknown, green), the returned fields, and the 'standing brief' framing, which is valuable 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?
Front-loads the core purpose ('Returns the Operations board...') before the behavioral detail and parameter guidance. The 'pull a chip from the Jobs board' analogy is slightly colorful but clarifying; overall tight with little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description enumerates returned fields and ranking, and explains the key filter flags, making it complete enough to invoke correctly. Minor gaps remain around pagination (limit default/max) which the schema carries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 60% schema coverage the description compensates well: it explains what needs_attention filters to, how group scopes, and that include_induction should be used once per session for standing rules, plus flags agent_id as required. It adds meaning beyond the schema descriptions, though 'limit' and the exact group values remain schema-only.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Returns the Operations board: one lane per function in UnClick') and enumerates the returned fields (traffic light, priority, owners, waiting-on-operator). The agent can distinguish this from the Jobs board and lane-mutation siblings like claim_lane/update_lane.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit usage context ('when nothing is on fire, pull a lane from here') and contrasts with the Jobs board, plus prescribes when to pass each optional flag (needs_attention for unsettled, include_induction once per session). It doesn't name a specific sibling tool as the alternative, keeping it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monday_boardsBRead-onlyIdempotent
List boards in a Monday.com account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max boards to return (default 25) | |
| api_key | No | Monday.com API token (or set MONDAY_API_KEY) |
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. The description adds only account-level scoping; it does not describe pagination behavior, auth requirements beyond the schema, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler. For a simple listing tool, the brevity is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and read-only, annotations cover safety, and the schema covers both parameters. However, the description leaves gaps around pagination behavior and what board data is returned, which matters more because 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 description coverage is 100%, with limit documented as default 25 and api_key documented with MONDAY_API_KEY fallback. The description adds no parameter 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 uses a specific verb and resource: 'List boards' in a Monday.com account. It is distinguishable from get_monday_board, but it does not explicitly name that sibling or clarify the board-level vs account-level distinction beyond the word '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?
There is no when-to-use or when-not-to-use guidance, no mention of alternatives such as get_monday_board or list_monday_items, and no prerequisites. The agent must infer usage from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monday_itemsCRead-onlyIdempotent
List items (rows) in a Monday.com board.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items (default 50) | |
| api_key | No | ||
| board_id | Yes | Board ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no pagination/limit behavior, no statement that api_key is required for authentication, no note about result volume or truncation at the default 50 items.
Agents need to know what a tool does to the 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 short sentence with no filler, and the key resource is front-loaded. However, the brevity here is under-specification rather than economy—there is room to add routing and pagination guidance without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool with an auth parameter and three sibling Monday.com tools, this leaves critical questions unanswered: how to page beyond 50 items, whether auth is inherited or supplied per call, and when to switch to `search_monday_items`. With no output schema, an agent has no fallback source of information about the shape of the 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?
Schema description coverage is only 67%, with `api_key` undocumented entirely in the schema, and the description does not compensate for that gap at all. It also says nothing about the `limit` parameter or the ordering/default semantics of results, so parameter meaning comes almost entirely from the schema's own field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("List items (rows) in a Monday.com board"), so an agent knows exactly what domain object is being fetched. It does not distinguish this from the close sibling `search_monday_items`, which an agent could plausibly choose instead, leaving that disambiguation to guesswork.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to prefer this enumeration over `search_monday_items`, nor any statement of prerequisites or scope (whole board vs. filtered). The only usage cue is implied by the words "in a ... board" and the required board_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pinterest_boardsBRead-onlyIdempotent
List Pinterest boards for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| privacy | No | PUBLIC, PROTECTED, or SECRET | |
| bookmark | No | Pagination cursor | |
| page_size | No | ||
| access_token | No | Pinterest access token (or set PINTEREST_ACCESS_TOKEN) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, idempotent, non-destructive operation. The description adds the useful auth context that results are scoped to the authenticated user, but it does not explain pagination behavior or what is 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 a single front-loaded sentence with no wasted wording. It is appropriately concise for this simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations, the description is minimally adequate. However, with no output schema, it could provide more context about returned board fields, pagination, or privacy filtering to help an agent invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple 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 75%, so most parameters are documented in the schema. The description only adds the authenticated-user context and does not clarify the privacy filter, bookmark cursor, or undocumented page_size parameter, so it does not add much 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: listing Pinterest boards. The scope is also clear: boards belonging to the authenticated user. It does not explicitly distinguish itself from nearby siblings such as get_pinterest_board or list_pinterest_pins, 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 basic use case but gives no explicit guidance on when to choose this tool over alternatives. It does not mention get_pinterest_board for a single board or list_pinterest_pins for pins, nor does it explain pagination or filtering selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pinterest_pinsBRead-onlyIdempotent
List pins on a Pinterest board.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| bookmark | No | ||
| page_size | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds the board scoping but says nothing about pagination behavior despite bookmark and page_size parameters signaling a paginated endpoint, nor about return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean sentence with no waste, and the resource+scope is front-loaded. It is efficient but borders on under-specification for a four-parameter 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 paginated list endpoint with four parameters, only partial schema coverage, and no output schema, the description omits pagination semantics, auth expectations (access_token), and return shape. Given annotations cover safety, the remaining behavioral gaps still leave the agent short of what it needs to call this 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 only 25% — board_id is documented but bookmark, page_size, and access_token are undocumented in both schema and description. The single description sentence does not compensate for this gap, explaining none of the pagination or auth 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 states a specific verb (List) and resource (pins) scoped to a Pinterest board, so the core action is unmistakable. It does not differentiate itself from the sibling search_pinterest_pins, leaving the agent to infer the difference between listing a board's pins versus searching pins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'on a Pinterest board' — use this to enumerate a board's pins — but there is no explicit when/when-not guidance or reference to the obvious alternative search_pinterest_pins. The agent must infer the selection criteria itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_room_watchesList room card watchesBRead-onlyIdempotent
Lists the Jobs cards currently watched by a Chat room.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes | Chat thread UUID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only that results reflect cards 'currently' watched by a Chat room, and does not disclose auth requirements, pagination, ordering, or empty-room 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 a single front-loaded sentence with no filler. That is appropriately sized for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 a fully documented single parameter and explicit safety annotations, the description is largely sufficient. A minor gap is that it does not indicate return ordering, pagination, or what a watch record contains, though there is no output schema to rely on.
Complex tools with many parameters or behaviors need more documentation. Simple 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 is documented as a 'Chat thread UUID.' The description's phrase 'Chat room' helps map thread_id to the room scope, but it adds no format or semantic details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and resource ('Jobs cards currently watched by a Chat room'), matching the tool name and title. It does not explicitly distinguish this from sibling watch-related tools such as watch_room_todo, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use, when-not-to-use, or alternative-tool guidance; an agent must infer usage from the verb and scope. It also does not mention conditions such as needing a valid thread_id or when to choose this over other room-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_runsA
Call this tool when the user wants a recent history of Crews runs. Returns a ConversationalCard with a run count and the newest few run ids.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional: max rows to return (default 50, capped at 100) | |
| crew_id | No | Optional: filter to one crew |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries behavioral disclosure. It mentions the return format (ConversationalCard) and included data (run count, newest run IDs). However, it omits details like sorting order (recency is implied), default limit behavior, and filtering options beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with a usage cue, and contains no unnecessary information. Every sentence serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema, the description adequately covers the return type and content. Minor gap: it does not explicitly mention filtering by crew_id or the limit parameter, though schema provides that. Nested objects and output schema not present, so completeness is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple 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 already well-described in the input schema (crew_id and limit with defaults and caps). The description adds no additional parameter semantics, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource ('Crews runs') and action ('list recent history'). While it does not explicitly distinguish from siblings like 'get_run', the naming and context imply 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 tells when to use ('when the user wants a recent history of Crews runs') but provides no guidance on when not to use or mention alternatives (e.g., 'get_run' for a specific run). Usage context is implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tiktok_videosBRead-onlyIdempotent
List videos for the authenticated TikTok user.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor | |
| max_count | No | Max videos to return (default 20, max 20) | |
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful auth-scope context by saying the videos belong to the authenticated user, but it does not explain pagination behavior, rate limits, or authentication requirements beyond that phrase.
Agents need to know what a tool does to the world before calling 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 wasted words. It immediately states the core action and target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations and partial schema descriptions, the description is minimally adequate. However, it leaves out pagination context, authentication requirements, and any indication of what the returned video list contains, which matters because 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?
The schema describes 2 of 3 parameters, including cursor and max_count, so parameter documentation is mostly present. The description's phrase 'authenticated TikTok user' indirectly signals the access_token parameter, but it does not add syntax or behavior details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: list videos for the authenticated TikTok user. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as get_tiktok_video or get_tiktok_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 for listing the authenticated user's own videos, but it gives no explicit when-to-use guidance, no exclusions, and no alternative tools to consider. An agent must infer the usage context from the phrase 'authenticated TikTok user.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_todosList Boardroom todosBRead-onlyIdempotent
Returns todos for this tenant, optionally filtered by status. Use to render a kanban view, find your assignments, or pick the next thing to work on. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | Optional filter | |
| agent_id | Yes | ||
| assigned_to_agent_id | No | Optional filter to a specific assignee |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds the tenant-scoping constraint, which is useful, but says nothing about result ordering, pagination, or the default limit cap of 200.
Agents need to know what a tool does to the 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 scope stated first and no filler. 'agent_id required' is slightly wasteful since the schema already marks it required.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with no output schema and no pagination documentation, the agent is left not knowing what fields a todo returns, whether results are ordered, or how `limit` interacts with the default. Annotations cover safety, but the return-shape gap keeps this at minimum-viable.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%: `limit` and `agent_id` have no schema description. The description repeats 'agent_id required' (already in the schema's required array) and 'optionally filtered by status' (already in the schema), while `limit` — with its default 50 and max 200 — is never explained. It does not compensate for the coverage 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?
Specific verb and resource (returns todos) plus scope ('for this tenant') and a stated filter. It does not differentiate itself from the closely related sibling list_actionable_todos or list_lanes, so an agent must guess which list to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three concrete usage contexts are given (kanban rendering, finding your assignments, picking next work), which is a clear 'when to use'. However, no exclusions or named alternatives appear, so it does not resolve the list_todos vs list_actionable_todos choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_memoryLoad memoryARead-onlyIdempotent
Loads the user's identity, preferences, facts, and recent session history from persistent cross-session storage. Default output is compact for strict MCP clients; call search_memory for narrow questions or pass full_content=true only when the full raw payload is required. Use IMMEDIATELY at the start of every session -- before responding to the user's first message, before calling any other tool. Trigger even when the opening message looks trivial: keywords like 'remember', 'recall', 'context', 'profile', 'facts about me', 'who am I', 'last time', 'preferences', 'pick up where we left off' all signal stored context exists. Also trigger after any context reset or tool reconnect, or any time you are unsure whether context was loaded this session. Do NOT skip because the first message is simple -- personal facts change how almost every answer should be framed. Do NOT trigger for pure factual lookups (capitals, math, definitions) that require no personal context.
| Name | Required | Description | Default |
|---|---|---|---|
| lite | No | When true, skips session summary bodies and returns compact identity, facts, and counts (default true) | |
| full_content | No | When true, returns the full raw memory payload. Use sparingly; strict clients may reject large tool results. | |
| num_sessions | No | Number of recent session summaries to load when lite=false (1-20, default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already confirm this is a safe, idempotent read, and the description adds meaningful behavior beyond that: default output is compact for strict MCP clients, full_content may be rejected by strict clients, and lite skips session summary bodies. 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?
Front-loads the core action and alternative before the extensive trigger list. The long keyword enumeration and repeated 'do not skip' warnings are useful for a critical session-start tool but make it wordier 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?
No output schema exists, but the description explains what is returned (identity, preferences, facts, session history) and how compact vs full output differs. For a zero-required-parameter read tool with rich annotations, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds useful context by explaining that full_content should be used sparingly and that the default output is compact. It does not add syntax beyond the schema, but it reinforces the practical meaning of the key flags.
Input schemas describe structure but not intent. Descriptions should explain 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 (loads) and concrete resources (identity, preferences, facts, recent session history) from persistent cross-session storage. Explicitly distinguishes itself from search_memory for narrow queries and clarifies the default compact output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides unusually explicit when-to-use guidance: immediately at session start, after context resets, when uncertain, and even when the opening message looks trivial. Also states when not to use it (pure factual lookups) and names the alternative search_memory for narrow questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_baseB
Compute logarithm with any base. Also returns ln, log10, and log2.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Logarithm base (default 10, must be positive and not 1). | |
| value | Yes | Positive number to compute log of. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose a non-obvious output trait: it returns ln, log10, and log2 in addition to the requested base result. That is genuine added value. It does not, however, say what happens on invalid input (base=1, negative value) or how results are shaped, so a middle score is warranted.
Agents need to know what a tool does to the 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, no filler, with the core operation front-loaded and the bonus-output fact second. 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 pure, side-effect-free two-parameter math function with 100% schema coverage and no output schema, the description covers the operation and even flags the extra returned logarithms. Only minor gaps remain around error behavior for invalid bases/values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'base' (default 10, positive, not 1) and 'value' (positive) are fully documented in the schema. The description adds only the phrase 'with any base,' which does not go beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Compute logarithm with any base.' That is unambiguous and no sibling tool performs logarithms, so no differentiation is strictly needed. It stops short of 5 only because it doesn't relate itself to any adjacent math utility (e.g. nth_root, complex_calc).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to reach for this tool, what inputs it expects at the call level, or what alternatives exist. The only guidance is implicit in the name and the schema's default base. For a simple math utility that may be tolerable, but the description itself provides none.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
longest_common_prefixB
Find the longest common prefix among an array of strings.
| Name | Required | Description | Default |
|---|---|---|---|
| strings | Yes | Array of strings (max 10,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing beyond the operation name. It does not say what is returned when there is no common prefix (empty string), whether matching is case-sensitive, or how an empty/single-element array is handled — all real edge cases for this 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?
A single front-loaded sentence with zero filler; every word earns its place for a tool of this simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure function whose input is fully documented in the schema, the description is nearly sufficient. The only meaningful gap is the return value semantics (no output schema exists, and the description never states that a string is returned, empty when there is no shared prefix).
Complex tools with many parameters or behaviors need more documentation. Simple 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 'strings' is already documented in the schema, including the 10,000-element cap. The description adds no syntax, ordering, or edge-case 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 states a specific verb ('Find') and resource ('longest common prefix among an array of strings'), so an agent knows exactly what the tool computes. It does not, however, distinguish itself from adjacent string algorithms in the sibling list such as string_lcs or longest_increasing_subsequence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus alternatives, nor any prerequisites or exclusions. For a pure algorithm tool the need is modest, but the description offers no routing guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
longest_increasing_subsequenceA
Find the longest increasing subsequence in O(n log n) time using patience sorting.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of numbers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden. It usefully discloses the O(n log n) complexity and patience-sorting approach, but it does not clarify what is returned (length vs. subsequence) or edge-case 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 a single, front-loaded sentence with zero waste. It states the operation and key algorithmic detail immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 algorithm tool with no annotations and no output schema, the input schema is complete but the description omits the return value and any edge-case semantics. It is minimally usable but leaves a meaningful gap about output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 single 'values' parameter is already documented. The description adds no syntax, constraints, or 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 verb and resource ('Find the longest increasing subsequence') and names the algorithm and complexity. It is clearly distinguishable from sibling algorithm tools by the precise computational problem it solves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 say when to use this tool versus alternatives, nor does it state exclusions or prerequisites. Usage is only implicitly inferable from the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
long_weekendsB
Get long weekends for a country and year from Nager.Date.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year (default: current year). | |
| country_code | Yes | ISO 3166-1 alpha-2 country code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It signals a read-like operation through 'Get' and names the upstream source, but it does not disclose return format, pagination, rate limits, authentication needs, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the operation and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema descriptions, the definition is minimally viable. However, because there is no output schema and no annotations, it leaves the agent without information about the response shape or behavioral constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented. The description mentions country and year but adds no syntax, format, default, or constraint details 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 gives a clear verb and resource: 'Get long weekends for a country and year.' It is specific enough to distinguish the operation from generic holiday lookups, but it does not explicitly name or differentiate itself from sibling tools such as holidays_long_weekends or holidays_by_country.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no when-to-use guidance, prerequisites, or alternative-tool routing. The only implied usage is that the caller should supply a country and year, which is already evident from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lorem_generateC
Generate lorem ipsum placeholder text.
| Name | Required | Description | Default |
|---|---|---|---|
| sentences | No | Sentences per paragraph (1-15, default 5). | |
| paragraphs | No | Number of paragraphs (1-20, default 3). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only states what is generated but doesn't mention whether the output is random, whether it's static, or any other behavioral traits. No rate limits, auth, or output format 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, efficient sentence with no wasted words. It is front-loaded and clear, though extremely 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?
For a tool with no annotations, no output schema, and no behavioral disclosure, the description is insufficient. It doesn't tell the agent what to expect in return, whether the text is random, or any other operational context. Given the simplicity of the tool (generating placeholder text), it may be borderline adequate, but it lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents the two parameters with ranges and defaults. The description adds no additional parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Generate' and resource 'lorem ipsum placeholder text', clearly distinguishing it from siblings like text_transform or random_lorem_ipsum. It is clear and unambiguous, though with no sibling differentiation beyond the 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?
No indication of when to use this tool versus alternatives (e.g., random_lorem_ipsum or other text generation tools). The description gives no context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lorem_name_generateB
Generate random placeholder names with optional email addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of names (1-50, default 1). | |
| No | Include email addresses (default true). | ||
| domain | No | Email domain (default example.com). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'random' (non-deterministic) but omits permissions, side effects, output format, rate limits, or any other behavioral context. For a generator tool with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the core action and includes the optional email feature without any filler. 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 random-name generator with a fully described schema (100% coverage) and no output schema, the description gives enough to call the tool correctly. It could be improved by clarifying return shape or differentiating from similar tools, but nothing critical is missing 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 count, email, and domain fully. The description only adds 'optional email addresses', which maps to the email parameter but adds no syntax or default details 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?
States a specific verb 'Generate' and resource 'random placeholder names', and notes optional email addresses. It is clear but does not differentiate from siblings like lorem_generate or faker_persons, 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?
Provides no when-to-use or when-not-to-use guidance, no mention of alternatives such as lorem_generate or random_lorem_ipsum. The description only restates the action, leaving context entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lotr_booksB
List Lord of the Rings books.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it says nothing about whether the list is static, paginated, or ranked, nor what fields each entry contains. The word 'List' does signal a non-mutating read of a fixed dataset, which is the one behavioral trait conveyed, keeping this from being a 2.
Agents need to know what a tool does to the 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 short sentence with zero filler and the resource front-loaded; nothing needs trimming. It is efficient, though the extreme brevity means there is little structure to praise beyond compactness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no parameters, and no annotations, which places the whole burden on the description, yet it never indicates the shape of a returned book entry or the size/ordering of the collection. For a trivial static-list tool that is a modest but real gap rather than a fatal one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document. Per the baseline for parameterless tools, a 4 is appropriate, with the only shortfall being that the description does not hint at any server-side filtering or ordering behavior (there is none to expose).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (List) and a clearly bounded resource (Lord of the Rings books), which an agent can immediately distinguish from siblings like lotr_characters and lotr_quotes. It stops short of explicitly naming those siblings as complementary tools, so it is clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when this tool should be used versus lotr_characters or lotr_quotes, nor any prerequisite or exclusion guidance. The only implied usage is the self-evident 'when you want LOTR books', which is not real routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lotr_charactersCRead-onlyIdempotent
Search Lord of the Rings characters by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Character name to search for | |
| limit | No | Results per page (default 10) |
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 no further behavior: it does not say whether matching is exact/partial, how pagination interacts with limit, or what an empty result looks like, so it contributes almost nothing 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?
A single front-loaded sentence with zero filler. It is efficient, though bordering on under-specification for a tool that could benefit from one more clause about 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?
The tool is simple (2 params, read-only, no output schema), but with no output schema the description should say something about what is returned (list of characters, fields, pagination behavior). It leaves the return contract entirely implicit, so it is adequate but with a clear 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 both 'name' and 'limit' are already documented in the schema. The description adds no extra semantics such as case sensitivity or match type, so the 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 ('Search Lord of the Rings characters by name'), which cleanly separates it from the lotr_books and lotr_quotes siblings. It lacks any hint of scope (all characters vs. filtered subset) but the core purpose is 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?
There is no when-to-use guidance, no mention of alternatives, and no exclusions. The 'by name' phrasing implies the query mode but gives no indication of when this tool is the right choice over e.g. listing characters or other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lotr_quotesCRead-onlyIdempotent
Get Lord of the Rings movie quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of quotes (default 10) |
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 fully covered. The description adds nothing beyond them — it doesn't say whether quotes are randomly selected (which would conflict with idempotentHint), what fields a quote carries, or whether the limit is capped.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though the brevity comes at the cost of any useful detail rather than being deliberately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, low-complexity tool with one optional parameter, full schema coverage and rich annotations, and no output schema. That makes a minimal description close to adequate, but the agent still cannot tell what a quote object contains or whether results are stable across calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter, and schema description coverage is 100% ("Number of quotes (default 10)"). The description adds no further meaning, so the schema does all the work; 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 Lord of the Rings movie quotes"), which is unambiguous about what is returned. Sibling tools (lotr_books, lotr_characters) cover different resources, so confusion risk is low, but the description never acknowledges them or the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus lotr_books or lotr_characters, and no mention of whether the tool returns a random sample or a fixed list. The agent must infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lott_jackpotsB
Get current Australian lottery jackpots from The Lott.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states the operation without disclosing behavioral traits such as rate limits, data freshness, or whether it is a safe read operation. This is insufficient for a tool with zero 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?
One sentence with no fluff, efficiently conveys purpose. However, it is slightly under-specified and could include more value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool, the description covers the basic purpose. But it lacks details about what 'current' means, whether it returns multiple jackpots, and the output format. Given the absence of an output schema, more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline score 4 applies. Description does not need to add parameter info, but could mention that no input 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?
Clearly states it gets current Australian lottery jackpots from The Lott, specifying verb, resource, and source. However, it does not differentiate from sibling tool 'lott_results', which may overlap in 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?
No guidance on when to use this tool versus alternatives like 'lott_results', nor any prerequisites or exclusions. The description is too minimal to inform decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lott_resultsC
Get Australian lottery results from The Lott.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | e.g. TattsLotto, Powerball | |
| draw_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that the tool gets results, implying a read operation, but lacks details on authentication, data freshness, rate limits, or error handling. This is insufficient for an agent to anticipate 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 a single concise sentence that quickly conveys the core function. It avoids unnecessary words. However, it is arguably too terse, sacrificing informative detail for brevity. A slightly longer description could maintain conciseness while adding valuable 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 the absence of an output schema, the description should explain what the results contain (e.g., winning numbers, prize breakdown, draw date). It fails to do so. The tool's functionality is only partially described, leaving significant gaps about the return value and 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?
The input schema has 50% description coverage (game parameter described, draw_number not described). The tool description does not add any parameter information beyond the schema. It fails to explain what happens when parameters are omitted, valid values for draw_number, or how results are filtered. The description does not compensate for the 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 verb 'Get' and resource 'Australian lottery results' from 'The Lott'. It conveys the tool's purpose effectively, though it does not explicitly differentiate from the sibling tool 'lott_jackpots', which likely deals with jackpot amounts. However, the term 'results' versus 'jackpots' provides implicit 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 provides no guidance on when to use this tool versus alternatives. No mention of prerequisites, use cases, or when not to use it. The only information is the basic purpose, leaving the agent without decision-making context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lowest_common_ancestorA
Find lowest common ancestors and distances in a tree using binary lifting.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Root vertex (default 0) | |
| edges | Yes | Tree edges as [u, v] pairs | |
| queries | Yes | LCA queries as [u, v] pairs | |
| vertex_count | Yes | Number of vertices (max 50,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the algorithm ('binary lifting') and that distances are returned, which is useful context, but omits output format, time complexity, and any constraints 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?
A single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and method.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 adequately states the purpose and algorithm, and the input schema is fully documented. However, with no output schema, it should at least hint at the return format (e.g., per-query LCA and distance), which it does only implicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 four parameters. The description adds no further parameter detail, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find'), resource ('lowest common ancestors and distances'), and context ('in a tree using binary lifting'). It is unambiguous and clearly distinguishable from the many sibling tools, none of which perform LCA.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no prerequisites, and no alternatives are mentioned. The description only states what the tool does, leaving the agent to infer when it is appropriate versus other tree or graph algorithms like heavy_light_decomposition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lru_simulateB
Simulate an LRU cache over a sequence of key accesses and report hit/miss rates.
| Name | Required | Description | Default |
|---|---|---|---|
| accesses | Yes | Sequence of key accesses | |
| capacity | No | Cache capacity (default 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral burden, and it partially does by disclosing that the tool reports hit/miss rates as output. However it does not state that this is a side-effect-free pure computation, nor anything about output format beyond the metric names.
Agents need to know what a tool does to the 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 naming the action, input, and output with zero wasted words. Well structured for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter pure simulation with no output schema, the description covers what is simulated and what is returned (hit/miss rates). Minor gap: no detail on result shape or edge cases, 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 coverage is 100%, so both parameters (accesses, capacity with default 4) are already documented in the schema. The description's mention of the key-access sequence adds nothing beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (simulate), resource (LRU cache), and scope (over a sequence of key accesses with hit/miss rate reporting). It is distinguishable from siblings like rb_tree_sim and skip_list_sim by naming the exact structure, though it does not explicitly contrast itself with 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?
No guidance on when to use this versus the many other algorithm-simulator siblings (rb_tree_sim, treap_sim, bloom_filter, etc.), nor any prerequisites or constraints noted. The agent must infer appropriate usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ls_get_orderBRead-onlyIdempotent
Get a specific Lemon Squeezy order by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| order_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds no behavioral context beyond the bare read operation, such as error behavior, auth requirements, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. The core action and identifier are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-by-ID tool with rich annotations, the description covers the essential intent. However, with no output schema and no parameter descriptions, it leaves gaps around the optional api_key and what the returned order contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only indirectly clarifies order_id through 'by ID' and says nothing about the api_key parameter, leaving half of the parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 specific Lemon Squeezy order') and scopes it with 'by ID'. It implicitly distinguishes itself from ls_list_orders, 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?
Usage is implied by 'by ID': the tool is for retrieving one known order rather than listing. The description does not explicitly state when to use it versus ls_list_orders or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ls_list_customersC
List customers for a Lemon Squeezy store.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| No | |||
| api_key | No | ||
| per_page | No | ||
| store_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'list customers' without mentioning pagination, authentication needs (api_key), rate limits, or the scope of results. The description adds minimal value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it sacrifices necessary details for brevity, making it less useful despite its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity (5 parameters, no output schema), the description is severely incomplete. It lacks information on pagination, filtering, output format, and required parameters, failing to equip the agent 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 0%, yet the description does not mention any parameters. It fails to explain the roles of api_key, store_id, email, page, and per_page, leaving the agent without guidance on how to use 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 clearly states the action (List) and resource (customers for a Lemon Squeezy store), making the purpose evident. It is distinct from sibling tools like ls_list_stores and ls_list_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. There is no mention of prerequisites, filtering, or context for selecting this tool over similar list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ls_list_ordersC
List orders in a Lemon Squeezy store.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | No | ||
| per_page | No | ||
| store_id | No | ||
| user_email | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It merely states 'List orders' without disclosing whether it is read-only, requires authentication (implied by api_key but not stated), supports pagination, or has rate limits. The agent gains minimal behavioral insight beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, with no wasted words. However, it lacks structure (e.g., bullet points or sections) that could help parse information quickly. For a tool with multiple parameters, slightly more structure would improve clarity without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is severely incomplete. It does not address pagination, filtering by user_email, authentication via api_key, or the response format. The agent has insufficient information to use the tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, leaving description to clarify parameters, but it does not mention any. Parameter names like api_key, store_id, user_email, page, per_page are self-explanatory to some extent, but the description adds no value in explaining their purpose, defaults, or constraints. This is a critical 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 clearly states the verb 'list' and the resource 'orders' within the context of 'a Lemon Squeezy store'. This is distinct from sibling tools like ls_list_customers or ls_list_products, and it differentiates from ls_get_order (which retrieves a single order). The purpose is 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?
No guidance is provided on when to use this tool versus alternatives, such as ls_get_order for a specific order or other list tools. There is no mention of prerequisites, filtering options, or pagination usage. The description lacks any contextual hints for effective selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ls_list_productsC
List products in a Lemon Squeezy store.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | No | ||
| per_page | No | ||
| store_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as pagination, authentication requirements, rate limits, or what scope of store data is returned. The description is too vague to inform an agent about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 6 words), but it sacrifices essential information. It is minimally adequate but lacks structure and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 are 4 parameters, no output schema, and no annotations, the description is insufficient. It does not mention how to authenticate (api_key) or filter by store, nor does it indicate required or optional parameters.
Complex tools with many parameters or behaviors need more documentation. 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 4 parameters (api_key, store_id, page, per_page) with 0% schema description coverage. The description does not explain any parameter meaning, format, or required values, forcing an agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List', the resource 'products', and the context 'in a Lemon Squeezy store'. It distinguishes itself from sibling tools like 'ls_list_customers' and 'ls_list_orders' by specifying 'products'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. There is no mention of prerequisites, best practices, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ls_list_storesC
List all Lemon Squeezy stores on your account.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | No | Lemon Squeezy API key | |
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description should disclose behaviors. It fails to mention pagination, authentication requirements, rate limits, or the return format. The brief description leaves the agent uninformed about query 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 a single 8-word sentence, extremely concise and front-loaded. However, it sacrifices necessary details for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and low schema coverage, the description is insufficient. It does not explain what a 'store' is, the response structure, or handle edge cases. The tool is simple but the description is too sparse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the api_key parameter is described in the schema (33% coverage). The description adds no meaning to the parameters, especially page and per_page which are left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (list), resource (stores), and scope (on your account), distinguishing it from other ls_list_* tools like ls_list_customers or ls_list_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ls_list_subscriptionsC
List subscriptions for a Lemon Squeezy store.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| status | No | Filter by status: active, cancelled, expired, past_due, unpaid, trial, paused | |
| api_key | No | ||
| order_id | No | ||
| per_page | No | ||
| store_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as read-only nature, authentication requirements, pagination behavior, or rate limits. It is too brief to inform safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), which is appropriate for structure, but it sacrifices necessary detail. It could include more context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters and no output schema, the description is incomplete. It does not explain pagination, optional filters, or the expected response format, leaving significant gaps for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 17% of parameters have schema descriptions (status). The tool description adds no explanation for api_key, store_id, order_id, page, or per_page, leaving the agent without semantic understanding. This does not compensate for the low 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?
Description clearly states it lists subscriptions for a Lemon Squeezy store, with a specific verb and resource. It distinguishes from sibling tools like ls_list_customers and ls_list_orders, which focus on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Prerequisites, filtering context, or exclusion criteria are not mentioned. The description provides no usage hints beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lucas_theoremB
Compute binomial coefficient C(n,k) mod prime using Lucas' theorem.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | Non-negative integer k (k <= n) | |
| n | Yes | Non-negative integer n | |
| p | Yes | Prime modulus |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the algorithmic basis (Lucas' theorem), which implies the prime-modulus constraint, but it says nothing about determinism, error behavior for non-prime p or k>n, or the returned form.
Agents need to know what a tool does to the 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 tight sentence with the resource and method front-loaded and zero 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 and no annotations, so the description is the only place to explain what is returned (an integer mod p) and edge-case handling, and it omits both. It is minimally adequate for a simple pure-computation tool but leaves real 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 description coverage is 100% and all three parameters (n, k, p) are documented in the schema, including constraints like k <= n and p being prime. The description adds no syntax or format detail beyond what the schema already supplies, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Compute) and resource (binomial coefficient C(n,k) mod prime) and names the method (Lucas' theorem). It is reasonably distinct from plain-combination siblings like combination_calc, though it never explicitly contrasts itself with 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?
No guidance on when to use this versus combination_calc, binomial_probability, or modular_arithmetic. The agent must infer that this is the right tool only when a prime modulus is involved; no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
luhn_validateB
Validate or generate a Luhn check digit (credit cards, IMEI, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'validate' (default) or 'generate' to compute check digit. | |
| number | Yes | Digit string to validate or partial number for generation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full disclosure burden. It never says what is returned (boolean vs check digit), how invalid input is handled, whether length/format constraints apply, or that generate mode consumes a partial number. The domain examples are context, not 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?
A single front-loaded sentence with no filler; the parenthetical examples earn their place and 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 two-parameter tool with a fully documented schema and no output schema or annotations, the description is adequate on purpose but leaves the generate-mode return value and error behavior unexplained, which an agent would need in order to use the output 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 both 'mode' and 'number' are already documented in the schema, establishing the baseline of 3. The description adds no syntax, format, or length details for the number string beyond repeating usage 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?
States a specific verb (validate/generate) and resource (Luhn check digit) with concrete examples (credit cards, IMEI). It is unambiguous what the tool does, though the dual validate/generate purpose sits slightly awkwardly against a name that says only 'validate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to choose this tool, no prerequisites, and no explanation of when to pick 'validate' vs 'generate' beyond the mode parameter's own schema text. The reader must infer the two modes' use cases entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lyrics_getBRead-onlyIdempotent
Get song lyrics by artist and title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Song title | |
| artist | Yes | Artist/band name |
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 nothing beyond that: it says nothing about the external lyrics source, coverage gaps, or what happens when no lyrics are found, so the sentence is essentially a restatement of the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity comes at the cost of any routing or behavioral 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 two-parameter lookup with full schema coverage and rich annotations, the description is adequate to call the tool correctly. It omits what the response contains and how misses are signalled (no output schema exists to cover that), which leaves a modest 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 both parameters ('artist', 'title') are self-explanatory, so the baseline of 3 applies. The description merely names the same two fields without adding format guidance (e.g., how to handle featuring artists or alternate spellings).
Input schemas describe structure but not intent. Descriptions should explain 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 song lyrics', with the two identifying keys (artist, title). It is clear what the tool does, but it does not distinguish itself from adjacent music tools such as genius_get_song or genius_search in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: needing lyrics for a known song is the obvious trigger. There is no statement of when to prefer this over siblings like genius_get_song, and no note on failure conditions such as lyrics not being available for a given track.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_add_memberB
Add or update a subscriber in a Mailchimp audience.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Subscriber email address | ||
| status | No | Subscription status (default: subscribed) | |
| api_key | Yes | Mailchimp API key | |
| list_id | Yes | Audience ID | |
| last_name | No | Subscriber last name | |
| first_name | No | Subscriber first name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies upsert behavior (add or update), which is a key behavioral trait. However, it does not disclose potential side effects (e.g., sending confirmation email if status changes) or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential purpose without any filler. It is efficiently front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description fails to explain the success/error response format or what happens on duplicate email. It is too brief to be 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%, and the description adds no additional meaning beyond the parameter names and types. The description does not explain how parameters interact (e.g., first_name/last_name only relevant for subscribed status).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Add or update') and the resource ('a subscriber in a Mailchimp audience'). It distinguishes from sibling tools like mailchimp_list_members or mailchimp_search_members by focusing on modifying a single subscriber.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., list_id must exist), nor does it suggest when not to use it (e.g., for bulk operations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_create_campaignC
Create a new Mailchimp email campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Campaign type (default: regular) | |
| api_key | Yes | Mailchimp API key | |
| list_id | Yes | Audience (list) ID to send to | |
| reply_to | No | Reply-to email address | |
| from_name | No | Sender display name | |
| subject_line | Yes | Email subject line |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'create' without disclosing behavioral traits such as success/error handling, permissions needed, or side effects (e.g., does it create a draft or send immediately?). Minimal 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 a single sentence, which is concise but lacks substance. It is not bloated, but it also fails to add value. Score 3: adequate but borderline under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is insufficient. It does not explain the return value, campaign type implications, or validation behavior. A more complete description would aid agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 no additional meaning beyond the schema properties. It does not explain defaults, relationships between parameters, or formatting requirements. Score 3 as schema already covers 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 'Create a new Mailchimp email campaign' clearly states the verb and resource. The name and sibling tools (e.g., mailchimp_add_member, mailchimp_get_campaign) provide implicit differentiation, though the description itself does not explicitly distinguish from siblings. Score 4 for clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives (e.g., when to create a campaign vs. add a member). No prerequisites, context, or exclusions are mentioned. Score 2 for no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_get_campaignBRead-onlyIdempotent
Get details for a specific Mailchimp campaign by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Mailchimp API key | |
| campaign_id | Yes | Campaign ID |
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 fully covered elsewhere. The description adds essentially nothing beyond that: it doesn't say what fields are returned, whether the call requires an authenticated API key scope, or what happens on an invalid ID (404 vs empty result), so it fails to earn credit beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb, resource, and lookup key all appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is the only place an agent could learn what a 'campaign detail' payload contains, and it does not say. For a simple two-parameter read with full annotation coverage this is passable, but the return shape and auth expectation remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (api_key, campaign_id) are documented in the schema, so the baseline is 3. The description's 'by ID' phrasing reinforces campaign_id but adds no format, length, or sourcing guidance 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 ('Get details for a specific Mailchimp campaign') and scopes it by ID, which clearly separates it from list-style siblings such as mailchimp_list_campaigns. It does not name the sibling explicitly, 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 use case is implied by 'by ID' — the agent needs a known campaign_id, and presumably must call mailchimp_list_campaigns first to obtain one — but neither the prerequisite nor any exclusion is stated. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_list_audiencesCRead-onlyIdempotent
List all Mailchimp audiences (lists) in the account.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of audiences to return (default: 10, max: 1000) | |
| api_key | Yes | Mailchimp API key (format: key-dc e.g. abc123-us21) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond that — no pagination behavior, no result-count limits, no note that the account scope is determined by the API key.
Agents need to know what a tool does to the 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 clean, front-loaded sentence with zero filler. It is efficient, though its brevity leaves the definition thin rather than optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema documentation this is minimally adequate, but with no output schema the description could state the shape of returned audience objects or whether pagination exists. An agent calling it blind has no expectation of the 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?
Schema description coverage is 100%: both api_key and count are documented in-schema, including the default of 10 and max of 1000. The description adds no parameter 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?
States a specific verb and resource ("List all Mailchimp audiences") and clarifies the domain synonym audiences = lists, which helps an agent map the term. It does not distinguish itself from siblings such as mailchimp_list_members or mailchimp_search_members, 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?
There is no guidance on when to call this versus alternatives, no prerequisites (account scope, API key tier), and no exclusions. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_list_campaignsARead-onlyIdempotent
List Mailchimp email campaigns, optionally filtered by status or audience.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of campaigns (default: 10) | |
| status | No | Filter by campaign status | |
| api_key | Yes | Mailchimp API key | |
| list_id | No | Filter by audience ID |
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 only the filtering scope and says nothing about pagination limits, default page size behavior, or result ordering.
Agents need to know what a tool does to the 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-formed sentence with the resource front-loaded and the optional filter scope trailing. 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?
No output schema exists, but with full annotation coverage and fully described parameters, the description tells the agent enough to invoke it correctly. It could note pagination or that api_key is required, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so status and list_id filtering are already documented. The description merely restates those filters without adding format or semantics beyond the schema, which meets the baseline for high-coverage 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?
States a specific verb ('List') and resource ('Mailchimp email campaigns') with the optional filter scope. It is distinguishable from read siblings like mailchimp_get_campaign and write siblings like mailchimp_create_campaign, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'optionally filtered by status or audience' implies when filters apply, but there's no explicit guidance on when to choose this over mailchimp_get_campaign or how to page through large result sets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_list_membersBRead-onlyIdempotent
List members (subscribers) in a Mailchimp audience.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of members to return (default: 10) | |
| status | No | Filter by subscription status | |
| api_key | Yes | Mailchimp API key | |
| list_id | Yes | Audience ID |
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 externally. The description adds that results are scoped to a single audience, but says nothing about pagination, ordering, default page size, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; it identifies the verb, resource, and synonym for members immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with rich annotations and a fully documented schema, the description is minimally sufficient. It still leaves pagination behavior and the distinction from mailchimp_search_members unaddressed, and there is no output schema 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 api_key, list_id, count, and status are fully documented in the schema. The description adds no parameter-level detail beyond the generic 'in an audience' phrasing, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List members') and clarifies that members are subscribers within a Mailchimp audience. However, it never distinguishes this from the sibling mailchimp_search_members, which an agent could easily confuse with a plain listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this over mailchimp_search_members, nor any prerequisite or exclusion information. The only implied usage is 'list all members of an audience', which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailchimp_search_membersARead-onlyIdempotent
Search for subscribers across all or a specific Mailchimp audience.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (email address, name, etc.) | |
| api_key | Yes | Mailchimp API key | |
| list_id | No | Limit search to a specific audience ID |
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 context. It usefully discloses that the default scope spans all audiences and that list_id narrows it, but says nothing about result size, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The scope distinction is expressed immediately and 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 simple read-only search with full schema coverage and annotations, the definition is nearly complete. The only gaps are return-shape and result-limit details, which are minor given the absent output schema and standard search 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 description coverage is 100%, so all three parameters are already documented, including list_id as limiting search to a specific audience. The description reinforces the list_id behavior but adds no syntax or formatting 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 (search) and resource (subscribers), with scope (all or a specific Mailchimp audience). It is distinguishable from mailchimp_list_members by the search framing, but it never explicitly contrasts 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?
Implies usage through the 'all or a specific audience' scope, which maps to omitting or supplying list_id. It does not say when to prefer this over mailchimp_list_members or what happens when no match is found.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_accountsARead-onlyIdempotent
List every mailbox connected to Mailroom (Gmail, IMAP, Microsoft 365) with its transport and health. Never returns secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Also resolve each stored mailbox to show its transport and address (default false). | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the baseline is lower. The description adds the useful 'Never returns secrets' guarantee and hints at return content ('transport and health'), but omits auth requirements, rate limits, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary purpose and a separate security note. No wasted text; each sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing with annotations carrying the safety profile, no output schema, and fully covered params, the description is nearly sufficient. It signals returned attributes (transport, health) but stops short of describing the full result 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% and both parameters (detail, account) are well documented there. The description only echoes that transport/health are shown, marginally reinforcing detail; it adds little 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?
States a specific verb and resource: 'List every mailbox connected to Mailroom' and enumerates the supported transports (Gmail, IMAP, Microsoft 365) plus the returned health data. It is clearly distinct from sibling mailroom_search/read/send, but it does not explicitly name a sibling or contrast with one, keeping it just below 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?
Usage is only implied—an agent can infer this lists connected accounts, but the description gives no explicit when-to-use, when-not, or recommendation to call it before mailroom_read/mailroom_search to resolve an account. No guidance on when to enable detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_attachmentA
Download one attachment from a message as base64 (for example a PDF receipt), up to 8 MB.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id from mailroom_search (a numeric uid for Gmail/IMAP, a Graph id for Microsoft 365). | |
| folder | No | Folder: inbox (default), sent, drafts, trash, junk, archive, all, or a folder name. | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. | |
| attachment | Yes | Attachment id or file name as listed by mailroom_read. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the base64 return format and an 8 MB size cap, but it does not mention authentication needs, error behavior for oversized attachments, or whether the operation is strictly read-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 a single front-loaded sentence with no wasted text. The example and size limit are compactly integrated and useful for 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 tool with no output schema, the description states the return format (base64) and size limit, which are important for correct use. Schema descriptions cover the parameters, though the description could say more about account/auth context and failure modes.
Complex tools with many parameters or behaviors need more documentation. 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 four parameters, so the schema already explains id, folder, account, and attachment. The description adds little parameter-specific meaning beyond indicating that a message and one attachment are involved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: downloading one attachment from a message. It also specifies the output encoding (base64) and size limit, which clearly distinguishes it from siblings like mailroom_read that operate on message content rather than attachment payloads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'Download one attachment from a message' and the PDF receipt example, but the description does not explicitly say when to choose this tool versus mailroom_read or mailroom_search. No exclusions or prerequisite workflow are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_forwardA
Forward a message, attachments included, to one or more addresses (for example a supplier receipt to an accounting inbox).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id from mailroom_search (a numeric uid for Gmail/IMAP, a Graph id for Microsoft 365). | |
| to | Yes | Where to forward it, comma-separated for several. | |
| folder | No | Folder: inbox (default), sent, drafts, trash, junk, archive, all, or a folder name. | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. | |
| comment | No | Optional note placed above the forwarded message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose two real behavioral facts beyond the schema's field list: attachments are included and delivery fans out to multiple recipients. It says nothing about irreversibility, whether a copy is retained in a sent folder, or permission/account requirements for a write 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?
A single sentence with the action front-loaded, no redundancy, and a concrete example that earns its place by anchoring the abstraction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation tool with no annotations and no output schema, the description covers the what and the example use but omits side effects and result expectations. The fully documented schema compensates for the parameter side, leaving a moderate behavioral 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 every parameter including id provenance, folder, account, and comment is already documented. The description's only addition is 'one or more addresses', which loosely maps to the comma-separated 'to' field. 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 ('Forward a message') plus two distinguishing traits: attachments are carried over and multiple addresses are allowed. It is clearly separable from mailroom_send (compose new) and mailroom_move, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical example ('a supplier receipt to an accounting inbox') implies the intended use case, and the schema's id field hints that mailroom_search must come first. There is no explicit when-not guidance or statement of prerequisites in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_mark_readB
Mark a message as read (or unread with read=false).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id from mailroom_search (a numeric uid for Gmail/IMAP, a Graph id for Microsoft 365). | |
| read | No | true marks read (default), false marks unread. | |
| folder | No | Folder: inbox (default), sent, drafts, trash, junk, archive, all, or a folder name. | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses only that read=false marks unread. It says nothing about whether the change persists server-side, whether it requires a specific account/folder context, or what happens on failure — significant gaps for a mutation 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?
A single tight sentence with the primary action front-loaded and the variant case parenthesized. 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 four-parameter mutation tool with no annotations and no output schema, the description is minimally adequate: the schema covers parameters, but behavioral context (persistence, account resolution, failure modes, return value) is absent and the description does nothing to fill 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 coverage is 100% and every parameter (id, read, folder, account) is documented in the schema. The description's only added semantic — read=false means unread — is already stated in the read parameter's own description, so it contributes no 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?
States a specific verb and resource (mark a message as read) plus the inverse operation via read=false, so the agent knows exactly what the tool does. It does not distinguish itself from near-neighbors such as email_mark_read or mark_inbox_read, which the agent must disambiguate by name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the description makes clear the tool sets read state and can reverse it, but says nothing about when to reach for it versus mailroom_read, email_mark_read, or mark_inbox_read. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_moveC
Move a message to another folder: archive, trash, junk, inbox, or a named folder.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id from mailroom_search (a numeric uid for Gmail/IMAP, a Graph id for Microsoft 365). | |
| folder | No | Folder: inbox (default), sent, drafts, trash, junk, archive, all, or a folder name. | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. | |
| to_folder | Yes | Destination: archive, trash, junk, inbox, or a folder name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a mutation ('Move') and lists destinations, but it does not explain side effects, whether the message is removed from the source folder, account requirements, reversibility, or permissions.
Agents need to know what a tool does to the world before calling 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 is efficient, though it could briefly orient the agent to the account or id context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is rich and fully describes the four parameters, and no output schema is needed. However, for a mutation tool with no annotations, the description omits behavioral context such as side effects and account handling, leaving clear 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%, so the parameter descriptions already document id, folder, account, and to_folder. The description repeats destination values but does not add meaning beyond the schema, matching 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 states a specific verb and resource: 'Move a message to another folder,' and lists valid destinations. It is clear what the tool does, but it does not explicitly differentiate itself from nearby mailroom siblings such as mailroom_mark_read or mailroom_forward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 explicit guidance about when to use this tool versus alternatives, nor any prerequisites. Moving a message is implied, but there are no stated conditions, exclusions, or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_readARead-onlyIdempotent
Read one message: headers, plain-text body and the list of attachments.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id from mailroom_search (a numeric uid for Gmail/IMAP, a Graph id for Microsoft 365). | |
| folder | No | Folder: inbox (default), sent, drafts, trash, junk, archive, all, or a folder name. | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. | |
| include_html | No | Also return the HTML body when the message has one (default false). |
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 return-shape context, notably that it returns headers, plain-text body and an attachment list rather than attachment contents or HTML.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted words. The key action and returned data are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-by-id tool, the definition is complete when combined with the annotations and fully described schema. The description covers the essential behavioral context: what is 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?
Schema description coverage is 100%, so all four parameters are already well documented in the schema. The description adds no parameter-specific 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 names a specific verb and resource: reading one message. It also states the returned content (headers, plain-text body, attachment list), which distinguishes it from message-search and attachment-specific 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?
Usage is implied by 'Read one message', and the id parameter in the schema points to mailroom_search as the source. However, the description itself does not explicitly say when to use this versus mailroom_search or mailroom_attachment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_searchARead-onlyIdempotent
Search or list messages in a connected mailbox. Gmail accepts Gmail query syntax (from:x newer_than:7d has:attachment); Microsoft 365 accepts KQL; other IMAP servers accept from:, to:, subject: and free text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Messages to return (max 100, default 20). | |
| query | No | Search text. Leave empty to list the newest messages. | |
| since | No | Only messages after this ISO date, or a shorthand like 7d, 36h, 2w. | |
| folder | No | Folder: inbox (default), sent, drafts, trash, junk, archive, all, or a folder name. | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. | |
| unread_only | No | Only unread messages (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so safety is covered. The description adds genuinely non-obvious behavior: the accepted query dialect depends on the backend (Gmail syntax vs KQL vs plain IMAP prefixes), which prevents malformed queries. It doesn't mention result caps or paging beyond what the schema's limit field 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?
Two sentences, zero filler, with the core action front-loaded and provider-specific syntax examples packed into the second sentence. Every clause carries actionable 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 read-only, no-output-schema search tool with six fully documented optional parameters, the description supplies the one thing the schema can't: provider-dependent query language. Minor gap in not indicating what a result entry contains, but annotations and schema carry the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real semantic value by specifying which query syntax is valid per provider — something the generic 'Search text' schema field cannot convey. Other parameters (since, folder, unread_only) are left entirely to 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 pair ('search or list') and resource ('messages in a connected mailbox'), making the scope clear enough to distinguish it from mailroom_read (single message) and mailroom_accounts (mailbox listing). An agent can decide from the first clause alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'search or list,' and the dialect note implies free-text listing when no query is given, but the description never states when to prefer this over mailroom_read or what to do when a search returns nothing. No explicit alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mailroom_sendB
Send a new email from a connected mailbox. Plain text by default; HTML when the body contains tags or html=true.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Cc addresses, comma-separated. | |
| to | Yes | Recipient address, or several separated by commas. | |
| bcc | No | Bcc addresses, comma-separated. | |
| body | Yes | Email body. | |
| html | No | Treat the body as HTML (default: detected from the body). | |
| account | No | Which connected mailbox to use (its label from mailroom_accounts). Optional when only one is connected or a default is saved in memory. | |
| subject | Yes | Email subject. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it only discloses the text/HTML body handling — which the schema's html parameter already documents. It says nothing about the fact that sending is irreversible, what permissions or connected-account state are required, failure behavior for invalid recipients, or whether the message is stored in the sent folder.
Agents need to know what a tool does to the 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 the action and the default content-type rule front-loaded. Nothing redundant or 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?
Adequate for a 7-parameter mutation tool whose schema is fully described, but thin for a send action: no account-selection guidance, no indication of irreversibility, and no distinction from forwarding or from the many sibling send tools. An agent could invoke it, but without knowing the consequences of doing so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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, and the one piece of description content (text default, HTML when tags present or html=true) restates the html parameter. Baseline 3 applies; no additional semantics beyond the schema are introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Send a new email') plus the source ('from a connected mailbox'), which separates it from mailroom_read, mailroom_search and mailroom_forward in the same family. The word 'new' implies it is not a reply/forward, but that contrast is left implicit rather than naming mailroom_forward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus mailroom_forward, the many other send tools (resend_send_email, gmail_send, sendgrid_send_email), or prerequisites such as a connected mailbox. The only routing hint — the account label from mailroom_accounts — lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
makeup_searchBRead-onlyIdempotent
Search makeup products by brand, type, category, or tags.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Brand name (e.g. maybelline, covergirl, nyx) | |
| product_tags | No | Tags (e.g. vegan, organic, gluten_free) | |
| product_type | No | Product type (e.g. lipstick, foundation, mascara) | |
| product_category | No | Category (e.g. powder, cream, liquid) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds no behavioral context beyond that—no result format, pagination, or empty-result behavior—so it earns the baseline rather than more.
Agents need to know what a tool does to the 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-formed sentence with the resource and filter dimensions front-loaded and no filler. Brevity is appropriate, though the space saved could have carried the missing usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four optional parameters, no output schema and no required fields, the description leaves open whether a parameterless call returns everything and what a result looks like. Adequate for a simple read-only search but 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?
Schema description coverage is 100% and each parameter carries its own example, so the description's field list merely restates the schema. It adds nothing on matching semantics (exact vs substring, case handling, multi-tag syntax).
Input schemas describe structure but not intent. Descriptions should explain 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 ('makeup products') and enumerates the four filter dimensions. No sibling tool operates in the makeup domain, so there is no ambiguity to resolve, but the description does not need to differentiate either.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'search' plus the filter list, but the description never says when to use this versus a full listing, whether filters are combinable (AND vs OR), or what happens when no parameters are supplied despite all four being optional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manacher_palindromeA
Find the longest palindromic substring in linear time using Manacher's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | List all palindromic substrings of length >= 2 (default false) | |
| text | Yes | Input string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It adds the notable behavioral trait of linear-time complexity via a named algorithm, which is genuinely useful context. But it says nothing about the return shape or what happens when the 'all' flag changes the output, so behavioral coverage is partial.
Agents need to know what a tool does to the 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 with zero filler; the core action and the distinguishing algorithm both appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not clarify what is returned (the substring itself vs. its length) or how the output changes when 'all' is true. For a small two-parameter computation tool this is adequate but leaves a real gap in return-value 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 description coverage is 100%, so both parameters (text, all) are already documented in the schema. The description adds no syntax, format, or edge-case detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Find) and resource (longest palindromic substring) and uniquely identifies the technique (Manacher's algorithm), so it is unambiguous. However, it does not differentiate itself from siblings like palindrome_check or eertree, which an agent browsing this large toolset might confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by the purpose itself ('find the longest palindromic substring'). There is no explicit when-to-use guidance, no mention of exclusions, and no pointer to alternatives such as palindrome_check, leaving the agent to infer the fit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapbox_geocode_forwardB
Convert an address or place name to coordinates using Mapbox.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-10, default: 5) | |
| query | Yes | Address or place name to geocode | |
| types | No | Filter by feature types (e.g. address,place,poi) | |
| country | No | Limit results to a country (ISO 3166 alpha-2, e.g. US) | |
| language | No | Language for results (e.g. en, fr) | |
| proximity | No | Bias results near coordinates (lng,lat) | |
| access_token | Yes | Mapbox access token from account.mapbox.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose behavioral traits such as authentication requirements, rate limits, or error handling. Only the purpose is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded, but lacks important details necessary for an AI agent to use it effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters and no output schema, the description is incomplete; it does not explain coordinate system, batch capabilities, or error handling, leaving significant 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 parameter descriptions; the tool description adds no additional semantic meaning beyond the schema, meeting 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 tool converts addresses or place names to coordinates, distinguishing it from the sibling mapbox_geocode_reverse which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 forward geocoding but provides no explicit guidance on when to use this tool versus alternatives like mapbox_geocode_reverse or other mapbox tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapbox_geocode_reverseB
Convert coordinates to a place name or address using Mapbox reverse geocoding.
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Filter by feature types | |
| language | No | Language for results | |
| latitude | Yes | Latitude | |
| longitude | Yes | Longitude | |
| access_token | Yes | Mapbox access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral context. It lacks details on authentication needs, rate limits, error handling, or response structure. Only states the conversion function.
Agents need to know what a tool does to the 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, 10 words, efficient for core purpose. Could add optional usage note without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters (2 optional) and no output schema, more context is needed. No mention of return format, limitations, or how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond converting coordinates; language and types parameters are not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Convert coordinates') and the target resource ('place name or address'), using Mapbox reverse geocoding. It distinguishes from sibling 'mapbox_geocode_forward'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like forward geocoding, directions, or static maps. No context for prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapbox_get_directionsCRead-onlyIdempotent
Get turn-by-turn directions between two or more locations using Mapbox.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Include turn-by-turn steps | |
| profile | No | Routing profile (default: mapbox/driving) | |
| language | No | Language for instructions | |
| overview | No | Route overview geometry detail | |
| coordinates | Yes | Semicolon-separated lng,lat pairs (e.g. -122.4194,37.7749;-118.2437,34.0522) | |
| access_token | Yes | Mapbox access token | |
| alternatives | No | Return alternative routes |
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 safety profile is covered. The description adds nothing beyond that — no mention of coordinate limits, token requirements, whether routes are cached, or what is returned — so for a 7-parameter routing call it contributes almost no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though arguably too spare for a tool with this many options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 100% schema coverage and annotations present, the definition is callable, but there is no output schema and the description says nothing about what a directions response contains (distance, duration, geometry, steps) or about limits such as the number of waypoints. That leaves a meaningful gap for a routing 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 both enums and the coordinate format documented inline, so the schema carries the burden. The description contributes nothing about parameters, which is baseline 3 under full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('get turn-by-turn directions between two or more locations') and states the provider, so an agent can tell what it does. It does not explicitly differentiate itself from siblings such as ptv_route_directions or mapbox_geocode_forward, 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?
There is no guidance on when to use this over the geocoding, static-map, or other routing siblings, nor any prerequisites or exclusions. Usage is only implied by the words 'directions between locations'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapbox_get_static_mapB
Generate a static map image URL for a given location using Mapbox.
| Name | Required | Description | Default |
|---|---|---|---|
| zoom | No | Zoom level (0-22, default: 12) | |
| style | No | Map style (default: mapbox/streets-v11) | |
| width | No | Image width in px (max: 1280, default: 600) | |
| height | No | Image height in px (max: 1280, default: 400) | |
| retina | No | Return @2x high-DPI image | |
| latitude | Yes | Center latitude | |
| longitude | Yes | Center longitude | |
| access_token | Yes | Mapbox access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states basic action without detailing side effects, return format, rate limits, or behavior beyond generating a URL. Does not disclose that it returns a URL (not an image).
Agents need to know what a tool does to the 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 is concise and front-loaded, but slightly under-specified for the number of parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 8 parameters, no output schema, and no annotations, the description is too minimal. Does not explain the output type (URL string) or key features like styling and size constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 8 parameters. Description adds no extra meaning beyond 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?
Clearly states verb 'Generate', resource 'static map image URL', and scope 'for a given location using Mapbox'. Distinct from sibling tools like geocoding or directions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use vs alternatives, no prerequisites or limitations mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapbox_list_tilesetsBRead-onlyIdempotent
List Mapbox tilesets owned by a user.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by tileset type | |
| limit | No | Max tilesets to return (max: 500) | |
| username | Yes | Mapbox username | |
| access_token | Yes | Mapbox access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint, so the safety profile is covered. The description adds the ownership scope, but it does not mention pagination behavior, rate limits, or that an access token is required 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?
It is a single front-loaded sentence with no wasted words. Its brevity is appropriate for a simple list tool, though it leaves some potentially useful context unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with full schema coverage and complete safety annotations, the description is mostly sufficient: it states that tilesets are listed and scoped to a user. The remaining gaps, such as return format and pagination, are minor for this 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%, and all four parameters are documented in the schema, including the type enum and limit maximum. The description only echoes the username ownership scope ('owned by a user') and adds 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?
The description names a specific verb and resource: list Mapbox tilesets. It also adds the ownership scope ('owned by a user'), so the agent knows this is not a global tileset listing. It does not need to distinguish from a close sibling because no other tileset tool appears in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use or when-not-to-use guidance and names no alternatives. The ownership phrase implies the use case, but the agent must infer it rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marine_forecastBRead-onlyIdempotent
Get ocean wave, swell, and marine weather forecast for a location.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude of the ocean point. | |
| longitude | Yes | Longitude of the ocean point. | |
| forecast_days | No | Number of forecast days (default 7, max 16). |
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 no behavioral context beyond those annotations, such as return granularity, units, data source, or how the forecast horizon 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?
A single front-loaded sentence with no wasted words. It efficiently communicates the core resource and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 forecast tool with a fully described three-parameter schema and rich safety annotations, the description is nearly complete. Minor gaps remain around units and the exact nature of the forecast output, but these are not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with latitude, longitude, and forecast_days all documented directly in the schema. The description 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?
States a specific verb and resource: getting ocean wave, swell, and marine weather forecasts. The marine/ocean focus distinguishes it from general weather siblings, though it does not explicitly name an alternative like weather_forecast or willyweather_surf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 location" and the marine-specific data imply usage for ocean points, but there is no explicit guidance on when to use this versus general weather, surf, or tide tools. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
markdown_statsBRead-onlyIdempotent
Analyze Markdown text: count headings, links, code blocks, words, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | Markdown text to analyze. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveness, so the safety profile is covered by structured data. The description adds that this works on raw Markdown input, but 'and more' is opaque and nothing is said about how the analysis is scoped (e.g., whether inline code, HTML blocks, or front matter are counted), which materially affects the numbers 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?
One short sentence, front-loaded with the action and resource, with no padding. The trailing 'and more' is the only weak element, since it is vague rather than informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must carry the return-value burden; it names a partial metric list and leaves the rest as 'and more'. An agent knows roughly what to expect but cannot state exactly which statistics come back, which matters for a pure-report 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?
There is a single required parameter with 100% schema coverage and a clear description ('Markdown text to analyze'). The tool description adds no format guidance beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Analyze Markdown text') and enumerates concrete metrics (headings, links, code blocks, words), so the agent knows the output shape is a statistics breakdown. It does not distinguish itself from nearby siblings such as word_count, text_analyse, or readability_score, which also analyze text, 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?
Usage is only implied: the scope word 'Markdown' hints this is for Markdown documents rather than plain text. There is no explicit when-to-use or when-not, and no routing to the obvious alternative (word_count for plain word counts, text_analyse for generic text metrics).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
markdowntable_convertBRead-onlyIdempotent
Convert CSV or TSV text into a Markdown table.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | CSV or TSV text. | |
| delimiter | No | ',' (default) or 'tab'. | |
| has_header | No | First row is header (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds no behavior beyond the transformation itself — nothing about how malformed rows or ragged column counts are handled. For a pure text transform this is acceptable but not enriching.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and both source and target formats. Nothing superfluous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, single-purpose converter with a fully documented schema, the description states input and output formats, which is the key missing piece given there is no output schema. It stops short of covering edge-case behavior (ragged rows, quoting), 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%, so input, delimiter and has_header are all documented in the schema. The description adds nothing about accepted delimiter values or header handling, 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?
Specific verb ('Convert') plus explicit source formats (CSV or TSV) and target format (Markdown table). An agent can tell what goes in and what comes out. It does not explicitly differentiate itself from nearby siblings such as csv_parse or markdown_to_html, which keeps it at 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this instead of alternatives — notably csv_parse (CSV to structured data) or markdown_to_html (the opposite direction). Usage is only inferable from the purpose sentence itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
markdown_to_htmlB
Convert Markdown text to HTML (headings, bold, italic, links, lists, code).
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | Markdown text to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the supported Markdown feature set but says nothing about dialect (CommonMark vs GFM), sanitization, or error handling on malformed input. For a low-risk pure transformation this is adequate but thin.
Agents need to know what a tool does to the 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 lists the supported features without padding. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deterministic conversion with one documented parameter and no output schema, the description covers the essential purpose. The main gap is the absence of dialect/sanitization detail, but nothing critical to calling 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% and there is a single self-explanatory parameter, so the schema does the work. The description adds no syntax or format detail beyond what the schema already provides, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Convert) and resource (Markdown text) to HTML, and enumerates the supported constructs (headings, bold, italic, links, lists, code). This clearly delineates it from siblings like markdown_stats or markdowntable_convert, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as markdown_stats, html_strip, or markdowntable_convert. Usage is only implied by the tool name and function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_inbox_readMark inbox mail as readAIdempotent
Marks Boardroom inbox messages as read for YOUR agent_id, so check_inbox unread counts stay meaningful. Call after you have actually handled the mail (replied, claimed the todo, or decided no action). Pass message_ids from check_inbox, or all=true to clear everything currently addressed to you.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Mark everything addressed to you as read | |
| agent_id | Yes | Your stable agent identifier. | |
| message_ids | No | Message ids to mark read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, idempotent, non-destructive mutation. The description adds useful behavioral context: the side effect on check_inbox unread counts and the bulk effect of all=true clearing everything addressed to the agent. It does not describe validation or return behavior, but it adds meaningful 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?
Three compact sentences front-load the purpose, then move to timing and parameter selection. Every sentence adds useful information with no 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 idempotent mutation with full schema coverage and safety annotations, the description gives enough to invoke it correctly: purpose, timing, agent scope, and the all-vs-message_ids choice. It omits return or acknowledgment details, a minor gap but not blocking for 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?
Schema coverage is 100%, so the baseline is 3, but the description adds semantics: message_ids should come from check_inbox, all=true clears everything addressed to the agent, and agent_id is 'YOUR' identifier. It does not clarify what happens if both all and message_ids are supplied, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Marks Boardroom inbox messages as read for YOUR agent_id.' It also ties the action to check_inbox unread counts, distinguishing it from checking or reading mail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 precondition: call after you have actually handled the mail (replied, claimed the todo, or decided no action), and explains either passing message_ids from check_inbox or using all=true. It does not give an explicit 'do not call before handling' exclusion or name an alternative tool, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
markov_generateB
Generate text using a Markov chain trained on input text (word or character level).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'word' (default) or 'character'. | |
| text | Yes | Training corpus. | |
| order | No | Chain order/context size (default 2). | |
| length | No | Number of tokens to generate (default 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only describes the generation mechanism. It does not disclose whether output is random or deterministic, whether results are reproducible, what the return value looks like, or any performance or side-effect considerations.
Agents need to know what a tool does to the world before calling 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 zero wasted words. It efficiently communicates the core purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 generation tool with a fully documented schema and no output schema, the description covers the core purpose but omits useful context such as the output format or randomness behavior. It is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are documented in the schema. The description mentions the mode (word or character level) and training corpus, but adds no meaning beyond what the schema already provides for order and length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ("Generate") and resource ("text using a Markov chain trained on input text") with scope (word or character level). It clearly distinguishes this tool from other text-generation siblings by naming the unique mechanism, so an agent can tell what it does 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 states what the tool does but provides no guidance on when to use it versus alternatives, no prerequisites, and no exclusions. It leaves the agent to infer usage solely from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mastodon_actionC
Perform a Mastodon action: mastodon_post, mastodon_read_timeline, mastodon_reply, mastodon_boost, mastodon_favorite, mastodon_search, mastodon_profile, mastodon_follow, mastodon_notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| id | No | ||
| acct | No | ||
| action | Yes | ||
| status | No | ||
| access_token | No | ||
| instance_url | No | ||
| in_reply_to_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as idempotency, side effects, or rate limits. It merely says 'Perform' without indicating which actions are read-only versus write operations. An agent cannot infer safety or cost implications from this description.
Agents need to know what a tool does to the world before calling 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 (one sentence) but poorly structured. The list of actions is run together, making it harder to parse. It could be more effective with bullet points or clearer separation. However, it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no schema descriptions, no output schema), the description is far from complete. It fails to explain how to use the parameters, what each action expects as input, or what the response looks like. The agent lacks critical context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meanings. However, it only lists action names without explaining the role of 'status', 'id', 'q', 'acct', or other parameters. The agent cannot determine which parameters are needed for each action from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs Mastodon actions and lists nine specific action types. While it doesn't explicitly frame it as a router/dispatcher, the enumeration of actions provides adequate purpose clarity. However, it lacks a verb+resource structure that distinguishes it from sibling tools like bluesky_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. With many sibling tools (e.g., bluesky_action, slack_action), the description should indicate scenarios where this dispatcher is appropriate or mention that dedicated tools might be preferable for single actions. The description offers no such context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matrix_chain_orderB
Find the optimal parenthesization for matrix chain multiplication to minimize scalar multiplications.
| Name | Required | Description | Default |
|---|---|---|---|
| dimensions | Yes | Array of matrix dimensions. For N matrices, provide N+1 values: [r1, c1/r2, c2/r3, ..., cN] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the computation but omits whether the tool is deterministic, whether it has side effects, what it returns (order only, cost only, or both), and how invalid dimensions are handled.
Agents need to know what a tool does to the 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 with no filler or repetition. It communicates the core operation 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?
There is no output schema, and the description does not explain what the tool returns. For an algorithmic tool, the agent needs to know whether to expect a parenthesization, a scalar multiplication count, or both.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 fully explains the single 'dimensions' parameter including the N+1 convention. The description adds no parameter semantics beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find optimal parenthesization'), resource ('matrix chain multiplication'), and optimization goal ('minimize scalar multiplications'). This distinguishes it from generic matrix-operation siblings without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit when-to-use, when-not-to-use, prerequisites, or alternatives. An agent must infer that this is the right tool only from the mathematical term in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matrix_decompC
Matrix decomposition and analysis: LU factorization, transpose, trace, or rank.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | 2D array of numbers (the matrix). | |
| operation | No | Operation: lu, transpose, trace, or rank (default lu). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say that operations return wildly different shapes (trace/rank return scalars, transpose returns a matrix, LU returns factor matrices), nor what happens with non-square or singular input, nor whether errors are raised.
Agents need to know what a tool does to the 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 with no filler; the operation list is presented immediately after the purpose. It is efficient, though the fragmentary 'decomposition and analysis' clause is slightly redundant 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?
With no output schema and four operations that return fundamentally different result types (scalar for trace, integer for rank, matrix for transpose, paired matrices for LU), the description leaves the agent unable to predict the response shape or how to interpret results. For a multi-mode math tool this is a meaningful 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 documents both parameters including the operation list and the 'lu' default. The description merely repeats the operation names without adding syntax, constraints, or format details, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific resource (matrix) and enumerates the four concrete operations (LU factorization, transpose, trace, rank), so an agent knows exactly what it does. It loses a point for not distinguishing itself from close siblings like matrix_rank (which overlaps the 'rank' operation) or matrix_operate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites, and no naming of alternatives. An agent cannot tell from this text why it should call matrix_decomp for rank instead of the dedicated matrix_rank sibling, or how it relates to matrix_inverse for LU-related work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matrix_exponentiationB
Raise a square matrix to a non-negative integer power using fast exponentiation, with optional modular arithmetic.
| Name | Required | Description | Default |
|---|---|---|---|
| mod | No | Optional modulus for modular arithmetic | |
| power | Yes | Non-negative integer exponent (max 1 billion) | |
| matrix | Yes | Square matrix (max 10x10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully names the algorithm (fast exponentiation) and flags optional modular reduction, implying efficiency and bounded results. However it says nothing about error behavior for non-square or oversized matrices, negative powers, or the shape/type of what is 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?
A single tight sentence, front-loaded with the core operation and appending the optional modifier last. 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 self-contained math function with no output schema and no annotations, the description is only minimally complete: it omits failure modes, constraints, and result semantics that an agent might need. It covers the happy path adequately but leaves behavioral edges unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 including the modular arithmetic option. The description's mention of "optional modular arithmetic" merely echoes the schema without adding syntax, ranges, or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource ("Raise a square matrix to a non-negative integer power") and even names the algorithm (fast exponentiation). It is fully unambiguous as to outcome but does not differentiate itself from close siblings like matrix_inverse, matrix_operate, or matrix_rank that also manipulate matrices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this tool over related matrix/modular-arithmetic siblings, nor any stated prerequisites or exclusions. Usage is only implied by the mathematical operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matrix_inverseB
Compute the inverse and determinant of a square matrix using Gauss-Jordan elimination.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | Square 2D array of numbers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the algorithm (Gauss-Jordan elimination) and that both inverse and determinant are returned, but says nothing about singular-matrix errors, numeric precision, 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?
A single front-loaded sentence with no wasted words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should ideally explain return values, error behavior, or output shape. It states that inverse and determinant are computed, which is a start, but leaves singular/non-square handling and output format unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple 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 description repeats only that the input is a square matrix, which the schema already documents. It adds no syntax or constraint details beyond the structured 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 specific verb and resources ('Compute the inverse and determinant of a square matrix'), which is clear and distinguishable from siblings like matrix_rank or matrix_decomp. No explicit sibling differentiation, but the operation 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?
Provides no guidance on when to use this tool versus alternatives such as linear_solve, matrix_decomp, or gaussian_elimination. The context is implied by the operation but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matrix_operateC
Perform matrix operations: add, multiply, transpose, or determinant.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix_a | Yes | First matrix (2D number array). | |
| matrix_b | No | Second matrix (for add/multiply). | |
| operation | No | Operation: add, multiply, transpose, determinant. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about error behavior for dimension mismatches, whether matrix_b is required for add/multiply, or how determinant/transpose (single-matrix ops) interact with the one required parameter. For a pure-computation tool this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the operation list front-loaded and no wasted words. It is well-sized for the task, though it offers no structural elaboration beyond the enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and a bare list-of-operations description, the definition is adequate but thin: it never clarifies which parameters are conditional on the chosen operation or what the result looks like. A simple math tool needs only modest context, but the conditional-parameter relationship is left entirely 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?
Schema coverage is 100%, so all three parameters (matrix_a, matrix_b, operation) are already documented in the schema, including the 'for add/multiply' note on matrix_b. The description adds no syntax, format, or shape details beyond what the schema already conveys, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (perform) and resource (matrix operations) and enumerates the supported operations (add, multiply, transpose, determinant), so the agent knows exactly what it does. It does not, however, distinguish itself from adjacent math siblings like matrix_inverse, matrix_rank, or matrix_decomp that a caller might reasonably confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists available operations but gives no guidance on when to choose this tool over matrix_inverse, dot_product, or cross_product, and no prerequisites or exclusions. Usage must be inferred entirely from the enum of operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
matrix_rankB
Compute the rank of a matrix using Gaussian elimination with partial pivoting.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | 2D number array (max 100x100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. Mentioning Gaussian elimination with partial pivoting hints at numerical method and stability, but nothing is said about the return value (an integer rank), handling of singular/non-numeric input, or size limits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the operation, target, and method, and zero filler. Nothing could be removed 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?
For a simple one-parameter computation this is minimally adequate: the input is fully documented in the schema and no output schema exists, but the description never states the expected result (a scalar rank), which is a small but real gap for an agent interpreting the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and schema coverage is 100% — the schema already documents 'matrix' as a 2D number array with a max 100x100 bound. The description adds no meaning beyond this, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compute) and resource (rank of a matrix), and even names the algorithm used, so the operation is unambiguous. It does not, however, distinguish itself explicitly from close siblings like matrix_decomp, matrix_inverse, or gaussian_elimination, which share the same numeric 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?
No when-to-use guidance, no prerequisites, and no routing to alternatives such as matrix_operate or matrix_decomp. The agent must infer the use case purely from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
max_independent_setA
Find the maximum independent set of a graph using exact bitmask enumeration (up to 20 vertices).
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Edges as [u, v] pairs | |
| vertex_count | Yes | Number of vertices (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral context. It discloses the exact enumeration method and the 20-vertex limit, which are useful traits, but it does not describe the return value or assumptions about the graph (e.g., undirected edges, isolated vertices).
Agents need to know what a tool does to the 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 includes the core action, algorithm, and limit 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?
This is a simple two-parameter computational tool with full schema coverage, but there is no output schema. The description does not state what the tool returns (e.g., a list of vertices or the set size), leaving a meaningful gap 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 both parameters. The description adds only the 20-vertex bound, which is also present in the vertex_count schema description, so it does not meaningfully extend parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Find the maximum independent set of a graph.' It also names the algorithm and a hard limit. However, it does not distinguish this tool from related graph-algorithm siblings such as min_vertex_cover, which is the complementary problem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(up to 20 vertices)' gives an implied usage constraint: use this only for small graphs. There is no explicit guidance about when to choose this over alternatives such as min_vertex_cover or other graph routines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mb_get_artistBRead-onlyIdempotent
Get a MusicBrainz artist by MBID.
| Name | Required | Description | Default |
|---|---|---|---|
| mbid | Yes |
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 clear. The description adds nothing beyond the basic operation and does not mention response behavior, invalid MBID handling, or rate limits. With annotations covering the core behavior, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words, appropriate for a simple lookup tool. It is perhaps too terse to carry usage or return-value guidance, but it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with rich annotations, the definition is minimally adequate. However, it lacks guidance on when to use lookup versus search and does not describe the returned artist data, with no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. 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 has 0% schema description coverage, so the schema only says 'mbid: string'. The description partially compensates by identifying the parameter as a MusicBrainz identifier, but it does not state the expected MBID format or validation 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: 'Get a MusicBrainz artist by MBID.' The 'by MBID' phrasing distinguishes it from broad MusicBrainz search siblings, though it does not explicitly name the alternative search 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?
There is no explicit guidance on when to use this tool versus mb_search_artists or other MusicBrainz lookup tools. The phrase 'by MBID' implies the prerequisite of already having an identifier, but no conditions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mb_get_releaseB
Get a MusicBrainz release by MBID.
| Name | Required | Description | Default |
|---|---|---|---|
| mbid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states what it does. It does not disclose behavioral traits like error handling, rate limits, read-only nature, or response format, which are left to the agent to infer.
Agents need to know what a tool does to the world before calling 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 short sentence with no unnecessary words. It is efficient but may be too minimal; still, it earns its place by being clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, simple retrieval), the description is minimally adequate. It covers the basic purpose and key parameter but lacks details on error scenarios or output, which are not provided by output schema either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds no extra meaning beyond the schema; the parameter 'mbid' is self-explanatory from the tool name, but the description does not elaborate on its format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'MusicBrainz release', and the identifier 'MBID'. It effectively distinguishes from sibling tools like mb_search_releases (search) and mb_get_artist (get artist).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 compared to alternatives, such as mb_search_releases or other MB tools. It does not mention prerequisites or contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mb_search_artistsCRead-onlyIdempotent
Search for artists on MusicBrainz.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
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 fully covered by structured data. The description adds nothing beyond that — no note on result ordering, result caps, or whether an empty query is permitted — so it contributes little 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?
A single front-loaded sentence with zero waste, but the brevity comes at the cost of under-specification rather than efficiency. There is no structure to speak of because there is essentially one 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 2-parameter search tool with no output schema and no annotation-independent detail, the description leaves out query syntax, pagination/limit behavior, and anything about the shape of results. An agent can guess, but nothing critical to correct invocation is documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description gives no parameter meaning at all. It does not explain that 'query' accepts MusicBrainz Lucene-style field syntax (e.g. artist:..., type:group) or what 'limit' defaults to or caps at, so an agent cannot construct a non-trivial query from this description.
Input schemas describe structure but not intent. Descriptions should explain 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 for artists') and names the source system (MusicBrainz), which together with the mb_ prefix makes it distinguishable from mb_get_artist and mb_search_releases. It stops short of explicitly contrasting with sibling tools like lastfm_search_artists or discogs_search_artists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus the many other artist-search tools in the sibling list (lastfm_search_artists, discogs_search_artists, genius_search, spotify_search). No mention of prerequisites, rate limits, or exclusions; the agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mb_search_recordingsB
Search for recordings/tracks on MusicBrainz.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| artist | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as pagination, result format, authentication requirements, or rate limits. The description carries the full burden but offers only the minimal purpose, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary information. It efficiently communicates the core purpose without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 search tool with three parameters and no output schema, the description is too minimal. It omits essential contextual details like parameter descriptions, result expectations, and behavioral constraints, leaving the agent underinformed for proper 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 0%, and the description adds no meaning beyond parameter names. 'query', 'artist', and 'limit' are not explained; their use and format are left entirely to inference. The description fails to compensate for the lack of 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 searches for recordings/tracks on MusicBrainz, specifying both the action (search) and the resource (recordings/tracks). This distinguishes it from sibling tools like mb_search_artists and mb_search_releases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides the agent to use this tool for recordings/tracks, but it lacks explicit when-to-use, when-not-to-use, or alternative tool recommendations. The agent must infer from the resource name, which may not be sufficient for nuanced decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mb_search_releasesC
Search for releases/albums on MusicBrainz.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| artist | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description gives no behavioral details beyond 'search'. Does not mention rate limits, authentication, pagination, output format, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the main action, but it lacks detail. It earns its place for brevity but does not provide sufficient context for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity of a search tool with three parameters and no output schema, the description is incomplete. Lacks information on return values, filtering behavior, and usage context relative to sibling music search 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 0% and the description does not explain any of the three parameters (query, artist, limit). Does not clarify what 'query' should contain or how 'artist' and 'limit' affect results.
Input schemas describe structure but not intent. Descriptions should explain 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 states the verb 'Search' and the resource 'releases/albums' on MusicBrainz. Distinguishes from sibling tools like mb_search_artists and mb_search_recordings by specifying 'releases/albums'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives such as mb_get_release for a specific release or other search tools. No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_server_statusBRead-onlyIdempotent
Check the status of a Minecraft server (Java or Bedrock).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Server address (e.g. mc.hypixel.net) | |
| edition | No | java or bedrock (default java) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety and network-touching profile is covered structurally. The description adds the useful detail that both Java and Bedrock servers are supported, but says nothing about behavior on an offline/unreachable server, timeouts, or whether failures return an error or a status payload.
Agents need to know what a tool does to the 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 front-loaded sentence with zero filler; nothing is redundant. Its brevity is efficient but leaves the definition thin, which is captured in the other dimensions rather than here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations, the core is adequate. However, with no output schema, the description gives no hint of what 'status' includes (online state, player count, version, latency) or how an unreachable host is reported, leaving the return shape entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'address' has an example (mc.hypixel.net) and 'edition' documents java/bedrock with a default. The description's '(Java or Bedrock)' merely echoes the edition parameter, adding no format or edge-case guidance 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 and resource ('Check the status of a Minecraft server') and adds scope with '(Java or Bedrock)', which tells an agent both editions are handled. It doesn't differentiate from similar lookups in the sibling list (isup_check, uptimerobot_get_monitors), but the domain is distinctive enough to stand alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 isup_check or uptimerobot_get_monitors, and no stated prerequisites or exclusions. Usage is only inferable from the name and one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_categoriesARead-onlyIdempotent
List all meal categories.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds only the word 'all', which is a mild completeness signal (no pagination, no filtering), but says nothing about result size, ordering, or whether the list is static.
Agents need to know what a tool does to the 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 with no filler; nothing is padded or restated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-arg, read-only enumeration tool with full annotation coverage and no output schema, this is nearly sufficient. The only missing element is a hint about what the returned categories look like or how they feed the filter 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?
Zero parameters with an empty properties object, so the baseline is 4. The description correctly implies no inputs are needed; there is nothing further to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (List) and resource (meal categories) with an implied exhaustive scope from 'all'. It does not distinguish itself from siblings like meal_filter_by_category or cocktail_categories, which would matter for an agent choosing how to get category 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?
Usage is only implied: listing categories is the natural precursor to filtering by category, but the description never says so or names meal_filter_by_category as the follow-up. No when-not or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_filter_by_areaB
Filter meals by cuisine/area.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states the filtering action; no disclosure of error handling, return format, or behavior for invalid area inputs. Lacks critical 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?
Extremely concise single sentence with no fluff. Every word is necessary for the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool (one param, no output schema), the description is too sparse. It fails to explain what the tool returns, any assumed default behavior, or limitations. Incomplete for reliable 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 has 0% description coverage. The description adds 'cuisine/area' context, suggesting 'area' refers to cuisine regions, which adds meaning beyond the schema's parameter name alone. However, it does not specify format or 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 action ('Filter meals') and the criterion ('by cuisine/area'), distinguishing it from sibling tools like meal_filter_by_category and meal_filter_by_ingredient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives (e.g., meal_search or other filters). The description implies use when filtering by area/cuisine, but lacks exclusions or mention of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_filter_by_categoryC
Filter meals by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only says 'Filter meals by category.' It does not specify return format, pagination, or any side effects, leaving the agent without critical 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 concise at one sentence, but it is under-specified. It achieves brevity at the cost of clarity and completeness, which is acceptable only for very simple tools with rich external 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 the tool's single parameter and no output schema, the description is severely incomplete. It does not explain what the tool returns, how to use the parameter, or any prerequisites, making it inadequate for an agent to use 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?
Schema coverage is 0%—the 'category' parameter has no description or enum. The description adds no meaning beyond the parameter name, failing to clarify what values are acceptable or how they relate to meal categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Filter' and resource 'meals by category', distinguishing it from sibling tools like meal_filter_by_area and meal_filter_by_ingredient. However, it lacks elaboration on what a 'category' is or how it relates to other meal 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 provided on when to use this tool instead of alternatives such as meal_filter_by_area or meal_filter_by_ingredient. It does not mention that meal_categories can be used to obtain valid categories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_filter_by_ingredientC
Filter meals by main ingredient.
| Name | Required | Description | Default |
|---|---|---|---|
| ingredient | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the filtering action. With no annotations, the agent gets no information about safety, authentication requirements, or response format, making transparency very low.
Agents need to know what a tool does to the world before calling 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 is appropriately sized for a simple tool. It is front-loaded with verb and noun, though it could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, lack of schema description, no annotations, and no output schema, the description is far from complete. It does not explain the output format, matching behavior, or any limitations, leaving significant 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 'ingredient' has no schema description and the tool description merely says 'by main ingredient', adding no examples, constraints, or format details. The agent must infer valid inputs from the name 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 'Filter meals by main ingredient' clearly states the specific verb and resource, and differentiates from sibling tools like meal_filter_by_area and meal_filter_by_category which filter by different criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as meal_search or other filter tools. The description lacks any context about preferred use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_get_by_idCRead-onlyIdempotent
Get a meal/recipe by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on what happens for a missing/invalid ID, whether the lookup hits an external API, or what a not-found response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no waste. It is appropriately sized for a trivial lookup, though the terseness leaves the gaps noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with no output schema, the essentials are present, but an agent cannot predict the return shape (full recipe? ingredients? instructions?) or the failure mode, which matters more here since there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden, yet it only echoes that an ID is needed. It never says whether the ID is numeric, a slug, or a MealDB-style string, nor how to obtain one.
Input schemas describe structure but not intent. Descriptions should explain 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 a meal/recipe by ID'), and 'by ID' distinguishes it from siblings like meal_search, meal_random and meal_filter_by_category. It does not explicitly name those alternatives, but the retrieval-by-identifier 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?
No guidance on when to use this instead of meal_search or meal_random, and no prerequisites such as where the ID comes from. The agent must infer that an ID is required from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_randomBRead-onlyIdempotent
Get a random meal/recipe.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, openWorld and idempotent, so safety is covered. The description adds the key trait that results are random (non-repeating per call), which is useful context the annotations do not convey. It says nothing about result shape, image/instruction fields, or reliability of the underlying source.
Agents need to know what a tool does to the 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 short sentence with no filler and the core intent front-loaded. It is efficient, though the same brevity is the cause of the missing usage and output 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 no-parameter random-pick tool with annotations covering safety and no output schema, the description is minimally sufficient. It omits what a returned meal contains (name, category, area, instructions, image URL) and whether the pool is global, which the agent would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the empty schema confirms no argument choices exist.
Input schemas describe structure but not intent. Descriptions should explain 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 a random meal/recipe'), and the word 'random' distinguishes it from meal_search and meal_filter_by_* siblings. It stops short of explicitly naming which sibling to use instead, but the action 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?
No guidance on when to choose this over meal_search, meal_get_by_id, or the meal_filter_* variants. The only implicit cue is 'random', leaving the agent to infer that filtering/browsing should go elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meal_searchCRead-onlyIdempotent
Search for meals/recipes by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
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 fully covered by structured data. The description adds nothing beyond that baseline: no statement about match behavior (substring vs exact), result limits, or what a match returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity is as much under-specification as it is concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 says nothing about result shape (IDs vs names vs thumbnails), pagination or result caps, or what happens when nothing matches. An agent would have to probe to learn how to consume results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the single 'query' parameter is undocumented there, so the description's 'by name' does add real meaning: the query is a meal name, not an ingredient, category, or ID. It still leaves ambiguity about partial matching, casing, and multi-word queries.
Input schemas describe structure but not intent. Descriptions should explain 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 (meals/recipes) plus the matching dimension ('by name'), which distinguishes it from siblings like meal_filter_by_category and meal_filter_by_ingredient. It stops short of naming those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives such as meal_filter_by_area, meal_random, or meal_get_by_id. The 'by name' phrasing only weakly implies that this is a name-lookup tool rather than a browse/filter tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memegen_createB
Generate a meme image URL from a template, top text, and bottom text.
| Name | Required | Description | Default |
|---|---|---|---|
| template | No | Template id (default: fry). Use memegen_templates to list. | |
| top_text | No | Top line of the meme. | |
| bottom_text | No | Bottom line of the meme. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the return artifact (a URL rather than a binary image), which is genuinely useful, but says nothing about failure behavior for an unknown template id, rate limits, or URL persistence.
Agents need to know what a tool does to the 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 naming the operation and its inputs with zero padding. Nothing is repeated or 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, zero-required-parameter tool this is nearly sufficient: it names the output (a URL) in the absence of an output schema, and the schema covers the template default and listing route. Only behavioral edge cases and sibling routing are 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 template (including the fry default and the pointer to memegen_templates) and both text fields. The description merely restates the three inputs without adding format, length, or escaping semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact: 'Generate a meme image URL' plus the three inputs that drive it. An agent immediately knows this produces a meme image, but the description never distinguishes it from the sibling memegen_templates, which the agent must discover from the schema instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, no prerequisites, and never mentions memegen_templates as the discovery step or any alternative. The only routing hint ('Use memegen_templates to list') lives in the schema's template property, not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memegen_templatesBRead-onlyIdempotent
List available meme templates from memegen.link.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered structurally. The description adds only the data source and says nothing about result size, pagination, or whether template IDs returned feed into memegen_create.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no waste. It is arguably undersized for the coordination role it plays with memegen_create, but it is 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 no-param list tool with annotations covering safety this is close to adequate, but there's no output schema and the description doesn't say what the templates look like or how they connect to memegen_create, leaving the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. There's nothing parameter-related to explain, and the description correctly implies a simple no-arg list call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: lists meme templates from memegen.link. Tells an agent exactly what it gets. However, it doesn't distinguish the purpose from the sibling memegen_create, so the boundary between listing and creating is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus memegen_create, no prerequisites stated. The typical use (discover template IDs before creating a meme) is inferable but never said.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metaphone_encodeBRead-onlyIdempotent
Encode words using the Metaphone phonetic algorithm, optionally comparing two words.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Word(s) to encode. | |
| compare | No | Second word to compare phonetically. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorldHint and non-destructive, so the safety profile is covered. The description adds only that comparison is optional and that the algorithm is Metaphone; it says nothing about determinism of the output, casing/character handling, or what a comparison yields.
Agents need to know what a tool does to the 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 sentence, front-loaded with the core action and no filler. The trailing compare clause is slightly bolted-on but overall highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should say what an encode returns (a phonetic code string) and, critically, what the compare mode returns (a boolean match or both codes). Neither is stated, leaving the return shape ambiguous for a tool whose main value is the comparison mode.
Complex tools with many parameters or behaviors need more documentation. Simple 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 `text` and `compare` documented in the schema itself. The description's 'second word to compare phonetically' restates the schema's own wording and adds only the word 'optionally', 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?
States a specific verb (encode) and resource (words via the Metaphone phonetic algorithm) and flags the optional comparison mode. It does not distinguish itself from the closest sibling, soundex_encode, which an agent might reasonably confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'optionally comparing two words' implies a second use case (phonetic matching) but gives no explicit when-to-use, when-not-to-use, or pointer to soundex_encode / phonetic_spell as alternatives. Usage must be inferred from the capability statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
met_departmentsB
List all departments in the Metropolitan Museum of Art.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, but for a zero-parameter read-only enumeration there is little behavioral surface to disclose. It implies a read operation via 'List' but does not explicitly state there are no side effects or whether the result is cached/static.
Agents need to know what a tool does to the 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 with zero filler, appropriate for a trivial enumeration 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 no-param, no-annotation, no-output-schema tool the description is minimal but mostly sufficient to call it. It could add one clause about what the returned departments are for (e.g., use IDs with met_object/met_search), which would lift the contextual fit.
Complex tools with many parameters or behaviors need more documentation. 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 takes no parameters, so there is no parameter semantics to convey. Baseline 4 applies for a parameterless 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?
States a specific verb (List) and resource (all departments in the Metropolitan Museum of Art), so the purpose is immediately clear. It does not distinguish itself from siblings like met_object or met_search, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus the sibling Met tools (met_search, met_object), nor that department listing is typically a precursor to browsing objects by department. Usage is only weakly inferable from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
met_objectA
Get full details for a Met Museum artwork by object ID.
| Name | Required | Description | Default |
|---|---|---|---|
| objectID | Yes | Met Museum object ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description implies a read-only lookup of 'full details.' It does not disclose return size, image/field richness, error behavior for invalid IDs, or whether the response is cached, leaving some behavioral context unspecified for a tool with no 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?
A single, well-formed sentence with the resource and key front-loaded. 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, single-parameter retrieval tool with no output schema, the description supplies enough to call it correctly. Additional detail on what 'full details' contains or how errors surface would complete 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% for the single objectID parameter, so the schema already documents it. The description's 'by object ID' phrasing restates rather than adding format or source context beyond the schema, matching the baseline for full 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 (Get) and resource (Met Museum artwork) with the lookup key (object ID). It clearly differs from search-oriented siblings like met_search, though it does not name any sibling 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?
Usage is implied: retrieve a single artwork when you already have its object ID, versus browsing/searching. No explicit when-to-use or when-not/alternative guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
met_searchCRead-onlyIdempotent
Search the Metropolitan Museum of Art collection for artworks.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. sunflowers, Egyptian, armor) | |
| hasImages | No | Only return objects with images (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds nothing beyond that — no note on result limits, pagination, whether matching is keyword or fuzzy, or how many records come back for a broad query like 'Egyptian'.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler. It is efficient, though arguably under-specified rather than deliberately tight — nothing extra earns its place because nothing extra exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with a fully documented schema and clear annotations, the essentials are present. But with no output schema, the description says nothing about result shape or volume, which matters for a broad collection search.
Complex tools with many parameters or behaviors need more documentation. Simple 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 query examples (sunflowers, Egyptian, armor) and the hasImages default of true are fully documented in the schema. The description contributes no additional parameter semantics, 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 (search) and resource (the Met's collection of artworks), so an agent knows exactly what it queries. It does not distinguish itself from sibling met_object or met_departments, which an agent would have to resolve by 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?
No indication of when to prefer this over met_object (fetch a specific object) or met_departments, nor any prerequisite or exclusion. The agent is left to infer the search-vs-fetch split from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhw_monstersB
Search Monster Hunter World monsters by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Monster name to search. | |
| limit | No | Max results (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It says nothing about result shape, pagination, whether name is required, whether the search is substring or exact, or rate limits. A read-only search is low-risk, but the description is silent on behavior the annotations would otherwise 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?
A single front-loaded sentence with zero filler. Perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial two-param search with a fully described schema and no output schema, the description is minimally viable. However, it omits the one thing that would help an agent: whether name is optional and what an empty call returns, plus match semantics. Adequate but with a clear 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 both parameters (name, limit with default 10) are already documented in the schema. The description adds nothing about match semantics (exact vs. partial, case sensitivity), which would be the valuable addition. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Search) plus resource (Monster Hunter World monsters) plus the search field (by name). It's clear what the tool does, though it doesn't reference its sibling mhw_weapons to establish the domain scope 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 gives no when-to-use context, no alternatives, and no exclusions. It doesn't tell the agent that this only searches by name (not by type, element, or weakness), which is the most likely mis-invocation given the sibling mhw_weapons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mhw_weaponsB
Browse Monster Hunter World weapons by type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Weapon type (e.g. great-sword, long-sword, bow, hammer). | |
| limit | No | Max results (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't say whether results are paginated, what the default limit behavior is, whether the type filter is exact match or fuzzy, or what happens when no type is given. A read-only browsing tool should at minimum indicate it is a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is perfectly front-loaded with the core action and resource. No filler words, no redundancy, appropriately sized for a simple list 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?
The tool is simple (2 optional params, no nested objects, no output schema), so a short description is defensible. However, with no annotations and no output schema, the description is silent on return shape, pagination, and type format specifics beyond the schema examples. It is adequate but leaves meaningful gaps for an agent to call confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 ('type' with examples, 'limit' with default). The description adds no additional parameter semantics beyond what the schema provides. Baseline 3 is appropriate when schema does all 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 (Browse) and resource (Monster Hunter World weapons) with a filtering dimension (by type). It is clear what the tool returns a list of. It does not differentiate itself from sibling tools like mhw_monsters, though the resource name makes the distinction reasonably obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when or when not to use this tool versus alternatives, and no prerequisites or context. The description merely states what the tool does, leaving the agent to infer usage from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
midpoint_calcARead-onlyIdempotent
Calculate the midpoint, distance, slope, and angle between two 2D points.
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | X of first point. | |
| x2 | Yes | X of second point. | |
| y1 | Yes | Y of first point. | |
| y2 | Yes | Y of second point. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive, so purity and safety need no restating. The description adds that four distinct values are computed, which is useful behavior since there is no output schema, but it says nothing about edge cases such as coincident points (undefined slope/angle) or vertical segments where slope is infinite.
Agents need to know what a tool does to the 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 with no filler, no hedging, and no repetition of the tool name. Every clause (the four computed quantities, the two-point scope) 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 pure-arithmetic tool with full parameter documentation and no output schema, listing the four return values in the description closes the main gap. The remaining omission is degenerate-input behavior (identical or vertically aligned points), which would help an agent interpret 'slope' and 'angle' results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each of x1/y1/x2/y2 is already documented as a coordinate. The description's only added semantic is the grouping of the parameters into two points, which the schema labels convey only implicitly. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') plus the exact resources produced (midpoint, distance, slope, angle) between two 2D points. The enumeration of outputs distinguishes it from nearby siblings like slope_intercept, dot_product, and segment_intersection without any 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 phrase 'between two 2D points' implies the input situation (two coordinate pairs), but there is no explicit when-to-use guidance, no exclusion of degenerate cases, and no named alternative such as slope_intercept or segment_intersection for callers who only need one of the outputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
miller_rabin_testB
Test whether a number is prime using the deterministic Miller-Rabin primality test with multiple witnesses.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The number to test for primality (up to 10^18) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the test is deterministic with multiple witnesses, implying no probabilistic false positives in the supported range. However, it does not describe the return format (boolean), error behavior, or performance 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?
A single, front-loaded sentence with no wasted words. The core action and algorithm are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 predicate tool with a fully documented schema and no output schema, the description is nearly complete. The only minor gap is that it does not explicitly state the return value (true/false), though that is strongly implied by 'Test whether a number is prime.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 the single 'number' parameter, including its 10^18 upper bound. The description adds no parameter-specific syntax or constraints beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Test') and resource ('whether a number is prime') and names the algorithm. It does not distinguish itself from sibling tools like prime_check or sieve_of_eratosthenes, so an agent cannot tell which primality tool to pick 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?
No guidance on when to use this tool versus alternatives. There is no mention of prime_check, sieve_of_eratosthenes, or the conditions (e.g., very large numbers) that would make this the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
min_cost_max_flowC
Compute minimum cost maximum flow using successive shortest paths (SPFA).
| Name | Required | Description | Default |
|---|---|---|---|
| sink | Yes | Sink vertex | |
| edges | Yes | Edges as [from, to, capacity, cost] | |
| source | Yes | Source vertex | |
| vertex_count | Yes | Number of vertices |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It names the algorithm but doesn't state what the function returns (is it just the cost? the flow amount? the flow assignment?), whether it mutates inputs, or what happens with infeasible flows. For a procedural tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the 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 verb and resource ('Compute minimum cost maximum flow') and appends the algorithmic method as a parenthetical. No wasted words, no 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 complex graph algorithm with four required parameters, no annotations, and no output schema, the description is too sparse. An agent needs to know the return format, edge cases (negative cycles?), and when to prefer this over dinic_max_flow or hungarian_assign. It should do more to be 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 four parameters in detail (edges as [from, to, capacity, cost], source, sink, vertex_count). The description adds no parameter-level information beyond validating the overall computation concept. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific algorithmic operation (minimum cost maximum flow) with a named implementation approach (successive shortest paths / SPFA). This distinguishes it from generic max-flow siblings like dinic_max_flow and edmonds_karp by implying cost-awareness, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the numerous other graph algorithm siblings (dijkstra_path, bellman_ford, dinic_max_flow, edmonds_karp, hungarian_assign, etc.). No prerequisites, no mention of when min-cost-max-flow is preferable to plain max flow or shortest path, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
min_vertex_coverA
Find the minimum vertex cover of a graph using exact bitmask enumeration (up to 20 vertices).
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Edges as [u, v] pairs | |
| vertex_count | Yes | Number of vertices (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the algorithmic approach (exact bitmask enumeration) and the size constraint (20 vertices), which is meaningful behavioral context. But it doesn't state whether the result is optimal, what the return format is, or the failure mode for oversized graphs.
Agents need to know what a tool does to the 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 purpose and immediately qualifies the computational limit. 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 moderately complex algorithm tool with no annotations and no output schema, the description covers purpose and scale but omits key details like output format (list of vertices vs cover size), failure behavior beyond 20 vertices, and whether the graph is treated as undirected. Adequate but with clear 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%, so the schema already documents both parameters including the vertex_count max. The description adds no syntax or format details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and resource (minimum vertex cover of a graph) and distinguishes itself from algorithm siblings by naming the exact method (bitmask enumeration). An agent can tell this apart from max_independent_set or graph_coloring immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'up to 20 vertices' implies the domain of applicability, which is useful guidance. However, it doesn't explicitly say when to use this vs alternatives like approximation algorithms, nor does it state what happens for larger graphs (error? different tool?).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
miro_get_boardBRead-onlyIdempotent
Get a single Miro board by id.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Miro board id | |
| access_token | Yes | Miro access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the operation as read-only, idempotent, open-world, and non-destructive. The description adds no behavioral context beyond that, such as permission requirements, rate limits, or what happens if the board id is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple get-by-id operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema coverage, rich annotations, and no output schema, the description is nearly complete. A mention of authentication or board-not-found behavior would make it fully self-contained, but those gaps 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 `board_id` and `access_token` are already documented in the schema. The description reinforces that `board_id` identifies a single board but adds no syntax or format details 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 specific verb and resource: 'Get a single Miro board by id.' The word 'single' helps distinguish it from list-style sibling tools, but it does not explicitly name `miro_list_boards` or otherwise route the agent between 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?
'By id' implies this tool is used when a known board id is available, but the description gives no explicit when-to-use guidance, prerequisites, or alternatives such as `miro_list_boards`. Usage is only weakly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
miro_list_boardsCRead-onlyIdempotent
List Miro boards.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Boards to return (max 50, default 25) | |
| query | No | Filter boards by name | |
| access_token | Yes | Miro access token |
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 nothing beyond that: no mention of pagination limits, filtering semantics, ordering, or what a board entry includes, which is the value a description should 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 a single front-loaded sentence with zero waste. It is appropriately sized for a simple list tool, though it is under-informative rather than optimally 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 low-complexity read-only listing with complete param documentation and rich annotations, the description covers the core action. However, with no output schema, it omits return-shape and pagination details an agent might reasonably want before calling 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 limit (max 50, default 25) and query (name filter) semantics are already fully documented in the schema. The description adds no parameter meaning beyond the structured fields, making 3 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?
States a specific verb and resource ('List Miro boards'), so the agent knows it enumerates boards. It does not distinguish itself from nearby siblings such as miro_get_board or other board-listing tools, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives like miro_get_board, nor any prerequisites beyond the schema's access_token. The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
miro_list_itemsBRead-onlyIdempotent
List the items (notes, shapes, text) on a Miro board.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by item type (e.g. sticky_note, shape, text) | |
| limit | No | Items to return (max 50, default 25) | |
| board_id | Yes | Miro board id | |
| access_token | Yes | Miro access token |
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 contributes the content type of the results (notes, shapes, text) but is silent on pagination behavior, ordering, and the fact that a Miro access token is required, which leaves meaningful context gap for an open-world API call.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, with zero filler. It is efficient but arguably undersized for a four-parameter listing tool, so the tightness comes partly from omission rather than editorial discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description is the only place to learn what an item record contains, and it gives only three example type names. Combined with the missing pagination and ordering notes, an agent can call the tool but cannot predict the response shape well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 of the four parameters has its own description, including the type filter and the limit cap. The description's mention of notes/shapes/text loosely echoes the type filter but adds no syntax or 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?
States a specific verb and resource ("List the items ... on a Miro board") and clarifies item scope with examples (notes, shapes, text), which separates it from miro_list_boards and miro_get_board. It stops short of naming those siblings explicitly, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says the listing is board-scoped but offers no when-to-use guidance, no conditions for choosing it over miro_get_board or miro_list_boards, and no exclusions. An agent must infer the routing decision from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mistral_chat_completionC
Run a chat completion with a Mistral AI model (mistral-small, mistral-medium, mistral-large, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID (default: mistral-small-latest) | |
| top_p | No | ||
| prompt | No | Single user message (alternative to messages) | |
| api_key | No | Mistral API key | |
| messages | No | JSON array of {role, content} messages | |
| max_tokens | No | ||
| temperature | No | ||
| system_prompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the core action but omits critical behavioral details such as token limits, streaming support, error handling, cost implications, or authentication requirements (api_key is a parameter but not mentioned). The description provides minimal behavioral insight.
Agents need to know what a tool does to the world before calling 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 succinct sentence, front-loading the key verb and resource. It is efficient with no wasted words, though it could be slightly more structured to improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description is overly brief. It does not mention required parameters (prompt or messages), return format, or potential errors, leaving agents without sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what the input schema already provides. Schema coverage is 50% (4 of 8 parameters described), and the description does not compensate for the undocumented parameters, such as system_prompt, max_tokens, temperature, and top_p.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a chat completion using Mistral AI models, listing example model IDs. This distinguishes it from non-chat tools, but does not explicitly differentiate from other chat completion tools among siblings, though the mention of 'Mistral' implies the provider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives (e.g., OpenAI, Groq, etc.), nor any prerequisites or explicit exclusions. The description simply states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mistral_create_embeddingC
Create vector embeddings for text using Mistral's embedding model.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text or JSON array of strings to embed | |
| model | No | Embedding model (default: mistral-embed) | |
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not mention behavioral traits such as idempotency, token consumption, or rate limits. The phrase 'Create vector embeddings' implies a write-like operation but lacks clarity on side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no verbosity. It is concise but could benefit from mentioning output format. Front-loads the core purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 3 parameters and no output schema, the description should explain the return value (embedding vector). It does not. Additionally, no guidance on when to use this over sibling embedding tools from other providers.
Complex tools with many parameters or behaviors need more documentation. Simple 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 67% (2 of 3 params have descriptions). The description adds no extra meaning beyond the schema. Baseline 3 is appropriate as 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 states 'Create vector embeddings for text using Mistral's embedding model,' which is a specific verb+resource. It distinguishes from sibling tools like mistral_chat_completion but does not differentiate from other embedding tools (e.g., cohere_embed, openai_create_embedding).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives (e.g., cohere_embed, openai_create_embedding). The description lacks context about prerequisites or scenarios for embedding creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mistral_list_modelsCRead-onlyIdempotent
List all available Mistral AI models.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
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 only 'all available,' which minimally clarifies scope but does not add behavioral context such as authentication needs, pagination, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It states the action and resource immediately and contains no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and annotations cover safety, but with no output schema the description does not explain what the returned model list contains or how authentication is handled. It is adequate for a basic list operation but leaves 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?
There is one parameter, api_key, with 0% schema description coverage. The description does not mention authentication or explain the parameter, though the name is largely self-explanatory, preventing a lower 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 gives a specific verb and resource: 'List' and 'Mistral AI models,' which clearly separates it from mistral_chat_completion and mistral_create_embedding. It does not explicitly distinguish itself from other providers' list_models tools beyond the provider name, 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?
It states what the tool does but gives no when-to-use or when-not-to-use guidance and names no alternatives. An agent must infer that this is for model discovery rather than chat or embeddings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixpanel_export_dataC
Export raw Mixpanel event data for a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | Filter by event names | |
| limit | No | Max events to return | |
| where | No | Filter expression | |
| to_date | No | End date (YYYY-MM-DD, default: today) | |
| from_date | No | Start date (YYYY-MM-DD, default: yesterday) | |
| project_id | Yes | Mixpanel project ID | |
| service_account_secret | Yes | Mixpanel Service Account secret | |
| service_account_username | Yes | Mixpanel Service Account username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It only states the action without disclosing pagination, data volume limits, rate limits, authentication details, or any side effects. This is insufficient for an export 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 a single, concise sentence with no wasted words. However, its brevity sacrifices completeness, preventing a higher 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 tool has 8 parameters and no output schema, the description is too sparse. It fails to explain return format, pagination behavior, or any operational constraints, making it incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 baseline is 3. The description does not add extra meaning beyond what the schema already provides for each parameter. No additional context about parameter usage or constraints is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Export raw Mixpanel event data for a date range', clearly stating the verb, resource, and scope. It distinguishes from siblings like mixpanel_get_events by emphasizing 'raw' data, but does not explicitly contrast with 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 no guidance on when to use this tool versus alternatives. It lacks information on prerequisites, context, or exclusions, leaving the agent without enough decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixpanel_get_eventsBRead-onlyIdempotent
Get Mixpanel event analytics data for a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Aggregation type (default: general) | |
| unit | No | Time unit (default: day) | |
| event | No | Event names to filter by | |
| to_date | No | End date (YYYY-MM-DD, default: today) | |
| from_date | No | Start date (YYYY-MM-DD, default: 7 days ago) | |
| project_id | Yes | Mixpanel project ID | |
| service_account_secret | Yes | Mixpanel Service Account secret | |
| service_account_username | Yes | Mixpanel Service Account username |
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 only the date-range scoping, and says nothing about authentication expectations for the required service-account credentials or about response shape/size.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though it is arguably too sparse for a tool with eight parameters rather than being trimmed of 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 an eight-parameter analytics query with three required auth parameters and no output schema, the description leaves the agent without any sense of what the returned data looks like or how the aggregation/time-unit choices affect it. Annotations and schema cover safety and parameters, but the result semantics 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?
Schema description coverage is 100%, with both enums (type, unit) and defaults documented in the schema. The description adds no meaning beyond 'date range' — it does not explain what the aggregation types produce or how multi-event filtering behaves, so it neither helps nor harms.
Input schemas describe structure but not intent. Descriptions should explain 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 Mixpanel event analytics data') plus a scope qualifier ('for a date range'). It is clearly distinct from mixpanel_get_funnels and mixpanel_get_retention in substance, but it never names those siblings to make the distinction 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?
No guidance on when to use this rather than mixpanel_get_funnels, mixpanel_get_retention, or mixpanel_export_data. The date range is the only implied selection condition, and there are no prerequisites or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixpanel_get_funnelsCRead-onlyIdempotent
Get funnel conversion data from Mixpanel.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | Time unit | |
| to_date | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD, default: 30 days ago) | |
| funnel_id | Yes | Funnel ID (find in Mixpanel UI) | |
| project_id | Yes | Mixpanel project ID | |
| service_account_secret | Yes | Mixpanel Service Account secret | |
| service_account_username | Yes | Mixpanel Service Account username |
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 nothing further about behavior — no mention of the default 30-day window, pagination, rate limits, or the fact that a paid/authenticated Mixpanel service account is needed. It is essentially a restatement of the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero padding. It is efficiently sized, though the extreme brevity means there is no structure beyond the single 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?
With seven parameters, four required, and no output schema, the description should at least hint at what a funnel conversion response contains (steps, conversion rates, date-range behavior). None of that is present, and no authentication context beyond the schema's service-account fields is given, leaving a meaningful gap for a data-query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters including the date range defaults and the funnel_id lookup hint are already documented. The description contributes no additional parameter meaning, which meets the baseline 3 for schema-driven 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?
States a specific verb ('Get') and resource ('funnel conversion data') with the vendor named, so the intent is unambiguous. It does not distinguish itself from siblings such as mixpanel_get_events or mixpanel_get_retention, so an agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus mixpanel_get_events, mixpanel_get_retention, or mixpanel_export_data, and no prerequisites or exclusions are given. The agent is left to infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixpanel_get_retentionCRead-onlyIdempotent
Get user retention analytics from Mixpanel.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | Time unit (default: day) | |
| event | No | Retention event to measure | |
| to_date | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD, default: 30 days ago) | |
| born_event | No | Event that defines user acquisition | |
| project_id | Yes | Mixpanel project ID | |
| retention_type | No | Retention type (default: birth) | |
| service_account_secret | Yes | Mixpanel Service Account secret | |
| service_account_username | Yes | Mixpanel Service Account username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds nothing beyond that: it does not explain the difference between 'birth' and 'compactness' retention, the 30-day default window, or any rate limits or auth behavior — notable gaps for a read-only analytics query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is one short sentence with no filler, but it is under-specified rather than efficiently concise: for a 9-parameter analytics tool, the single clause leaves the important semantics unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Nine parameters including three required credentials, two enums and a date range, with no output schema, mean the description should carry more weight. It does not explain what a retention result looks like or how the cohort and unit options shape 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 every parameter already carries documentation and the baseline is 3. The description adds no extra meaning, such as how born_event and event interact or how retention_type changes the results, so it 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 names a specific verb and resource ('Get user retention analytics') from a named provider, which is enough to separate it from siblings like mixpanel_get_events and mixpanel_get_funnels. It does not explicitly say what makes retention distinct from those, 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 gives no guidance on when to choose retention over funnels or events, no prerequisites, and no note that service-account credentials are required. The agent must infer the use case from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixpanel_track_eventC
Track a custom event in Mixpanel.
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | Event name | |
| token | Yes | Mixpanel project token (for ingestion) | |
| project_id | Yes | Mixpanel project ID | |
| properties | No | Additional event properties | |
| distinct_id | No | User distinct ID (default: anonymous) | |
| service_account_secret | Yes | Mixpanel Service Account secret | |
| service_account_username | Yes | Mixpanel Service Account username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It merely restates the action ('track a custom event') without explaining side effects (e.g., immediate ingestion, asynchronous processing), required permissions beyond the schema, or rate limits. This is only slightly better than a tautology.
Agents need to know what a tool does to the world before calling 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 of 6 words, which is very concise. It front-loads the core purpose. While it could include more detail, for conciseness it is efficient and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 7 parameters (5 required) and no output schema, the description is too minimal. It does not explain expected outcomes, error scenarios, or any constraints. The rich schema partially compensates, but the description fails to provide the operational context needed for complex 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 parameters. The description adds no extra meaning about how parameters interact, default values, or usage patterns. It meets the baseline of 3 but does not enhance understanding 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 'Track a custom event in Mixpanel', which clearly indicates the tool's action (tracking) and resource (custom event in Mixpanel). It distinguishes from sibling Mixpanel tools that query data (e.g., mixpanel_get_events) by using the verb 'track', but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Given sibling tools like mixpanel_get_events, mixpanel_get_funnels, etc., explicit usage context would be beneficial. The one-sentence description lacks any when-to-use, when-not-to-use, or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modular_arithmeticA
Modular arithmetic operations: modpow (a^b mod m), modinverse (a^-1 mod m), or mod (a mod m).
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | Base value. | |
| b | No | Exponent (required for modpow). | |
| m | Yes | Modulus (positive integer). | |
| operation | Yes | Operation: modpow, modinverse, or mod. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the computational semantics of each operation, which is useful, but says nothing about failure modes (e.g., non-invertible a for modinverse), numeric type behavior, or that the modulus must be a positive integer. The mathematical content is solid but the operational edge cases are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the domain front-loaded and the three operations parenthetically defined. Zero filler; every clause clarifies the operation parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pure-computation tool with no output schema or annotations, the description explains the computations adequately but omits constraints that affect correct invocation, such as coprime requirements for modinverse and the conditional nature of b. Sufficient to call, but not 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 a, b, m, and operation. The description's formulas reinforce the meaning of the operation parameter beyond the schema's plain list, but add no format or constraint detail the schema lacks, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the tool's domain (modular arithmetic) and enumerates the three operations with explicit mathematical formulas (a^b mod m, a^-1 mod m, a mod m), so an agent immediately knows what it computes. It doesn't differentiate itself from nearby siblings like chinese_remainder or euler_totient, but the operation list 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?
Usage is implied through the operation definitions: an agent can infer it should pick modpow for exponentiation mod m, modinverse for inverses, or mod for plain reduction. However, there is no explicit when-to-use guidance, no mention of alternatives, and no note that modinverse requires gcd(a, m) = 1.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
moebius_functionC
Compute Moebius function values and Mertens function using linear sieve.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Positive integer upper bound (max 10,000,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions the linear sieve algorithm, but it does not state the return format, whether all values up to n are returned, how Mertens is represented, or any time/memory implications beyond the schema's max bound.
Agents need to know what a tool does to the 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 sentence, front-loaded with the compute action and no filler. It is appropriately sized for the description, though its brevity contributes to other gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should explain return values. It does not clarify whether the result is an array of Moebius values up to n, a single Mertens value, or both, leaving an agent uncertain about 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?
The single parameter n has 100% schema description coverage, including positive integer and max 10,000,000. The description adds no parameter 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?
States a specific verb and two mathematical resources: Moebius function values and Mertens function, plus the method (linear sieve). It is clear what computation is performed, though it does not distinguish itself from related number-theory siblings or clarify the exact output shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives such as sieve_of_eratosthenes, prime_check, or euler_totient. There are no prerequisites, exclusions, or context for choosing this computation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monica_actionC
Perform a Monica CRM action: get_contacts, search_contacts, get_contact, create_contact, get_contact_reminders, get_activities, add_note.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| action | Yes | ||
| api_key | No | ||
| last_name | No | ||
| contact_id | No | ||
| first_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits like mutability (create_contact, add_note are write operations), authentication requirements (api_key parameter unexplained), or rate limits. The description is too sparse to compensate for missing 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, which is concise, but it lacks structure and detail. It is not verbose, but the brevity comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters and multiple actions, the description is severely incomplete. No output schema, no parameter relationships, and no explanation of return values or error conditions. It fails to provide enough context for an AI agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only lists action values without explaining other parameters (api_key, contact_id, query, etc.). The relationship between actions and parameters is implied but not explicit, offering minimal additional insight 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 it performs Monica CRM actions and lists specific action names (e.g., get_contacts, create_contact), making the tool's purpose understandable. However, it does not define what Monica CRM is, relying on assumed knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. The description lacks context such as prerequisites, when not to use, or comparison with similar tools (e.g., other CRM action tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monte_carlo_estimateBRead-onlyIdempotent
Monte Carlo estimation: estimate pi or compute a definite integral via random sampling.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | Lower bound for integral | |
| b | No | Upper bound for integral | |
| seed | No | Random seed for reproducibility | |
| method | No | Estimation method (default pi) | |
| samples | No | Number of random samples (default 10000, max 10000000) | |
| expression | No | JS expression in x for integral method |
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 come from random sampling, hinting at stochastic output and the relevance of the seed, but it does not mention accuracy behavior, cost of up to 10M samples, or what is returned. That is useful but modest added context against the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core purpose and both modes appear immediately. Nothing is wasted, even if more could have been said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 all-optional parameters, full schema coverage, and no output schema, the description covers the main modes adequately. However, it does not explain what the result looks like (a scalar estimate, possibly with error or sample metadata) or how 'expression' is evaluated, leaving gaps for a computation tool that returns unstructured output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (a, b, seed, method, samples, expression) is already documented with defaults and ranges. The description only restates the two modes at a high level and adds no semantics beyond what the schema provides, which is the expected 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?
States a specific verb and resource ('Monte Carlo estimation') and names both supported modes (pi, definite integral via random sampling). It does not distinguish itself from nearby math siblings such as numerical_integrate or pi_approx, so an agent cannot tell from the description alone which numerical tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to choose this over numerical_integrate, pi_approx, or other numerical tools, nor when each method ('pi' vs 'integral') is appropriate. The only implied usage cue is 'via random sampling', leaving the choice entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
morse_convertARead-onlyIdempotent
Encode text to Morse code or decode Morse code to text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text or Morse code to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safe pure-function profile is covered. The description adds the bidirectional behavior but omits practically important traits: how direction is inferred, handling of invalid characters, and the separator convention used in 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?
One short front-loaded sentence covering both directions with no filler or redundancy. Nothing could be removed 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?
For a single-parameter converter with rich annotations, the description is nearly sufficient, but the direction-selection mechanism is the one thing an agent must know to call it correctly and it is left 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?
Schema description coverage is 100% and the single parameter already says 'Text or Morse code to convert.' The description confirms the two input modes but adds no syntax details such as expected character set or dot/dash/space format, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (encode/decode Morse code) and makes the bidirectional nature explicit, which distinguishes it from siblings like rot13_convert or nato_convert. It is clear but does not explain the resources/format conventions those siblings imply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 handles both directions, but never states whether direction is auto-detected or how the caller signals it. With only one input field, the agent cannot tell from the description alone when/how decoding is triggered versus encoding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mos_algorithmC
Offline range query processing using Mo's algorithm with sqrt decomposition (range sum and distinct count).
| Name | Required | Description | Default |
|---|---|---|---|
| array | Yes | Input array of numbers | |
| queries | Yes | Range queries as [l, r] pairs (0-indexed, inclusive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says nothing about the return shape, whether the input array is mutated, complexity/latency, or limits on query count. The only real behavioral signal is 'offline', which does usefully imply the queries are batched, but the rest of the behavioral profile is absent.
Agents need to know what a tool does to the 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 with no filler; the technique, the decomposition strategy, and the supported query types are all packed in efficiently. Slightly dense but nothing 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 and no annotations, the description should clarify the return format, and it only partially does by naming the two computed quantities. Parameters are fully covered by the schema, so the remaining gap is modest but real.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (array of numbers, [l, r] 0-indexed inclusive pairs), so the schema already documents both parameters. The description adds the semantics of the computation (range sum, distinct count), but no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific technique and resource ('Mo's algorithm with sqrt decomposition') and states exactly what queries it answers (range sum and distinct count), so an agent can tell what it computes. It does not, however, differentiate itself from the many neighbouring range-query tools (fenwick_range, segment_tree, sparse_table, rmq_sparse).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance and no named alternative is given, despite dozens of sibling range-query/sequence tools. The word 'offline' hints that all queries must be supplied up front, but this is never stated as a condition for choosing this tool over an online structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mst_findBRead-onlyIdempotent
Find the minimum spanning tree of a weighted graph using Kruskal's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of weighted edges |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the specific algorithm (Kruskal's), which is useful behavioral context, but does not disclose handling of disconnected graphs, duplicate edges, or the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It efficiently conveys the operation, input, and algorithm.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 algorithm tool, the core purpose is covered, but there is no output schema and the description does not explain what is returned (e.g., MST edges or total weight) or how disconnected graphs are handled. These are meaningful gaps for an agent 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?
Schema description coverage is 100%, and the sole parameter ('edges') is already well defined in the schema. The description adds only that the graph is weighted, which is already implied by the schema's edge weight field, 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 ('Find'), resource ('minimum spanning tree'), input type ('weighted graph'), and algorithm ('Kruskal's algorithm'). It is clear what the tool does, but it does not explicitly differentiate itself from sibling graph/algorithm tools such as dijkstra_path or graph_analyze.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no exclusions, and no prerequisites. The description only states the operation, leaving selection entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mtg_get_cardBRead-onlyIdempotent
Get a specific MTG card by its multiverse ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Multiverse ID of the card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, and the description adds nothing behavioral beyond that—no note on what happens with an invalid/unknown ID, whether card data is cached or live, or what the response looks like. With the safety profile fully covered by annotations, the description contributes no supplementary 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?
A single front-loaded sentence with zero waste—verb and key come first. It is efficient, though so terse that structure is barely a factor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with full schema coverage and clear annotations, the description covers the essentials. Since there is no output schema, it arguably should say what a returned card record contains, and it is silent on error behavior for unknown 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% and the single parameter's schema entry ("Multiverse ID of the card.") fully defines it. The description merely repeats "multiverse ID" without adding format, validity, or sourcing guidance, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get a specific MTG card") plus the lookup key (multiverse ID), which cleanly separates it from the broader mtg_search_cards. It never names the sibling, so differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"by its multiverse ID" implies the caller must already have an ID (likely from mtg_search_cards), which hints at the right call order. However, no explicit when-to-use, when-not, or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mtg_search_cardsB
Search Magic: The Gathering cards by name, color, type, set, or rarity.
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Set code (e.g. LEA, M21). | |
| name | No | Card name to search. | |
| type | No | Card type (e.g. Instant, Creature, Sorcery). | |
| limit | No | Max results (default 10). | |
| colors | No | Color filter (W, U, B, R, G or combinations). | |
| rarity | No | Rarity: common, uncommon, rare, mythic. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it adds almost nothing beyond the verb. It does not state that the operation is read-only, how results are ordered, whether matching is exact or substring, or how the limit interacts with total 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?
A single sentence with the verb and resource front-loaded and zero filler. Every word maps to a capability, and nothing is buried or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter search tool with no output schema and no annotations, the description is minimally adequate but leaves real questions open: result ordering, pagination beyond the limit default of 10, and whether omitted filters match everything. It is enough to invoke the tool, not enough to predict its 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% with all six parameters documented, so the schema does the heavy lifting and baseline 3 applies. The description's facet list (name, color, type, set, rarity) loosely mirrors the schema but adds no syntax, combination logic, or expected case/format details beyond 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?
States a specific verb (Search) and resource (Magic: The Gathering cards) plus the filterable facets, so the agent knows exactly what the tool returns. Sibling tools mtg_get_card and mtg_sets imply search-vs-retrieve and search-vs-list distinctions, but the description never names them, 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 when-to-use guidance, no prerequisites, and no mention of the alternative mtg_get_card for single-card lookup or mtg_sets for set enumeration. The agent must infer routing purely from the tool name, which is a clear gap given several MTG siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mtg_setsB
List or search Magic: The Gathering sets.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Set name to search. | |
| limit | No | Max results (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a read-only lookup, how results are ordered, how pagination beyond 'limit' behaves, or what happens when no set matches — all of which matter for a search tool with zero 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?
A single front-loaded sentence with no filler or redundancy. Nothing could be removed 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 simple two-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. It is thin on sibling differentiation and return-shape expectations, but the tool's low complexity keeps it from being inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are already documented in the schema; the baseline of 3 applies. The description's 'List or search' phrasing hints that 'name' is an optional narrowing filter, but adds no format or matching-semantics 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 gives a specific verb ('List or search') and a precise resource ('Magic: The Gathering sets'), which separates it cleanly from the sibling card tools mtg_get_card and mtg_search_cards. It stops short of explicitly naming those siblings, so it earns a 4 rather than 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?
There is no guidance on when to use this tool versus mtg_get_card or mtg_search_cards, nor any mention of prerequisites or when a name filter should be supplied. The agent must infer that omitting 'name' lists all sets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
multiavatar_generateA
Generate a unique avatar image URL from any string (no network call).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Any string to generate a deterministic avatar (default: 'default'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does disclose the key behavioral trait: it makes no network call, so it is a pure local computation with no latency or external dependency. It also implies the output is a URL. It could still say more about determinism/stability guaranteed across calls, which the schema only hints at.
Agents need to know what a tool does to the 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 with the core action first and a compact parenthetical qualifier. No filler or redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema utility, the description covers what it produces (an image URL) and an important call-side property (no network). Nothing critical is missing, though noting the result's stability or URL usability 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?
One optional parameter with 100% schema description coverage, so the schema already documents the 'name' seed and its default. The description adds only the phrase 'from any string', which merely restates 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?
States a specific verb+resource ('Generate a unique avatar image URL') and even the input domain ('from any string'). It does not differentiate from sibling URL/avatar generators like robohash_url, avatar_url, or placeholder_image, which a routing agent would have to compare on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose (produce a deterministic avatar URL from a seed string), and the parenthetical '(no network call)' hints at when it is safe/cheap to call. There is no explicit statement of when to choose this over the many other image-URL siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mymemory_translateC
Translate text between languages using MyMemory free translation API.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to translate. | |
| source | No | Source language code (default: en). | |
| target | No | Target language code (default: es). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It notes the API is 'free', implying no auth, which is mild context, but it says nothing about rate limits, quota caps, quality constraints, or what the response contains. For a zero-annotation tool this is a significant 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?
A single efficient sentence with the core purpose front-loaded and no wasted filler. It is on the terse side rather than over-long, but it does not over-explain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema coverage and no output schema, the definition is minimally adequate. It omits return format, language-code expectations, and limits, which a no-annotation, no-output-schema tool would benefit from stating.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 schema already documents 'text', 'source' (default en), and 'target' (default es). The description adds no language-code format detail or directionality nuance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Translate') and resource ('text between languages') and names the backing API (MyMemory). It is clear what the tool does, but it offers no differentiation from the many sibling translators (deepl_translate_text, libretranslate_translate, fun_translate), so an agent cannot tell which to prefer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or when-not-to-use guidance and no mention of the alternatives in a sibling list crowded with translation tools. The agent is left to guess whether this or deepl/libretranslate is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nasa_apodC
Get NASA Astronomy Picture of the Day.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| count | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description offers no behavioral details. It does not mention expected behavior (e.g., defaults to today's picture), error handling, rate limits, or authentication requirements. The description is too vague to inform an AI agent about the tool's operational traits.
Agents need to know what a tool does to the world before calling 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, which is concise, but it omits critical information. It achieves brevity at the expense of providing necessary context for tool usage. An effective description should balance conciseness with sufficient 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?
Given no output schema and no parameter descriptions, the description is severely incomplete. It fails to clarify what the tool returns (e.g., image URL, text explanation) or how to configure parameters. An agent would lack essential information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three parameters with zero description coverage. The description adds no explanation for date, count, or api_key parameters. Without explicit semantics in the description or schema, an agent cannot correctly use these 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 tool retrieves NASA's Astronomy Picture of the Day (APOD). The verb 'Get' and resource name are unambiguous. While not specifying what exactly is returned (e.g., image URL, metadata), it is distinctive enough among sibling NASA tools (asteroids, Mars photos, 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?
No guidance is provided on when to use this tool versus other NASA tools or how to apply parameters like date, count, or api_key. Missing context such as date format or whether count yields multiple random images.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nasa_asteroidsC
Get NASA Near Earth Object (asteroid) data.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| end_date | No | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for disclosing behavioral traits. It only states 'Get data' without mentioning that the tool requires a date range and API key, is read-only, or any rate limits or error behaviors.
Agents need to know what a tool does to the world before calling 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, concise sentence that is front-loaded with the tool's purpose. It avoids unnecessary words but could benefit from slight expansion for clarity without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description is too sparse. It does not explain how to use the parameters, what kind of data is returned, or any constraints (e.g., date range limits). The agent lacks sufficient context to use 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 0%, meaning no parameter descriptions exist in the schema. The description adds no information about the purpose or format of the three parameters (start_date, end_date, api_key), leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'NASA Near Earth Object (asteroid) data', which differentiates it from sibling NASA tools like apod, earth_imagery, epic, and mars_photos. However, it lacks specificity about the data scope beyond 'asteroid 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of preconditions, context, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nasa_earth_imageryC
Get NASA Earth satellite imagery.
| Name | Required | Description | Default |
|---|---|---|---|
| dim | No | ||
| lat | Yes | ||
| lon | Yes | ||
| date | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the bare action. It does not mention that the tool is read-only, requires an API key (though schema has api_key param), has rate limits, or what the output format is. With no annotations, the description carries full burden but fails to provide 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 a single sentence, which is concise but under-specified. It does not earn its place as it provides no useful information beyond the tool name. A longer, more informative description is needed for a tool with 5 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, required lat/lon, and no output schema, the description is highly incomplete. It does not explain what the tool returns (e.g., image URL, file), date format requirements, or how to obtain an API key. This is insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to any of the 5 parameters (lat, lon, date, dim, api_key). Schema description coverage is 0%, and the description does not explain what each parameter does, expected formats, or the role of the API key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource 'NASA Earth satellite imagery', but it does not differentiate from sibling tools like nasa_mars_photos or nasa_epic. The name implies Earth imagery but the description lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives. The description does not mention prerequisites (e.g., API key) or context for use. Sibling tools exist for other imagery types, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nasa_epicC
Get NASA EPIC Earth imagery.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond retrieval. With no annotations, it fails to explain what EPIC imagery entails, authentication needs, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it omits critical information, making it under-specified rather than optimally brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 two parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain what EPIC is, how parameters work, or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no meaning to the parameters 'date' and 'api_key'. Their purpose and format are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'NASA EPIC Earth imagery', effectively distinguishing it from sibling tools like nasa_apod and nasa_mars_photos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, nor any mention of prerequisites or required parameters. The description provides no context for invocation decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nasa_mars_photosCRead-onlyIdempotent
Get NASA Mars rover photos.
| Name | Required | Description | Default |
|---|---|---|---|
| sol | No | ||
| rover | No | curiosity, opportunity, spirit | |
| camera | No | ||
| api_key | No | ||
| earth_date | No |
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 no behavioral context such as API-key requirements, rate limits, or response behavior beyond those annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with no wasted words. However, it is so terse that it omits information needed to invoke a five-parameter 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 five-parameter, open-world photo-retrieval tool with low schema coverage and no output schema, the description is incomplete. It leaves the agent without guidance on parameter usage, rover/camera selection, date filtering, or API-key handling.
Complex tools with many parameters or behaviors need more documentation. 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 five parameters but only 20% description coverage, and the tool description provides no parameter meaning at all. It does not explain sol, earth_date, camera, api_key, or the rover options, so it fails to compensate for the low 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 clear verb and resource: “Get NASA Mars rover photos.” It is specific enough to distinguish this from siblings like nasa_apod and nasa_earth_imagery, though it does not explicitly contrast itself with those 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?
There is no guidance on when to use this tool, when not to use it, or which sibling tool to choose instead. The intended use is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nationalize_nameB
Predict the nationality of a person based on their first name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | First name to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a probabilistic prediction but never states that results are confidence-weighted estimates, what output shape is returned, or any accuracy/caveat about name-based inference. For a heuristic predictor this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence with no wasted words; the action and its input are both immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and no annotations, the description is minimally adequate but omits the inferential/non-deterministic nature of the result and how to read it. Nothing else structured exists to fill that gap, so a modest addition would materially help.
Complex tools with many parameters or behaviors need more documentation. Simple 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 a single required 'name' parameter fully documented in the schema. The description's 'based on their first name' reinforces but does not extend the schema's semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Predict') and resource ('nationality of a person') with the input scoping ('based on their first name'). It is clear what the tool does. However, it does not distinguish itself from the closely named sibling nationalize_predict, leaving the agent to guess whether they differ.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus alternatives such as nationalize_predict, genderize_name, or agify_age. The sentence describes only what the tool computes, with no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nationalize_predictB
Predict likely nationalities from a first name with probability scores.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | First name to predict nationality for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the output nature ('with probability scores'), which is useful, but says nothing about whether the prediction is deterministic, what happens with unknown names, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is appropriately sized for a one-parameter tool, though it is so terse it omits any routing or caveat 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 one-parameter prediction tool with no output schema, the description covers the basic contract. It omits output structure detail and any distinction from the sibling 'nationalize_name', which is the main completeness 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 'name' parameter is fully documented in the schema. The description adds no format guidance (e.g., case sensitivity, full vs. partial name) beyond what the schema already states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Predict'), resource ('nationalities'), and scope ('from a first name'), which is unambiguous. However, it does not distinguish itself from the near-identical sibling 'nationalize_name', leaving the agent to guess which of the two to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no when-to-use, when-not-to-use, or alternative-selection guidance. Given the presence of 'nationalize_name' and the related 'genderize_predict'/'genderize_name' pair, some routing guidance would be valuable but is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nato_convertARead-onlyIdempotent
Convert text to NATO phonetic alphabet or decode NATO words back to text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text or NATO words to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is clear without the description. The description adds that the operation works in both directions, which is genuine context, but it stays silent on handling of digits/punctuation, output formatting, and ambiguity when decoding single-letter words.
Agents need to know what a tool does to the 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 with no filler, and the bidirectional capability is stated up front rather than buried. Nothing in it is redundant with the title or name beyond the unavoidable verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-argument transform with no output schema, the description covers the essentials but omits what the agent would want to know about the result shape (space-separated code words vs. a single string) and edge-case handling. Adequate but with clear gaps for a decode-capable 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?
Only one parameter exists with 100% schema coverage, and its schema text ('Text or NATO words to convert') mirrors the description almost word for word. The description adds only the directional framing, so baseline 3 is appropriate for a fully documented single-param 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 states a specific verb (convert) and resource (text to/from NATO phonetic alphabet) and explicitly covers both directions, so the agent knows it is bidirectional. It does not distinguish itself from near-neighbour siblings such as phonetic_spell, morse_convert, or braille_convert, which an agent could plausibly pick for a similar task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the two modes described ('convert text to … or decode … back to text'), which tells the agent the tool self-routes on input shape. However, there is no explicit when-to-use note and no pointer to alternatives like phonetic_spell for the same encoding family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nba_gamesCRead-onlyIdempotent
Browse NBA game scores and results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (default 10) | |
| season | No | Season year (e.g. 2023) | |
| team_id | No | Filter by team ID (use nba_teams for IDs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing further: no pagination behavior beyond the schema's default, no mention of what a season year with no games returns, and no indication of result shape or ordering.
Agents need to know what a tool does to the 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 with zero wasted words. Its brevity is defensible for a simple lookup, though it leaves room for one differentiating clause at no cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple, all three optional parameters are fully documented, and the annotations carry the safety profile, so basics are covered. The missing piece is competitive positioning against espn_nba_scores, which matters for correct tool selection in this crowded sports namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (limit, season, team_id) is documented in the schema, including the pointer to nba_teams. The description contributes no additional meaning about filtering or pagination, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Browse' plus the resource 'NBA game scores and results' tells an agent exactly what data comes back. It stops short of differentiating itself from the sibling espn_nba_scores, which appears to serve the same need, so an agent cannot pick between them from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 espn_nba_scores, nor any mention of pairing it with nba_teams to resolve team IDs (that hint lives only in the schema). The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nba_playersC
Search NBA players by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (default 25) | |
| search | No | Player name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about pagination behavior, rate limits, what fields a player record returns, whether matching is substring or exact, or whether an empty search lists all players. 'Search by name' leaves the operational profile entirely unspecified.
Agents need to know what a tool does to the 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 efficient sentence with no filler. Front-loaded and clear. It is arguably under-specified rather than over-long, but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 2-param search tool with no annotations and no output schema. The description does not compensate for either gap: it explains neither the return shape nor any behavioral constraints. For a tool whose only guidance is one line, the absence of any operational detail is a real shortfall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'search' (player name to search for) and 'limit' (results per page, default 25) are already documented in the schema. The description adds no syntax, matching-mode, or format detail beyond that. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (NBA players) with the searchable field (name). This clearly distinguishes it from nba_games (game scores) and nba_teams. It doesn't name those siblings, but the resource boundary is self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no alternatives named, and no mention that nba_games or nba_teams exist for other NBA data. The agent must infer scope 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.
nba_teamsA
List all NBA teams.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It transparently states it returns ALL teams (no filtering), which is meaningful behavioral context for a zero-parameter tool. However, it says nothing about output shape, ordering, or whether results are cached/live. For a trivial read-only list tool 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?
A single, front-loaded sentence with zero waste. Ideal size for a parameterless list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 enumeration with no output schema and no annotations, the description conveys everything needed to invoke it correctly. Minor incompleteness (no mention of return format) is acceptable given the simplicity, but not fully exhaustive.
Complex tools with many parameters or behaviors need more documentation. 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, which per the rubric establishes a baseline of 4. The description accurately reflects that no input is needed, and there is no parameter information to omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all NBA teams'), which is clear and unambiguous. It distinguishes itself from siblings like nba_players and nba_games by naming the 'teams' resource explicitly. The only gap is that it doesn't differentiate itself from other sports team listings (e.g., espn_team_info), but within the NBA namespace the distinction is 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?
There is no explicit guidance on when to use this tool versus alternatives. The 'List all' phrasing implies it returns the full set with no filtering, which is a usable signal, but the description does not name a sibling or state when a filtered/parameterized alternative should be preferred. Baseline 3 for implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
necklace_countARead-onlyIdempotent
Count distinct necklaces and bracelets using Burnside's lemma.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | Number of colors (1-1000) | |
| n | Yes | Length (1-1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, open-world, and non-destructive, so the description does not need to cover safety. It adds the Burnside's lemma method but says nothing about return shape, edge cases, or computational limits; with annotations present this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler or repetition. The terseness is appropriate for a simple two-parameter math 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?
Because there is no output schema, the description should clarify whether the result is one count or separate necklace/bracelet counts, and what the return value represents. It also leaves the rotation-vs-reflection distinction implicit, which is a meaningful gap for Burnside's lemma applications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 defines n as length and k as number of colors with valid ranges. The description adds no parameter semantics beyond those field descriptions, so the 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 pairs the specific verb "Count" with the specific combinatorial objects "distinct necklaces and bracelets" and names the method (Burnside's lemma). This clearly distinguishes it from the surrounding math and utility siblings, none of which perform necklace/bracelet enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use, when-not-to-use, or alternative guidance. The agent must infer from the specialized phrase that this applies to circular arrangements with n positions and k colors; no prerequisites or boundaries are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neon_create_branchC
Create a new branch in a Neon project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| project_id | Yes | ||
| branch_name | No | Name for the new branch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'create a new branch' but omits critical details like whether the operation is destructive, requires authentication, or what happens if the branch name already exists. The description does not convey safety or mutation 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?
The description is a single sentence, which is concise, but it is underspecified. While there is no extraneous information, the brevity comes at the cost of completeness, making it minimally acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of annotations and output schema, the description should provide more context about the creation process, such as default behavior, response format, or side effects. It is insufficient for an agent to fully understand the tool's 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 only 33%, with only branch_name having a description. The description does not add any extra meaning for the parameters beyond what is in the schema. It fails to clarify the purpose of api_key or project_id or how they relate to the action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (create) and resource (branch) within the context of a Neon project. It effectively distinguishes from sibling tools like neon_list_branches and neon_execute_sql, which have 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?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or context for invocation mentioned. The description lacks any usage context, such as requiring an existing project or providing the api_key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neon_execute_sqlC
Execute a SQL query against a Neon database endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL query to execute | |
| api_key | No | ||
| branch_id | Yes | ||
| project_id | Yes | ||
| endpoint_id | Yes | ||
| database_name | Yes | Target database name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description lacks behavioral details such as whether the operation is read-only or destructive, error handling, rate limits, or idempotency. The description carries the full burden but provides no extra context beyond the basic action.
Agents need to know what a tool does to the world before calling 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 concise sentence that front-loads the core purpose. However, it is overly minimal for a tool with 6 parameters and no annotations, making it less useful despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, 5 required, no output schema, no annotations), the description is severely incomplete. It omits essential information about parameter usage, return values, and behavioral constraints, leaving significant gaps for an AI 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?
With schema description coverage at only 33%, the description does not add meaning for the 4 undocumented parameters (api_key, project_id, branch_id, endpoint_id). It fails to clarify their roles, and the existing schema descriptions for query and database_name are minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Execute a SQL query' and the target 'against a Neon database endpoint'. It effectively distinguishes from sibling tools like neon_create_branch or neon_list_projects by specifying the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios, prerequisites, or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neon_get_projectCRead-onlyIdempotent
Get details for a specific Neon project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| project_id | Yes | Neon project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on authentication requirements, what happens with the optional api_key, or rate/scope constraints on a live external API.
Agents need to know what a tool does to the 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 with no filler — appropriately sized and easy to scan. It is efficient but borders on under-specified rather than maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations covering the safety profile, this is minimally adequate. With no output schema, though, the description should say what 'details' comprises (connection URIs, region, org, branch defaults) so the agent knows whether the response answers its question.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%: project_id is documented in the schema as 'Neon project ID', but api_key has no description anywhere. The description supplies no parameter meaning at all, so it fails to compensate for the undocumented credential parameter, which is the one an agent would most likely get wrong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 details for a specific Neon project' — so an agent knows exactly what the call retrieves. It does not, however, distinguish itself from the closely related neon_list_projects, leaving the singular/plural split to inference from the names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to reach for this tool versus neon_list_projects (to discover IDs first) or neon_list_branches / neon_execute_sql. The single sentence gives no preconditions, ordering advice, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neon_list_branchesBRead-onlyIdempotent
List all branches in a Neon project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only the project-scoping context and the fact that all branches are returned (no filtering), but says nothing about pagination or result size 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?
A single front-loaded sentence with zero filler; the verb-resource-scope ordering is ideal. It is efficient but arguably too terse given the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations carrying the safety profile and no output schema, the minimum is met. However, the description leaves pagination behavior, auth expectations for api_key, and project_id format entirely undocumented, which an agent needs to call it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so neither project_id nor api_key is documented anywhere. The description implies a project identifier is required via 'in a Neon project' but never explains the parameter or what api_key is for (likely auth). With two undocumented parameters, this is a real 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?
States a specific verb and resource ('List all branches') scoped to 'a Neon project', which is unambiguous. It does not distinguish itself from nearby siblings like neon_create_branch or neon_execute_sql, 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 gives no when-to-use guidance, no prerequisites, and no mention of alternatives (e.g. neon_create_branch for creating, neon_list_databases for other resources). An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neon_list_databasesBRead-onlyIdempotent
List all databases on a Neon branch.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| branch_id | Yes | ||
| project_id | Yes |
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 the branch scoping context, but does not disclose auth requirements, return shape, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. It is appropriately sized for a simple read-only listing 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?
The description identifies the operation and its branch scope, and annotations cover the safety profile. However, with no output schema and 0% schema description coverage, it leaves parameter meaning and return expectations under-described for a tool requiring project_id and branch_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only implies branch_id via 'on a Neon branch.' It does not explain project_id or api_key, leaving two of the three parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all databases' scoped to 'a Neon branch.' That distinguishes it from sibling tools like neon_list_projects, neon_list_branches, and neon_execute_sql 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?
It does not say when to use this tool versus alternatives such as neon_list_branches or neon_list_projects, nor does it describe prerequisites or exclusions. The usage is only implied by the operation name and scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neon_list_projectsBRead-onlyIdempotent
List all Neon Serverless Postgres projects in your account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max projects to return (default 10) | |
| cursor | No | Pagination cursor | |
| api_key | No | Neon API key |
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 only the account-scoping context; it says nothing about result ordering, whether the default 10-item cap truncates silently, or how pagination terminates.
Agents need to know what a tool does to the 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 with no filler or restated boilerplate. It is appropriately sized, though it could have spent one more clause on routing or pagination without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should say something about the returned shape (project IDs, names, regions) and how to follow the pagination cursor. As written it is minimally adequate for a simple list call but leaves the agent to discover the response shape and paging loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit, cursor and api_key all documented inline (including the default of 10). The description adds no additional meaning beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List ... Neon Serverless Postgres projects') with the scope clarified as 'in your account'. It does not explicitly distinguish itself from sibling reads like neon_get_project or neon_list_branches, though the name plus resource makes the distinction reasonably 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 gives no guidance on when to use this versus alternatives such as neon_get_project for a single project's details, nor does it mention prerequisites like an API key or when to paginate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlify_get_deployB
Get a single Netlify deploy by id (including build logs metadata).
| Name | Required | Description | Default |
|---|---|---|---|
| deploy_id | Yes | Netlify deploy id | |
| access_token | Yes | Netlify personal access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure. The verb 'Get' signals read-only retrieval and the parenthetical notes that build logs metadata is included, but it omits auth requirements, rate limits, and error behavior, leaving it only minimally viable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It states the action, resource, and key return content 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 retrieval tool with fully documented parameters and no output schema, the description covers the core invocation need and mentions the notable return content (build logs metadata). It could say more about response structure, but the low complexity and complete schema coverage make it 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 both required parameters. The description's 'by id' maps to deploy_id but adds no syntax, format, or validation 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 uses a specific verb and resource ('Get a single Netlify deploy') and clarifies scope with 'by id,' which implicitly separates it from list-oriented siblings like netlify_list_deploys. However, it does not explicitly name any sibling alternative, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool retrieves but gives no when-to-use guidance, no exclusions, and no mention of alternatives such as netlify_list_deploys. Usage is only implied by the phrase 'by id.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlify_get_siteBRead-onlyIdempotent
Get a single Netlify site by id.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Netlify site id (can be a saved default) | |
| access_token | Yes | Netlify personal access token |
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 fully covered by structured data. The description adds only the single-resource lookup shape and confirms identification by id; it says nothing about auth failures, not-found behavior, or default-site resolution hinted at 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?
One short sentence, front-loaded with the verb and resource, with zero filler. Nothing could be profitably removed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A low-complexity single-record read with full schema coverage and rich annotations; the description is sufficient to call it correctly. Minor gaps (default-site behavior, not-found handling) are low-risk given the 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%, with both site_id and access_token documented, so the baseline is 3. 'By id' reinforces that site_id identifies the record, but the description does not clarify that site_id is technically optional in the required list despite being functionally necessary.
Input schemas describe structure but not intent. Descriptions should explain 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 a single Netlify site') and scopes it to one item ('by id'), which implicitly contrasts with netlify_list_sites. It does not explicitly name the sibling, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus netlify_list_sites or how to obtain a site_id first. The agent must infer the lookup-vs-list distinction from the names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlify_list_deploysA
List recent deploys for a Netlify site (signals when the latest deploy failed).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Deploys to return (max 100, default 10) | |
| site_id | No | Netlify site id (can be a saved default) | |
| access_token | Yes | Netlify personal access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the output signals a failed latest deploy, but says nothing about ordering, default-recency window, pagination, or rate/permission constraints beyond the token.
Agents need to know what a tool does to the 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 with the core action first and the failure-signal value proposition attached. Zero 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 list tool with no output schema and no annotations, the description covers the core purpose and hints at the failure signal. It leaves gaps around result ordering, how many deploys 'recent' implies, and the shape of the returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit, site_id, and access_token all documented in the schema. The description adds no syntax or format detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('recent deploys') scoped to a Netlify site, so the agent knows exactly what it returns. It does not distinguish itself from related siblings like netlify_get_deploy or netlify_list_sites, 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 parenthetical '(signals when the latest deploy failed)' implies a monitoring use case, which is useful context. However, there is no explicit when-to-use guidance, no prerequisites, and no named alternative for fetching a single deploy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netlify_list_sitesARead-onlyIdempotent
List Netlify sites for the account.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter sites by name | |
| limit | No | Sites to return (max 100, default 25) | |
| access_token | Yes | Netlify personal access token |
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 clear. The description only adds that results are scoped to the account, without pagination behavior or return-format 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?
A single sentence with no filler, front-loading the verb and resource. 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 simple read-only list tool with full schema coverage and annotations covering safety, this is close to sufficient. It could mention pagination or the default limit behavior, but the agent has enough 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%, with name, limit, and access_token fully documented. The description adds no parameter meaning beyond the schema, which is the expected baseline when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List Netlify sites') with account-level scope. It does not differentiate from nearby siblings such as netlify_get_site or note that name/limit filters exist, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name: use it to enumerate sites. There is no explicit guidance on when to prefer this over netlify_get_site or how to scope with the name filter, so the agent must infer the conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_get_sourcesCRead-onlyIdempotent
Get available news sources from NewsAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| country | No | ||
| category | No | ||
| language | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world and non-destructive, so safety is covered. Beyond that the description adds nothing: it doesn't explain that an api_key is typically required by NewsAPI (yet the schema marks nothing required), nor whether filters combine with AND/OR semantics, nor roughly what the response contains.
Agents need to know what a tool does to the 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 with no filler. It is efficient as prose, though the brevity reflects under-specification rather than deliberate terseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four undocumented parameters, no output schema, and no explanation of filtering or auth behavior leave too much unexplained for a tool the agent must call correctly. Annotations cover the read-only nature but not the calling 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 0% and the description mentions none of the four parameters. Critically, api_key is present but declared non-required, and the description offers no hint about when it is needed or how country/category/language narrow the results — the agent gets zero semantics from either source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Get available news sources from NewsAPI' tells the agent exactly what is returned (the source catalog, not articles). It does not distinguish itself from the sibling news_top_headlines/news_search tools, but the purpose itself 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?
No guidance on when to call this versus news_top_headlines or news_search, which are the obvious siblings. The description also doesn't say whether the country/category/language parameters are filters on the returned source list or something else, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_searchCRead-onlyIdempotent
Search news articles via NewsAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| to | No | ||
| from | No | ||
| sortBy | No | ||
| api_key | No | ||
| language | No | ||
| pageSize | No |
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 fully covered without the description. The only added context is the upstream provider (NewsAPI), which is minor and does not mention rate limits, the free-tier window, or that requests require an API key supplied per call.
Agents need to know what a tool does to the 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 with no filler, front-loaded with the operation, so nothing is wasted. The problem is under-specification rather than verbosity, which caps the score at adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with zero schema documentation and no output schema, the description is far too thin: an agent cannot tell what the response looks like, how pagination via pageSize behaves, or what date formats from/to accept. The provider reference is the only substantive 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 0% across 7 parameters (q, from, to, sortBy, language, pageSize, api_key), and the description defines none of them — not even the date-format expectations for from/to or the legal values for sortBy. With a sensitive api_key parameter and entirely undocumented fields, the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 news articles') plus the data provider ('via NewsAPI'), which is unambiguous about what the tool does. However, it does not distinguish itself from close siblings like news_top_headlines, gdelt_news_search, or guardian_search_articles, so an agent gets no routing signal from the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus news_top_headlines (keyword search vs. headlines) or the other news siblings in the catalogue. Any usage rule must be inferred entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_top_headlinesCRead-onlyIdempotent
Get top headlines from NewsAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| api_key | No | ||
| country | No | ||
| category | No | ||
| pageSize | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — no mention of rate limits, API key requirements, result limits, or what 'top' means (e.g., country/category scoping). With annotations doing the work, the description contributes minimal extra context without contradicting anything.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no wasted words. But the brevity is under-specification rather than efficient conciseness for a five-parameter 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 five-parameter, zero-coverage, no-output-schema tool, the description is far too thin. It leaves every parameter unexplained, gives no usage context, and omits any return-value or pagination hint beyond relying on 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 description coverage is 0% and all five parameters (q, api_key, country, category, pageSize) are undocumented in the schema. The description mentions none of them, so an agent has no idea what values country/category accept or how q interacts with 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?
It states a specific verb and resource ('Get top headlines') and names the data source (NewsAPI), which is clear enough on its own. However, it gives no differentiation from closely related siblings like news_search, news_get_sources, or gdelt_news_search, so an agent cannot tell what makes this the 'top headlines' variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the alternatives (news_search, guardian_search_articles, gdelt_news_search, hn_top_stories). The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
newton_mathC
Perform math operations (simplify, derive, integrate, factor, etc.) via Newton API.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | Math operation: simplify, factor, derive, integrate, zeroes, tangent, area, cos, sin, tan, arccos, arcsin, arctan, abs, log. | |
| expression | Yes | Math expression (e.g. x^2+2x, 2^2+2(2)). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It mentions 'via Newton API', which hints at an external dependency, but says nothing about authentication, rate limits, error behavior, or response format. For a compute tool with zero annotation coverage, this is a significant 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 efficient sentence that is front-loaded with the core action and includes useful examples. It contains no filler, though it could be slightly more structured by explicitly mentioning the required expression parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low-complexity (2 parameters, one required, no nesting, no output schema) and the schema is fully documented. The description explains the purpose adequately, but it omits when-to-use guidance and any behavioral context, leaving gaps for an agent trying 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 schema already documents the operation and expression parameters. The description lists example operations that mirror the schema's enum values but adds no syntax, format, or edge-case meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Perform math operations' with concrete examples (simplify, derive, integrate, factor). It is clear what the tool does, though it doesn't distinguish itself from sibling math tools such as complex_calc or numerical_integrate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or context cues to help an agent choose between newton_math and the many other math-oriented siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ngram_extractB
Extract and count n-grams (word or character level) from text.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | N-gram size (default 2). | |
| top | No | Number of top entries to return (default 20). | |
| mode | No | 'word' (default) or 'character'. | |
| text | Yes | Text to analyse. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that n-grams are extracted and counted at word or character level, but omits tokenization rules, case sensitivity, sorting behavior, and return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately concise for the tool's straightforward operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and all parameters are documented in the schema, but with no annotations or output schema, the description leaves gaps around return structure and analysis behavior. It is minimally adequate but 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?
Schema description coverage is 100%, so all parameters are already documented in the input schema. The description adds little parameter meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Extract and count') and resource ('n-grams'), and clarifies the word/character level distinction. It does not explicitly differentiate itself from sibling text-analysis tools, but the core purpose is 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?
There is no explicit guidance on when to use this tool versus alternatives such as word_count, char_frequency, or frequency_analyse. Usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nhtsa_decode_vinB
Decode a vehicle VIN to get make, model, year, and specifications from NHTSA.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | Yes | 17-character Vehicle Identification Number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only names the data source. It does not disclose what happens with an invalid or non-17-character VIN, whether there is rate limiting, or whether authentication 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?
A single front-loaded sentence with zero padding that names the action, input, and outputs in one pass.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with a fully described schema and no output schema, naming the returned fields is enough for an agent to call it correctly. Only minor gaps, such as invalid-VIN behavior, keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully described in the schema as a 17-character VIN, so the baseline of 3 applies. The description adds no format or validation 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?
States a specific verb (decode), a specific resource (vehicle VIN), the returned fields (make, model, year, specifications), and the data source (NHTSA). An agent can distinguish this from siblings like nhtsa_recalls 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 implies you supply a VIN, but gives no explicit when-to-use guidance, no prerequisites, and no mention of the sibling nhtsa_recalls tool that an agent might confuse for this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nhtsa_recallsC
Search NHTSA vehicle safety recalls by make, model, and year.
| Name | Required | Description | Default |
|---|---|---|---|
| make | Yes | Vehicle make (e.g. Toyota). | |
| year | Yes | Model year (e.g. 2020). | |
| model | No | Vehicle model (e.g. Camry). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a read-only lookup, whether results are paginated, how many recalls are returned, or what the response shape looks like. For a no-annotation tool this is a meaningful gap, though the read-only nature is inferable from '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?
A single tight sentence with the resource and its filters front-loaded; nothing is wasted. It is slightly under-specified rather than verbose, so conciseness is good but not exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with full schema coverage, no nested objects, and no output schema, the description is minimally sufficient. However, with zero annotations it should say more about the read-only lookup behavior and result characteristics to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description names the three parameters but adds no meaning beyond the schema — it does not clarify that model is optional, nor explain matching behavior (e.g. exact vs partial match on make).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Search), the exact resource (NHTSA vehicle safety recalls), and the filtering dimensions (make, model, year). It is immediately clear what the tool does, though it does not distinguish itself from the one nearby sibling, nhtsa_decode_vin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use framing, no mention that model is optional while make and year are required, and no guidance on when to prefer this over nhtsa_decode_vin or a VIN-based lookup. The search framing implies a retrieval use case but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nobel_laureatesC
Search Nobel laureates by name, year, or category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Laureate name to search. | |
| year | No | Award year. | |
| limit | No | Max results (default 10). | |
| category | No | Category code: che, eco, lit, pea, phy, med. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only lookup, but says nothing about result ordering, how limit interacts with results, whether searches are AND/OR across facets, or what a result looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though arguably too terse to earn a top score given what it omits.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters, but with no annotations and no output schema, the description should at least state that this is a safe read operation and how paging works. As written it is minimally adequate for a 4-parameter 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 all four parameters (including category codes and the limit default) are already documented in the schema. The description restates three of them without adding format or behavior detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (search Nobel laureates) and enumerates the searchable facets: name, year, category. It does not differentiate from the sibling nobel_prizes, which an agent could easily confuse with this 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?
No when-to-use guidance, no exclusions, and no reference to the sibling nobel_prizes. The word 'search' implies a lookup context but nothing tells the agent when this tool is preferable to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nobel_prizesB
Search Nobel Prize data by year and/or category.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Award year (e.g. 2023). | |
| limit | No | Max results (default 10). | |
| category | No | Category code: che, eco, lit, pea, phy, med. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state read-only behavior, pagination/limit semantics, authentication needs, or return shape; only the search action is named.
Agents need to know what a tool does to the 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 with no wasted words. It 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 a fully described schema, the core callable purpose is present. However, it does not clarify return shape or how it differs from nobel_laureates, leaving notable 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 description coverage is 100%, and all three parameters have clear schema descriptions. The description mentions year and category but omits limit, so it adds little 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 'Search' and resource 'Nobel Prize data', and names the year/category filter dimensions. However, it does not distinguish this tool from the sibling nobel_laureates, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 year and/or category' implies filtering usage, but there is no explicit when-to-use, when-not-to-use, or alternative such as nobel_laureates. Usage is only weakly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nominatim_reverseB
Reverse geocode coordinates to an address using OpenStreetMap Nominatim.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude. | |
| longitude | Yes | Longitude. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the upstream provider (OpenStreetMap Nominatim), but omits rate limits, attribution requirements, error behavior, and any explicit read-only/safety statement.
Agents need to know what a tool does to the 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 with no wasted words. It immediately states the operation and the underlying service.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 two required parameters and no output schema, the description covers the core operation and provider. It does not describe the return structure or practical API constraints, leaving it minimally complete but thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the schema descriptions are bare labels ('Latitude.' and 'Longitude.'). The tool description adds no parameter meaning such as coordinate order, format, or reference system, so the baseline 3 for high schema coverage 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: reverse geocoding coordinates to an address using OpenStreetMap Nominatim. It distinguishes the operation from forward geocoding in general, but does not explicitly name the sibling alternative nominatim_search or mapbox_geocode_reverse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'Reverse geocode coordinates to an address' implies the intended use case when an agent has coordinates and wants address data. However, it provides no explicit when-to-use/when-not-to-use guidance or named alternatives among the many geocoding tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nominatim_searchB
Geocode a place name or address to coordinates using OpenStreetMap Nominatim.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 5, max 20). | |
| query | Yes | Place name or address to search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It names the upstream service (OpenStreetMap Nominatim), which hints at rate-limit and attribution behavior, but it does not state limits, auth needs, or result format. It adds some value but leaves behavioral gaps for a no-annotation 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?
One tight sentence, front-loaded with the verb and the source. Nothing is wasted, though there is little structure beyond the single 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 2-param search with full schema coverage and no output schema, the essentials are present. But with no annotations it should say more about rate limits, attribution, or what a result contains; as written it is minimum viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are documented there (query, limit with default 5 and max 20). The description adds no parameter detail beyond the schema, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (geocode) and resource (place name or address to coordinates) plus the data source (OpenStreetMap Nominatim). The sibling 'nominatim_reverse' handles reverse geocoding, so the forward direction is distinguishable, but the description doesn't explicitly name the sibling or state the direction contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the forward geocoding framing, but the description offers no when-to-use or when-not (e.g. versus mapbox_geocode_forward, geojs_lookup, or yelp_search_businesses). It does not say when forward geocoding is preferable to reverse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normal_distributionA
Calculate normal (Gaussian) distribution PDF, CDF, and percentile for a given value.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | The value to evaluate. | |
| mean | No | Distribution mean (default 0). | |
| stddev | No | Standard deviation (default 1, must be positive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clearly identifies a pure mathematical computation, implying no side effects, but does not state that explicitly and is ambiguous about whether all three outputs (PDF, CDF, percentile) are returned together or selected elsewhere. For a stateless calculation tool 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?
A single, front-loaded sentence with zero wasted words. The verb and resource come first, followed by the specific outputs, which is exactly what an agent needs to scan 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?
The low-complexity math operation and fully documented schema make the definition workable. However, with no output schema and no description of return format or whether all three quantities are returned, there is a minor but real gap for an agent that needs to know what to expect from 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%, so the schema already documents x, mean, and stddev completely, including defaults and the positivity constraint on stddev. The description adds only the phrase 'for a given value' and does not enrich parameter meaning beyond the schema, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), a specific resource ('normal (Gaussian) distribution'), and the exact operations (PDF, CDF, percentile) for a given value. This distinguishes it from sibling distribution tools like binomial_probability and poisson_probability, as well as generic percentile_calc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no explicit guidance on when to choose this tool over alternatives, no prerequisites, and no exclusions. The phrase 'for a given value' implies context but gives no comparative or conditional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notion_actionC
Perform a Notion action: search_notion, get_notion_page, get_notion_database, query_notion_database, create_notion_page, update_notion_page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| action | Yes | ||
| filter | No | ||
| parent | No | ||
| api_key | No | ||
| page_id | No | ||
| properties | No | ||
| database_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention authentication needs (though an api_key parameter exists), rate limits, destructive potential (create, update actions), or any side effects. The description is silent on these critical aspects.
Agents need to know what a tool does to the world before calling 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, which is concise but severely under-specifies the tool. Given the complexity (8 parameters, multiple actions, nested objects), the description is too brief and lacks structure (no parameter sections or usage examples). It is not appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool has high complexity (8 parameters, multiple sub-actions, nested objects, no output schema, no annotations). The description provides only a list of action names, leaving the agent without context on how to invoke each action, what parameters are required for each, or what the responses look like. It is woefully incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions exist in the schema. The tool description adds no meaning beyond listing the parameter names. For instance, the 'action' parameter's allowable values (the listed sub-actions) are not formally indicated, and other parameters like query, page_id, etc. have no explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Perform a Notion action' and lists six specific sub-actions (search, get, query, create, update), making the tool's purpose reasonably clear. However, it does not differentiate this dispatcher tool from other Notion-related tools (which are absent), but the list of sub-actions is helpful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 specific sub-actions, nor does it explain when not to use the tool or suggest alternatives. The agent must infer appropriate usage from the action names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_add_dist_tagA
Point a dist-tag (e.g. latest) at an already-published version of a package you own.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | The dist-tag to set, e.g. latest or beta. | |
| name | Yes | Package name, e.g. @unclick/mcp-server. | |
| token | No | npm access token (optional if saved or set as NPM_TOKEN). | |
| version | Yes | An already-published version, e.g. 0.3.110. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds useful context that the package must be owned and the version must already exist, but it does not explain mutation effects, what happens to an existing tag, or auth requirements beyond the schema's token field.
Agents need to know what a tool does to the 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 with no filler. The example 'latest' and the ownership constraint are stated compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tag-mutation tool with full schema coverage and no output schema, the description covers the core action and key prerequisites. It leaves some behavioral detail implicit but is sufficient to call the tool correctly using 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 all four parameters are already documented. The description reinforces that 'version' must be already published, but adds no syntax or edge-case guidance 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: pointing a dist-tag at an already-published package version. It is clear what the tool does, though it does not explicitly distinguish itself from sibling reads such as npm_dist_tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'already-published version of a package you own' implies when this tool is appropriate, but it gives no explicit alternatives or exclusions. An agent can infer the use case but must rely on sibling names and schema to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_dist_tagsA
List a package's dist-tags (latest, beta, ...) so you can see what installs by default.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name, e.g. @unclick/mcp-server. | |
| token | No | npm access token (optional; needed only for private packages). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' correctly implies a read-only operation, and it adds semantic context about what dist-tags represent, but it says nothing about permissions, behavior for missing packages, token requirements outside the schema, or return shape. Adequate but thin for an unannotated 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?
A single front-loaded sentence with no filler; the parenthetical examples and default-install clarification all earn their 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 fully documented schema, the description covers what the tool returns conceptually and why it matters. Only minor gaps remain (no output schema, no error/not-found behavior), which is acceptable at this 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%, with both 'name' and 'token' already documented (including the private-package note for the token). The description adds nothing parameter-specific, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a package's dist-tags') and immediately explains the resource's meaning with examples ('latest, beta, ...') and the practical upshot ('what installs by default'). This clearly separates it from siblings like npm_add_dist_tag (mutation) and npm_get_package (full metadata), 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 clause 'so you can see what installs by default' implies the use case, but there is no explicit when-to-use/when-not guidance or reference to the adjacent tools npm_add_dist_tag or npm_get_package. An agent gets the intent but must infer routing decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_downloadsB
Download counts for an npm package over last-day, last-week, or last-month.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name, e.g. @unclick/mcp-server. | |
| period | No | last-day, last-week (default), or last-month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals that this is a read-only count lookup scoped to one package and three time windows, but says nothing about caching/freshness of counts, whether scoped packages (@scope/name) are supported, or rate limits. Adequate for a simple read, but thin.
Agents need to know what a tool does to the 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 with zero filler. It is arguably under-specified rather than over-long, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read tool with no output schema and no annotations, an agent still cannot tell what is returned — a single integer, or a series of daily counts for last-week/last-month. That ambiguity affects how results should be interpreted, so the description is adequate but has a real 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 both 'name' and 'period'. The description merely echoes the three period values and adds no format or example details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Download counts for an npm package') and the available time windows. It is distinguishable from npm_search / npm_get_package / npm_dist_tags by name and subject matter, though it never explicitly contrasts itself with 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?
No indication of when to use this versus the other npm tools (search, get_package, dist_tags, whoami) or any preconditions. The only usage-adjacent content is a restatement of the period options, which is already in the schema, not a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_get_packageARead-onlyIdempotent
Get metadata for an npm package (latest version).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so safety is well covered. The description adds one useful behavioral fact beyond that: it returns latest-version metadata only, not version history. It says nothing about response shape, rate limits, or behavior for missing/private/unpublished packages.
Agents need to know what a tool does to the 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 short sentence with the resource and the version qualifier front-loaded; nothing redundant or 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 one-parameter read tool with rich annotations this is close to adequate, but with no output schema the agent is left guessing what 'metadata' contains (dependencies, dist-tags, publish date, tarball URL). A brief field list would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter at 100% schema coverage, so the schema already documents 'name'. The description adds no naming syntax (scope prefixes like @scope/pkg, case sensitivity) beyond the schema, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (metadata for an npm package) with a clear scope qualifier, '(latest version)'. It is distinguishable from npm_search, but never names that sibling to reinforce the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'latest version' qualifier implies this is for looking up one known package rather than browsing, but there is no explicit 'use npm_search to find a package name first' guidance or any exclusion. Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_searchBRead-onlyIdempotent
Search npm packages by name or keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Max results (default 10, max 50). | |
| query | Yes | Package name or keyword. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond restating that it is a search operation; it does not explain result behavior, matching semantics, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no wasted words. The purpose is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 is minimally sufficient given the schema and annotations. However, it does not help an agent choose between this and related npm tools, and with no output schema it provides no sense of the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the query and size parameters are documented in the input schema. The description only echoes the query semantics ('by name or keyword') and does not add meaningful 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: searching npm packages by name or keyword. It is clear and distinguishable from a generic search tool, though it does not explicitly differentiate itself from sibling tools such as npm_get_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this tool versus alternatives like npm_get_package or npm_downloads. It implies a search use case but provides no exclusions, prerequisites, or alternative-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_whoamiARead-onlyIdempotent
Verify the saved npm access token and return the account it belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | npm access token (optional if saved or set as NPM_TOKEN). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds that it touches the network and returns an identity, but says nothing about behavior on a missing, invalid, or expired token, which is the main behavioral question for a verification call.
Agents need to know what a tool does to the 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 with the action and outcome in order; nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 read that returns an account name, the description plus annotations and full schema coverage cover nearly everything; only failure-mode behavior is absent, and no output schema exists that would need describing.
Complex tools with many parameters or behaviors need more documentation. Simple 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 states the token is optional when saved or set via NPM_TOKEN. The description adds no precedence rules or format guidance beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify) and resource (npm access token) plus what it returns (the account). This distinguishes it adequately from npm_search/npm_get_package siblings, though it never names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a credential sanity-check, but the description gives no explicit trigger condition (e.g., 'use before publishing' or 'use when a token may be expired') and names no alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nth_rootB
Calculate the nth root of a number. Default is square root (n=2).
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Root degree (default 2 for square root). | |
| value | Yes | Number to find root of. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the default degree (n=2), which is useful, but says nothing about edge cases such as negative inputs, even roots of negatives, or zero — the cases where a numeric tool most needs disambiguation. Adequate but thin.
Agents need to know what a tool does to the 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 zero waste, front-loading the core operation and then the default. Nothing could be cut without losing 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 pure math function with full schema coverage and no output schema, this is minimally sufficient. It nonetheless omits any differentiation from root_find and any edge-case behavior, which are the only meaningful gaps left for this tool class.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'n' and 'value' are already documented, and the description's mention of n=2 as default merely repeats the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (nth root of a number) so the operation is unambiguous. However, siblings like root_find exist, and the description does nothing to distinguish this tool from that one, so the agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 and no mention of alternatives such as root_find. The only contextual hint (default n=2) is a parameter default, not usage guidance, leaving the agent to guess when this tool is preferred over its nearest sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nttB
Multiply two polynomials using Number Theoretic Transform (mod 998244353).
| Name | Required | Description | Default |
|---|---|---|---|
| poly_a | Yes | First polynomial coefficients | |
| poly_b | Yes | Second polynomial coefficients |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the algorithm and modulus, but says nothing about coefficient constraints (e.g., inputs must be non-negative and below the modulus) or what is returned, which matters for a deterministic math routine.
Agents need to know what a tool does to the 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 tight sentence with the operation, algorithm, and modulus front-loaded, and no padding. 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?
With no output schema and no annotations, the description should ideally state the return shape (coefficient array) and any input bounds. It covers the algorithm but leaves the calling contract partly 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?
Schema description coverage is 100%, so both poly_a and poly_b are already documented as coefficient arrays in the schema. The description adds no per-parameter detail 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?
Names a specific operation (multiply two polynomials), the algorithm (Number Theoretic Transform), and the working modulus (998244353). An agent can tell it performs a computational transform, though it is not differentiated from the similar sibling polynomial_ops or convolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus polynomial_ops, convolution, or fft_transform, and no prerequisites stated. Usage must be inferred entirely from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nudgeonly_apiA
Run 👉Nudge, the PinballWake NudgeOnlyAPI worker, through OpenRouter free routing. Use only for painpoint hints and simple-English nudge summaries. It cannot merge, close, approve, assign ownership, mark done, or set source-of-truth state.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | OpenRouter model ID. Default: liquid/lfm-2.5-1.2b-instruct:free. Use openrouter/free only when auto-rotation is desired. | |
| api_key | No | OpenRouter API key. Optional when OPENROUTER_API_KEY is set in the environment. | |
| context | No | Optional local context. Keep it small and non-secret. | |
| source_id | No | Optional upstream event, dispatch, PR, issue, or wake identifier for trace evidence. | |
| allow_paid | No | Explicit opt-in required for paid or unknown OpenRouter model IDs. Free :free models do not need this. | |
| event_text | Yes | Noisy event, signal, handoff, or status text for 👉Nudge to classify. | |
| max_tokens | No | Maximum output tokens. Hard capped at 500. Default: 260. | |
| source_url | No | Optional upstream URL for trace evidence. | |
| painpoint_hint | No | Optional hint such as stale_ack, duplicate_wake, unclear_owner, noisy_thread, or missing_proof. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the burden. It clarifies the tool's limitations and routing, but does not describe the return format, potential errors, or behavior beyond the scope restrictions. Basic scope is clear, but deeper behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and followed by limitations. No wasted words, all sentences earn their 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?
Despite high parameter count and no output schema, the description lacks details about what the tool returns, how the worker processes input, or error handling. The missing behavioral and output information makes it incomplete for a tool with 9 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 coverage is 100%, so parameters are well-documented in the schema. The description does not add new semantic meaning beyond what the schema already provides for each 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 the specific verb 'Run' and resource 'PinballWake NudgeOnlyAPI worker' and explicitly lists what it cannot do, distinguishing it clearly from siblings that might perform state mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Use only for painpoint hints and simple-English nudge summaries' and lists prohibited actions, providing clear context. However, it does not mention specific alternatives or when-not-to-use scenarios beyond the given list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nudgeonly_policyA
Return the PinballWake NudgeOnlyAPI guardrails. This is a red-lane, read-only policy for 👉Nudge: painpoint hints only, no writes, no decisions, no truth-setting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states read-only and safe operation ('no writes, no decisions'), which is helpful, but does not disclose authentication needs, rate limits, or response format. Additional context would improve 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 two sentences with no wasted words. It front-loads the core purpose and then adds constraint details 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?
Despite the absence of an output schema, the description does not explain what the returned guardrails look like, their structure, or any metadata. For a tool with no output schema, this omission leaves agents uncertain about the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the schema already fully defines the input. The description does not need to add parameter semantics, earning the baseline score of 4 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 clearly states the tool returns the PinballWake NudgeOnlyAPI guardrails, specifying it is a red-lane, read-only policy. The verb 'Return' and resource 'guardrails' are specific. The mention of 'no writes, no decisions, no truth-setting' distinguishes it from write-capable policies like pushonly_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 explicitly state when to use this tool versus other policy tools like pushonly_policy or igniteonly_policy. It implies read-only usage but lacks comparative guidance or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nudgeonly_receipt_bridgeB
Turn a verified NudgeOnly painpoint into a tiny worker receipt request or WakePass escalation candidate. Deterministic bridge only: no writes, no ownership decision, no completion state.
| Name | Required | Description | Default |
|---|---|---|---|
| now | No | Optional ISO timestamp used for deterministic TTL checks. | |
| owner | No | Optional existing owner evidence. The bridge does not invent or decide owners. | |
| target | No | Optional human target label such as PR #705 or a dispatch ID. | |
| worker | No | Optional worker override when a trusted lane already named one. | |
| context | No | Optional local context. Keep it small and non-secret. | |
| source_id | No | Optional upstream event, dispatch, PR, issue, or wake identifier. | |
| ack_status | No | Optional ACK status such as missing, stale, received, or blocked. | |
| created_at | No | Optional ISO timestamp for the source handoff or request. | |
| event_text | No | Source event, blocker, handoff, or state-card text. Keep it small and non-secret. | |
| source_url | No | Optional upstream source URL. | |
| ttl_minutes | No | Minutes before missing ACK/proof becomes an escalation request. Default: 60. | |
| nudge_result | No | Optional output from nudgeonly_api. | |
| proof_status | No | Optional proof status such as missing, present, stale, or blocked. | |
| nudge_trace_id | No | Optional trace_id from nudgeonly_api. | |
| painpoint_type | No | stale_ack, duplicate_wake, unclear_owner, noisy_thread, missing_proof, or none. | |
| owner_last_seen_at | No | Optional ISO timestamp for the current owner's last real check-in. Past TTL is treated as an expired ownership lease. | |
| painpoint_detected | No | Whether a painpoint was detected by trusted evidence or nudgeonly_api. | |
| owner_silent_minutes | No | Optional owner silence age in minutes. Past TTL is treated as an expired ownership lease. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose meaningful negatives ('no writes, no ownership decision, no completion state'), which is genuinely useful boundary information, but it omits the selection logic between receipt request and escalation candidate and says nothing about output shape 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 front-loaded sentences with zero filler; what the tool produces comes first and the behavioral caveats follow immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter, all-optional, no-output-schema tool with no annotations, the description is thin. It covers purpose and boundaries but leaves the agent without guidance on how the TTL/ack/proof fields drive receipt-vs-escalation output, which is the tool's core decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 18 well-documented parameters including enums-in-text for painpoint_type and proof_status, so the schema does the heavy lifting. The description adds no additional parameter semantics beyond what is 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 transformation ('turn a verified NudgeOnly painpoint into a worker receipt request or WakePass escalation candidate'), naming both the input and the two possible outputs. However, it does not distinguish itself from close siblings like nudgeonly_api, nudgeonly_policy, or igniteonly_receipt_consumer, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance. 'Deterministic bridge only' is a constraint, not a routing rule. Nothing tells the agent when to pick this over nudgeonly_api or the receipt consumer sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
number_base_convertARead-onlyIdempotent
Convert numbers between binary, octal, decimal, hex, and any base 2-36.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Number to convert. | |
| to_base | No | Optional custom output base (2-36). | |
| from_base | No | Input base (2-36, default 10). |
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 the supported base range, but does not describe output format, invalid-input behavior, or case sensitivity.
Agents need to know what a tool does to the 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 with no filler. It communicates the core operation and supported base range 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, read-only conversion utility with complete parameter descriptions and rich annotations, the description is sufficient. It could mention output representation, but no output schema exists and the operation is 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?
Schema description coverage is 100%, so value, from_base, and to_base are already documented. The description reinforces the base range but adds no syntax or formatting 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 verb and resource: convert numbers between base systems, including binary, octal, decimal, hex, and arbitrary bases 2-36. It is clear what the tool does, though it does not differentiate itself from the sibling base_convert 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?
Usage is implied by the description, but it gives no explicit conditions for choosing this tool over base_convert or the other conversion tools. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
number_factCRead-onlyIdempotent
Get an interesting fact about a number.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | trivia, math, date, year | |
| number | Yes |
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 externally. The description adds nothing beyond that – no note on external API dependency, failure behavior, or what happens when no fact exists for a number.
Agents need to know what a tool does to the 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 tight sentence with the core action front-loaded and zero filler. It is efficient, though the brevity is part of why semantics are thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple 2-parameter read-only tool with rich annotations and no output schema needs only modest description, and this covers the basic action. It is still incomplete regarding the meaning of the 'type' modes and the default behavior, which an agent needs to pick a mode 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 only 50%: the 'number' parameter has no description at all, and the 'type' enum is documented only by repeating its own values. The description does not compensate – it never explains what trivia/math/date/year mean or which is the default, leaving the key semantic gap unaddressed.
Input schemas describe structure but not intent. Descriptions should explain 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 an interesting fact about a number'), which distinguishes it from siblings like number_random, is_even, or prime_check. It stops short of explaining what kinds of facts are available, but the core purpose is 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?
There is no guidance on when to use this versus alternatives such as number_random or the math-function siblings, and no mention of how the four 'type' modes change the answer. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
number_randomCRead-onlyIdempotent
Get a random number fact.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| min | No | ||
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive), so the description should add what's missing – but it says nothing about what is returned (a fact string? a number?), whether results vary per call, or what the openWorldHint source is. Note the idempotentHint=true sits awkwardly with a tool advertised as 'random', and the description does nothing to clarify that tension.
Agents need to know what a tool does to the 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 short sentence with no filler, so it is structurally clean, but it is terse to the point of under-specification rather than genuinely 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?
With three undocumented parameters, no output schema, and no explanation of the return shape or the meaning of 'type', the definition leaves too much unresolved for correct invocation. A one-clause description cannot carry a 3-param tool with zero schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and three parameters (min, max, type) are completely undocumented in both places. The phrase 'random number fact' faintly hints that min/max bound the number and type selects the fact category, but it never says so, so the agent must guess at accepted 'type' 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 reads as a compound noun phrase ('random number fact') that could mean either 'generate a random number' or 'return a fact about a random number' – the two readings imply very different behavior. It also fails to distinguish itself from the sibling number_fact (and random_number), which an agent would have to disambiguate by 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?
There is no statement of when to use this tool versus number_fact, number_random's near-duplicate, or random_number. No prerequisites, no exclusions, no examples of the 'type' concept that would let an agent judge appropriateness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
numerical_diffA
Numerical differentiation of a math expression using five-point stencil (1st-4th order).
| Name | Required | Description | Default |
|---|---|---|---|
| h | No | Step size (default 1e-7). | |
| x | Yes | Point to evaluate at. | |
| order | No | Derivative order: 1, 2, 3, or 4 (default 1). | |
| expression | Yes | Math expression in x (e.g. 'x^2 + 3*x'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the numerical method and supported derivative orders, but not the return format, accuracy caveats, or behavior for invalid expressions.
Agents need to know what a tool does to the 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 front-loaded sentence with no wasted words, clearly communicating the operation and method.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-annotation, no-output-schema computational tool, the description states method and order range but omits the return value and any usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are documented in the schema. The description only indirectly references order via '1st-4th order' and adds no parameter syntax or defaults 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 exact operation (numerical differentiation), the resource (a math expression), and the method (five-point stencil, 1st-4th order), making it easy to distinguish from numerical_integrate or root_find.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 does not state when to use this tool instead of alternatives such as numerical_integrate or root_find; usage is only implied by the operation name and method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
numerical_integrateC
Numerical integration of a math expression using Simpson's rule, trapezoid, or midpoint method.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | Lower bound of integration. | |
| b | Yes | Upper bound of integration. | |
| method | No | Method: simpson (default), trapezoid, or midpoint. | |
| intervals | No | Number of intervals (default 1000, max 1000000). | |
| expression | Yes | Math expression in x (e.g. 'x^2 + 1'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the available methods but says nothing about accuracy, convergence, computational cost, invalid inputs, or whether intervals must satisfy method-specific constraints. It also omits any description of the return value despite 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 a single, front-loaded sentence that states the operation and method choices with no filler. Every clause earns its place. It is not verbose or poorly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a five-parameter numerical tool with no output schema and no annotations, the description is incomplete. It does not explain what the tool returns, how accurate the result is, or how the interval count affects precision. The rich schema covers parameters, but the missing behavioral and output context leaves material 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 description coverage is 100%, so all five parameters are already documented in the input schema, including defaults for method and intervals. The description only repeats the method options and adds no syntax, format, or constraint details beyond what the schema supplies. 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 names a specific operation (numerical integration), the resource (a math expression), and the available methods (Simpson's rule, trapezoid, midpoint). It is clear enough to distinguish from numerical_diff or ode_solve, though it does not explicitly name those siblings. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives like numerical_diff, ode_solve, or root_find. No prerequisites, exclusions, or conditions are stated. Usage is only implied by the word 'integration'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obsidian_list_notesARead-onlyIdempotent
List notes in the Obsidian vault, newest first, each with an obsidian:// link that opens it in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max notes to return (default 50) | |
| folder | No | Optional vault-relative folder, e.g. 'Projects' | |
| vault_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely useful behavior: results are ordered newest first and each note carries an obsidian:// deep link. It omits pagination/cursor behavior and what happens past the default 50, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the resource, then ordering, then return shape. Every clause earns its place with no restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully characterizes the return value (note entries plus obsidian:// links) rather than leaving it opaque. The remaining gap is scoping mechanics — how vault_path interacts with the implicit vault and whether listing recurses into subfolders.
Complex tools with many parameters or behaviors need more documentation. Simple 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 67%: limit and folder carry their own descriptions, while vault_path has none in either the schema or the description. The description offers no parameter guidance at all, so the baseline 3 applies rather than a higher mark.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("List notes in the Obsidian vault") with the ordering and return shape stated up front. It is distinguishable from obsidian_search_notes by name alone, but the description never names that sibling to make the boundary 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?
Listing is implicitly contrasted with searching only by the plain meaning of the verb; there is no explicit 'use this to browse, use obsidian_search_notes to query' directive. An agent can infer the when, but is given no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obsidian_read_noteA
Read one note by name or vault-relative path (resolves like a wikilink). Returns content with credential-looking lines redacted, plus outgoing wikilinks and an obsidian:// link. Very long notes are clipped at a line boundary: check truncated, and bytes_returned against bytes_total, before treating the content as the whole note.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | 'Projects/Roadmap.md' or just 'Roadmap' | |
| vault_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does well: it states that credential-looking lines are redacted, that outgoing wikilinks and an obsidian:// link are returned, and that long notes are clipped at a line boundary. It gives concrete fields (`truncated`, `bytes_returned`, `bytes_total`) to check before treating content as complete. It stops short of describing error behavior or access requirements, so it is strong but not fully exhaustive.
Agents need to know what a tool does to the world before calling 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 tightly written sentences, front-loaded with the core action and followed by return behavior and truncation caveats. Every sentence adds information an agent needs, 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 appropriately explains the return shape: redacted content, outgoing wikilinks, an obsidian:// link, and truncation metadata. The main remaining gap is that `vault_path` is not explained and note-not-found behavior is unspecified. For a simple read tool, it is otherwise complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the required `note` parameter has an example, while `vault_path` is undocumented in the schema. The description adds useful meaning for `note` by explaining name or vault-relative path resolution like a wikilink, but it never explains what `vault_path` does or when to supply 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 states a specific verb and resource: 'Read one note by name or vault-relative path.' The wikilink-style resolution clarifies what kind of lookup it performs. It distinguishes itself naturally from sibling tools like obsidian_list_notes, obsidian_search_notes, and obsidian_save_note by emphasizing reading a single note, but it does not explicitly name or route against 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?
Usage is implied: use this when you know which single note to read. The description does not explicitly say when to use it instead of obsidian_search_notes or obsidian_list_notes, nor does it state what to do if the note name is unknown or ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obsidian_save_noteA
Write a markdown note into the vault. REFUSED unless the human enabled writes ("Let AI edit my notes" in UnClick's Obsidian vault settings, or OBSIDIAN_VAULT_WRITABLE=1; the vault is read-only for AI by default). When allowed: create by default, append/overwrite explicit, the previous version is always backed up first, and writes never leave the vault or enter folders marked .ai-private.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Default create (refuses to clobber) | |
| note | Yes | Vault-relative path, e.g. 'Inbox/From UnClick.md' | |
| content | Yes | ||
| vault_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does it well: discloses the refusal condition, the permission toggle, that create is the default and won't clobber, that append/overwrite must be explicit, that backups always occur first, and that writes stay in the vault and skip .ai-private. This is rich behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by the gate, then the write semantics. Every clause 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?
No output schema and no annotations, so the description must cover behavior for a mutation tool — it does thoroughly, with the only real omission being vault_path semantics. 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 covers note (path example) and mode (enum + 'Default create (refuses to clobber)'), so 50% coverage. The description reinforces mode semantics (create/append/overwrite explicit) but says nothing about vault_path, one of the two undocumented params, leaving a 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?
States a specific verb (write) and resource (a markdown note into the vault), and is immediately distinguishable from the read/list/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?
Gives a strong precondition for use (human must enable writes via settings or OBSIDIAN_VAULT_WRITABLE=1, read-only by default) and clarifies mode selection. It doesn't explicitly route to obsidian_read_note or obsidian_vault_status, but the write context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obsidian_search_notesARead-onlyIdempotent
Search the vault by note name and content; returns matches with snippets and obsidian:// links.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| vault_path | No |
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 genuine value by disclosing the return shape (matches with snippets and obsidian:// links), but says nothing about vault resolution, authentication, or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the search scope and return shape are both stated 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 read-only search with no output schema, the description covers the search behavior and return format adequately. The main gap is the unexplained vault_path parameter, which matters if multiple vaults exist.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage, the description must carry parameter meaning. It clarifies that query matches note name and content, but leaves vault_path completely unexplained, so only one of two parameters is covered.
Input schemas describe structure but not intent. Descriptions should explain 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 the vault') and scopes it to note name and content, so an agent can tell it is a search operation rather than a read or list. It does not explicitly differentiate from nearby siblings like obsidian_list_notes or obsidian_read_note, keeping it 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?
Usage is implied by the word 'Search' and the vault scope, but the description never says when to prefer this over obsidian_list_notes or to follow up with obsidian_read_note. No explicit exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obsidian_vault_statusA
Check the user's Obsidian vault: where it is, how many notes, and exactly what AI may do with it (private / read-only / writable). A vault is just a folder of markdown notes (Dropbox/Drive-synced folders work).
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | No | Vault folder; defaults to the folder chosen in UnClick's Obsidian vault settings, else OBSIDIAN_VAULT_PATH, else C:\UnClick\md_vault |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the three things returned (path, note count, permission mode), and the permission vocabulary pre-empts a failed write. It never explicitly states that the call itself is non-mutating/read-only, which is the one behavioral fact an agent still has to infer.
Agents need to know what a tool does to the 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, and the core capability plus the permission answer are front-loaded. The second sentence ('A vault is just a folder of markdown notes...') earns its place by telling the agent that synced folder paths are valid input.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, so the description must explain returns and safety on its own; it names the three return values, which is the important part. It could go further by stating access requirements or that the check is safe to call freely, leaving a small 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?
One optional parameter with 100% schema description coverage, so the schema already explains the default resolution chain (settings → OBSIDIAN_VAULT_PATH → C:\UnClick\md_vault). The description adds nothing about vault_path overrides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Check') and resource ('the user's Obsidian vault') and enumerates exactly what it reports: location, note count, and AI permission level. That makes it clearly distinct from the sibling read/write tools (obsidian_read_note, obsidian_save_note, obsidian_list_notes), which operate on note content rather than vault metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'exactly what AI may do with it (private / read-only / writable)' gives clear implicit context: run this before attempting any read or write against the vault. It stops short of naming a sibling alternative or stating an explicit when-not condition, so it lands below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ode_solveARead-onlyIdempotent
Solve an ordinary differential equation numerically using Euler or RK4 method. Provide the ODE as a JS expression in terms of t and y.
| Name | Required | Description | Default |
|---|---|---|---|
| t0 | No | Initial time (default 0) | |
| y0 | No | Initial value y(t0) (default 1) | |
| steps | No | Number of steps (default 100, max 10000) | |
| t_end | No | End time (default 1) | |
| method | No | Integration method (default rk4) | |
| expression | Yes | JS expression for dy/dt in terms of t and y, e.g. 't + y' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld. The description adds the choice of Euler/RK4 methods, but it does not explain security implications of evaluating a JS expression, accuracy/performance tradeoffs, or handling of invalid expressions—context that would be especially valuable given 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?
Two sentences, front-loaded with the core action and the key input requirement. 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 numerical solver with no output schema, the description leaves a significant gap: it does not say what the tool returns (e.g., array of solution points vs. final value) or how results are shaped. The parameter defaults are covered by the schema, but the missing return-value semantics limits an agent's ability to use the output correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are documented there. The description only repeats that the expression is a JS expression in t and y; it adds no new meaning about t0, y0, steps, t_end, or method defaults beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Solve an ordinary differential equation numerically') and names the two supported methods. It is clearly distinguishable from nearby math tools like numerical_integrate (which integrates a given function) and numerical_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 via the ODE context and gives a required input format ('JS expression in terms of t and y'), but it does not say when to prefer this over related numerical tools or mention any exclusions. Usage is inferable but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oeis_searchCRead-onlyIdempotent
Search the Online Encyclopedia of Integer Sequences (OEIS) by sequence or keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Sequence (e.g. '1,1,2,3,5,8') or keyword. | |
| start | No | Result offset for pagination. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds nothing beyond that — no note on result counts, pagination behavior via 'start', or how keyword vs sequence matching differs.
Agents need to know what a tool does to the 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-formed sentence with no filler and the key concept (OEIS) front-loaded. Appropriately sized for a two-parameter 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 read-only lookup tool with full schema coverage and complete annotations, the description is minimally sufficient. It omits pagination semantics and result format, but with no output schema and low complexity those gaps are tolerable rather than blocking.
Complex tools with many parameters or behaviors need more documentation. Simple 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 description's 'sequence or keyword' phrase simply restates the schema's own description of 'query'. No extra semantics (e.g., format tolerance, whether comma-separated values are required) are added. 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 gives a specific verb (Search) and resource (OEIS), and clarifies the two query modes (sequence or keyword). It's clear what the tool does, though there are no OEIS siblings to differentiate from, so the extra routing detail is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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's no guidance on when to use this versus adjacent tools like number_fact, fibonacci_sequence, or other math utilities. The only implied usage comes from the word 'Search' and the mention of sequence/keyword input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
official_joke_by_typeARead-onlyIdempotent
Get a random joke by type from Official Joke API.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Joke type: general, programming, or knock-knock. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds only that selection is random from an external API — no note on error behavior for an unknown type, rate limits, or response variability. Minor tension: "random" output sits awkwardly with idempotentHint=true, though it is a hint weakness in the annotations rather than an outright description 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?
One short sentence, front-loaded with the verb and resource, with the source attribution at the end. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and annotation-covered, but `type` is not required and the description never says what happens if it is omitted (presumably a fully random joke, which overlaps official_joke_random). That gap is exactly the ambiguity an agent needs resolved to choose between the two.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 `type` parameter already carries its own description listing general, programming, and knock-knock. The phrase "by type" restates that without adding defaults or behavior when the optional parameter is omitted, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get a random joke") plus a scoping qualifier ("by type") and the upstream source (Official Joke API). It is clear what the tool does, but it never distinguishes itself from close siblings like official_joke_random or official_joke_ten, 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?
"by type" implies the use case (fetching a joke from a known category) but the description never says when to prefer this over official_joke_random (no type needed) or the joke_random family, nor what happens with an invalid type. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
official_joke_randomARead-onlyIdempotent
Get a random joke from Official Joke API (setup + punchline format).
| 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 fully covered. The description adds the response format (setup + punchline), which is modest but real value; nothing about rate limits or fallback behavior is stated.
Agents need to know what a tool does to the 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 action and includes the one detail an agent needs (the response format). 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 zero-parameter trivia fetch with no output schema, the description supplies the essential return shape and the data source, which is sufficient to call it correctly. It is only slightly thin on how it differs from the by-type and ten-joke 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?
The tool takes zero parameters, so there is nothing to document; the baseline for a no-param tool applies. The description adds the return shape (setup + punchline) instead, which is the useful information here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a random joke') and names the upstream API. It implicitly contrasts with official_joke_by_type and official_joke_ten but never names them, so an agent must infer the distinction from their names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use or when-not statement. The word 'random' implies unfiltered retrieval versus the type-filtered sibling, but 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.
official_joke_tenARead-onlyIdempotent
Get 10 random jokes from Official Joke API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, open-world and idempotent, so the safety profile is covered. The description adds the source API and the random-selection trait, but says nothing about what the jokes look like (types, structure) or whether repeated calls return the same set. Nothing here contradicts the annotations, since a random read with no side effects still fits readOnly/idempotent.
Agents need to know what a tool does to the 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 short sentence with the action, count, and data source front-loaded, and no wasted clauses. Nothing is padded or repeated from the 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?
For a zero-parameter read-only utility with full annotation coverage and no output schema, the description supplies enough to call it correctly. The one meaningful gap is whether the ten jokes are mixed types or uniform, which matters given the existence of official_joke_by_type.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the schema needs no explanation and the baseline is 4. The description correctly implies no inputs are required and adds the fixed count of 10, which is the only behavioral detail a caller needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 plus a quantity: fetch 10 random jokes from the Official Joke API. It implicitly separates itself from official_joke_random (single joke) by stating the count, but it never names the sibling, so an agent must infer the distinction rather than read 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?
Usage is only implied: the fixed count of 10 signals this is the bulk variant versus official_joke_random or official_joke_by_type, which an agent can reason about. There is no explicit when-to-use, when-not-to-use, or alternative routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omdb_by_idARead-onlyIdempotent
Get an OMDB movie/show by IMDb ID.
| Name | Required | Description | Default |
|---|---|---|---|
| i | Yes | IMDb ID | |
| api_key | No |
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 no further behavioral context such as API-key requirements, rate limits, or lookup 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?
A single short sentence with the key identifying detail front-loaded; 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 lookup with annotations covering its safety profile and no output schema, the description is mostly sufficient. It could have noted the api_key requirement or error behavior, but the core lookup contract 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 coverage is 50%: the required 'i' parameter is documented in the schema as 'IMDb ID,' and the description merely repeats that. The 'api_key' parameter is undocumented in both schema and description, so the description does not compensate for the coverage 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?
States a specific verb and resource ('Get an OMDB movie/show') and the exact lookup key ('by IMDb ID'), which clearly distinguishes it from siblings like omdb_by_title and omdb_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 'by IMDb ID' wording implies the tool should be used when an IMDb ID is available, but it does not explicitly compare itself to omdb_by_title or omdb_search 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.
omdb_by_titleCRead-onlyIdempotent
Get an OMDB movie/show by title.
| Name | Required | Description | Default |
|---|---|---|---|
| t | Yes | ||
| y | No | ||
| type | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds only that the resource is a movie/show and retrieval is by title, without disclosing rate limits, API-key requirements, or return behavior. That is acceptable but adds little 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 single sentence is front-loaded and has no filler. It is appropriately concise, though its brevity contributes to the missing usage and parameter detail rather than serving a complete 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?
There is no output schema, four parameters are undocumented by the schema, and the description does not fill that gap. An agent is left without guidance on optional filters, authentication, or what the response contains, which is insufficient for a four-parameter 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 0% for four parameters. The description only hints at the required title parameter ('by title') and vaguely at media type ('movie/show'), but does not explain the year filter or the api_key parameter. With low coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 an OMDB movie/show') and narrows retrieval to 'by title'. It is clear what the tool returns, but it does not explicitly distinguish itself from the sibling tools omdb_search and omdb_by_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 gives no guidance on when to use this tool instead of omdb_search or omdb_by_id. It implies title-based lookup but does not state prerequisites, exclusions, or alternative-selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
omdb_searchCRead-onlyIdempotent
Search movies/TV shows on OMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| s | Yes | Search term | |
| y | No | ||
| type | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, open-world, and non-destructive behavior, so the description does not contradict them. However, it adds no behavioral context beyond the annotations—nothing about API-key requirements, result limits, pagination, or what the search returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the core action front-loaded. It contains no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter search tool with no output schema and low schema description coverage, the definition is too thin. An agent can infer the required search term, but the optional year/type filters and api_key behavior remain unexplained, leaving meaningful operational 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 description coverage is only 25%, so the description must compensate for undocumented parameters. It does not explain the optional year, type, or api_key parameters at all, and adds no meaning beyond the schema's own 'Search term' label for s.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: searching movies/TV shows on OMDB. It is understandable without opening the schema, though it does not explicitly differentiate this tool from sibling title/id lookup tools such as omdb_by_title and omdb_by_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?
There is no guidance on when to use this search tool versus omdb_by_title or omdb_by_id, nor any mention of prerequisites such as an API key. Usage is only implied by the word 'Search' and the required search term in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onedrive_listCRead-onlyIdempotent
List files and folders from OneDrive.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (max 200, default 50) | |
| folder_id | No | Folder item id (omit for root) | |
| access_token | No | OneDrive access token |
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 fully covered by structured data. The description adds nothing beyond that: no mention of pagination behavior, ordering, or whether the listing is recursive or single-level, all of which matter for a listing tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loaded with the core purpose. It is efficient but borders on under-specification given how many sibling tools exist.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters are fully documented in the schema and the annotations cover the safety profile. However, with no output schema, the description should say what a listing entry looks like or whether results are paginated, and it says nothing about either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit, folder_id, and access_token each documented in the schema (including the max/default for limit and the root-folder omission rule). The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (list) and resource (OneDrive files and folders), which is clear enough to distinguish it from unrelated siblings. However, it does not differentiate itself from the closely related onedrive_search and onedrive_read siblings, which an agent could easily confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over onedrive_search (find a specific item) or onedrive_read (fetch content), nor any mention of prerequisites such as needing a valid access token. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onedrive_readBRead-onlyIdempotent
Read OneDrive file metadata and a safe text preview when available.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | OneDrive item id | |
| access_token | No | OneDrive access token |
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 known. The description adds that a text preview is returned only 'when available' and is 'safe' (sanitized), which is useful context beyond annotations, but it doesn't explain what 'safe' means, size limits, or auth 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?
A single efficient sentence with the core purpose front-loaded and no filler. The phrase 'safe text preview when available' is slightly ambiguous but doesn't waste 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 read-only tool with no output schema, the description should clarify what metadata is returned and the nature of the preview. It names both but doesn't explain their shape or limits; annotations cover safety, leaving a moderate gap in return-value 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 both parameters (item_id, access_token) are already documented in the schema. The description adds no additional format, source, or authentication detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('read') and resource ('OneDrive file metadata and a safe text preview'), so the agent knows what it returns. It does not name or differentiate from close siblings like onedrive_list, onedrive_search, or drive_read, leaving the agent to infer it targets a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to prefer this over onedrive_list, onedrive_search, or drive_read, and no prerequisites stated. The only conditional hint is the vague 'when available' qualifier on the preview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onedrive_searchARead-onlyIdempotent
Search OneDrive files and folders by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (max 100, default 25) | |
| query | Yes | File or folder name to search for | |
| access_token | No | OneDrive access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, open-world operation. The description adds the useful scope that search is by file or folder name, but it does not explain matching behavior, authorization requirements, pagination, or other runtime traits. Given the annotation coverage, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted language. It communicates the core operation 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 read-only search tool with full schema descriptions and annotations, the definition is enough to invoke the tool correctly. It is less complete for routing decisions because it does not contrast with sibling OneDrive listing and reading 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 query, limit, and access_token parameters are already documented. The description's 'by name' wording reinforces the query parameter's meaning but adds no syntax, matching rules, or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: search OneDrive files and folders, narrowed to name-based search. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as onedrive_list or onedrive_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 that this tool is for name-based lookup rather than listing or reading a known item. However, it gives no explicit guidance on when to use it instead of onedrive_list, onedrive_read, or other OneDrive operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openai_chat_completionC
Run a chat completion with an OpenAI model (GPT-4o, GPT-4, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | ||
| seed | No | ||
| model | No | Model ID, e.g. gpt-4o, gpt-4o-mini (default: gpt-4o-mini) | |
| top_p | No | ||
| org_id | No | OpenAI organization ID (optional) | |
| prompt | No | Convenience: single user message (alternative to messages array) | |
| api_key | Yes | ||
| messages | No | Array of {role, content} message objects (alternative to prompt) | |
| max_tokens | No | ||
| temperature | No | ||
| system_prompt | No | System instruction (used with prompt param) | |
| response_format | No | e.g. {type: 'json_object'} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the high-level action ('run a chat completion') without disclosing behavioral traits like cost, rate limits, safety implications, or output format. Critical details for a generative AI tool are missing.
Agents need to know what a tool does to the world before calling 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, concise sentence that front-loads the verb and object. It is efficient but could incorporate more contextual information without expanding length unduly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 12 parameters, no output schema, and multiple sibling tools performing similar tasks, the description is too sparse. It does not explain return values, error handling, special behaviors (e.g., streaming), or how to structure messages. The agent lacks sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, meaning half of the 12 parameters lack descriptions in the schema. The description adds no parameter-level information beyond naming the model family. It fails to compensate for the missing schema descriptions, especially for parameters like max_tokens, temperature, and seed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 runs a chat completion with OpenAI models (GPT-4o, GPT-4, etc.). It identifies the specific provider and task, distinguishing it from siblings by model family, but does not explicitly contrast with other chat completion tools like Anthropic or Groq.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when an OpenAI chat completion is needed, but provides no explicit guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion criteria. The only hint is the focus on OpenAI models.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openai_create_embeddingB
Create vector embeddings for text using an OpenAI embedding model.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | String or array of strings to embed | |
| model | No | Embedding model (default: text-embedding-3-small) | |
| org_id | No | ||
| api_key | Yes | ||
| dimensions | No | Number of output dimensions (for text-embedding-3-* models) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the core action but omits important details such as cost, rate limits, model selection implications, and that an API key (required) is needed.
Agents need to know what a tool does to the world before calling 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 concise sentence with no unnecessary words, perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple parameters, no output schema), the description is too brief. It does not explain what embeddings are, how to use the tool effectively, or what the output format looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% with some parameters having descriptions. The description adds no additional meaning beyond the schema; it does not mention the undocumented api_key or org_id parameters or provide any usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'vector embeddings for text using an OpenAI embedding model.' It distinguishes well from sibling embedding tools from other providers and other OpenAI tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating embeddings but provides no explicit when-to-use, when-not-to-use, or alternatives. No guidance on prerequisites or selection among similar embedding tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openai_create_transcriptionC
Transcribe audio to text using OpenAI Whisper.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Transcription model (default: whisper-1) | |
| prompt | No | ||
| api_key | Yes | ||
| filename | No | ||
| language | No | ISO-639-1 language code (optional) | |
| audio_url | Yes | URL of the audio file to transcribe | |
| temperature | No | ||
| response_format | No | json, text, srt, verbose_json, vtt (default: json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the action; no details on auth needs, cost implications, file handling, or whether it's a read/write operation beyond inferring transcription.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence, no wasted words. However, it is under-specified for the tool's complexity, so it's not ideally concise—it lacks necessary 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 tool with 8 parameters, no output schema, and no annotations, the description is severely lacking. It does not cover model options, response formats, or any practical usage 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 coverage is 50% (4 of 8 parameters have descriptions). The description adds no parameter information; it just repeats the tool's purpose. It does not compensate for the 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?
Description clearly states verb 'transcribe' and resource 'audio to text', and specifies the underlying model 'OpenAI Whisper'. It distinguishes from sibling OpenAI tools like chat, embeddings, 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?
No guidance on when to use this tool vs alternatives. No prerequisites, when-not-to-use, or alternative transcription tools mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openai_generate_imageC
Generate images from a text prompt using DALL-E.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of images to generate | |
| size | No | 1024x1024, 1792x1024, or 1024x1792 for DALL-E 3 | |
| model | No | dall-e-3 or dall-e-2 (default: dall-e-3) | |
| style | No | natural or vivid (DALL-E 3 only) | |
| prompt | Yes | ||
| api_key | Yes | ||
| quality | No | standard or hd (DALL-E 3 only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states generation but doesn't disclose that this is a paid external API call, that an api_key is required, rate limits, or what happens on failure. For a cost-incurring mutation, this is a significant 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?
A single efficient sentence with no waste, though it is arguably too terse given the tool's complexity and missing details about required api_key.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters including a required undocumented api_key, no annotations, and no output schema, the description is insufficient. It should explain API key requirements, cost/model implications, and output format given these structured-field 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 71%, but the two required parameters (api_key and prompt) are undocumented in the schema and the description adds no meaning for them beyond restating 'text prompt' and mentioning DALL-E. Size, n, quality, and style are left entirely to 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 (generate), resource (images), and method (DALL-E), and clearly implies text-to-image generation. It does not explicitly differentiate itself from siblings like higgsfield_generate_image or stability_text_to_image, 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?
There is no guidance on when to use this tool versus the many image-generation siblings, no prerequisitives or notes about api_key handling. The agent gets no help choosing between this and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openai_list_modelsBRead-onlyIdempotent
List all OpenAI models available to the account.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so safety is covered. The description adds the account-scoping detail, which is real context, but says nothing about pagination, ordering, rate limits or what the returned model objects contain.
Agents need to know what a tool does to the 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 short sentence with the scope qualifier placed at the end where it belongs. No waste, though also no front-loaded cue about authentication or output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with full annotation coverage and no output schema, the description is nearly adequate, but the one undocumented parameter (api_key, required) is the gap an agent will actually stumble on when invoking 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?
There is one required parameter, api_key, with 0% schema description coverage, and the description never mentions it — not that it is required, not the expected format, not whether it can come from an environment default. The description does nothing to compensate for the schema 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?
States a specific verb and resource ('List all OpenAI models') and scopes it to 'available to the account'. That is enough to distinguish it from sibling model-listing tools (anthropic_list_models, cohere_list_models), though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to call this versus alternatives, no prerequisites beyond the implicit account scope, and no exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openalex_get_workARead-onlyIdempotent
Get full metadata for a scholarly work by OpenAlex ID or DOI.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | OpenAlex ID (e.g. W2741809807) or DOI URL. |
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 it returns "full metadata," but says nothing beyond that about response shape, error behavior for unknown IDs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler. Every element (verb, scope, accepted identifier types) 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 with no output schema, the definition plus annotations give an agent enough to call it correctly. It stops short of describing the returned record or handling of invalid identifiers, keeping it at a 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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's description already specifies the accepted formats (OpenAlex ID example W2741809807 or DOI URL). The description only restates that an ID or DOI is accepted, adding no format 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 ("Get") and resource ("full metadata for a scholarly work") with a clear key (OpenAlex ID or DOI). It is distinguishable from openalex_search_works by returning a single work's full record, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies lookup-by-identifier usage via "by OpenAlex ID or DOI", but gives no guidance on when to use this versus openalex_search_works or crossref_get_work, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openalex_search_authorsCRead-onlyIdempotent
Search OpenAlex for academic authors by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Author name to search. | |
| per_page | No | Results per page (default 5, max 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is fully covered by structured data. The description adds nothing beyond them — no mention of result ordering, relevance behavior, rate limits, or that results are remote/third-party.
Agents need to know what a tool does to the 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 with zero filler. It is efficient, though so terse that no secondary information is delivered at all.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema coverage and annotations, this is minimally viable. With no output schema, the description could have said what an author result contains (OpenAlex author IDs for follow-up lookups, works count, affiliation) — that omission matters for chaining.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the per_page default and max, so the baseline is 3. The description's 'by name' mildly reinforces that query is a name string rather than an ID, but adds no new syntax or matching semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and a specific resource (OpenAlex academic authors), scoped to name lookup. It implicitly separates itself from openalex_search_works, but never names or contrasts with the closer sibling dblp_search_authors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to choose this over openalex_search_works or dblp_search_authors, and no note on what a name query can or cannot resolve (e.g. ambiguity, affiliation disambiguation). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openalex_search_worksCRead-onlyIdempotent
Search OpenAlex for scholarly works by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term. | |
| per_page | No | Results per page (default 5, max 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so safety is covered. Beyond that the description adds nothing: no mention of result ranking, pagination limits beyond the schema's own per_page text, rate limits, or what happens on an empty/no-match query. It contributes no behavioral context the structured fields don't already give.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with no filler. It is efficient but borders on under-specified rather than crisp.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with full schema coverage and safety annotations, a minimal description is close to sufficient, and no output schema means return values needn't be explained. However, given the dense field of sibling search tools and no output schema, the description should at least characterize result shape or scope to be 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 both parameters are fully documented in the schema, making 3 the baseline. The phrase 'by keyword' loosely confirms that query is a free-text term rather than a structured filter, but adds no syntax, field qualifier, or sorting 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 ('Search') and resource ('scholarly works') against a named provider (OpenAlex), which is unambiguous on its own. It does not distinguish this from closely related siblings such as crossref_search_works, arxiv_search, dblp_search_publications, or openalex_get_work, so an agent gets no help choosing between 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?
There is no statement of when to use this versus the many other scholarly search tools in the sibling list, and no prerequisites or exclusions. The only implied usage is 'keyword search', which the agent could infer 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.
openaq_air_qualityC
Get air quality data for a location from OpenAQ.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| limit | No | ||
| country | No | ||
| parameter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but fails to disclose any behavioral traits such as authentication needs, rate limits, or data freshness. The minimal description adds no value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but severely under-specified for a tool with four parameters. Conciseness should not come at the cost of utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and 100% undocumented parameters, the description provides almost no context. The agent cannot infer return type, pagination, or expected 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 coverage is 0% and the description does not explain any parameter (city, country, parameter, limit). The agent gets no semantic help beyond raw names, making correct invocation difficult.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource 'air quality data' from OpenAQ, making the core purpose understandable. However, it does not differentiate from sibling tools like openaq_countries or openaq_measurements, which is a missed opportunity for 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?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions. The description is silent on context, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openaq_countriesBRead-onlyIdempotent
List countries with air quality data on OpenAQ.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is fully covered. The description's only added behavioral fact is the scoping constraint (only countries with data), which is genuinely useful but thin; nothing about result size, ordering, or whether the list is exhaustive.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, and no filler. It could carry one more clause (what the list is used for) without becoming bloated, but nothing present 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 zero-param, read-only list endpoint with full annotation coverage and no output schema, this is adequate but minimal: it does not say what fields come back (codes vs names) or that the output feeds the other openaq_* tools, which is the main reason an agent would 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?
Zero parameters, so baseline is 4. The description correctly implies the tool takes no input, matching the empty schema, and adds no misleading parameter expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('List') plus resource ('countries') with an added qualifier: only countries that have air quality data on OpenAQ. That distinguishes it from openaq_air_quality and openaq_measurements in substance, but it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus the other OpenAQ tools, no mention that the result is typically a discovery step to obtain country names/IDs for the measurement tools. Usage is only implied by the word 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openaq_measurementsC
Get air quality measurements from OpenAQ.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| date_to | No | ||
| date_from | No | ||
| parameter | No | ||
| location_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits, but it offers none. It does not mention pagination, rate limits, data freshness, or the effect of parameters like 'limit' on output, leaving significant behavioral uncertainty.
Agents need to know what a tool does to the world before calling 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, which is concise but overly brief given the tool's complexity. It sacrifices necessary detail for brevity, earning a middle score for balance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 5 parameters, no output schema, and no annotations, the description is severely incomplete. It omits explanations of parameters, return values, and usage conventions, failing to provide a complete picture 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 has 0% description coverage across 5 parameters, and the description adds no meaning. It fails to explain the purpose of 'location_id', 'parameter', 'date_from', 'date_to', or 'limit', forcing the agent to rely solely on parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves air quality measurements from OpenAQ, establishing a verb-resource pair. However, it does not differentiate from sibling tools like openaq_air_quality or openaq_countries, missing an opportunity to clarify 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?
No guidance is provided on when to use this tool versus alternatives such as openaq_air_quality. The description lacks context about prerequisites, appropriate scenarios, or exclusions, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openchargemap_searchB
Find EV charging stations near a location from Open Charge Map.
| Name | Required | Description | Default |
|---|---|---|---|
| distance | No | Search radius in km (default 10). | |
| latitude | Yes | Latitude. | |
| longitude | Yes | Longitude. | |
| max_results | No | Max stations (default 10, max 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only search but does not disclose authentication needs, rate limits, result ordering, pagination, or what the response contains.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for a simple search tool and gets straight to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 input schema fully covers the parameters, so inputs are clear. However, with no output schema, the description does not explain return values, pagination, or operational constraints, leaving meaningful gaps for an agent calling 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 coverage is 100%, and the schema documents all four parameters including defaults and limits. The description only says the search is near a location and adds no extra parameter 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 states a specific verb (Find), resource (EV charging stations), scope (near a location), and data source (Open Charge Map). An agent can identify exactly what this tool does 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?
It implies the tool is for nearby EV station searches but gives no when-to-use guidance, no when-not-to-use conditions, and no alternatives. The required latitude/longitude inputs are only conveyed through the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opendota_heroesA
List all Dota 2 heroes with roles and attack types from OpenDota.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the behavioral burden. It discloses the shape of the returned records (roles and attack types) and that the set is complete ('all'), which is useful. It says nothing about caching, rate limits, data freshness, or result size, but for a trivial no-param static list that 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?
A single front-loaded sentence with no filler; the resource and the returned fields are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-parameter, no-output-schema lookup, the description is nearly sufficient: the agent knows it lists all heroes with roles and attack types. A note on approximate result size or static nature would close the remaining 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 tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify beyond what the empty schema already communicates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('List all Dota 2 heroes') and even enumerates the returned fields ('roles and attack types'), so the agent knows exactly what data this yields. However, it does not distinguish itself from the sibling 'opendota_hero_stats', which an agent could easily confuse with this 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?
There is no statement of when to use this tool rather than 'opendota_hero_stats' or 'opendota_pro_matches', and no prerequisites or context are given. The agent must infer the use case purely 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.
opendota_hero_statsBRead-onlyIdempotent
Get Dota 2 hero statistics including pick/win rates per bracket.
| 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, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds only the nature of the metrics returned, with nothing about response shape, freshness of the data, or whether all brackets are returned at once — leaving the 'per bracket' phrasing unexplained.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler; the resource and the payload are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool this is close to adequate, but with no output schema the description is the only place to learn what actually comes back — e.g. whether the response is per-hero records each containing per-bracket win/pick rates, or a flat aggregate. The 'per bracket' claim without any explanation of how brackets are represented leaves a real 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 tool takes zero parameters, so there is no parameter semantics burden and the baseline of 4 applies. The description correctly implies no required input.
Input schemas describe structure but not intent. Descriptions should explain 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 Dota 2 hero statistics') plus the content returned ('pick/win rates per bracket'), which is meaningfully more specific than a bare name restatement. It does not, however, distinguish itself from the sibling 'opendota_heroes', so an agent must infer that this returns stats rather than the hero roster.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus 'opendota_heroes' or 'opendota_pro_matches', which are the obvious alternatives in the same namespace. The mention of 'per bracket' further implies a filtering dimension that isn't explained (and no parameter exists to select one).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opendota_pro_matchesBRead-onlyIdempotent
Get recent professional Dota 2 match results from OpenDota.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds little behavioral context: 'recent' is undefined (no time window or result count), and pagination/rate-limit behavior is 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, front-loaded sentence with no wasted words. It is appropriately sized for a zero-parameter tool, though it could afford one more clause defining 'recent'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters and no output schema, the annotations already carry the safety profile. However, the description leaves key behavioral details ambiguous: what 'recent' means and roughly how many results are returned. For an agent deciding whether this meets a data need, these omissions matter.
Complex tools with many parameters or behaviors need more documentation. 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 are no parameter semantics for the description to clarify. Baseline 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?
States a specific verb and resource ('Get recent professional Dota 2 match results') and names the data source. This clearly distinguishes it from hero-data siblings like opendota_heroes and opendota_hero_stats, though the broad list of esports siblings means differentiation could be sharper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this to fetch recent pro match results. There is no explicit when-to-use versus alternatives (e.g., esports_matches, opendota_hero_stats) and no guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_elevation_lookupBRead-onlyIdempotent
Get elevation in meters for given coordinates from Open Elevation API.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude. | |
| longitude | Yes | Longitude. |
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 the units (meters) and the external data source, which is useful context, but says nothing about per-request point limits, rate limits, accuracy, or failure behavior for out-of-range coordinates.
Agents need to know what a tool does to the 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-formed sentence with the key output unit front-loaded and no filler. It is efficient, if spare given the remaining informational gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 plus annotations plus schema is nearly sufficient, and the return value (elevation in meters) is stated despite no output schema. The missing piece is the coordinate input convention, which is the main thing an agent needs to call this 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 of 3 applies. However, the schema descriptions are trivial ('Latitude.', 'Longitude.') and the tool description does not specify coordinate format (decimal degrees, WGS84), accepted ranges, or whether multiple points can be submitted — details an agent could get wrong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 elevation in meters for given coordinates') and names the backing service (Open Elevation API), so the tool's function is unambiguous. It stops short of differentiating from any sibling, but no sibling in the list offers elevation lookup, so ambiguity risk is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 an alternative, no prerequisites, and no exclusions. An agent is left to infer usage entirely from the one-line purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfda_adverse_eventsBRead-onlyIdempotent
Search FDA drug adverse event reports.
| Name | Required | Description | Default |
|---|---|---|---|
| drug | Yes | Drug name to search adverse events for | |
| limit | No | Number of results (default 5) |
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 nothing beyond that — no note on result volume, typical response shape, or that results are public FAERS reports — so it earns only a baseline-with-annotations 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?
One short sentence that front-loads the verb and resource with zero filler. Nothing is padded or repeated from the 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?
Safety is covered by annotations and parameters by the schema, so nothing is fatally missing for invoking the tool. However, for a search tool sitting next to two other openFDA tools, the absence of any disambiguation or result-expectation note leaves a real 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 both parameters (drug, limit) are documented in the schema including the default of 5. The description adds no extra meaning such as accepted drug-name forms, brand vs generic handling, or matching behavior, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Search') and resource ('FDA drug adverse event reports'), so an agent knows exactly what domain this touches. It does not distinguish itself from siblings such as openfda_drug_search or openfda_recall_search, which would be needed for 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?
There is no statement of when to use this versus openfda_drug_search (drug label info) or openfda_recall_search (recalls), despite those being obvious near-neighbors. The agent must infer the distinction from the tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfda_drug_searchARead-onlyIdempotent
Search FDA drug labels by brand name or ingredient.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 5) | |
| query | Yes | Drug name or ingredient to search for |
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 matching scope but does not expand on rate limits, authentication, result shape, or other behavioral context beyond what annotations and schema 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 a single front-loaded sentence with no filler. It is appropriately sized for a simple two-parameter 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 read-only search tool with fully covered schema parameters and rich annotations, the description supplies the essential purpose and search scope. It does not describe returned label fields or search matching behavior, but no output schema exists and those details are secondary here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the 'query' and 'limit' parameters are already documented in the schema. The description reinforces that 'query' matches brand name or ingredient, but adds no syntax or formatting details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search'), resource ('FDA drug labels'), and matching fields ('brand name or ingredient'). It also implicitly distinguishes this from sibling OpenFDA endpoints such as openfda_recall_search and openfda_adverse_events by scoping the search to drug labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the stated resource and matching fields: an agent can infer this is for drug label lookups by brand or ingredient. However, there is no explicit when/when-not guidance or routing to sibling tools like recall or adverse-event searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfda_recall_searchCRead-onlyIdempotent
Search FDA food and drug recall enforcement actions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 5) | |
| query | Yes | Product or reason to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds no further behavioral context such as result format, rate limits, query syntax, or what the search returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no wasted words. It is somewhat terse for a search tool, but appropriately 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 simple read-only search with rich annotations and full schema coverage, the description is adequate. However, it omits result format and query behavior, and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple 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 query and limit documented in the schema. The description adds no syntax or semantic detail beyond the schema, 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 (Search) and resource (FDA food and drug recall enforcement actions). It is distinguishable from siblings like openfda_adverse_events and openfda_drug_search by domain, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool versus openfda_adverse_events or openfda_drug_search. No prerequisites, exclusions, or alternative tools are mentioned; usage is only implied by the domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfigi_mappingC
Map a financial instrument identifier (ticker, ISIN, CUSIP) to FIGI.
| Name | Required | Description | Default |
|---|---|---|---|
| id_type | No | Identifier type: TICKER, ISIN, CUSIP, SEDOL (default: TICKER). | |
| id_value | Yes | Identifier value (e.g. AAPL). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the mapping but omits authentication needs, rate limits, error behavior, whether multiple FIGIs can be returned, and pagination.
Agents need to know what a tool does to the 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 naming the verb and resource, with input types listed compactly. 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?
There is no output schema and no annotations. The description says it maps to FIGI but not whether the result is a single FIGI or a list, the response format, or error cases for unmappable identifiers, leaving significant gaps for an integration 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% with descriptions for both parameters. The description lists TICKER, ISIN, and CUSIP (matching some id_type values but omitting SEDOL) and adds no syntax or format detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (map) and resource (financial instrument identifier) plus the resulting resource (FIGI). It enumerates accepted identifier types, but does not distinguish itself from the sibling tool openfigi_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?
No guidance on when to use this tool rather than openfigi_search or any alternative. The context is only implied: the agent has an identifier and wants a FIGI.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfigi_searchBRead-onlyIdempotent
Search OpenFIGI for financial instruments by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (company or instrument name). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint and destructiveHint=false, so safety and side-effect profile are covered. The description adds only that the backend is OpenFIGI (external, network-dependent), which is already implied by openWorldHint. It says nothing about result caps, ranking, or rate limits on the external service.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and the resource, with zero filler. It is arguably too terse rather than wasteful, but nothing in it needs cutting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with no output schema, the description covers only the minimum. It omits return shape (list of FIGIs/securities), whether results are paginated or capped, and how ambiguity is resolved — details an agent would want before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'query' parameter is documented in the schema as a company or instrument name. The description's 'by name' mildly reinforces this but adds no syntax, formatting, or fuzzy-matching details 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?
Specific verb+resource: 'Search OpenFIGI for financial instruments by name' tells an agent exactly what is queried and by what key. It does not distinguish itself from the sibling openfigi_mapping, which is the likely confusable alternative (identifier-to-FIGI mapping vs. name 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?
No guidance on when to use this versus openfigi_mapping, no note that only names/queries are accepted, and no statement about what to do if no match is found. The agent must infer the routing decision entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openlibrary_author_worksC
Get works by an author from Open Library.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| author_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It fails to mention data format, pagination, rate limits, or what 'works' includes (books, editions, etc.). This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at one sentence, but lacks necessary detail. It is not well-structured; minimal content earns a middle 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 lack of output schema and sibling tools, the description fails to specify return values or how results are structured. It is incomplete for an agent to reliably 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?
Schema description coverage is 0%. The description does not explain the parameters (author_id, limit) beyond what the schema provides. The agent has no context on how to use them 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 clearly states the tool retrieves works by an author from Open Library. It uses a specific verb ('Get') and resource ('works by an author'), and distinguishes from sibling tools like openlibrary_get_author (gets author details) and openlibrary_search (general 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?
No guidance on when to use this tool versus alternatives like openlibrary_search or openlibrary_trending. No context provided about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openlibrary_get_authorBRead-onlyIdempotent
Get an author from Open Library by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| author_id | Yes | e.g. OL23919A |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that, such as error handling for invalid IDs or what the returned author record includes.
Agents need to know what a tool does to the world before calling 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 short sentence with zero filler and is front-loaded with the action and resource. Every word contributes to identifying the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complete schema coverage, rich annotations, and no output schema, the description is sufficient to invoke it correctly. It would be slightly stronger if it mentioned that the result is an author record or whether works are included, but that is not strictly required here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter already has an example ('OL23919A'). The description reinforces that the lookup is by ID but adds no format or semantics 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 states a specific verb and resource ('Get an author') and identifies the source and lookup key ('Open Library by ID'). This distinguishes it from book/edition getters, though it does not explicitly differentiate it from sibling tools like openlibrary_search or openlibrary_author_works.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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' implies the tool should be used when an author ID is already known, which gives some usage context. However, it does not state when to prefer this over openlibrary_search or openlibrary_author_works, so an agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openlibrary_get_bookB
Get a book from Open Library by work ID.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | e.g. OL45804W |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether the tool is read-only, what data is returned, authentication needs, or any constraints beyond the input parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single, short sentence that immediately conveys the tool's purpose. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It does not explain what constitutes a 'book' in Open Library, expected output format, or behavior for invalid 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 has one parameter with description 'e.g. OL45804W' (an example). Description adds that it's a work ID, which clarifies its role. Since schema coverage is 100%, baseline is 3, and description adds marginal 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?
Description clearly states verb 'Get', resource 'book from Open Library', and method 'by work ID'. It is specific and distinguishes from siblings like openlibrary_get_edition or openlibrary_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?
No guidance on when to use this tool vs alternatives (e.g., openlibrary_get_edition, openlibrary_search). Does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openlibrary_get_editionB
Get a book edition from Open Library by ISBN.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as rate limits, authentication requirements, error handling, or what happens if the edition is not found. The description carries the full burden but provides minimal additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 8 words, very concise. However, it could benefit from additional details without becoming overly verbose. Structure is appropriate for the simplicity of 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?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimally adequate. However, it does not explain return values, pagination, or error states, which would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions ISBN but does not specify format (10/13 digit, hyphens, etc.) or provide any validation details. The parameter is minimally described.
Input schemas describe structure but not intent. Descriptions should explain 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 verb 'get', resource 'book edition', source 'Open Library', and identifier 'ISBN'. It is specific and distinguishes from sibling tools like openlibrary_get_book and openlibrary_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?
No guidance on when to use this tool versus alternatives like openlibrary_get_book or openlibrary_search. Does not mention any prerequisites, exclusions, or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openlibrary_searchC
Search books on Open Library.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| page | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'Search books on Open Library', revealing no behavioral traits such as whether the operation is read-only (likely), if rate limits apply, or what the response structure is. This is insufficient for a tool with no 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 very concise (one short sentence) with no wasted words. However, this brevity comes at the expense of completeness, making it feel under-specified rather than elegantly compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, no annotations, and 3 parameters with no descriptions, the description is far from complete. It does not explain what the search returns, how pagination works, or any constraints. A complete description would need to address these 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 description adds zero meaningful information about the three parameters (q, limit, page). Given that the schema has 0% description coverage, the description should at minimum explain that 'q' is the search query. It fails to do so, leaving the agent to guess parameter purposes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search books on Open Library' clearly states the tool's function (search) and resource (books on Open Library). It is specific enough to differentiate from other Open Library tools like openlibrary_get_book or openlibrary_trending, though it could be more explicit about the type of search (e.g., by title, author).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like openlibrary_author_works or openlibrary_get_book. There is no mention of typical use cases, prerequisites, or when not to use it. The description is purely functional without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openlibrary_trendingB
Get trending books from Open Library.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description is minimal with no annotations. Does not disclose behavior such as number of books returned, ordering, or any pagination. The agent has little to go on.
Agents need to know what a tool does to the 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 clear sentence, efficient and front-loaded. No unnecessary 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 no-param tool, the description is adequate but could be improved by specifying output format (e.g., 'returns a list of book objects'). Lacks output schema details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description is not required to add parameter semantics. Schema coverage is 100%, baseline score of 4 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?
Clearly states the tool retrieves trending books from Open Library, differentiating from search or single-book tools. However, it lacks specificity on what 'trending' means (e.g., time period, criteria).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like openlibrary_search or openlibrary_get_book. The agent must infer 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.
opensky_flightsB
Get flight history from OpenSky Network for a time range (max 2 hours).
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End time (Unix timestamp). | |
| begin | Yes | Start time (Unix timestamp). | |
| icao24 | No | Filter by ICAO24 transponder address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation ('Get') and discloses a hard time-range limit (max 2 hours), but does not state authentication needs, rate limits, pagination, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It states the action, source, and key limit immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with fully described parameters but no output schema or annotations, the description gives source and time-range constraints. However, it omits return shape, auth requirements, and sibling differentiation, so an agent may still lack enough context to use it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 begin, end, and icao24. The description adds only the max-2-hour constraint on the time range and does not add per-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 and resource ('Get flight history from OpenSky Network') plus the time-range scope, so the agent knows this is a historical flight-data lookup. It does not name the sibling opensky_states to explicitly differentiate current state vectors from historical flights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance or alternatives are provided. The max 2-hour constraint hints at a limited historical window, but the agent must infer that this is for past flights rather than current states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opensky_statesC
Get live aircraft states (position, altitude, velocity) from OpenSky Network.
| Name | Required | Description | Default |
|---|---|---|---|
| lamax | No | Bounding box max latitude. | |
| lamin | No | Bounding box min latitude. | |
| lomax | No | Bounding box max longitude. | |
| lomin | No | Bounding box min longitude. | |
| icao24 | No | Filter by ICAO24 transponder address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Live' hints at real-time data, but it says nothing about read-only semantics, OpenSky's anonymous-user rate limits, authentication needs, or whether results are a snapshot vs. a stream.
Agents need to know what a tool does to the 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 tight sentence with the verb and resource front-loaded and zero padding; only the missing sibling differentiation keeps it from being ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations, the description is the only behavioral source, yet it omits rate limits, auth context, and return-shape guidance for a tool with five optional filter parameters. It is adequate but leaves real 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 description coverage is 100% and each of the five optional parameters is documented in the schema itself, so the description adds no parameter meaning beyond it. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus resource ('live aircraft states') with parenthetical detail on what state fields are returned, and the data source. However, it never distinguishes itself from its sibling opensky_flights, which an agent would otherwise confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this vs. opensky_flights or any alternative. Nothing states that the bounding-box params are optional filters or under what conditions a caller should supply them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_rankB
Compute PageRank scores for nodes in a directed graph.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of directed edges {from, to} | |
| damping | No | Damping factor (default 0.85) | |
| tolerance | No | Convergence tolerance (default 1e-6) | |
| iterations | No | Max iterations (default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry behavioral disclosure, and 'Compute' at least implies a pure, side-effect-free calculation. But it says nothing about convergence behavior, that results are iterative scoring, or that no external state is mutated. Adequate but with clear gaps for a tool with zero 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?
A single front-loaded sentence with zero filler and no repetition of schema details. It is efficient, though its extreme brevity for a four-parameter algorithmic tool leaves it feeling under-developed rather than optimally 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?
There is no output schema, so the description could have stated that it returns a score per node, but it does not. Parameters are fully covered by the schema and there are no annotations to complement, leaving the return shape and any edge-case behavior unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple 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 itself documents each parameter with its default (damping 0.85, tolerance 1e-6, iterations 100), so the baseline is 3. The description adds nothing about edge semantics (e.g., duplicate edges, self-loops) or tuning trade-offs, so it does not exceed 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 ('Compute PageRank scores') plus the input domain ('nodes in a directed graph'), so the agent immediately knows what it does. However, it makes no attempt to distinguish itself from the many other graph-algorithm siblings (graph_analyze, graph_condensation, centrality-like tools), which is what separates a 4 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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as graph_analyze or other ranking/centrality routines. The agent is left to infer from the name alone that this is the ranking tool rather than a general graph analysis tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_acknowledge_incidentB
Acknowledge a PagerDuty incident by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | PagerDuty API key | |
| incident_id | Yes | Incident ID to acknowledge |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full behavioral burden but only states the action. It does not disclose side effects (e.g., status change, notifications), permissions required, or expected outcomes beyond acknowledgment.
Agents need to know what a tool does to the world before calling 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, clear sentence with no unnecessary words. It could benefit from slightly more detail, but it is appropriately concise for a simple 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 action, the description is adequate but lacks details like impact on incident state or authentication context. The absence of output schema is acceptable as the action is purely side-effect, but more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple 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 well-described in the schema. The description adds no extra meaning beyond 'by ID', so it meets the baseline without improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Acknowledge), resource (PagerDuty incident), and method (by ID). It distinguishes from sibling tools like create, get, list, resolve, making it easy to select the correct 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 no guidance on when to use this tool versus alternatives, nor does it mention prerequisites (e.g., incident must be open) or context. It leaves the agent to infer usage from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_create_incidentC
Create a new PagerDuty incident on a service.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Email address of the user creating the incident (required by some accounts) | |
| title | Yes | Incident title/summary | |
| api_key | Yes | PagerDuty API key | |
| urgency | No | Urgency: high or low | |
| service_id | Yes | ID of the service to create the incident on | |
| body_details | No | Detailed description of the incident |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden of disclosing behavioral traits. It only states 'Create' without explaining that this operation is non-idempotent, may trigger alerts, requires authentication, or produces a new incident record. Key behavioral details (e.g., rate limits, effect on existing incidents) are omitted.
Agents need to know what a tool does to the world before calling 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 concise sentence that immediately conveys the core function. It is front-loaded and contains no superfluous words. However, it may be too brief given the tool's complexity, missing structure like a summary of key parameters or 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 tool has 6 parameters (3 required), no output schema, and no annotations, the description is insufficiently complete. It fails to mention that the tool returns the created incident details, that it triggers notifications, or that certain parameters (e.g., 'from') may be required based on account settings. The agent lacks context to fully understand the tool's impact.
Complex tools with many parameters or behaviors need more documentation. 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 provides descriptions for all 6 parameters (100% coverage), so the baseline is 3. The description adds no additional parameter-level context beyond what the schema already offers (e.g., that 'urgency' defaults or 'from' is conditionally required). It neither improves nor degrades clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 creates a new PagerDuty incident on a service. It uses a specific verb ('Create') and resource ('PagerDuty incident'), which differentiates it from sibling tools like pagerduty_acknowledge_incident, pagerduty_resolve_incident, etc. However, it does not explicitly mention the required service context beyond what the schema indicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 vs. alternatives (e.g., acknowledge, resolve). It does not mention prerequisites such as having a valid API key or service ID, nor does it indicate scenarios where creating an incident is appropriate (e.g., alerting on-call teams).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_get_incidentBRead-onlyIdempotent
Get details for a single PagerDuty incident by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | PagerDuty API key | |
| incident_id | Yes | Incident ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing beyond the purpose sentence — no note on required API key/permissions, what happens with an invalid or unknown incident ID, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource. Nothing redundant or 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 simple read tool with full annotation coverage and a fully documented 2-param schema, the description is minimally sufficient. It leaves unstated what the returned incident detail contains and whether a missing ID yields an error, but with no output schema and complete annotations those gaps are modest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both parameters, so schema detail already carries the load. The description's 'by ID' only confirms that incident_id is the lookup key and says nothing about api_key or the ID format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get details') and resource ('a single PagerDuty incident'), and the word 'single' plus 'by ID' implicitly separates it from pagerduty_list_incidents. It stops short of naming the sibling explicitly, so it is clear but not maximally discriminating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 it should call this when it already has an incident ID rather than a filter. There is no explicit 'use this instead of pagerduty_list_incidents when...' guidance and no stated prerequisites beyond the ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_list_incidentsCRead-onlyIdempotent
List PagerDuty incidents. Filter by status (triggered, acknowledged, resolved), service, or date range.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25, max 100) | |
| offset | No | Pagination offset | |
| status | No | Filter by status: triggered, acknowledged, or resolved | |
| api_key | Yes | PagerDuty API key | |
| service_ids | No | Filter by service 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 covered and the description owes little. It adds no pagination behavior, no rate-limit or API-key caveat, and worse, advertises a "date range" filter that the tool does not actually have — misleading behavioral claims for an agent planning a call.
Agents need to know what a tool does to the 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, front-loaded sentences with no filler — structurally good. But the second sentence spends its limited budget restating schema enums and naming a filter that does not exist, so the compactness does not translate into 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 read-only list endpoint with full schema documentation, annotations, and no output schema, the description is close to sufficient: purpose and main filters are conveyed. The erroneous date-range claim and the absence of any note on result shape or pagination discipline (default 25, hard cap 100) leave gaps an agent would hit in practice.
Complex tools with many parameters or behaviors need more documentation. Simple 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 limit, offset, status, api_key, and service_ids are all documented in the schema already. The description repeats the status enum and maps "service" to service_ids (no new value), while promising a date-range filter with no corresponding parameter — a phantom capability that can send an agent down a dead end.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ("List PagerDuty incidents") and names the filterable axes, so an agent immediately knows what the tool returns. It does not differentiate itself from the nearby siblings pagerduty_get_incident or pagerduty_list_services, which is what keeps it below 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?
There is no explicit when-to-use guidance, no exclusion, and no alternative named. The agent must infer from the verb alone that this is the bulk/read path versus pagerduty_get_incident for a single incident; the filtering sentence hints at usage but never states a condition for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_list_oncallsARead-onlyIdempotent
List who is currently on-call in PagerDuty, optionally filtered by schedule or user.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | PagerDuty API key | |
| user_ids | No | Filter by user ID | |
| schedule_ids | No | Filter by schedule ID |
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 the 'currently on-call' time semantics, which is real behavioral value, but says nothing about pagination, rate limits, or how many entries a single call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core action comes first and the optional filters come after. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small 3-parameter read tool with full schema coverage and annotations, the description is adequate. With no output schema, though, it leaves the agent guessing what an entry contains (user, schedule, escalation policy) and whether results are paginated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 in the schema. The description only restates the two filters ('schedule or user'), adding no format, multi-value, or ID-source detail beyond what the schema provides — 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+resource ('List who is currently on-call in PagerDuty') with the temporal qualifier 'currently', which distinguishes it from incident-oriented siblings like pagerduty_list_incidents. It is unambiguous, though it does not explicitly name or contrast 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 phrase 'optionally filtered by schedule or user' implies how to narrow results, giving some usage context. However, there is no statement of when to use this instead of, e.g., listing schedules or services first, and no exclusions or prerequisites beyond the required api_key in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_list_servicesARead-onlyIdempotent
List all services in a PagerDuty account. Optionally filter by name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| query | No | Filter services by name | |
| api_key | Yes | PagerDuty API key |
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 description does not need to carry the safety profile. It adds only that all services are listed and that filtering is optional; it says nothing about pagination, ordering, or result 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 short sentences, front-loaded with the primary action and followed by the optional filter. No text is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complete parameter descriptions and clear annotations, the description is nearly sufficient. It could mention return shape or pagination behavior, but the missing output schema is the main reason it 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?
Schema description coverage is 100%, so the schema already defines api_key, query, and limit. The description reinforces that query filters by name but does not add syntax, range, or behavior details 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 and resource — 'List all services in a PagerDuty account' — and is easily distinguished from sibling PagerDuty tools such as pagerduty_list_incidents and pagerduty_list_oncalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies the tool's usage by noting an optional name filter, but does not explicitly say when to use this tool versus alternatives or when not to use it. Since there is no competing sibling for listing services, the gap is modest but still present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pagerduty_resolve_incidentB
Resolve a PagerDuty incident by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | PagerDuty API key | |
| incident_id | Yes | Incident ID to resolve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits (e.g., state changes, required permissions, idempotency, side effects). It only states 'resolve' which implies mutation, but no further 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 sentence with no waste. It is concise, though lacks structured front-loading. It earns its place but could be slightly improved with brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the operation (resolve by ID), the description is too minimal. It does not explain what resolving entails, return values, or any prerequisites. With no output schema or annotations, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond the schema (e.g., no clarification on API key scope or incident ID format). Baseline is 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 (resolve), the resource (PagerDuty incident), and the identifier (by ID). It effectively differentiates from sibling tools like acknowledge, create, get, and 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?
No guidance is provided on when to use this tool versus alternatives (e.g., acknowledge_incident) or any prerequisites. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palindrome_checkBRead-onlyIdempotent
Check if text is a palindrome and find the longest palindromic substring.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, idempotent operation with no destructive effects. The description adds no behavioral detail beyond the basic purpose, such as case sensitivity, whitespace handling, or what the result contains, which matters 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?
The definition is a single front-loaded sentence with no filler. Both capabilities are stated immediately and nothing 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?
For a simple one-parameter tool, the basic purpose is covered. However, with no output schema, the description should clarify what is returned, such as a boolean plus a substring or some combined result, and it does not address edge cases like empty input or casing.
Complex tools with many parameters or behaviors need more documentation. 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 required parameter as 'Text to check,' giving a 100% coverage baseline. The description adds no additional semantics, such as whether casing or punctuation affects the palindrome determination, so it does not improve on 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 specific language: it checks whether text is a palindrome and finds the longest palindromic substring. This clearly distinguishes the operation from generic text utilities, though it does not explicitly differentiate itself from the sibling manacher_palindrome, which likely overlaps with the substring-finding 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 states what the tool does but gives no guidance on when to use it versus alternatives such as manacher_palindrome or reverse_text. There are no stated exclusions, preconditions, or selection criteria for the agent to follow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
partition_countBRead-onlyIdempotent
Count integer partitions of n with optional max part size and part count constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Non-negative integer to partition (0-10000) | |
| max_part | No | Maximum part size | |
| num_parts | No | Exact number of parts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that: it doesn't note that results grow extremely large (p(10000) is astronomical) or how such values are returned, and doesn't mention the 0-10000 bound or performance 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?
A single front-loaded sentence that names the operation, the primary argument, and the two optional constraints with zero filler. Nothing could be removed 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?
For a simple, pure math tool with full schema coverage and safety annotations, the description is nearly sufficient. The only real gap is that with no output schema the description never characterizes the result (a single count, potentially a very large integer, and how that is represented).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (n with range 0-10000, max_part, num_parts) are already documented in the schema. The description restates the semantics of max_part and num_parts at a high level but adds no format, boundary, or interaction detail beyond what the schema provides. 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 ('Count') and a precise mathematical resource ('integer partitions of n'), plus the two optional constraint dimensions. An agent can distinguish it from siblings like combination_calc or partition-adjacent tools, though it never explicitly names a sibling or contrast 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 scenario is implied by the domain vocabulary ('integer partitions of n with optional max part size and part count constraints'), so an agent knows what the tool is for. There is no explicit when-to-use/when-not guidance and no mention of which sibling to prefer for related combinatorial counts (e.g. permutation_calc, combination_calc).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pascaltri_generateB
Generate rows of Pascal's triangle, optionally return a specific row.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | Number of rows to generate (1-50, default 10). | |
| nth_row | No | Return a specific row (0-indexed). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It conveys that output is rows of the triangle and that a single row can be returned instead, but omits output format, whether 'rows' and 'nth_row' interact, and the 1-50 bound is only in the schema. Adequate but thin for an annotation-free 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?
A single, front-loaded sentence with zero filler. The primary purpose comes first and the optional mode follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure-computation tool with 100% schema coverage and no output schema, the description is nearly sufficient. The only minor gap is that return shape (list of rows vs single row) is left 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?
Schema coverage is 100%, so the schema already documents both parameters including the 1-50 range, default 10, and 0-indexing. The description adds only a high-level gloss ('rows', 'specific row') and no syntax or interaction details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generate) and a specific resource (rows of Pascal's triangle), plus a secondary mode (return a specific row). The resource is inherently unique among siblings, so the purpose is unambiguous, though it does not explicitly name or contrast any alternative 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?
There is no guidance on when to use this tool versus alternatives (e.g. binomial_probability or combination_calc), nor any stated preconditions. The phrase 'optionally return a specific row' hints at parameter behavior but not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
password_generateA
Generate a cryptographically secure random password.
| Name | Required | Description | Default |
|---|---|---|---|
| digits | No | Include digits (default true). | |
| length | No | Password length (4-128, default 16). | |
| symbols | No | Include symbols (default true). | |
| lowercase | No | Include lowercase letters (default true). | |
| uppercase | No | Include uppercase letters (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the password is cryptographically secure, but it does not mention output format, storage behavior, or other side-effect 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 with no wasted words. It states the core action and the key security property immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 password generator with rich parameter descriptions, the description is nearly complete. It could clarify the return value or explicitly rule out storage, but those gaps 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 description coverage is 100%, so all five parameters already have clear descriptions and defaults. The description adds no parameter-level meaning beyond the schema, which is acceptable given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: generate a password. It also adds the important qualifier 'cryptographically secure', which distinguishes it from a generic random string generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 implies when to use it, but there is no explicit guidance about alternatives such as random_string or diceware_passphrase, nor any 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.
paypal_invoicesC
List, create, or send PayPal invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| action | No | list, create, or send (default: list) | |
| invoice | No | Invoice object for action='create' | |
| sandbox | No | ||
| client_id | Yes | ||
| page_size | No | ||
| invoice_id | No | Required for action='send' | |
| client_secret | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. It only lists actions (list, create, send) without disclosing side effects, authentication requirements, idempotency, or error behavior. Critical information about write operations is omitted.
Agents need to know what a tool does to the world before calling 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 short sentence, which is concise but lacks structured information. It does not front-load the most important details (e.g., that action determines parameter requirements). It is functional but could be more efficient and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 parameters, no output schema, and complex actions (create/send), the description is incomplete. It fails to mention parameter dependencies, pagination, or sandbox mode. The tool's capabilities are underdescribed for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, yet the description adds no meaning beyond the schema. It does not explain the 'invoice' object structure, the relationship between 'action' and required parameters ('invoice_id' for send, 'invoice' for create), or pagination ('page', 'page_size') and sandbox 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 'List, create, or send PayPal invoices' clearly states the verb and resource, listing three distinct actions on invoices. It distinguishes from sibling tools like 'paypal_orders' which handle orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided on when to use this tool versus alternatives, such as 'paypal_orders' or other payment tools. No prerequisites, context, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_ordersC
Create or retrieve a PayPal order.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | create or get (default: get) | |
| intent | No | CAPTURE or AUTHORIZE (default: CAPTURE) | |
| sandbox | No | Use PayPal sandbox (default: false) | |
| order_id | No | Required for action='get' | |
| client_id | Yes | PayPal application Client ID | |
| client_secret | Yes | PayPal application Client Secret | |
| purchase_units | No | Required for action='create' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey all behavioral traits. It fails to disclose authentication requirements, rate limits, side effects, or the fact that payment processing is involved. The minimal description does not compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of a single sentence. While concise, it lacks sufficient detail; it could be expanded slightly to add more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity of 7 parameters including authentication credentials for a payment service, the description is incomplete. It does not mention authentication, sandbox usage, or any operational details. No output schema exists to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 does not add any additional meaning beyond what the schema already provides for each parameter, so no extra credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 that the tool can 'Create or retrieve a PayPal order', which specifies the verb and resource. However, there are no sibling PayPal tools, so no differentiation is needed, but it doesn't add extra clarity beyond the 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 does not provide any guidance on when to use this tool versus alternatives, nor does it explain the distinction between create and retrieve actions beyond what is in the schema. No context for usage is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
percentage_calcB
Perform percentage calculations (of, change, increase, decrease, is_what_percent).
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First number. | |
| b | Yes | Second number. | |
| operation | No | Operation: of, is_what_percent, change, increase, decrease (default of). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It says nothing about side effects, precision, rounding, error conditions, or return format beyond the calculation itself, leaving key behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the purpose and lists the operation modes with zero wasted words. It is appropriately sized for a simple calculator 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 low-complexity 3-parameter calculator with 100% schema coverage and no output schema, the description covers the essential purpose and operation names. However, it does not explain the roles of 'a' and 'b' for each operation (e.g., which is the base vs. the percentage), which is a meaningful gap 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 all three parameters (including the operation values). The description repeats the operation list but adds no new meaning about how 'a' and 'b' map to each operation, 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 and resource ('Perform percentage calculations') and enumerates the supported operations, making it clear what the tool computes. It does not explicitly differentiate itself from sibling math tools like percentile_calc or proportion_solve, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation list implies when to use the tool (for of, change, increase, decrease, or is_what_percent calculations), giving clear implied usage. However, there is no explicit when-to-use guidance, no exclusions, and no routing to alternatives among the many sibling calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
percentile_calcBRead-onlyIdempotent
Compute percentiles of a dataset (default p5-p99) and optionally find the percentile rank of a given value.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Numeric data array | |
| value | No | Optional value to find its percentile rank | |
| percentiles | No | Percentiles to compute (default [5,10,25,50,75,90,95,99]) |
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. The description adds useful behavioral details about the default percentile set and optional percentile-rank mode, but it does not describe the response shape or clarify how the two modes are 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 a single front-loaded sentence with no wasted text. The parenthetical default and optional rank clause both contribute directly to understanding the call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 calculation tool with rich annotations and full schema coverage, this is adequate to invoke correctly. However, because there is no output schema, the description should ideally specify the return structure, especially how computed percentiles and the optional percentile rank are presented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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. The description adds only a shorthand default note, 'p5-p99', which is actually less precise than the schema's explicit default list [5,10,25,50,75,90,95,99].
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: compute percentiles of a dataset, with an optional percentile-rank lookup. That is clear, but it does not distinguish this tool from nearby math/statistics siblings such as descriptive_stats or statistics_calc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor any exclusions or prerequisites. The optional value parameter is described, but usage is left implicit rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
permutation_calcARead-onlyIdempotent
Calculate the number of permutations P(n,r) - ordered arrangements.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Total number of items. | |
| r | No | Number of items to arrange (defaults to n). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is fully covered by structured data. The description adds no behavioral context such as invalid-input handling (r > n), integer requirements, or output type, so it only defines the math.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and the exact formula. Nothing wasted and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure math function with full schema coverage, no output schema and strong read-only annotations, the description gives enough to call it correctly. The remaining gap is edge-case behavior for invalid inputs, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (n = total items, r = items to arrange, defaults to n), so the schema does the heavy lifting. The P(n,r) notation adds a marginal semantic hint that r must not exceed n, but no format or constraint 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 operation with the P(n,r) notation and parenthetical 'ordered arrangements', which pins down the mathematical intent precisely. It doesn't name the obvious sibling combination_calc, so the ordered-vs-unordered distinction is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'ordered arrangements' hints at when to pick this over an unordered combination tool, but the description never states an explicit when-to-use or when-not-to-use condition and names no alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perplexity_chat_completionB
Run a search-augmented chat completion with Perplexity AI. Returns grounded answers with citations from the web.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model (default: sonar). Options: sonar, sonar-pro, sonar-reasoning | |
| prompt | No | User message (alternative to messages) | |
| api_key | No | Perplexity API key | |
| messages | No | JSON array of {role, content} messages | |
| max_tokens | No | ||
| temperature | No | ||
| system_prompt | No | ||
| return_citations | No | Include citation URLs in response (default true) | |
| search_domain_filter | No | JSON array of domains to restrict search to | |
| search_recency_filter | No | Limit sources by time: month, week, day, hour | |
| return_related_questions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden; it lacks behavioral details such as authentication (api_key not mentioned as required), error handling, rate limits, or idempotency, providing minimal context beyond the core functionality.
Agents need to know what a tool does to the 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 purpose and key outcome, with no wasted words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters and no output schema or annotations, the description is too brief to cover authentication, message formatting, or error scenarios, leaving significant gaps 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 description adds no parameter-specific guidance, despite 36% of parameters lacking schema descriptions. The agent must rely solely on the schema, which is insufficient for undocumented params like system_prompt.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 search-augmented chat completion that returns grounded answers with citations, distinguishing it from other plain chat completion siblings like openai_chat_completion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for search-augmented queries with citations but does not explicitly state when to use this over alternatives or when not to use it, leaving it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
persistent_arrayC
Persistent array with version-controlled get/set operations using a persistent segment tree.
| Name | Required | Description | Default |
|---|---|---|---|
| initial | Yes | Initial array values | |
| operations | Yes | Operations: {type:'get'|'set', version, index, value?} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions persistence and version-controlled get/set operations, but does not explain what the tool returns, how get/set results are reported, whether set creates a new version, or any error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant or filler content. Every clause contributes to identifying the tool's domain and mechanism.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description should explain the return format or operation semantics, but it does not. For a tool with nested operation objects and versioned behavior, this leaves key invocation details unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters and the operation object shape. The description adds no parameter-level meaning beyond what the schema provides, which is 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 resource (persistent array) and the operations it supports (version-controlled get/set), making the tool's function reasonably clear. It does not explicitly differentiate itself from the many other data-structure tools in the sibling list, such as segment_tree or fenwick_tree, 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 no when-to-use guidance, no exclusions, and no alternatives. An agent must infer that this tool is for versioned array operations from the description alone, with no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phonetic_spellB
Spell out text using NATO or IPA phonetic alphabet.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to spell out. | |
| format | No | 'nato' (default) or 'ipa'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It never says the operation is a pure, side-effect-free transformation (no permissions or auth needed), nor what the spelled output looks like — e.g. whether words are joined, space-separated, or returned as tokens. For a tool with zero annotation coverage and no output schema, that is a real 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?
A single ten-word sentence that front-loads the action and names both modes. Nothing is wasted and nothing needs to be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple enough that a short description is defensible, but with no output schema and no annotations, the definition should still say what the returned spelled string looks like and confirm the no-side-effect nature. As written, an agent knows what to send but not what it will get 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?
Schema description coverage is 100%, so both 'text' and 'format' are already documented in structured form. The description restates the two alphabet options but adds no syntax, casing, or fallback behavior for an unrecognized format value. 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 ('Spell out') and resource ('text') and names the two supported alphabets, so the transformation is unambiguous. However, it does nothing to distinguish itself from the sibling nato_convert, which plausibly performs overlapping NATO conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this tool over nato_convert or the other encoding-style siblings (morse_convert, braille_convert, rot13_convert). The only routing hint is the implicit '$format' default, which lives in the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pi_approxA
Approximate pi using Leibniz, Nilakantha, and Wallis formulas. Compare convergence rates.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | No | Number of terms (default 1000, max 1000000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It describes the computation methods and that convergence rates are compared, but it does not state the output format, precision behavior, or performance characteristics beyond the schema's term limit.
Agents need to know what a tool does to the 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 purpose and comparison intent are 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 math tool with a fully described parameter and no output schema, the description is nearly complete. It names the methods and the comparison, though it could explicitly mention what the return value contains.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'terms' is fully documented in the input schema. The description adds no parameter-specific meaning beyond what the schema already 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?
States a specific verb and resource: approximate pi. It also names the three formulas and the comparison of convergence rates, making the tool's purpose immediately clear and distinguishable from generic math siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: approximating pi with Leibniz, Nilakantha, and Wallis formulas and comparing convergence. It does not explicitly name when not to use it or list alternatives, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picsum_getBRead-onlyIdempotent
Get info about a specific Lorem Picsum photo by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Photo ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so safety is covered. The description adds nothing beyond that — no indication of what 'info' contains (author, dimensions, URLs), whether missing IDs error, or what the call costs.
Agents need to know what a tool does to the 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 with no padding. It is appropriately short for a one-parameter lookup, though brevity here comes at the cost of any added substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is the only place an agent could learn what 'info' is returned, and it gives none of that. For a trivia-lookup tool this is a real gap, not a stylistic 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?
Only one parameter, and the schema already documents it at 100% coverage ("Photo ID"). The description's 'by ID' restates the schema rather than adding format, validation, or source-of-ID 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?
Specific verb (get) plus resource (Lorem Picsum photo) plus identifier (by ID) makes the operation unambiguous. It implicitly contrasts with picsum_list and picsum_random_url but never names them, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies you must already have a photo ID, which hints at when to use it over the list/random tools, but no alternative is named and no conditions are spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picsum_listCRead-onlyIdempotent
List photos available on Lorem Picsum.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Photos per page (default 20, max 100) |
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 almost no behavioral context beyond the resource name: it does not explain pagination behavior, result ordering, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and wastes no words. It is arguably too terse, but it is structurally efficient and 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?
For a simple read-only list tool with rich annotations and fully documented parameters, the description is minimally adequate. It omits when to choose this tool over its siblings and any note about pagination, which leaves a clear gap despite the structured fields covering the basics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 page and limit are documented with defaults and a maximum. The description does not add any parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: list photos on Lorem Picsum. It distinguishes the tool from siblings like picsum_get and picsum_random_url by implying a collection listing, but it does not explicitly call out that difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 picsum_get or picsum_random_url. The listing intent is implied by 'List', but no conditions, prerequisites, or alternatives are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picsum_random_urlB
Generate a random placeholder image URL from Lorem Picsum (no fetch needed).
| Name | Required | Description | Default |
|---|---|---|---|
| blur | No | Blur amount (1-10) | |
| width | No | Image width in pixels (default 800) | |
| height | No | Image height in pixels (default 600) | |
| grayscale | No | Convert to grayscale |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully clarifies that no HTTP fetch occurs and that the output is a URL, but it says nothing about determinism of the randomness, permissions, rate limits, or whether the same call yields different URLs. Modest added value over the bare name.
Agents need to know what a tool does to the 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 tight sentence with the key differentiator ('no fetch needed') placed immediately after the core purpose. No filler, 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 zero-required-parameter URL generator with a fully documented schema and no output schema, the description is nearly sufficient: it states the output is a URL and that no fetch happens. It could still note defaults or the shape of the returned URL, 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?
Schema description coverage is 100%, so blur, width, height, and grayscale are already fully documented in the schema. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Generate a random placeholder image URL from Lorem Picsum'. It clearly signals a URL-producing utility rather than an image fetch. It does not, however, differentiate itself from near-identical siblings such as picsum_get, picsum_list, dummy_image_url, or placeholder_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(no fetch needed)' hints at a use case (you want a URL without a network call), but there is no explicit when-to-use guidance and no mention of the many alternative placeholder/image-URL tools in the sibling list. The agent must infer when this beats picsum_get or dummy_image_url.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pig_latin_convertARead-onlyIdempotent
Convert text to Pig Latin or decode Pig Latin back to English.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to convert. | |
| decode | No | Decode Pig Latin to English (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds only the bidirectional capability and nothing on edge cases (e.g., non-alphabetic input, already-converted text, capitalization handling), which for a text transform is the meaningful behavioral 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?
A single front-loaded sentence with no filler; both modes are stated in one clause each and 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 simple pure-function text tool with full schema coverage, annotations, and no output schema, the description gives enough to invoke correctly. Minor gap is that the return value shape is never implied, but that is reasonable for a one-string transform.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are documented in-schema, including the decode default. The description restates the decode direction but adds no format, encoding, or case-handling 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?
States a specific verb and resource ('convert text to Pig Latin') and adds the reverse direction via decoding. It is clearly distinguishable from neighboring text tools like rot13_convert or reverse_text, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the two-direction phrasing, but there is no explicit guidance on when to use this versus other text-transformation siblings or when to set decode vs. leave it default. An agent can infer it, but nothing is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pika_generate_videoB
Generate a creative AI video from a text prompt using Pika. Optionally animate an input image. Returns a generation_id to poll for completion.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducibility | |
| style | No | Style name or ID (use pika_list_styles to browse options) | |
| motion | No | Motion intensity 1-4 (default: 2) | |
| prompt | Yes | Text description of the video to generate | |
| api_key | Yes | Pika API key | |
| duration | No | Video duration in seconds | |
| image_url | No | URL of an image to animate | |
| aspect_ratio | No | e.g. 16:9, 9:16, 1:1 | |
| negative_prompt | No | What to avoid in the video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the core behavior (generation, optional image animation, returned generation_id) but omits details on asynchronous nature, rate limits, failure modes, or required permissions beyond the api_key parameter. No annotations force full burden on description.
Agents need to know what a tool does to the 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 that efficiently convey the main action, optional feature, and return value. Front-loaded with the core purpose. No extraneous 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?
Adequate for a simple generation tool with many parameters, but lacks context on parameter usage (e.g., how duration or style affect output) and does not mention the related polling tool (pika_get_generation).
Complex tools with many parameters or behaviors need more documentation. Simple 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 good parameter descriptions. The description adds value by clarifying the return value (generation_id) which is not in the schema, but does not further explain parameters 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 it generates an AI video from text, with optional image animation, and notes the return of a generation_id. However, it does not differentiate from sibling tools like kling_generate_video or runway_generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool vs alternatives or prerequisites. The description implies usage by mentioning optional animation and polling, but lacks when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pika_get_generationARead-onlyIdempotent
Check the status of a Pika video generation by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Pika API key | |
| generation_id | Yes | Generation ID returned by pika_generate_video |
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 safe read behavior is covered. The description's status-check framing is consistent but adds no detail on polling cadence, possible status values, auth requirements, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It communicates the core operation immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and full schema coverage, the description is mostly complete. Because there is no output schema, it could say more about returned status states, but the omission is minor for this simple status-check 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?
Schema description coverage is 100%, so both api_key and generation_id are already documented in the schema. The description reinforces that lookup is by ID but adds no extra semantics about ID format or API key handling, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('check status') and resource ('Pika video generation by ID'), which clearly distinguishes it from the sibling pika_generate_video that creates generations. An agent can identify the operation 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 phrase 'by ID' implies this is used after a generation exists, and the schema links the generation_id to pika_generate_video, but the description itself gives no explicit when-to-use guidance or alternatives. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pika_list_stylesARead-onlyIdempotent
List available visual styles for Pika video generation.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Pika API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds no further behavioral context such as authentication requirements, rate limits, or return shape, and 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?
A single front-loaded sentence with no wasted words. It states the resource and its domain immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 a fully described single parameter and rich annotations, the description is sufficient to invoke it correctly. It could mention what the returned style entries look like, but no output schema exists and the core operation 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?
There is only one parameter, api_key, and schema description coverage is 100%; the schema already documents it as the Pika API key. The description adds no additional parameter 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?
States a specific verb, "List," and a specific resource, "visual styles for Pika video generation," clearly distinguishing it from pika_generate_video and pika_get_generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies it supplies style choices for Pika video generation, but gives no explicit when-to-use guidance, prerequisites, or named alternative. The agent must infer that it should be used before pika_generate_video.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pinecone_delete_vectorsB
Delete vectors from a Pinecone index by ID or filter.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Array of vector IDs to delete | |
| filter | No | Metadata filter - delete matching vectors | |
| api_key | Yes | Pinecone API key | |
| namespace | No | Namespace to delete from | |
| delete_all | No | Delete all vectors in the namespace | |
| index_host | Yes | Index host URL from describe_index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only mentions deletion but not irreversible nature, permission requirements, effects of combining parameters (e.g., ids + filter), or namespace default 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?
Single sentence, no redundant words, immediately communicates core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 parameters, a nested object, and no output schema, the description is too brief. It lacks details on how deletion methods interact, return values, limits, or namespace behavior, making it incomplete for proper 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 has 100% description coverage, so the description adds no new parameter meaning beyond the schema's own descriptions. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and resource (vectors from a Pinecone index), and specifies two methods (by ID or filter), distinguishing it from siblings like query or upsert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives such as upsert or query, nor prerequisites or exclusion conditions. The agent is left to infer use cases without explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pinecone_describe_indexARead-onlyIdempotent
Get details (dimension, metric, status, host) for a Pinecone index.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Pinecone API key | |
| index_name | Yes | Index name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds what is actually returned (dimension, metric, status, host), which is genuinely useful given there is no output schema, but says nothing about auth requirements, error behavior for a missing index, or the openWorld/remote nature of the call.
Agents need to know what a tool does to the 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 with no filler; the enumerated return fields are the most useful part and are placed immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description plus structured data covers nearly everything needed. The only gap is the absence of the returned-field list being framed as such, or any note on behavior when the index does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (api_key, index_name) are documented in the schema, so the baseline is 3. The description adds no extra meaning about parameter format, precedence, or edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get details') and resource ('a Pinecone index') and even enumerates the fields returned (dimension, metric, status, host). It is distinguishable from pinecone_list_indexes and pinecone_query_vectors, though it never explicitly contrasts itself with 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?
Usage is strongly implied: you already have to know an index name to call it, so this is clearly a 'fetch metadata for a known index' operation. However, the description gives no explicit when-to-use vs. when-not guidance and never points at pinecone_list_indexes for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pinecone_list_indexesBRead-onlyIdempotent
List all Pinecone vector indexes in the project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Pinecone API key from app.pinecone.io |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful scope ('in the project') but does not describe return shape, pagination, or ordering.
Agents need to know what a tool does to the 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 with no redundant or filler language. It earns its place by stating the operation, resource, and scope compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with full parameter documentation and comprehensive annotations, the description is nearly complete. It could mention ordering or pagination behavior, but nothing essential is missing 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?
There is only one parameter (api_key), and schema description coverage is 100%, so the schema already explains that the key comes from app.pinecone.io. The description adds no additional parameter semantics, which is acceptable at this coverage level.
Input schemas describe structure but not intent. Descriptions should explain 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 (Pinecone vector indexes) scoped to the project, so an agent can understand the operation immediately. However, it does not differentiate itself from sibling tools such as pinecone_describe_index or pinecone_query_vectors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states what the tool does, with no indication of when to use it instead of pinecone_describe_index or pinecone_query_vectors. There are no exclusions, prerequisites, 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.
pinecone_query_vectorsBRead-onlyIdempotent
Query a Pinecone index for nearest-neighbor vectors.
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | Number of nearest neighbors to return (default: 10) | |
| filter | No | Metadata filter object | |
| vector | Yes | Query vector (array of floats matching index dimension) | |
| api_key | Yes | Pinecone API key | |
| namespace | No | Namespace to query | |
| index_host | Yes | Index host URL from describe_index (e.g. https://my-index-xxx.svc.pinecone.io) | |
| include_values | No | Include vector values in results | |
| include_metadata | No | Include metadata in results (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description contributes the fact that results are ranked nearest neighbors, but says nothing about result shape (ids/scores/matches), how top_k affects response size, or whether namespace/filter change what is searched — all beyond what annotations state.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is efficient, though the brevity comes at the cost of omitting operational context entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 parameters, no output schema, and required credentials, an agent would benefit from knowing what a query returns (matches with ids, scores, metadata/values toggled by include_* flags). The rich schema compensates somewhat, but the description leaves the response contract unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 one of the 8 parameters (top_k default, filter object, vector dimension hint, index_host source) is already documented in structured form. The description adds no parameter-level meaning beyond 'nearest-neighbor', which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain 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 (Query) plus resource (Pinecone index) and the retrieval semantics (nearest-neighbor vectors), so an agent knows this is a similarity search, not a metadata scan. It doesn't explicitly name how it differs from pinecone_upsert_vectors or pinecone_describe_index, but the read/query 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?
There is no guidance on when to choose this over the sibling Pinecone tools, no mention that index_host must come from pinecone_describe_index, and no note on when to use filter vs namespace narrowing. The agent must infer all routing from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pinecone_upsert_vectorsB
Upsert (insert or update) vectors into a Pinecone index.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Pinecone API key | |
| vectors | Yes | Array of {id, values, metadata?} objects to upsert | |
| namespace | No | Namespace to write to | |
| index_host | Yes | Index host URL from describe_index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states the basic operation (upsert) without detailing mutation safety, idempotency, rate limits, or authentication needs. The api_key and index_host parameters are not discussed in the description.
Agents need to know what a tool does to the world before calling 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 short sentence, but it is minimally viable. It lacks any structural elements (e.g., front-loaded key points) that could improve utility without adding 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?
Given the lack of output schema and the complexity of a mutation tool, the description is incomplete. It does not explain the return value, error scenarios, or vector format requirements beyond what the schema provides.
Complex tools with many parameters or behaviors need more documentation. 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 have descriptions in the input schema (100% coverage), so the description adds no additional meaning. 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?
Clearly states the verb 'upsert' and resource 'vectors into a Pinecone index', distinguishing it from sibling tools like pinecone_delete_vectors and pinecone_query_vectors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives (e.g., when to upsert vs query). No prerequisites or context provided beyond the index name, leaving the agent without usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_dealsCRead-onlyIdempotent
List Pipedrive deals.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Deals to return (max 100, default 25) | |
| status | No | Filter by status (open, won, lost, deleted, all_not_deleted) | |
| api_token | Yes | Pipedrive API token |
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 elsewhere. The description adds nothing beyond that – no mention of result caps, pagination behavior, or that status filtering spans deleted records.
Agents need to know what a tool does to the 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 words, front-loaded and waste-free, but this is under-specification rather than effective concision. There is room for one short clause about scope or the search alternative without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world third-party API call with no output schema, the description should say something about result shape, pagination, or default behavior. As written, the agent must infer everything except parameter formats 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%, with limit, status and api_token each documented (max 100/default 25, status values, token purpose). The description adds no semantic detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List ... deals'), which is clear on its own. However it does nothing to distinguish itself from the sibling pipedrive_search_deals, so an agent cannot tell from this text when to prefer one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 at all about when to use this versus pipedrive_search_deals or how to page through results. The name implies a simple enumeration, but nothing in the description states the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_organizationsBRead-onlyIdempotent
List Pipedrive organizations (companies).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Organizations to return (max 100, default 25) | |
| api_token | Yes | Pipedrive API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no behavioral context beyond the annotations—no pagination behavior, auth details, rate limits, or return shape are mentioned. 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 a single short sentence with zero wasted words, and the core purpose is front-loaded. It is appropriately sized for a simple list 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 list tool with annotations and full schema coverage, the description is minimally adequate. However, without an output schema, it could have mentioned what the listing returns or pagination behavior, leaving a modest 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 fully documents the two parameters including the limit default and maximum. The description adds no parameter semantics 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 states a specific verb and resource: 'List Pipedrive organizations' with a clarifying parenthetical '(companies)'. It is clear what the tool does, though it does not explicitly distinguish itself from sibling tools such as pipedrive_list_persons or pipedrive_search_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention when to prefer list_organizations over search or related Pipedrive tools, nor any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_personsCRead-onlyIdempotent
List Pipedrive persons (contacts).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Persons to return (max 100, default 25) | |
| api_token | Yes | Pipedrive API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered without the description. The description adds nothing beyond restating the name: no pagination behavior, no auth/token expectations, no note on whether all persons or only visible ones are 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?
A single front-loaded sentence with no waste or filler. It is not padded, though it is arguably under-specified rather than genuinely 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 list tool with no output schema, the description should at least hint at what is returned (shape, fields, pagination). It provides none of that, leaving the agent to guess how results are delivered and whether paging is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (api_token, limit with max/default) are documented in the schema, so the baseline of 3 applies. The description contributes no additional meaning about the limit or token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (List) and resource (Pipedrive persons/contacts), which is enough to distinguish it from sibling pipedrive_list_deals and pipedrive_list_organizations. It does not explicitly name those alternatives, 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?
There is no indication of when to use this tool versus alternatives (e.g. the search tools or the deals/organizations listings), no prerequisites, and no exclusions. It simply states the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_dealsBRead-onlyIdempotent
Search Pipedrive deals by term.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term (deal title or keyword) | |
| limit | No | Results to return (max 100, default 25) | |
| api_token | Yes | Pipedrive API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is a read-only, idempotent, non-destructive, open-world operation, so the safety profile is covered. The description adds no behavioral context such as pagination, result limits, or authentication requirements, but 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 a single front-loaded sentence with no filler. Every word contributes to stating the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description is minimally sufficient. However, it does not mention result behavior such as default/max limits or pagination, and there is no output schema to cover return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 term, limit, and api_token. The description only echoes that search is by term and does not add meaning beyond the 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 states a specific verb and resource: search Pipedrive deals by term. It is clear what the tool does, but it does not name the sibling pipedrive_list_deals or otherwise explain how this differs from listing all deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool instead of pipedrive_list_deals or other alternatives. The phrase 'by term' implies a search use case, but the description gives no when-to-use or when-not-to-use criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
placebear_imageBRead-onlyIdempotent
Get a bear placeholder image URL at custom dimensions (no network call).
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Image width in pixels (default 300, max 2000). | |
| height | No | Image height in pixels (default 300, max 2000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description only needs to add something new. It does contribute the useful detail that no network call is made, telling the agent the operation is local and deterministic — though this sits in mild tension with openWorldHint=true, and it doesn't clarify that the result is a URL string rather than image bytes beyond the tool name.
Agents need to know what a tool does to the 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 with zero filler; the key behavioral caveat ('no network call') is included 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 two-optional-parameter read-only helper with full schema coverage and no output schema, the description covers purpose, dimension configurability, and the local-execution behavior. Only a hint about the returned URL shape or how dimensions are reflected would improve 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%, with width and height already documented including defaults (300) and max (2000). The description only restates 'custom dimensions' and adds no format, unit, or clamping behavior beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a bear placeholder image URL') plus the customizable dimension, so the agent knows exactly what it produces. It does not differentiate itself from nearby siblings such as placekitten_image, placeholder_image, or dummy_image_url, which would require a quick scan to distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no explicit when-to-use or when-not-to-use guidance and never names an alternative. The parenthetical '(no network call)' implies cheap, side-effect-free usage but is not framed as a selection rule, leaving the agent to infer why it would pick this over the other placeholder-image tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
placeholder_imageC
Generate a placeholder image URL with custom size, colors, and text.
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | Background hex color (default EEEEEE) | |
| fg | No | Text hex color (default 333333) | |
| text | No | Text overlay on the image | |
| width | No | Width in pixels (default 600) | |
| height | No | Height in pixels (default 400) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a non-destructive URL construction (it returns a URL, not bytes) but says nothing about whether the URL is stable or random per call, whether any request leaves the client, defaults for omitted params, or rate limits. That is thin for the sole source of behavioral 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?
A single front-loaded sentence with no filler; the customizable fields are listed inline. Nothing redundant, though it is arguably too terse to address sibling overlap without becoming less 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?
All five params are optional with schema-documented defaults and there is no output schema, so the description is adequate to call the tool. It leaves open the return contract (a URL string) and behavior when text is omitted, which keeps it at minimum viable rather than 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% and every parameter (bg, fg, text, width, height) has a description with its default, so the schema does the heavy lifting. The description's mention of size, colors, and text only mirrors the schema rather than adding format or constraint detail, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (placeholder image URL) plus the customizable dimensions (size, colors, text). It is clear on its own, but gives no hint of how it differs from near-identical siblings such as placehold_image, dummy_image_url, placebear_image, or placekitten_image, which all generate placeholder image URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 and no mention of alternatives, which matters here because the sibling list contains several overlapping placeholder-image generators. The agent is left to infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
placehold_imageA
Generate a placeholder image URL with custom size, colors, and text (no network call).
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Font name (roboto, lato, open-sans, montserrat, etc.). | |
| text | No | Custom text overlay. | |
| width | No | Image width in pixels (default 300, max 4000). | |
| height | No | Image height in pixels (default: same as width). | |
| background | No | Background hex color (default: CCCCCC). | |
| foreground | No | Text hex color (default: 333333). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work by disclosing that this performs no network call, i.e. it is a pure URL-construction operation with no external I/O or side effects. That is the key behavioral fact for an agent deciding whether it is safe to call. It does not mention the return shape or any limits, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and resource, with the caveat in a compact parenthetical. Nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately indicates the result is a URL, which is what an agent needs to consume it. It is nearly complete for a zero-required-param pure generator, missing only explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 per-parameter descriptions including defaults and a max, so the schema already carries parameter semantics. The description only echoes size, colors, and text at a high level; 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?
Specific verb 'Generate' plus resource 'placeholder image URL' with the configurable axes (size, colors, text) named. It does not explicitly distinguish itself from close siblings like placeholder_image or dummy_image_url, 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 statement of when to use this versus dummy_image_url, placeholder_image, picsum_random_url, or the other image-URL generators in the sibling set. The only usage-adjacent signal is the parenthetical about no network call, which is a behavioral note rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
placekitten_imageB
Generate a random kitten placeholder image URL.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Width in pixels (default 600) | |
| height | No | Height in pixels (default 400) | |
| grayscale | No | Grayscale kitten image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the output is a URL and that the image is random, but says nothing about defaults, determinism per call, whether the same URL is reused, or any rate/auth constraints. Partial disclosure 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?
A single efficient sentence with the key information (generate, random, kitten, placeholder, URL) front-loaded and 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 three-optional-parameter utility with no annotations and no output schema, the description covers the essentials of purpose and output type but omits sibling differentiation and any behavioral caveats. Adequate but leaves clear 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 description coverage is 100% (width, height, grayscale all documented inline), so the schema does the heavy lifting and the baseline of 3 applies. The description adds no parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: generating a kitten placeholder image URL. Clear on what it produces (a URL, not binary image data). However, it does not distinguish itself from the many closely-named siblings such as placebear_image, placeholder_image, placehold_image, and dummy_image_url, so an agent cannot tell these apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, which is a real gap in a tool family crowded with near-duplicate placeholder/image-URL generators (placebear_image, placeholder_image, robohash_url, picsum_random_url). The agent must infer selection criteria entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plaid_accountsBRead-onlyIdempotent
Get accounts for a Plaid-linked item.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | Plaid secret key | |
| client_id | Yes | Plaid client ID | |
| account_ids | No | Filter to specific account IDs | |
| environment | No | sandbox, development, or production (default: sandbox) | |
| access_token | Yes | Plaid item access token |
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 fully covered by structured data. The description only adds that results are scoped to a single linked item, which is modest but real context; it says nothing about rate limits, pagination, or error behavior for expired tokens.
Agents need to know what a tool does to the 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 with zero filler. It is efficient but its brevity is under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should at least hint at what an account record contains or that credentials are mandatory. For a tool requiring client_id, secret, and access_token, the description leaves the authentication burden entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all five parameters including account_ids filtering and the sandbox/development/production enum are documented in the schema. The description adds no syntax or behavioral detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get accounts' scoped to 'a Plaid-linked item'. An agent understands the operation, but nothing distinguishes it from siblings plaid_balances, plaid_identity, or plaid_transactions, which all operate on the same item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to choose this over plaid_balances or plaid_identity, no prerequisites, and no mention of the access_token requirement for selecting the item. The agent must infer everything from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plaid_balancesCRead-onlyIdempotent
Get real-time account balances for a Plaid-linked item.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | ||
| client_id | Yes | ||
| account_ids | No | ||
| environment | No | ||
| access_token | Yes |
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 'real-time' as genuine context, but omits that three credentials are required, whether balances reflect cached vs live data, and 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?
A single efficient, front-loaded sentence with no waste. It is arguably too terse rather than verbose, but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter financial tool with zero schema description coverage and no output schema, the description is far too thin. An agent cannot know how to authenticate, scope to specific accounts, choose an environment, or interpret the return without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must compensate and largely fails. 'Plaid-linked item' loosely implies access_token identifies the item, but account_ids filtering, the environment enum, and the client_id/secret auth parameters are all unexplained.
Input schemas describe structure but not intent. Descriptions should explain 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 real-time account balances') scoped to a Plaid-linked item, which is clear. However, it does not differentiate from close siblings like plaid_accounts, plaid_transactions, or plaid_identity that an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of alternatives such as plaid_accounts for account metadata or plaid_transactions for history. The agent must infer selection 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.
plaid_identityC
Get identity information for accounts linked via Plaid.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | ||
| client_id | Yes | ||
| environment | No | ||
| access_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description falls short. It implies a read operation but does not disclose behavioral traits such as authentication requirements, rate limits, or the nature of the data returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with one sentence, but it lacks structure. While brevity is good, it should still provide essential 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 no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It fails to explain the output, prerequisites (like obtaining an access_token), or how this tool fits into the Plaid workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the tool description adds no meaning beyond parameter names. Although parameter names are self-explanatory, the description should elaborate on their purpose or 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 clearly states the verb 'Get' and the resource 'identity information for accounts linked via Plaid', which is specific. However, it does not differentiate from sibling tools like plaid_accounts or plaid_balances, which also retrieve account-related 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plaid_link_token_createB
Create a Plaid Link token to initialise the Plaid Link flow.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | ||
| webhook | No | ||
| language | No | Language code (default: en) | |
| products | No | Plaid products (default: ['transactions']) | |
| client_id | Yes | ||
| client_name | No | App name shown in Plaid Link UI | |
| environment | No | ||
| access_token | No | For update mode: existing access token | |
| country_codes | No | ISO country codes (default: ['US']) | |
| user_client_user_id | Yes | Unique identifier for the end user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic function without disclosing behavioral traits like token expiration, required authentication (client_id/secret), or side effects. The description omits that the token is used client-side and typically returned in 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 concise at one sentence, but it could be more informative without being verbose. It lacks front-loading of key details (e.g., response token).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 10 parameters (3 required) and no output schema. The description does not explain the return value (a link_token) or next steps (e.g., using the token in a frontend flow). Given the complexity and lack of schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with some parameters having descriptions (e.g., user_client_user_id, client_name). The description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate since the description does not augment 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 clearly states the action ('Create a Plaid Link token') and the resource ('Plaid Link token'). It directly distinguishes from sibling tools like plaid_accounts or plaid_transactions by specifying the creation of a token to initialise the Plaid Link flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, such as other Plaid tools. There is no mention of prerequisites (e.g., needing a user) or when to call this before other operations. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plaid_transactionsCRead-onlyIdempotent
Get transactions for a Plaid-linked item within a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of transactions (max 500, default 100) | |
| offset | No | ||
| secret | Yes | ||
| end_date | Yes | End date (YYYY-MM-DD) | |
| client_id | Yes | ||
| start_date | Yes | Start date (YYYY-MM-DD) | |
| account_ids | No | ||
| environment | No | ||
| access_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the description carries a lower burden. It adds nothing beyond them: no rate-limit behavior, no pagination semantics despite count/offset existing, and no note that credentials are required to authenticate against a live Plaid environment.
Agents need to know what a tool does to the 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 with zero filler. It is efficient, but its brevity is achieved by omission rather than by tight writing, so it sits just below the top mark.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 authenticated financial-data read with no output schema, the description should cover credential requirements, paging, and account filtering. Instead it says only that transactions fall in a date range, leaving most of what an agent needs to call it correctly undisclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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% across 9 parameters. The description's 'date range' merely echoes the already-documented start_date/end_date, and it says nothing about count (max 500, default 100), offset paging, account_ids filtering, or the sandbox/development/production environment enum — all of which the schema leaves bare or thin.
Input schemas describe structure but not intent. Descriptions should explain 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 transactions) plus a scope qualifier (Plaid-linked item, date range). It is clearly the transactions-fetching member of the plaid_accounts / plaid_balances / plaid_identity family, though it never names those siblings to sharpen 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 gives no when-to-use guidance, no prerequisites (a client_id/secret/access_token triple is required), and no indication of what to call if the agent wants balances, identity, or accounts instead. Usage is only inferrable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
podcast_by_feed_urlCRead-onlyIdempotent
Get a podcast by feed URL from Podcast Index.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| api_key | No | ||
| api_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing beyond purpose: no mention that Podcast Index credentials (api_key/api_secret) are required, no rate-limit or failure behavior for an invalid/nonexistent feed URL.
Agents need to know what a tool does to the 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 tight sentence with the resource and distinguishing lookup key front-loaded; efficient, though its brevity leaves the gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with 0% schema coverage and no output schema or annotations explaining auth, the description should say that credentials are required and roughly what a feed-URL lookup returns. Neither is present, so an agent could invoke it without knowing how to authenticate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It only maps 'feed URL' to the url parameter; the api_key and api_secret credentials — a third of the parameters and a non-obvious requirement — are entirely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('podcast') plus the lookup key ('by feed URL'), which distinguishes it from a term-based podcast_search. It names the source ('Podcast Index') but does not explicitly contrast itself with the many podcast_* 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?
'by feed URL' implies the usage condition — you already have a feed URL rather than a search term — but no when-to-use/when-not guidance or named alternative (e.g. podcast_search) is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
podcast_get_episodesCRead-onlyIdempotent
Get episodes for a podcast from Podcast Index.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| max | No | ||
| api_key | No | ||
| api_secret | No |
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 fully covered. The description adds only the data source name; it says nothing about credential requirements (api_key/api_secret present in the schema), result limits via max, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with no filler. It is efficient but borders on under-specification given the four undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with zero schema coverage and no output schema, the description should explain the id/max/credential parameters and what is returned. As written it leaves the agent guessing on nearly all of them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the description carries the full burden and fails. It never clarifies whether "id" is a Podcast Index podcast id or a feed id (ambiguity sharpened by the sibling podcast_by_feed_url), nor what "max" or the api_key/api_secret parameters do.
Input schemas describe structure but not intent. Descriptions should explain 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 episodes for a podcast") and names the upstream source (Podcast Index), which separates it from generic search tools. It does not explicitly distinguish itself from close siblings like podcast_search_episodes or podcast_by_feed_url, 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?
There is no guidance on when to use this versus podcast_search, podcast_search_episodes, podcast_by_feed_url, or podcast_recent_episodes. The agent must infer that this tool is keyed by a podcast id rather than a query or feed URL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
podcast_recent_episodesCRead-onlyIdempotent
Get recent podcast episodes from Podcast Index.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| api_key | No | ||
| api_secret | No |
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 only the source name and the word 'recent'; it does not mention authentication requirements despite api_key/api_secret parameters, nor does it describe rate limits, pagination, or what 'recent' means in practice.
Agents need to know what a tool does to the world before calling 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 wasted words, but it is under-specified rather than optimally concise. It earns its place but could carry more useful detail without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three undocumented parameters, no output schema, and an open-world read operation, the description is too sparse. It does not explain authentication, the meaning of 'recent' (time window or count), or the return shape, leaving key context to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for three undocumented parameters. It says nothing about max, api_key, or api_secret, leaving the agent with no semantic guidance for any input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get recent podcast episodes') and names the data source ('Podcast Index'). It does not distinguish the tool from siblings like podcast_trending or podcast_get_episodes, leaving ambiguity about what 'recent' means relative to those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 podcast_get_episodes, podcast_search_episodes, or podcast_trending. The agent must infer selection criteria from the name alone, with no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
podcast_searchCRead-onlyIdempotent
Search for podcasts on Podcast Index.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| max | No | ||
| api_key | No | ||
| api_secret | No |
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 nothing beyond that: it does not mention that api_key/api_secret may be required for authentication, nor any rate limits or pagination behavior tied to the `max` parameter.
Agents need to know what a tool does to the 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 with no filler; every word earns its place and the verb/resource lead immediately. Its brevity is only a problem insofar as it leaves gaps covered under other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four undocumented parameters, no output schema, and crowded podcast siblings, the description is too thin. An agent cannot tell what is returned (feeds vs. episodes), how many results `max` permits, or whether credentials are mandatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all four parameters (q, max, api_key, api_secret) are undocumented. The description only implicitly suggests that the tool takes a query; it says nothing about the meaning of `max` (result limit?) or how the credential parameters should be supplied, leaving the description to do work it does not do.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource ("Search for podcasts") and names the data source (Podcast Index), so the agent knows what it does. However, it does nothing to distinguish itself from the sibling podcast_search_episodes, leaving ambiguity about whether it returns shows/feeds or individual episodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of alternatives such as podcast_search_episodes, podcast_by_feed_url, or podcast_trending, and no prerequisites. The agent must infer the appropriate context entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
podcast_search_episodesCRead-onlyIdempotent
Search podcast episodes on Podcast Index.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| max | No | ||
| api_key | No | ||
| api_secret | No |
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 nothing beyond them — no note on authentication requirements despite api_key/api_secret parameters, no rate-limit or pagination behavior, and no indication of result 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?
A single front-loaded sentence with no filler, but the brevity is under-specification rather than economy. It is appropriately sized only in the sense that nothing is wasted, not that enough is said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an external open-world API tool with credential parameters, no output schema, and no parameter documentation, the description is far too thin. An agent cannot know how to authenticate or what the response contains without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, and the description compensates for none of it. It never explains what 'q' matches (episode title, description, person?), what 'max' bounds, or that api_key/api_secret are Podcast Index credentials.
Input schemas describe structure but not intent. Descriptions should explain 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: searching podcast episodes against the Podcast Index. It is clear what the tool does, but it never distinguishes itself from siblings like podcast_search, podcast_get_episodes, or podcast_recent_episodes, leaving the agent to guess which retrieval path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this over podcast_search (shows) or podcast_get_episodes (episodes by feed), and no mention of the prerequisite credentials implied by api_key/api_secret. The agent must infer the selection rule 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.
podcast_trendingCRead-onlyIdempotent
Get trending podcasts from Podcast Index.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| lang | No | ||
| api_key | No | ||
| api_secret | No |
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 and the description only adds the data source ('Podcast Index'). It says nothing about authentication requirements, rate limits, default result count, or whether results are cached/global — the behavioral facts an agent would still need.
Agents need to know what a tool does to the 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 short sentence with the key noun front-loaded and no filler, which is structurally sound. However, the brevity reads as under-specification rather than discipline given four undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% schema coverage, and four parameters including credentials, the description leaves the auth story and the shape of the response entirely unspecified. For a tool in a family of five sibling podcast endpoints, that is not enough to call it correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, and the description supplies no meaning for any of them. In particular, max and lang are undocumented, and api_key/api_secret credentials are never mentioned even though the tool cannot plausibly work without them — a serious gap the description should have compensated 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 names a specific verb ('Get') and resource ('trending podcasts') plus the upstream source (Podcast Index), so the intent is unambiguous. It stops short of distinguishing itself from siblings such as podcast_recent_episodes or podcast_search, leaving the agent to infer that this is the trending/chart-style endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to prefer this over podcast_search, podcast_recent_episodes, or podcast_by_feed_url, and no preconditions or exclusions are given. The agent must guess based on the word 'trending' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poetry_randomARead-onlyIdempotent
Get a random poem from PoetryDB.
| 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, destructiveHint=false, openWorldHint=true, so the safety profile is covered without description help. The description adds the upstream source (PoetryDB), which is useful context, but says nothing about what a call returns or that successive calls yield different poems (indeed it sits in mild tension with idempotentHint=true).
Agents need to know what a tool does to the 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 with zero waste, and the key qualifier ("random") and source are front-loaded. Nothing could be trimmed 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 no parameters, no output schema, and full annotation coverage, a single sentence is nearly sufficient. The only real gap is the return shape (fields, whether it is one poem object or a list), which the agent must discover by calling.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there are no parameter semantics to explain; the baseline for a no-param tool applies. Nothing in the schema or description needs further elaboration.
Input schemas describe structure but not intent. Descriptions should explain 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 a random poem") plus the data source (PoetryDB), so the operation is unmistakable. It does not distinguish itself from the related poetry_search_by_author and poetry_search_by_title siblings, leaving the agent to infer the difference from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance, and no mention of the search-by-author/search-by-title alternatives that would be the correct choice for anything non-random. The use case is fairly self-evident from "random," but that is inference, not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poetry_search_by_authorARead-onlyIdempotent
Search poems by author name on PoetryDB.
| Name | Required | Description | Default |
|---|---|---|---|
| author | Yes | Author name (e.g. Shakespeare, Emily Dickinson). |
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 fully covered by structured data. The description adds only the data source (PoetryDB), which is mildly useful; it says nothing about result volume, partial-name matching, or error behavior on unknown authors.
Agents need to know what a tool does to the 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 with no filler; the search target and filter appear immediately. It is arguably too terse rather than too long, but nothing in it 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 one-parameter, read-only lookup with full schema coverage and annotations covering safety, the description supplies enough for an agent to call it correctly. Only marginal niceties (author-name matching behavior, expected result shape) are missing, and no output schema exists to offset 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% and the single parameter is documented with examples (Shakespeare, Emily Dickinson), so the schema already does the heavy lifting. The description only restates that the input is an author name, adding no new semantics such as whether matching is case-sensitive or substring-based.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (search) and resource (poems) with an explicit filter (author name), which maps cleanly to the tool name. It doesn't reference siblings like poetry_search_by_title or poetry_random, so it stops short of full differentiation, but the operation 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 context of use is implied by the name and description — look up poems when you know the author — but there is no explicit guidance on when to prefer this over poetry_search_by_title or poetry_random, and no note about matching behavior (exact vs fuzzy author names).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poetry_search_by_titleARead-onlyIdempotent
Search poems by title on PoetryDB.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Poem title or partial title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the safety and idempotency profile is fully covered without the description. The description adds only the data source (PoetryDB); it does not say whether matching is case-sensitive or whether multiple poems can share a title.
Agents need to know what a tool does to the 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 short sentence with zero filler, and the identifying information (action, field, provider) is front-loaded. For a one-parameter lookup, this is the right size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a one-param tool with full schema coverage and rich annotations, the definition is technically callable. But with no output schema, the description says nothing about what a returned poem record contains (author, lines, linecount) or whether multiple results are returned, which would materially help an agent chain calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already explains that 'title' accepts a full or partial title. The description repeats the concept ('by title') without adding format, matching rules, or examples, placing it at the baseline for high-coverage 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?
States a specific verb and resource ('Search poems by title') plus the upstream source (PoetryDB), so an agent knows exactly what it queries. It does not differentiate itself from sibling tools like poetry_search_by_author or poetry_random, so an agent must infer the distinction from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by title' phrasing implies the selection condition, and the schema's 'title or partial title' hints at substring matching. However, there is no explicit statement of when to prefer this over poetry_search_by_author or poetry_random, and no mention of result limits or how partial matches behave.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poisson_probabilityB
Calculate Poisson distribution PMF and CDF for k events with rate lambda.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | Number of events (non-negative integer). | |
| lambda | Yes | Expected rate (positive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions PMF and CDF computation but does not disclose which is returned, whether both are returned, the output format, or any numeric precision 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?
A single, tight sentence that front-loads the verb and resource. 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 math tool with 100% schema coverage and no annotations, the description is minimally adequate. It leaves ambiguity about PMF vs CDF output that an agent would want resolved, but the core operation is identifiable.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters (k, lambda) are documented in the schema with constraints. The description names lambda and k implicitly but adds no 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?
States a specific verb (Calculate) and resource (Poisson distribution PMF and CDF) with the key inputs. Clear what it does, though it does not differentiate itself from sibling binomial_probability or normal_distribution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus binomial_probability, normal_distribution, or the many other probability/statistics tools in the catalog. The agent must infer applicability from domain knowledge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poke_get_abilityBRead-onlyIdempotent
Get Pokemon ability info and which Pokemon have it.
| Name | Required | Description | Default |
|---|---|---|---|
| ability | Yes | Ability name or ID (e.g. static, levitate) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering the safety profile. The description adds that the result includes which Pokemon have the ability, which is useful return-shape context, but it does not describe rate limits, auth requirements, or full response format. With annotations carrying the behavioral load, 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 front-loaded sentence with no wasted words. It states the core action and the key return content immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with no output schema, the description gives a high-level picture of what is returned: ability info and which Pokemon have it. However, it does not explain the return structure, lookup behavior (e.g., name vs. ID handling), or practical constraints. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and schema description coverage is 100%, so the schema already documents the ability name/ID and gives examples. The description adds no parameter semantics beyond what the schema provides. Baseline 3 is appropriate when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get Pokemon ability info and which Pokemon have it.' It clearly distinguishes ability lookup from sibling tools like poke_get_pokemon, poke_get_type, and poke_get_generation by naming the ability resource. It does not explicitly name a sibling alternative, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying it gets ability info, but gives no when-to-use guidance, no conditions, and no alternative tools. It does not tell the agent when to choose this over poke_search_pokemon or poke_get_pokemon.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poke_get_generationARead-onlyIdempotent
Get Pokemon generation info, region, and species list.
| Name | Required | Description | Default |
|---|---|---|---|
| generation | Yes | Generation ID (1-9) or name |
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 without the description. The description adds the useful detail that results include region and species list, but says nothing about invalid generation IDs, error behavior, or result size.
Agents need to know what a tool does to the 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 with no filler, and the returned fields are enumerated rather than left vague. It is efficient, though almost minimal for a schema-bearing 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 tool with full annotation coverage and no output schema, the description tells the agent what it returns (info, region, species list), which is the main missing structured detail. Only error and edge-case behavior is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 states the parameter is a generation ID (1-9) or name. The description adds no further semantics such as accepted name formats or case handling, 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 gives a specific verb ('Get') and a distinct resource ('Pokemon generation'), and even names the payload (region and species list). The generation resource is clearly separate from sibling resources like pokemon, type, and ability, though the description never explicitly contrasts 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?
Usage is only implied: an agent infers this is the lookup for a generation index or name. There is no statement of when to prefer it over poke_get_pokemon or the other PokeAPI siblings, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poke_get_pokemonBRead-onlyIdempotent
Get Pokemon data by name or ID from PokeAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pokemon name or ID (e.g. pikachu, 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds only that data comes from PokeAPI and is keyed by name/ID; it says nothing about rate limits, not-found behavior, or response shape beyond what annotations 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?
A single efficient sentence with the key lookup constraint front-loaded. It is appropriately sized, though slightly under-specified rather than over-verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description is adequate. The only meaningful gap is routing guidance versus poke_search_pokemon, which is minor for this 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%, and the schema already explains that the single parameter accepts a Pokemon name or ID with examples. The description repeats the same idea without adding format or validation details, so the 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 gives a specific verb (Get) and resource (Pokemon data) and states the lookup key (name or ID) and upstream source (PokeAPI). It does not explicitly distinguish itself from the sibling poke_search_pokemon, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of the sibling poke_search_pokemon. An agent must infer that this is an exact lookup while search is for fuzzy/name queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poke_get_typeARead-onlyIdempotent
Get Pokemon type info and which Pokemon have that type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type name or ID (e.g. electric, fire, 10) |
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 fully covered by structured data. The description's added value is stating that the result includes the Pokemon that have the type, which tells the agent about response shape despite there being no output schema. It says nothing about lookup failure behavior for an invalid type.
Agents need to know what a tool does to the 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 sentence, zero padding, with the resource front-loaded ahead of the secondary return detail. 'info' is slightly vague, which keeps it from 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?
For a one-parameter read-only lookup with full schema coverage and complete safety annotations, the description covers both what is queried and what is returned. No output schema exists, and the description adequately compensates by naming the associated Pokemon list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 documented with name-or-ID examples ('electric, fire, 10'). The description adds no format or resolution detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and resource ('Pokemon type info') plus the secondary payload ('which Pokemon have that type'), so an agent knows exactly what comes back. It stops short of explicitly distinguishing itself from siblings like poke_get_pokemon or poke_get_ability, though the resource noun makes the distinction reasonably obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 this is the tool for looking up a type and its members, but the description names no prerequisites, no exclusions, and no alternative sibling to prefer under other conditions. Minimum-viable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pokemon_tcg_search_cardsC
Search Pokemon Trading Card Game cards by name, type, set, or rarity.
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Set name to search within. | |
| name | No | Card name to search. | |
| type | No | Pokemon type (e.g. Fire, Water, Grass). | |
| limit | No | Max results (default 10). | |
| rarity | No | Card rarity (e.g. Rare, Common). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden but discloses nothing beyond the existence of the tool. It doesn't say whether multiple filters are ANDed, what happens when no filter is supplied (all params are optional), how results are ordered, or whether pagination applies.
Agents need to know what a tool does to the 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 with no filler; it is appropriately sized for a simple search tool. It is arguably a touch sparse, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, all-optional search tool with no annotations and no output schema, the description omits important context such as default behavior with no filters, result shape, and result limits beyond the schema's 'limit' hint. The gaps an agent would need to call it well are not 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 each parameter is already documented in the schema. The description merely restates the same filter fields without adding format, matching semantics (exact vs partial name), or interaction rules, 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 (Search) and resource (Pokemon TCG cards) and enumerates the filterable dimensions (name, type, set, rarity). It implicitly distinguishes itself from pokemon_tcg_sets, which returns set data rather than cards, though it doesn't name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement about combining filters, and no pointer to alternatives like pokemon_tcg_sets or poke_get_pokemon. The listing of filter dimensions hints at usage but never states context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pokemon_tcg_setsB
List or search Pokemon TCG card sets.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Set name to search. | |
| limit | No | Max results (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only operation, but does not disclose authentication needs, pagination behavior, rate limits, or whether searching is exact or partial.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for a simple two-parameter read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the description is minimally sufficient. However, without an output schema, it could have clarified return format or pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the input schema. The description adds no parameter meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb pair and resource: list or search Pokemon TCG card sets. It distinguishes this tool from card-level siblings such as pokemon_tcg_search_cards by naming 'sets' as the 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?
There is no explicit guidance on when to use this tool versus alternatives, nor when not to use it. The 'list or search' phrasing implies basic usage, but no conditions or sibling routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poke_search_pokemonBRead-onlyIdempotent
List Pokemon with pagination from PokeAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (max 100, default 20) | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive, so the safety profile is covered. The description only adds that results are paginated, and says nothing about total counts, default page size behavior, or what happens at the end of the list.
Agents need to know what a tool does to the 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 with no filler. The phrase 'from PokeAPI' is slightly redundant but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list endpoint with full annotation and schema coverage, the description is minimally sufficient. It lacks any note on return shape (name/url entries) or practical paging limits, which an agent would need for multi-page traversal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 documents limit (max 100, default 20) and offset, so the description carries no extra burden. Its mention of pagination adds nothing 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 and resource ('List Pokemon') plus the source API, which is enough to distinguish it from poke_get_pokemon by name alone. It stops short of explicitly framing the list-vs-detail split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus poke_get_pokemon, poke_get_type, or other PokeAPI siblings, and no guidance on paging strategy. The agent must infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pollard_rhoB
Factor an integer using Pollard's rho with Miller-Rabin primality testing.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Positive integer to factor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses the algorithm family (Pollard's rho plus Miller-Rabin), which hints at probabilistic behavior and suitability for large integers, but it says nothing about the return shape, failure modes for non-positive or non-integer input, or performance 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?
A single compact sentence with the action and method front-loaded; no padding 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 and no annotations, the description should ideally indicate what comes back (e.g., a list of prime factors or a factorization) and any input limits. As written it is adequate for a simple math utility but leaves return semantics and edge cases to inference.
Complex tools with many parameters or behaviors need more documentation. Simple 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 single 'value' parameter is already documented as a positive integer in the schema. The description adds no format, range, or constraint detail beyond that, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Factor) and resource (an integer) and names the algorithmic approach (Pollard's rho with Miller-Rabin). It does not, however, explicitly distinguish itself from close siblings like prime_factor or miller_rabin_test, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this over prime_factor, duval_factorize, or miller_rabin_test, nor any note on input constraints such as size limits or expected runtime. The agent must guess 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.
polygon_calculateBRead-onlyIdempotent
Calculate properties of a regular polygon: area, perimeter, angles, apothem, circumradius, diagonals.
| Name | Required | Description | Default |
|---|---|---|---|
| sides | Yes | Number of sides (>= 3). | |
| side_length | Yes | Length of each side. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered and a pure-computation tool needs little more. What the description does add is the set of returned properties, which matters because there is no output schema; however it omits units (degrees vs radians for angles) and whether any properties can be null.
Agents need to know what a tool does to the 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 with zero filler, and the resource is stated before the enumerated outputs so the agent gets the identity of the tool first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description partially compensates by listing the computed properties. But for a numeric calculation tool it leaves the agent guessing on units (angle measure, side_length units) and on how results are presented, which is a real gap for downstream 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?
Schema description coverage is 100% and both parameters are documented with constraints ('Number of sides (>= 3)', 'Length of each side'), so the schema does the work. The description adds no unit conventions or validation nuance beyond that 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?
Clear specific verb+resource: 'Calculate properties of a regular polygon', and it enumerates which properties (area, perimeter, angles, apothem, circumradius, diagonals). This distinguishes it reasonably from generic siblings like area_calculate or triangle_solve, though it never names an alternative 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 contains no when-to-use guidance, no prerequisites, and no comparison to the many sibling math tools (area_calculate, triangle_solve, proportion_solve). An agent must infer that this is for regular polygons only, not arbitrary shapes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
polynomial_opsB
Perform polynomial operations: evaluate, derivative, integral, add, or multiply. Coefficients are highest degree first.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Point to evaluate at (for evaluate operation) | |
| operation | Yes | Operation to perform | |
| coefficients | Yes | Polynomial coefficients, highest degree first | |
| coefficients2 | No | Second polynomial for add/multiply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses only the coefficient-ordering convention. It says nothing about what is returned (coefficients vs. expression string), how mismatched-length polynomials are handled in add, whether results are normalized, or error behavior for invalid operations.
Agents need to know what a tool does to the 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 operation list is front-loaded and the coefficient-ordering constraint follows immediately. Nothing is padded and nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter math tool with full schema coverage but no output schema, the description is minimally adequate. The most significant gap is the return contract — an agent cannot tell whether evaluate returns a scalar and derivative returns coefficients — which the missing output schema would otherwise have 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 schema already documents x, coefficients, coefficients2 and the operation enum. The description restates the 'highest degree first' convention already present in the coefficients schema field and adds no new parameter 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 names a specific resource (polynomials) and enumerates the concrete operations performed (evaluate, derivative, integral, add, multiply), so an agent knows exactly what capability is exposed. It does not differentiate from any near-sibling, but no sibling tool in the list overlaps meaningfully with polynomial algebra.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing the operations implies when each is applicable, but there is no explicit guidance on selecting among them, no prerequisites, and no mention that add/multiply require a second polynomial argument. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postcode_lookupBRead-onlyIdempotent
Look up a UK postcode for lat/lon, region, district, ward, and constituency.
| Name | Required | Description | Default |
|---|---|---|---|
| postcode | Yes | UK postcode (e.g. SW1A 1AA). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety and side-effect profile is covered. The description adds the fields returned, but does not disclose behavior for invalid postcodes, external-service failures, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no unnecessary words. It efficiently states the action, input domain, and returned 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 simple one-parameter, read-only lookup with rich annotations but no output schema, the description is mostly complete because it names the expected return fields. It stops short of describing error behavior or output formatting, which are minor gaps at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents the sole `postcode` parameter with an example. The description only repeats that it is a UK postcode, adding no extra syntax, normalization, or validation 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 UK postcode" and lists the returned fields (lat/lon, region, district, ward, constituency). It is clearly differentiated from non-UK postcode/zip tools by the "UK" qualifier, but does not explicitly distinguish itself from the sibling `postcode_random`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 does but gives no guidance on when to use it versus alternatives such as `postcode_random`, `zip_lookup`, or `auspost_get_postcode`. There are no exclusions, prerequisites, or context cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postcode_randomARead-onlyIdempotent
Get a random UK postcode with full location details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive and open-world, so the safety profile is covered. The description additionally promises 'full location details', which is useful given there is no output schema, but it does not say what those details include or that repeated calls return different results — a point worth flagging since idempotentHint=true is questionable for a random generator.
Agents need to know what a tool does to the 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 with no filler. The distinguishing attribute ('random') and the scope ('UK') both appear before any payoff 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 no-parameter, no-output-schema utility this covers the essentials: what it returns at a high level and that it is randomised. It would be stronger if it enumerated the location fields or noted that the result varies per call, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to explain; baseline 4 applies. The absence of any options is consistent with the empty 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 and resource ('Get a random UK postcode') plus a hint at the payload ('full location details'), which is enough to distinguish it from the deterministic sibling postcode_lookup. It stops short of naming that sibling explicitly, so the differentiation is implicit 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 description gives no when-to-use guidance and no mention of the obvious alternative (postcode_lookup for a known postcode) even though that sibling sits right next to it. An agent has to infer the choice from the word 'random' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_list_feature_flagsBRead-onlyIdempotent
List PostHog feature flags for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | PostHog host (default https://us.posthog.com) | |
| api_key | Yes | PostHog Personal API key | |
| project_id | No | PostHog project id (can be a saved default) |
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 only confirms the list is per-project, which adds a small amount of behavioral context but nothing on pagination or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is efficient but very thin, leaving no room for the scoping caveats an agent might want.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Rich annotations and a fully documented schema cover most of what's needed, and there is no output schema to explain. However, for a listing endpoint the description says nothing about result size, pagination, or whether the project default is resolved from configuration — a gap worth one sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 api_key, host and project_id are already documented in the schema. The description adds no parameter-level detail beyond the word 'project', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('List PostHog feature flags') and scopes it to a project, which separates it from siblings like posthog_query and posthog_list_insights. It is clear but doesn't explicitly contrast with 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?
No guidance on when to use this versus posthog_query (arbitrary queries) or the other posthog_list_* tools. The agent must infer from the name that this is the enumeration path for feature flags.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_list_insightsBRead-onlyIdempotent
List saved PostHog insights (charts) for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | PostHog host (default https://us.posthog.com) | |
| limit | No | Results to return (max 100, default 25) | |
| search | No | Filter insights by name | |
| api_key | Yes | PostHog Personal API key | |
| project_id | No | PostHog project id (can be a saved default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so safety is covered. The description adds that results are 'saved' insights for a project, but says nothing about pagination/limit behavior or default ordering that an agent would want before calling.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though the brevity edges toward under-specification rather than optimal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 a fully documented schema and safety annotations, the essentials are present. However, with no output schema, the description gives no hint of what an insight record contains or how results are paginated, leaving a modest 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% (host, limit, search, api_key, project_id all documented), so the schema carries parameter meaning. The description only implies project scoping ('for a project') and adds no format or syntax 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 ('List') and resource ('saved PostHog insights (charts)') scoped to a project. It does not name or contrast with the sibling insight-adjacent tools (posthog_query, posthog_list_feature_flags), so sibling differentiation is left to the reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'saved' subtly implies this returns stored insights rather than ad-hoc query results, which is implied guidance. But there is no explicit statement of when to use this over posthog_query or how to scope/filter, so usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_list_personsBRead-onlyIdempotent
List PostHog persons (users) for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | PostHog host (default https://us.posthog.com) | |
| limit | No | Results to return (max 100, default 25) | |
| search | No | Filter persons by email or properties | |
| api_key | Yes | PostHog Personal API key | |
| project_id | No | PostHog project id (can be a saved default) |
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. The description adds essentially no behavioral context beyond the list scope, such as pagination behavior, authentication needs, or filtering 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?
It is a single front-loaded sentence with no redundant or filler text. The brevity is appropriate for a simple read-only list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only nature, full schema coverage, and strong annotations, the description is sufficient to invoke the tool correctly. The main gap is routing guidance versus sibling PostHog tools, but an agent has enough information for basic 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?
Schema description coverage is 100%, and all five parameters are documented in the schema. The description only adds "for a project," which loosely maps to project_id, so the baseline of 3 is appropriate when the schema carries parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb "List" and resource "PostHog persons (users)" plus the project scope. It clearly separates this from PostHog siblings like feature flags or insights, though it does not explicitly name alternatives such as posthog_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage context is "for a project"; there is no guidance on when to use this versus posthog_query or other person/user listing tools. No exclusions or prerequisites are stated beyond what the schema already provides.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_queryB
Run an ad-hoc HogQL (SQL) query against a PostHog project's events.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | PostHog host (default https://us.posthog.com) | |
| query | Yes | HogQL/SQL query (e.g. select count() from events) | |
| api_key | Yes | PostHog Personal API key | |
| project_id | No | PostHog project id (can be a saved default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-style query but never states whether the operation is read-only, what permissions the Personal API key needs, or whether there are rate limits or result caps. For a tool with zero annotation coverage this is a significant 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?
A single front-loaded sentence with no wasted words. It is efficient, though its brevity contributes to the missing behavioral and usage 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?
There is no output schema and no annotations, so the description should compensate. It does note the scope (events), which is a useful constraint for HogQL, but it omits auth expectations and result characteristics for a 4-parameter 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 host, query, api_key, and project_id are already documented in the schema. The description adds no syntax or format guidance (e.g. HogQL dialect limits, project_id default behavior) beyond what the schema provides; 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 (Run) and resource (ad-hoc HogQL/SQL query) scoped to a PostHog project's events. It is distinguishable from the sibling posthog_list_* tools, which are predefined listers, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'ad-hoc' hints that this is for custom, one-off queries rather than the predefined list tools, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postman_actionB
Interact with the Postman API: list and retrieve collections, list environments, and list monitors.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: list_collections, get_collection, list_environments, list_monitors. | |
| api_key | Yes | Postman API key. | |
| workspace_id | No | Workspace ID to filter results. | |
| collection_id | No | Collection UID (for get_collection). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It omits any details about idempotency, side effects, rate limits, error behavior, or authorization requirements beyond requiring an api_key. The description only names the actions.
Agents need to know what a tool does to the world before calling 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 efficiently conveys the tool's purpose. There is no extraneous text, though it could be slightly improved by grouping actions or adding structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and a multi-action tool, the description lacks details about return values or how results differ per action. It is too minimal to be fully informative for an agent 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 coverage is 100%, so the baseline is 3. The description does not add any meaning beyond the schema; it restates the action options in natural language but provides no additional context on how to use parameters like collection_id or workspace_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 interacts with the Postman API and lists the specific actions: list and retrieve collections, list environments, and list monitors, which exactly match the action enum. Since no sibling tools share the Postman domain, differentiation is inherent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, no conditions for selecting specific actions, and no prerequisite information (e.g., obtaining an API key). It merely states capabilities without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postmark_get_delivery_statsBRead-onlyIdempotent
Get delivery statistics from Postmark including bounces, spam complaints, and open rates.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Postmark server token |
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 value by naming the returned metrics, but omits key behavioral context such as what time window the statistics cover and whether they are scoped per server — information an agent needs to interpret the numbers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence listing the resource and metrics, with no wasted verbiage. Appropriately sized for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations covering only safety, the description should clarify result semantics — most notably the time period the statistics span and their granularity. That gap prevents full completeness for a stats tool, though the listed metrics make it usable.
Complex tools with many parameters or behaviors need more documentation. 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 a single api_key parameter with 100% schema description coverage ('Postmark server token'), so the schema fully documents it. The description adds no further param guidance, which is acceptable given the complete schema, but contributes nothing beyond 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?
States a specific verb (get) and resource (delivery statistics) and enumerates the metrics returned (bounces, spam complaints, open rates), so the agent knows exactly what it retrieves. It does not explicitly differentiate itself from postmark_list_templates, postmark_get_template, postmark_search_messages, or postmark_send_email by name, but the resource is clearly distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use, when-not-to-use, prerequisites, or alternatives among the Postmark siblings. An agent must infer that this is the tool for aggregate delivery metrics; nothing routes it here versus the message/template tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postmark_get_templateBRead-onlyIdempotent
Get a single Postmark email template by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Postmark server token | |
| template_id | Yes | Template ID or alias |
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 fully covered. The description adds nothing beyond that — no error behavior for unknown aliases, no auth/permission notes beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states resource, scope and selector with zero 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 single-record read with a fully documented two-parameter schema, rich annotations, and no output schema, the description covers what is needed to call it correctly. Only sibling routing and alias handling are left 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?
Schema description coverage is 100%, so both api_key and template_id are already documented. The description only restates 'by ID' and actually narrows slightly, since the schema allows an alias as well; no added syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain 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 a single Postmark email template') and scopes it to one item by ID. It is distinguishable from postmark_list_templates by the word 'single', though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'single ... by ID' implies this is the by-ID lookup versus the list tool, but the description gives no explicit when-to-use or when-not guidance and does not mention postmark_list_templates as the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postmark_list_templatesBRead-onlyIdempotent
List email templates stored in Postmark.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of templates to return (default 100) | |
| offset | No | Pagination offset | |
| api_key | Yes | Postmark server token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds nothing beyond them: no pagination behavior, no default page-size note, no auth/permission caveats. With the bar lower under annotations, this still earns only a 2 for zero added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient but borders on under-specification for a paginated list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the annotations plus a fully described schema carry most of the load, so the terse description is nearly sufficient. It still leaves the return shape and default count/pagination expectations unstated in prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 count, offset and api_key are all documented in the schema itself. The description adds no syntax or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('email templates'), scoped to Postmark. It is clearly distinguishable from the singular postmark_get_template sibling, though the description never names that 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 listing nature makes the use case implied, but there is no explicit guidance on when to pick this versus postmark_get_template, and no mention of paging through results. Nothing tells the agent what not to do.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postmark_search_messagesBRead-onlyIdempotent
Search sent messages in Postmark by recipient, sender, tag, or status.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag | |
| count | No | Number of messages to return (default 25) | |
| offset | No | Pagination offset | |
| status | No | Filter by status: queued, sent, bounced, etc. | |
| api_key | Yes | Postmark server token | |
| recipient | No | Filter by recipient email | |
| from_email | No | Filter by sender email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive behavior, and openWorldHint, so the safety profile is covered. The description adds useful scope by specifying 'sent messages' and listing filter dimensions, but it does not mention pagination, result ordering, or rate/auth behavior 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?
It is a single, front-loaded sentence with no wasted words. The core action and supported filters appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and clear annotations, the description is adequate but thin. It does not explain pagination defaults, result shape, or when to prefer this search over other Postmark listing tools, leaving moderate 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 description coverage is 100%, so every parameter is already documented. The description mentions recipient, sender, tag, and status, which loosely maps to some parameters, but it omits count, offset, and api_key that the schema covers well. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Search sent messages in Postmark') and lists supported filter dimensions. It is clearly distinguishable from sibling Postmark tools such as postmark_get_delivery_stats, postmark_list_templates, and postmark_send_email, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The implied use case is searching sent messages, but the description does not state that explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postmark_send_batchA
Send multiple emails in a single Postmark API call (up to 500 messages).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Postmark server token | |
| messages | Yes | Array of email message objects (same fields as send_email) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only mentions the batch limit. It does not disclose error handling (e.g., partial failures), rate limits, required authentication beyond the API key, or what happens if a message fails. This is a significant gap for a batch 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 a single, clear sentence that front-loads the key purpose and constraints. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool sends batches of emails, the agent needs to know error behavior, rate limits, and how to handle failures. The description lacks these details. No output schema or annotations exist to compensate. The description is too minimal for the 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?
The schema has 100% description coverage. The description adds value by stating that the 'messages' array contains objects with 'same fields as send_email', which helps the agent understand the expected structure. However, no further details on the 'api_key' parameter are added 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 ('Send') and resource ('multiple emails in a single Postmark API call') and explicitly states the maximum batch size (500 messages). This clearly distinguishes it from the sibling tool 'postmark_send_email' which sends a single email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for sending multiple emails in one call, but does not explicitly state when to use this tool versus sending individual emails (e.g., for efficiency, or when you have more than 500 messages). No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postmark_send_emailC
Send a transactional email via Postmark. Supports HTML and plain text.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC email address(es) | |
| to | Yes | Recipient email address | |
| bcc | No | BCC email address(es) | |
| tag | No | Tag for categorizing messages | |
| from | Yes | Sender email address (must be verified in Postmark) | |
| api_key | Yes | Postmark server token | |
| subject | Yes | Email subject line | |
| reply_to | No | Reply-to email address | |
| html_body | No | HTML email body | |
| text_body | No | Plain text email body | |
| message_stream | No | Message stream ID (default: outbound) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description omits behavioral details such as API key requirements, rate limits, error handling, or idempotency. The agent gets no insight beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no unnecessary words, and the key action is stated upfront. 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?
Despite having 11 parameters and no output schema, the description fails to explain return values, authentication flow, or expected outcomes. It is too minimal for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description's mention of HTML and plain text adds minor reinforcement but is redundant with schema descriptions. No additional semantic value 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 it sends transactional emails via Postmark, with support for HTML and plain text. This is specific and distinguishes it within the Postmark toolset, but does not explicitly differentiate from other email-sending tools in the broader 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?
No guidance is provided on when to use this tool over alternatives like postmark_send_batch, resend_send_email, or sendgrid_send_email. Prerequisites such as a verified sender domain or Postmark account are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_messagePost to the BoardroomA
Posts a message into the user's Boardroom, the build coordination room where worker seats share material work updates. Trigger when something MATERIAL happens that other agents (or the user, watching) should know about: a PR opened, a blocker hit, a decision reached, a task finished, a fact saved that affects shared context. Post events, not stream-of-consciousness. One short message per real change. Keep it plain English, no jargon. Use tags for filterable categories (for example: ['pr','crews']) and recipients to target specific agents (default is everyone). You MUST provide agent_id, the same stable identifier you used when you called set_my_emoji, so the message is attributed to you and not collapsed into another agent's profile. Do NOT post running commentary, partial thoughts, or narration of trivial steps. The Boardroom is a noticeboard, not a chat log.
Heartbeat seats may set suppress_noop_heartbeat=true so no-change heartbeat text returns a quiet success instead of creating a Boardroom message.
Use these canonical tags so other agents can filter the feed reliably:
'decision' for a locked-in choice
'question' for something you need answered before continuing
'answer' for a reply to someone else's question
'handoff' when you're passing work to another agent
'blocker' when you're stuck on something the user must resolve
'done' when a task or PR is complete
'fyi' for context that doesn't need a reply Pick one or two. Avoid inventing new tags unless none of these fit.
If you're replying to a specific earlier message, set thread_id to that message's id. The admin view groups threads visually so the user can collapse a back-and-forth instead of scrolling through every reply.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tags for filtering. Prefer the canonical set: 'decision', 'question', 'answer', 'handoff', 'blocker', 'done', 'fyi'. Pick one or two. | |
| text | Yes | The message body in plain English | |
| agent_id | Yes | Stable identifier for yourself, e.g. 'claude-code-builder-seat' or 'chatgpt-codex-reviewer-seat'. Use the same value across calls so the chat tracks you as one agent. | |
| thread_id | No | Optional id of an earlier message you're replying to. Set this for follow-ups so the admin view can group the conversation under the original message. | |
| recipients | No | List of agents this message is aimed at. USE agent_ids (e.g. ['claude-code-builder-seat']) - read_messages lists the agent_id of every seat. An agent_id names exactly one seat; an emoji does not. Emojis are shared and recycled (one has been worn by 31 seats at once), so emoji-addressed mail goes to everyone wearing it and is NOT counted as any one seat's direct mail. Emoji addressing still delivers, for compatibility, and is unambiguous only while a single seat wears it. A recipient that matches no seat is refused rather than silently dropped. Default ['all'] means everyone reads it but nobody is specifically tagged. | |
| suppress_noop_heartbeat | No | Optional heartbeat-only guard. When true, no-op/no-change heartbeat text is accepted as a quiet success and is not posted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write nature is covered; the description adds important context the annotations cannot: the message is attributed to the caller via agent_id, recipients default to everyone, unmatched recipients are refused, and suppress_noop_heartbeat turns no-op heartbeat text into a quiet success. It does not describe what a successful post returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and trigger rules, and the tag list is bulleted rather than prose, but the block is long and partly duplicates the schema's tag examples and descriptions. The guidance is repeated twice in slightly different words ('Post events, not stream-of-consciousness' vs 'Do NOT post running commentary'), which is 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 6-param mutation tool with no output schema, the description covers trigger criteria, addressing semantics, and threading behavior thoroughly. The only gap is not saying what a call returns (message id, echo, or nothing), which matters for a follow-up thread_id reply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description genuinely adds meaning beyond the schema: the canonical tag vocabulary and 'pick one or two' constraint, the agent_id-must-match-set_my_emoji requirement, the everyone-default for recipients, and that thread_id drives visual grouping in the admin view.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a concrete verb+resource and defines the resource ('Posts a message into the user's Boardroom, the build coordination room where worker seats share material work updates'). This is unambiguous against chat-like siblings such as discord_send or post_room_update, since it names the venue and the audience.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit trigger conditions ('Trigger when something MATERIAL happens...') plus explicit exclusions ('Do NOT post running commentary, partial thoughts, or narration of trivial steps') and a framing distinction ('noticeboard, not a chat log'). It lacks any named alternative tool for the non-material cases, which keeps it 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.
post_room_updatePost a proactive room updateA
Posts one durable, low-noise update into a Chat room without waiting for another human turn. Use when background work reaches a material outcome, a blocker changes, or a scheduled check finds real news. Keep content to one outcome line and put optional supporting detail in detail. idempotency_key is required so retries never duplicate a message.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | outcome | |
| detail | No | Optional collapsed supporting detail. | |
| content | Yes | One-line outcome, maximum 320 characters. | |
| sender_id | No | Stable seat handle shown as the author. | |
| thread_id | Yes | Chat thread UUID receiving the update. | |
| source_ref | No | Optional job, card, run, or commit reference. | |
| idempotency_key | Yes | Stable retry key for this exact update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-open-world, and idempotentHint=false; the description adds genuinely new context by explaining that the required idempotency_key is what prevents duplicate messages on retry (i.e., dedupe is caller-driven, consistent with idempotentHint=false). It also discloses the "durable, low-noise" delivery character and the brevity constraint, though it says nothing about return value 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?
Four short sentences, front-loaded with what the tool does before when-to-use and parameter rules; nothing is padded. The content/detail sentence largely repeats schema field descriptions, which costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating 7-parameter tool with no output schema, the description covers purpose, triggers, and the critical idempotency contract, but omits what the call returns (message id?) and what the four `kind` enum values mean—both of which the schema also leaves silent.
Complex tools with many parameters or behaviors need more documentation. Simple 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 86%, so the baseline is 3; the description adds functional meaning beyond the schema by tying idempotency_key to retry-with-same-key behavior and by restating content/detail as one-line outcome vs. optional supporting detail. It leaves the `kind` enum (ack/outcome/card/checkin) and sender_id/source_ref unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("Posts ... update into a Chat room") and constrains it to proactive/background use "without waiting for another human turn," which distinguishes it from a reply-style post_message. It stops short of naming the sibling it replaces, so the contrast is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger conditions: background work reaches a material outcome, a blocker changes, or a scheduled check finds real news. It also implicitly excludes conversational replies. There is no explicit when-not or named alternative tool, which keeps it below 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_iterationB
Find the dominant eigenvalue and eigenvector of a square matrix via power iteration.
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | Square NxN matrix | |
| tolerance | No | Convergence tolerance (default 1e-10) | |
| max_iterations | No | Max iterations (default 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It states the algorithm but omits convergence behavior, failure modes when no dominant eigenvalue exists, what happens if max_iterations is reached, and any assumptions about the matrix.
Agents need to know what a tool does to the 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 operation and result without any filler. Every part of the sentence contributes to understanding the tool's 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 mathematical tool with no output schema, the description adequately states what is computed and how. However, it leaves out important assumptions and failure modes that an agent might need to use the tool correctly, so it is only minimally 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%, and the schema already documents matrix, tolerance, and max_iterations clearly. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Find), two precise resources (dominant eigenvalue and eigenvector), the input type (square matrix), and the method (power iteration). This is enough for an agent to distinguish it from generic matrix operations or decomposition 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?
There is no guidance on when to prefer power iteration over other eigenvalue methods (e.g., matrix_decomp), nor any explicit conditions such as requiring a unique dominant eigenvalue or a suitable starting vector. Usage is only implied by the method name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_setA
Generate all subsets of a set (up to 20 elements).
| Name | Required | Description | Default |
|---|---|---|---|
| elements | Yes | Array of elements (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. It discloses the 20-element limit, a critical constraint, but does not describe return format, determinism, or complexity.
Agents need to know what a tool does to the 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 sentence, front-loaded with the core action and constraint. 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, single-parameter math tool with a fully documented schema, the description plus schema is nearly sufficient; the lack of output schema means return format is unspecified, but the operation is standard.
Complex tools with many parameters or behaviors need more documentation. Simple 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 documents the 'elements' array and its 20-item limit. The description repeats the limit but adds no new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Generate' and resource 'all subsets of a set', and includes a scoping constraint. This clearly identifies the operation (power set) and differentiates it from sibling combinatorial tools like combination_calc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use, no alternatives, no exclusions. A user must infer usage from the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prefix_functionB
Compute the KMP prefix/failure function array, with optional pattern occurrence counting.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string (max 1,000,000 chars) | |
| pattern | No | Optional pattern to count occurrences of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the dual behavior — array computation alone, or array plus occurrence counting when a pattern is given — but says nothing about output shape (array of integers vs. a count), complexity, or what happens with empty/degenerate patterns.
Agents need to know what a tool does to the 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 with no filler; the core operation is stated first and the optional mode second. Nothing can be trimmed 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?
There is no output schema, so the description must convey the return value, and it does only loosely ('array' — but it is unclear what the tool returns when 'pattern' is supplied, e.g. array plus count versus count alone). For a two-mode computational tool this leaves a real 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%: the schema already defines 'text' (max 1,000,000 chars) and 'pattern' (optional pattern to count occurrences of). The description only restates the optional pattern role, adding no syntax, format, or constraint detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and algorithm resource ('Compute the KMP prefix/failure function array') and names the optional secondary behavior. It is distinguishable from algorithmic siblings such as kmp_search or kmp_automaton by naming the exact artifact produced, though it does not explicitly contrast itself with 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?
There is no guidance on when to use this versus the many adjacent string-algorithm siblings (kmp_search, kmp_automaton, z_function, z_algorithm). The mention that 'pattern' is optional is schema-level information, not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pressure_convertARead-onlyIdempotent
Convert pressure between Pa, hPa, kPa, bar, atm, psi, torr, mmHg, inHg.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Target unit (omit for all). | |
| from | No | Source unit (default pa). | |
| value | Yes | Pressure value to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral details such as return format or behavior when 'to' is omitted, but for a pure deterministic conversion tool with full annotation coverage, this is minimally adequate.
Agents need to know what a tool does to the 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 efficient sentence with the core action and supported units front-loaded. Every element earns its place, with zero 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 three-parameter unit converter with full schema descriptions and rich annotations, the description is nearly complete. The only minor gaps are return format and the exact effect of omitting 'to', though the schema covers the latter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3, but the description adds meaningful value by enumerating the supported pressure units that are not represented as enums in the schema. It does not explain the omit/default behavior for 'from' and 'to', but the schema already does 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 ('Convert') and resource ('pressure') and enumerates the supported units, which clearly distinguishes it from sibling converters such as convert_length, convert_temperature, and convert_speed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the pressure-specific unit list, but the description gives no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The schema provides defaults, but the description itself does not route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prime_checkCRead-onlyIdempotent
Check if a number is prime, get its factorization, and find adjacent primes.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Non-negative integer to check (max 1 trillion). |
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 no further behavioral context such as the cost of factorization for large inputs, the meaning of 'adjacent primes' (nearest? next/previous?), or what output format to expect. It merely restates the operations.
Agents need to know what a tool does to the world before calling 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 lists the three capabilities, though the bundling of multiple operations makes it slightly less crisp than a single-purpose 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?
No output schema exists, so the description should explain return values, but it does not. An agent cannot tell whether all three results are always returned, whether factorization is omitted for primes, or how adjacent primes are represented. For a multi-purpose math tool with no output schema, this is 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 description coverage is 100%, so the parameter constraints (non-negative integer, max 1 trillion) are fully documented in the schema. The description adds no extra meaning about the number parameter, which is appropriate given schema completeness; 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 set of operations on a number resource: primality check, factorization, and adjacent primes. It is clear what the tool does, but it does not differentiate from siblings like prime_factor or miller_rabin_test, leaving ambiguity about when to choose this combined 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?
There is no guidance on when to use this tool versus alternatives. Sibling tools such as prime_factor and miller_rabin_test overlap with its functionality, and the description provides no conditions for selecting one over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prime_factorC
Find the prime factorization of an integer.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Integer to factorize (>= 2, max 1 trillion). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but adds nothing beyond the one-line purpose. It does not say what the output looks like (list of primes, primes with multiplicities, canonical form), whether repeated factors are returned, or how the >1e12 / <2 bounds are enforced.
Agents need to know what a tool does to the 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 with no filler. It is efficient, but its brevity is a function of under-specification rather than tight writing, so it is not a standout.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple (one param, no nested objects, no output schema), so minimal prose is defensible. Still, for a factorization function the shape of the result (e.g., factors with multiplicity) is a real ambiguity the description does not resolve.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 n already documents type and the >= 2, max 1 trillion constraints, so the schema does the heavy lifting. The description restates "integer" without adding format or edge-case semantics beyond that. 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 ("Find the prime factorization of an integer"), so the core purpose is unambiguous. However, it offers no differentiation from related math siblings such as prime_check, pollard_rho, sieve_of_eratosthenes, or duval_factorize, which an agent may need to choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 and no exclusions. A factorization tool sits next to prime_check (primality) and duval_factorize, yet the description never specifies which to pick when, leaving routing 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.
promote_expressroom_draftInsert DraftRoom draft into JobsB
Creates an official Boardroom job from a Manual DraftRoom draft and links the two records. If the warm chat seat did not supply code, keep the exact blocker and next build step visible. The new job still needs normal UnClick integration, tests, PR or commit proof, and review.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Stable identifier for the calling agent. | |
| draft_id | Yes | DraftRoom draft id. | |
| priority | No | normal | |
| force_new | No | Create a new job even if this draft already has a linked official job. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world behavior. The description adds useful context about linking two records and keeping blocker/next-step information visible, but does not disclose return shape, authentication requirements, rate limits, or what force_new actually does beyond the schema's own description.
Agents need to know what a tool does to the 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 with the primary action front-loaded. The second and third sentences are somewhat opaque but not wasted; they add domain-specific operational context 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 mutation tool with no output schema and four parameters, the description covers purpose and downstream workflow needs but omits what the tool returns (e.g., new job id, link status) and any authorization or duplicate-handling semantics. It is adequate but leaves meaningful 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 description coverage is 75%, so most parameters are already documented. The description adds no parameter-level meaning and does not compensate for the undocumented priority enum. Baseline 3 is appropriate given that the schema carries most of 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?
States a specific verb+resource: 'Creates an official Boardroom job from a Manual DraftRoom draft and links the two records.' This distinguishes it from create_expressroom_draft (creates a draft) and promote_idea_to_todo. Domain jargon ('Boardroom', 'warm chat seat') slightly muddies the read, but the core action is 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 never states when to use this tool versus alternatives like create_expressroom_draft, list_expressroom_drafts, or promote_idea_to_todo. The conditional 'If the warm chat seat did not supply code...' is a behavioral instruction, not usage guidance, and no prerequisites 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.
promote_idea_to_todoPromote an idea to a todoA
Converts an idea into a tracked todo and locks the idea. Requires either net upvotes >= 1, or admin caller. Sets idea.status='locked' and idea.promoted_to_todo_id. Posts an 'idea-promoted' Boardroom event. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| idea_id | Yes | ||
| agent_id | Yes | ||
| priority | No | normal | |
| assigned_to_agent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses significant behavior: locking the idea, setting status and promoted_to_todo_id, posting an idea-promoted event, and the authorization precondition. These details materially help an agent understand side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then eligibility, side effects, event emission, and required identifier. Every sentence adds useful information without 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?
The core mutation, eligibility rule, and side effects are covered, but the description omits two optional parameters and says nothing about the return value or whether the created todo ID is surfaced. With no output schema and 0% schema coverage, those gaps matter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It only mentions agent_id explicitly and implies idea_id, while leaving priority and assigned_to_agent_id entirely unexplained, including the priority enum/default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: converts an idea into a tracked todo and locks the idea. It also names concrete state changes, making the operation clearly distinct from a generic create_todo call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 eligibility precondition (net upvotes >= 1 or admin caller), which gives useful usage context. However, it does not explicitly compare this tool to alternatives like create_todo or update_idea, nor does it describe 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.
proportion_solveARead-onlyIdempotent
Solve a proportion a/b = c/d given any 3 values.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | Value a. | |
| b | No | Value b. | |
| c | No | Value c. | |
| d | No | Value d. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The read-only, idempotent, non-destructive annotations already cover the safety profile, and the description adds that exactly three values are expected. However, it does not disclose the return value, error behavior for invalid proportions, or handling of omitted/extra inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler. Every phrase contributes to identifying the operation and the invocation condition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 math utility with full schema coverage and annotations, this is close to sufficient. Still, with no output schema, the description does not explicitly state what is returned or how invalid inputs are handled, leaving a clear but modest 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%, but the schema descriptions are only 'Value a' through 'Value d.' The description adds meaningful semantics by mapping the parameters to the equation a/b = c/d and indicating that any three can be supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 mathematical object: solve the proportion a/b = c/d. This clearly distinguishes it from nearby utilities such as ratio_simplify or percentage_calc without needing to inspect 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 phrase 'given any 3 values' implies how to invoke it, but it does not explicitly say when to choose this tool over sibling math tools or what to do with all four/fewer than three values. Usage is therefore implied rather than fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ptv_departuresC
Get PTV departures for a stop. In full UnClick, stop_id can be filled from saved Memory defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| stop_id | No | PTV stop ID. Optional when a saved UnClick Memory default exists. | |
| route_id | No | ||
| route_type | No | 0=train, 1=tram, 2=bus, 3=vline, 4=night. Defaults to train. | |
| max_results | No | Defaults to 5, maximum 20. | |
| direction_id | No | ||
| look_backwards | No | ||
| include_cancelled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the Memory-default behavior but omits rate limits, auth requirements (PTV keys are typically rate-limited), and whether results are real-time vs scheduled. For a data-fetch tool with zero annotations, this is thin.
Agents need to know what a tool does to the 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, front-loaded with the core action, no padding. Efficient for what little it conveys, though the brevity contributes to the gaps elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Eight parameters, no annotations, no output schema, and 38% schema coverage – the description does almost nothing to close the gap. Missing: what departures look like (time, route, direction), whether real-time or timetable, and semantics of the many boolean/numeric filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 38% with 8 parameters. The description only adds meaning for stop_id (Memory default) – route_id, direction_id, look_backwards, and include_cancelled are entirely undocumented in both schema and description. That is a significant gap the description should help close but does not.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('PTV departures for a stop'), which is clear enough to distinguish it from ptv_disruptions, ptv_route_directions, and ptv_search. It does not explicitly name those siblings, so it misses the top of the scale but the resource is concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus when-not-to-use guidance, and no mention of the sibling tools (ptv_disruptions, ptv_route_directions, ptv_search, ptv_stops_on_route). The only usage hint is the Memory-default note, which is about parameter filling, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ptv_disruptionsC
Get current PTV service disruptions.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| route_types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose authentication requirements, rate limits, or side effects. The api_key parameter in the schema implies a need for API key, but the description omits this.
Agents need to know what a tool does to the world before calling 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 which is concise but overly brief. It lacks necessary details while not being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 2 undocumented parameters, and many sibling PTV tools, the description is incomplete. It doesn't describe the response format or provide enough context for an agent to use 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 0%, and the description adds no meaning to the parameters. It doesn't explain what 'route_types' expects (e.g., format, allowed values) or the purpose of 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'PTV service disruptions' with a scope ('current'). It effectively distinguishes from sibling tools like ptv_search and ptv_departures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like ptv_search or ptv_stops_on_route. No when-nots or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ptv_route_directionsC
Get directions for a PTV route.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| route_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden of behavioral disclosure. It only implies a read operation ('Get directions') but omits important details like authentication requirements, rate limits, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise and front-loaded. However, it may be too brief; a bit more detail could improve effectiveness without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description is inadequately thin. With 0% parameter coverage, it should at least explain the purpose of each parameter and the expected return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. 'route_id' and 'api_key' are unexplained, leaving the agent without clarity on their roles or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ('directions for a PTV route'), enabling an agent to understand the tool's purpose. It distinguishes from sibling tools like ptv_departures, ptv_disruptions, ptv_search, and ptv_stops_on_route, which cover different functionalities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives or on prerequisites. The description does not mention any exclusions or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ptv_searchC
Search PTV stops, routes, or outlets.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| search_term | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says 'search', which implies a non-destructive read operation, but it omits details like authentication requirements (api_key), rate limits, or any side effects. The description is insufficient for a tool with no 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 concise sentence, but it sacrifices necessary detail. While brevity is good, the sentence does not earn its place as it lacks important context. It is under-specified rather than efficiently 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 simple two-parameter tool with no output schema, the description should at least indicate the nature of the response (e.g., list of matching items). It does not. The tool's overall completeness is inadequate for reliable agent 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?
With 0% schema description coverage, both parameters ('search_term' and 'api_key') are undocumented in the schema. The description adds no information about their expected format, constraints, or purpose beyond their names. The description fails to compensate for the missing 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 the verb 'search' and the resource 'PTV stops, routes, or outlets'. This differentiates it from sibling tools like ptv_departures or ptv_stops_on_route which are more specific. However, it could be more precise about what constitutes a search result (e.g., matching entities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus its siblings. For example, it does not clarify that ptv_search is for general textual search while ptv_stops_on_route is for stops on a specific route. This leaves the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ptv_stops_on_routeC
Get stops on a PTV route.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| route_id | Yes | ||
| route_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries full responsibility for behavioral disclosure. It fails to mention whether the operation is read-only, any rate limits, authentication requirements (api_key parameter is optional but unexplained), or what the response contains. The lack of any behavioral traits beyond the basic action leaves the agent underinformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single sentence. While conciseness is generally positive, in this case it sacrifices necessary detail, making it feel under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description should offer more context about the return format, parameter meanings, and how this tool fits into the broader PTV set. It does not, leaving significant gaps that an agent would need to infer or guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. While route_id and route_type are somewhat self-explanatory, route_type's numeric values (e.g., PTV types) remain ambiguous. The api_key parameter is not described at all. The description provides no value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get') and the resource ('stops on a PTV route'), making the purpose understandable. However, it does not differentiate from sibling tools like ptv_departures or ptv_search, which could also involve stops or routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives, nor does it explain what route_type values mean (e.g., train vs tram) or mention any prerequisites like needing an API key. The description offers no contextual usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubchem_propertiesB
Get specific properties of a PubChem compound by CID.
| Name | Required | Description | Default |
|---|---|---|---|
| cid | Yes | PubChem Compound ID. | |
| properties | No | Comma-separated property list (default: MolecularFormula,MolecularWeight,IUPACName,IsomericSMILES). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The verb 'Get' implies a read-only lookup, which is a useful behavioral signal, but the description says nothing about rate limits, authentication, or that defaults are applied when properties are omitted.
Agents need to know what a tool does to the 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 efficient sentence with no wasted words, and the key identifier (CID) is front-loaded. It is appropriately terse for a simple getter, though it could have carried one more clause about defaults without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 getter this is nearly sufficient, but with no output schema and no annotations the description could usefully state what is returned or that default properties apply when the parameter is omitted. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 maps 'CID' and 'properties' to the tool's function but adds no syntax, format, or default information beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('specific properties of a PubChem compound') with the identifying key ('by CID'). This is clear, though it does not explicitly name the sibling pubchem_search as the way to obtain a CID, so differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement. The phrase 'by CID' implies the prerequisite (you must already have a CID, likely from pubchem_search), which is only an implied usage guideline rather than stated guidance or an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubchem_searchBRead-onlyIdempotent
Search PubChem for a chemical compound by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Compound name (e.g. 'aspirin', 'caffeine', 'water'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing behavioral: it doesn't say whether a name search returns a single best match or a list of candidates, nor anything about external-API rate limits or failure modes on ambiguous names.
Agents need to know what a tool does to the 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 short front-loaded sentence with no filler; the action and target come first. Nothing redundant is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with no output schema, the description is minimally sufficient to make the call but incomplete: the agent cannot tell what is returned (CIDs, full records, multiple hits) or how an ambiguous common name is resolved.
Complex tools with many parameters or behaviors need more documentation. Simple 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 is documented with examples, so the schema carries the load. The description's 'by name' only restates that, adding no matching rules (exact vs. fuzzy, case sensitivity, synonyms/IUPAC names).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search PubChem for a chemical compound'), so the agent knows exactly what it does. It does not distinguish itself from the sibling pubchem_properties, which likely takes an identifier and returns compound data, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 the input mode but there is no explicit when-to-use or when-not-to-use guidance, and no mention of the obvious alternative (pubchem_properties). The agent gets no routing signal for the common case of 'I have a CID, not a name'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publicapis_categoriesARead-onlyIdempotent
List all categories in the Public APIs directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds no further behavioral context such as ordering, completeness, pagination, or return format; with annotations covering the safety profile, this is minimally adequate.
Agents need to know what a tool does to the world before calling 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. Every word contributes to stating what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with full annotation coverage and no output schema, the description is almost complete. It could add a note about what category entries look like (names versus IDs) or how to use them with publicapis_search, but the core 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 tool has zero parameters and the schema is empty, so there are no parameter semantics to explain. The baseline for a zero-parameter tool is 4, and no additional parameter detail is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 categories in the Public APIs directory. It is clear what the tool returns, though it does not explicitly distinguish itself from siblings like publicapis_search or publicapis_random.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent would call this to discover available category values. However, the description gives no explicit guidance on when to use it versus publicapis_search, publicapis_random, or other category-listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publicapis_randomARead-onlyIdempotent
Get a random API from the Public APIs directory.
| 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, destructiveHint=false, openWorldHint=true and idempotentHint=true, so the safety profile is fully covered by structured data. The description adds only the source dataset ('Public APIs directory') and nothing about the shape of a returned entry or that successive calls yield different results — worth noting since idempotentHint=true could mislead an agent into expecting a stable result from a random draw.
Agents need to know what a tool does to the 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 with no filler, front-loading the action and scope. Nothing redundant and nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, open-world lookup with full annotation coverage and no output schema, the description is sufficient to call it correctly. A brief note on what a returned 'API' record contains would close the remaining 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 tool takes zero parameters, so there are no parameter semantics to explain; the schema is closed and complete. Baseline 4 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 ('Get') and resource ('a random API from the Public APIs directory'), which is unambiguous on its own. It does not, however, distinguish itself from the sibling publicapis_search and publicapis_categories, leaving the agent to infer the split from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use statement. Usage is only implied by the word 'random' (discovery/browsing when you have no target), and the natural alternative, publicapis_search, is never named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publicapis_searchARead-onlyIdempotent
Search the Public APIs directory for free APIs by name or category.
| Name | Required | Description | Default |
|---|---|---|---|
| auth | No | Auth type filter: apiKey, OAuth, or empty for none | |
| https | No | Filter HTTPS-only APIs | |
| title | No | API name to search for | |
| category | No | Category filter (use publicapis_categories for list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered elsewhere. The description adds only the 'free APIs' scoping constraint; it says nothing about result size, pagination, ordering, or what an empty query returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, and the search scope is front-loaded. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Reasonable for a read-only search tool, but there is no output schema and the description does not say what a result looks like, whether all four filters combine, or whether calling with no parameters returns the entire directory. Those are the gaps that matter for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are documented in the schema (including the auth value set and the pointer to publicapis_categories). The description only echoes the title and category dimensions and says nothing about the auth/https filters, so it adds no meaning beyond the schema — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) plus the resource (the Public APIs directory) and the dimensions searched (name or category), with an additional scope qualifier (free APIs). It never mentions the closely related publicapis_categories or publicapis_random siblings, so it is clear on its own but not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies 'use this to find APIs' but gives no when/when-not guidance and names no alternative. The only routing hint (use publicapis_categories for the category list) lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
punkapi_get_beerARead-onlyIdempotent
Get a specific craft beer recipe by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric beer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is fully covered. The only added context is the word 'recipe', hinting at the payload shape; nothing about not-found handling or response 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?
One short sentence with the identifier requirement front and center; 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?
There is no output schema, so the description is the only place to learn what comes back (ingredients, ABV, IBU, food pairings). It gestures at 'recipe' but leaves the return shape and miss behavior unspecified for a tool with no structured output 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 coverage is 100% and the single 'id' parameter is already documented as 'Numeric beer ID'. The description's 'by ID' adds no format, range, or example beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus specific resource ('craft beer recipe') plus the lookup mode ('by ID'). It implicitly contrasts with punkapi_search_beers and punkapi_random_beer via 'by ID', though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies this is for when you already have an identifier, but no explicit when-to-use, when-not-to-use, or reference to the search/random siblings that an agent would otherwise confuse it with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
punkapi_random_beerARead-onlyIdempotent
Get a random craft beer recipe from BrewDog's Punk API.
| 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, destructiveHint=false, and no parameters, so the safety profile is fully covered by structured data. The description adds only the useful note that results come from an external third-party source (BrewDog's Punk API), but says nothing about result variability between calls, rate limits, or failure modes. Note that idempotentHint=true is questionable for a randomization endpoint, but that inconsistency lives in the annotations, not the description.
Agents need to know what a tool does to the 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 with no filler. The verb, resource, and source all land in the first few 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 zero-parameter, read-only fetch with full annotation coverage and no output schema, this is nearly sufficient. A small gap remains: it does not hint at what a "recipe" contains (name, ABV, IBU, ingredients, food pairing), which would help the agent decide whether the result answers the user's question.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. The description correctly implies no input is needed to invoke 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 names a specific verb ("Get") and resource ("random craft beer recipe") plus the upstream source (BrewDog's Punk API), which is more precise than a bare name restatement. It does not explicitly distinguish itself from siblings like punkapi_search_beers, punkapi_get_beer, or untappd_get_beer, though the word "random" implies the key difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus punkapi_search_beers or punkapi_get_beer, and no prerequisites or exclusions. The only implicit guidance is that it is random and takes no parameters, which the agent must infer from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
punkapi_search_beersBRead-onlyIdempotent
Search craft beer recipes by name.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| query | No | Beer name to search for | |
| per_page | No | Results per page (max 25, default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, open-world, and non-destructive, but the description adds no behavioral context beyond the basic purpose. It does not disclose match behavior, pagination behavior, or what happens if the optional query is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no redundant clauses. It 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?
The tool is simple and the schema is rich, but with no output schema the description does not explain the return shape or result count. It also leaves ambiguous why query is optional for a search-by-name 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%, so the parameter meanings are already well documented. The description reinforces that searching is by name, but adds no extra semantics for page, per_page, or optional query 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?
States a specific verb and resource ('Search craft beer recipes') plus a scope ('by name'), so the core purpose is clear. It does not explicitly distinguish itself from nearby siblings like punkapi_get_beer or punkapi_random_beer, though the search-by-name wording 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?
Gives no explicit when-to-use or when-not-to-use guidance and does not name alternatives such as punkapi_random_beer, punkapi_get_beer, or untappd_search_beer. Any usage is only implied by the phrase 'search ... by name'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushonly_apiA
Run PushOnly📬 on a verified IgniteOnly wake packet. Emits a public worker push envelope for a known worker route only; never builds, merges, assigns, closes, or marks done.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Human target label such as Boardroom backlog, PR #706, issue #706, or a dispatch ID. | |
| worker | No | Known worker route such as pinballwake-jobs-worker, Builder, Reviewer, Job Manager, or Heartbeat Seat. | |
| verifier | No | Optional verifier text copied from IgniteOnly. | |
| bridge_id | No | Optional trusted bridge ID. | |
| ignite_id | No | Optional IgniteOnly ID. | |
| source_id | No | Optional upstream event, dispatch, PR, issue, or wake identifier. | |
| source_url | No | Optional upstream source URL. | |
| wake_packet | No | Optional IgniteOnly wake_packet. | |
| receipt_line | No | Optional compact receipt line copied from IgniteOnly. | |
| ignite_result | No | Optional output from igniteonly_api or igniteonly_receipt_consumer. | |
| ignite_status | No | wake_request or escalation_wake_request. | |
| nudge_trace_id | No | Optional upstream NudgeOnly trace ID. | |
| painpoint_type | No | stale_ack, duplicate_wake, unclear_owner, queue_hydration_failure, noisy_thread, missing_proof, dormant_worker, or none. | |
| expected_receipt | No | Optional expected worker ACK/proof text. | |
| igniteonly_result | No | Optional IgniteOnly result alias. | |
| public_fields_only | No | Must be true when supplying wake fields directly. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behaviors: emits a public push envelope, never builds/merges/assigns/closes/marks done. It lacks details on auth requirements, rate limits, or error states, but provides sufficient context for a pipeline step.
Agents need to know what a tool does to the world before calling 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. It uses an emoji for clarity and negation to clarify scope, with no wasted words 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?
Given 16 optional parameters and no output schema, the description provides a high-level understanding of the tool's role in a multi-step process. However, it fails to describe what the tool returns (the 'public worker push envelope') or explain which parameters are essential for typical use, leaving ambiguity about 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 16 parameters are documented in the schema. The description does not add additional meaning beyond what the schema provides. It alludes to 'verified IgniteOnly wake packet' but does not elaborate on specific parameter usage, meeting 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 clearly states the tool's function: running PushOnly on a verified IgniteOnly wake packet and emitting a push envelope for a known worker route. It explicitly differentiates from sibling tools by negating actions it does NOT perform (build, merge, assign, close, mark done), making its purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (only on verified IgniteOnly wake packets, only for known worker routes) and excludes alternative actions via negation. However, it does not explicitly mention alternative sibling tools or specify when to choose this over pushonly_wake_pusher or pushonly_policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushonly_policyA
Return the PinballWake PushOnlyAPI guardrails. This blue push lane turns verified IgniteOnly wake packets into worker-facing push envelopes only; no execution or source-of-truth writes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool performs no execution or source-of-truth writes, which is valuable. However, it does not detail other aspects like idempotency, caching, or response format. The transparency is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and contains no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema tool, the description covers what it returns, its role in the pipeline, and its limitations. It is sufficiently complete for an agent to understand the tool's function.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters with 100% schema coverage, so the description does not need to add parameter details. Baseline 4 is appropriate as the description adds no param info but the schema already covers all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 that the tool returns guardrails for the PushOnlyAPI, specifying that it turns IgniteOnly wake packets into push envelopes without execution or writes. The purpose is distinct from siblings like pushonly_api or pushonly_wake_pusher, though some jargon may reduce 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 provides no guidance on when to use this tool versus alternatives like igniteonly_policy or nudgeonly_policy. It does not mention prerequisites, context, or conditions for use, leaving the agent without explicit decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushonly_wake_pusherA
Consume a verified IgniteOnly wake packet and emit a compact public PushOnly worker envelope. It never writes source-of-truth state or executes the work.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Human target label such as Boardroom backlog, PR #706, issue #706, or a dispatch ID. | |
| worker | No | Known worker route such as pinballwake-jobs-worker, Builder, Reviewer, Job Manager, or Heartbeat Seat. | |
| verifier | No | Optional verifier text copied from IgniteOnly. | |
| bridge_id | No | Optional trusted bridge ID. | |
| ignite_id | No | Optional IgniteOnly ID. | |
| source_id | No | Optional upstream event, dispatch, PR, issue, or wake identifier. | |
| source_url | No | Optional upstream source URL. | |
| wake_packet | No | Optional IgniteOnly wake_packet. | |
| receipt_line | No | Optional compact receipt line copied from IgniteOnly. | |
| ignite_result | No | Optional output from igniteonly_api or igniteonly_receipt_consumer. | |
| ignite_status | No | wake_request or escalation_wake_request. | |
| nudge_trace_id | No | Optional upstream NudgeOnly trace ID. | |
| painpoint_type | No | stale_ack, duplicate_wake, unclear_owner, queue_hydration_failure, noisy_thread, missing_proof, dormant_worker, or none. | |
| expected_receipt | No | Optional expected worker ACK/proof text. | |
| igniteonly_result | No | Optional IgniteOnly result alias. | |
| public_fields_only | No | Must be true when supplying wake fields directly. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides a key behavioral trait: it never writes source-of-truth state or executes work. However, it does not cover error conditions, side effects, or auth requirements. The description is adequate but could be more comprehensive.
Agents need to know what a tool does to the world before calling 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, each providing distinct value: the first defines the action, the second adds a critical constraint. No superfluous words. Perfectly 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?
Despite having 16 optional parameters and no output schema, the description is minimal. It does not explain how to use the parameters, the overall workflow, or how this tool fits with siblings like pushonly_api or igniteonly_api. An agent would likely need more guidance.
Complex tools with many parameters or behaviors need more documentation. 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 16 parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description does not add additional meaning beyond the schema, but it is not required to since the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool consumes a verified IgniteOnly wake packet and emits a PushOnly worker envelope. It also explicitly distinguishes itself by stating it never writes state or executes work, setting it apart from sibling tools that may do so.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 should be used when a verified IgniteOnly wake packet is available, but it does not explicitly state when to use it versus alternatives like igniteonly_api or pushonly_api. There is no when-not guidance or mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushover_cancel_emergencyC
Cancel an outstanding emergency Pushover notification before it expires.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | ||
| user_key | Yes | ||
| app_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description mentions canceling 'before it expires' but does not disclose behavior if already expired, side effects, idempotency, or required permissions. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the 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 short sentence, which is concise but lacks critical information. It is not optimally structured as it omits parameter details and usage 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?
With 3 required parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, error conditions, or prerequisites, leaving significant gaps for 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?
Schema has 3 required parameters (app_token, user_key, receipt) with 0% description coverage. The description adds no explanation of what these parameters are, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'cancel' and the resource 'outstanding emergency Pushover notification'. It differentiates from sibling tools like pushover_send_notification and pushover_get_receipt by specifying the action on emergency notifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, such as waiting for expiration or using pushover_get_receipt to check status. The description only states what it does, not when it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushover_get_receiptBRead-onlyIdempotent
Get acknowledgment status for an emergency Pushover notification.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | Receipt token returned from an emergency notification | |
| app_token | Yes |
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 the subject is an acknowledgment state, but says nothing about receipt lifetime/expiry, polling behavior, or whether an unacknowledged receipt is an error — gaps that matter for an openWorld read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the verb and scope appear immediately. It is efficient, though its brevity is what leaves the other gaps unfilled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, this is close, but there is no output schema, so the description should describe what the acknowledgment status response contains (acknowledged flag, by whom, expired state) and it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%: 'receipt' is documented in the schema, but 'app_token' has no description anywhere. The description adds no meaning beyond the schema (format, provenance, or what happens with an expired/invalid receipt token).
Input schemas describe structure but not intent. Descriptions should explain 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 acknowledgment status') scoped to emergency Pushover notifications. A reader can tell what it does, but it doesn't distinguish itself from the closest sibling pushover_cancel_emergency or note its relationship to pushover_send_notification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for an emergency Pushover notification' implies usage after an emergency notification was sent, but there is no explicit when-to-use, no prerequisite stating the receipt token must come from a prior emergency send, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushover_list_soundsBRead-onlyIdempotent
List all available notification sounds in Pushover.
| Name | Required | Description | Default |
|---|---|---|---|
| app_token | Yes |
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 without the description's help. The description adds only the mild implication that the full, unpaginated set of sounds is returned ("all available"). It says nothing about authentication, rate limits, or the shape of the returned sound list.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, 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?
For a one-parameter tool with no output schema and no annotation gaps, the description still leaves the sole required input completely unexplained and does not indicate what a returned sound looks like (name/slug) or that those values are directly usable downstream. Adequate for guessing the purpose, insufficient for confident 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 single parameter `app_token` has 0% schema description coverage and the description never mentions it, so nothing explains what an app token is, where to obtain it, or how it differs from a user key — a real ambiguity in Pushover's auth model. The description provides no compensating parameter meaning at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 all available notification sounds in Pushover"), which is unambiguous and distinguishes it from the other Pushover siblings (send_notification, get_receipt, validate_user, cancel_emergency). It doesn't explicitly name a sibling or state the scope limitation, but the purpose is clear from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention that this is a reference-data lookup whose results feed the `sound` parameter of pushover_send_notification, and no prerequisites. An agent must infer the use case purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushover_send_notificationC
Send a push notification via Pushover.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| html | No | ||
| retry | No | Emergency only: retry interval in seconds (min 30) | |
| sound | No | ||
| title | No | ||
| device | No | ||
| expire | No | Emergency only: expiry in seconds (max 10800) | |
| message | Yes | ||
| priority | No | -2 (lowest) to 2 (emergency) | |
| user_key | Yes | ||
| app_token | Yes | ||
| url_title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral transparency. It only says 'send a push notification', failing to disclose rate limits, authentication needs, or potential errors.
Agents need to know what a tool does to the 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 is concise but lacks structure. It is front-loaded but insufficiently informative for a tool with 12 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 12 parameters, no output schema, and no annotations, the description is far from complete. It misses authentication, error handling, and parameter details.
Complex tools with many parameters or behaviors need more documentation. 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 only 25% schema description coverage, the description adds no parameter information. It ignores the 12 parameters entirely, leaving the agent to infer from field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Send' and resource 'push notification via Pushover', distinguishing it from sibling tools like pushover_cancel_emergency or pushover_get_receipt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives, no prerequisites or context provided. Simply states the action without any usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pushover_validate_userBRead-onlyIdempotent
Validate a Pushover user or group key and list their registered devices.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | Optional: validate only for a specific device name | |
| user_key | Yes | ||
| app_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds that the call returns a device list, which is genuine extra context, but says nothing about auth requirements (application token scope) or error/invalid-key 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?
One sentence, no waste, and the primary action is front-loaded ahead of the secondary outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should at least sketch the response (valid/invalid, device list shape) and explain app_token. It only conveys the device-list side effect, leaving an agent to guess the rest.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 33% – just 'device' is documented. The description usefully clarifies that user_key accepts a group key as well as a user key, which the schema does not say, but app_token remains completely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Validate') plus specific resource ('Pushover user or group key'), with the added outcome of listing registered devices. This clearly separates it from pushover_send_notification, pushover_get_receipt, and pushover_list_sounds, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to call this versus a sibling (e.g. before sending a notification to confirm a key is live) or what a failed validation implies. Usage must be inferred entirely from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pypi_get_packageBRead-onlyIdempotent
Get metadata for a Python package from PyPI.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name. |
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 fully covered without the description. The description adds no behavioral context of its own — nothing about what happens for nonexistent or misspelled packages, rate limits, or the shape/size of the returned metadata.
Agents need to know what a tool does to the 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 with no filler; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter read with full schema coverage and complete annotations, so the basics are covered. But with no output schema, the definition never indicates what 'metadata' includes, leaving the agent unable to predict the 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?
One parameter with 100% schema description coverage means the schema already tells the agent it takes a package name. The description reinforces that the name refers to a Python package on PyPI but adds no semantics such as case normalization, exact-match requirements, or how to handle version-pinned names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (metadata for a Python package) plus the source (PyPI), which is clear on its own. However, it does not differentiate from the closely named sibling pypi_get_version, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of the pypi_get_version sibling, and no statement about whether to use npm_get_package for Node packages. The agent gets a purpose statement but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pypi_get_versionARead-onlyIdempotent
Get metadata for a specific version of a Python package from PyPI.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name. | |
| version | Yes | Version string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations fully cover the safety profile: read-only, idempotent, open-world, and non-destructive. The description adds only the PyPI source and version-specific scope; it does not mention missing-version behavior, rate limits, or return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no wasted words. It could be slightly more structured by naming the sibling it complements, but it is appropriately 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 simple two-parameter read tool with rich annotations and full schema coverage, the description is sufficient for selection and invocation. It is less complete regarding what metadata is returned, but that gap is modest 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 both parameters are already documented. The description's phrasing maps naturally to package name and version but adds no format or matching 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?
States a specific verb and resource: get metadata for a specific version of a Python package from PyPI. The 'specific version' wording differentiates it somewhat from a general package lookup, but it does not explicitly name the sibling pypi_get_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 metadata for one specific package version is needed. However, it provides no explicit exclusions, alternatives, or guidance about how this differs from pypi_get_package.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qc_check_apiB
Test a list of API endpoints and report which ones return the expected HTTP status. Runs each endpoint sequentially.
| Name | Required | Description | Default |
|---|---|---|---|
| base_url | Yes | Base URL for all endpoints (e.g. https://api.example.com) | |
| endpoints | Yes | List of endpoints to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool runs endpoints sequentially and checks expected status, but does not disclose error handling, auth requirements, rate limits, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. Every sentence contributes meaning, and it is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (testing multiple endpoints, expected status), the description is too brief. It does not mention the output format, which is critical for an AI agent interpreting results. Output schema is absent, so the description should provide this 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% (both parameters have descriptions). The description adds no additional 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 clearly states the tool's purpose: 'Test a list of API endpoints and report which ones return the expected HTTP status.' It uses a specific verb ('Test') and resource ('list of API endpoints') and distinguishes it from sibling tools like qc_copy_audit and qc_run_checklist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus alternatives. It mentions sequential execution but does not specify exclusions, prerequisites, or scenarios where this tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qc_copy_auditB
Fetch a page and scan all visible text for em dashes (U+2014), en dashes (U+2013), and a configurable list of banned words. Returns every occurrence with surrounding context.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full URL to audit (e.g. https://example.com) | |
| banned_words | No | Optional list of banned words. Defaults to: delve, tapestry, landscape, robust, leverage, harness, empower, revolutionize, seamlessly, utilize, facilitate, synergy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions fetching a page and scanning visible text, but does not explain rendering behavior (e.g., JavaScript execution), limitations (e.g., page size, rate limits), or that it is read-only. This lack of detail could lead to misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences cover the action (fetch and scan), the target (em/en dashes and banned words), and the output (occurrences with context). 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?
No output schema is provided, so the description should clearly specify the return format. 'Returns every occurrence with surrounding context' is vague—does it return a list of objects? What fields? Additionally, error handling for unreachable URLs is not mentioned. The description is incomplete for confident 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?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that the tool specifically checks for em/en dashes and banned words, and returns occurrences with context, clarifying the purpose of both parameters beyond their 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 explicitly states the tool fetches a page, scans visible text for specific dashes and a configurable list of banned words, and returns occurrences with context. This clearly distinguishes it from sibling tools which perform other quality checks (e.g., qc_run_checklist).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor does it mention any prerequisites or exclusions. Given the presence of sibling tools like qc_run_checklist, the absence of usage guidance is a notable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qc_learningsA
The hard-coded QC learnings library: field-proven failure patterns (silent test passes, false-red CI, deploy verification traps, release gate ordering) with the exact recipes that fixed them. Query BEFORE debugging a red CI, a suspicious green suite, or a deploy mismatch. No arguments returns the index; filter with id, tag, or query.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Exact learning id (e.g. pipe-eats-exit-code) for one full entry. | |
| tag | No | Filter by tag (e.g. ci, release, deploy, tests, git). | |
| query | No | Free-text search across symptoms, causes and recipes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: 'hard-coded' signals a static read-only library, and it discloses that no arguments returns the index. It doesn't state permissions or size/rate behavior, but for a local lookup these are 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?
Three sentences, front-loaded with what the library holds, then when to call, then how parameters behave. 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 zero-required-param, no-output-schema lookup tool, it covers what the tool contains, when to use it, and the index-vs-filtered return distinction. 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% so the schema already documents id, tag, and query. The description adds the semantic that omitting all params yields the index rather than an error, which is genuine 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?
States a specific resource ('hard-coded QC learnings library') and its content (failure patterns with recipes), distinguishing it from siblings like qc_run_checklist and qc_check_api which act on tests rather than serve knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Query BEFORE debugging a red CI, a suspicious green suite, or a deploy mismatch' gives concrete triggering contexts. It stops short of explicit exclusions or naming an alternative, but the when-to-use is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qc_run_checklistA
Run a sequential QC checklist against a website URL. Checks site load, SSL, meta tags, og:image, robots.txt, sitemap, console errors, broken links, response time, and copy quality (em dashes, banned words). Runs checks one at a time and returns a pass/fail/warn result for each.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full URL to check (e.g. https://example.com) | |
| checks | No | Optional subset of checks to run. Available: site_loads, ssl_valid, meta_tags, og_image_valid, robots_txt, sitemap, no_console_errors, link_check, response_time, copy_check. Defaults to all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It mentions sequential execution and pass/fail/warn results, but omits details like network impact, rate limits, or error handling. Adequate but not thorough.
Agents need to know what a tool does to the 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 purpose, followed by list of checks and outcome description. No unnecessary words, well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should detail return format. It says 'returns a pass/fail/warn result for each check' but lacks specifics (e.g., structure, error handling). Adequate for simple output but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, but description adds meaning: explains checks like 'copy quality (em dashes, banned words)' and clarifies the optional 'checks' parameter allows subset selection. This enriches the 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?
Clearly states the tool runs a sequential QC checklist against a website URL, listing all checks performed. Distinguishes from siblings like qc_check_api and qc_copy_audit by its comprehensive, sequential 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?
Explicitly says when to use (for website QC) and implies comprehensive analysis. No explicit exclusions or alternatives, but sibling tools have different purposes (API check, copy audit) making the context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qrserver_generateA
Generate a QR code image URL for any text or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Text or URL to encode in the QR code. | |
| size | No | Image dimensions as WxH (default '200x200'). | |
| color | No | QR code color as hex without # (e.g. '000000'). | |
| format | No | Image format: png, svg, jpg (default 'png'). | |
| bgcolor | No | Background color as hex without # (e.g. 'ffffff'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the output is an image URL rather than image bytes, but it does not mention authentication needs, rate limits, side effects, or whether the URL is temporary. Adequate but with clear gaps.
Agents need to know what a tool does to the 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 with no filler. Every word contributes to stating what the tool does and what it accepts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 stateless generator with 100% schema coverage and no output schema, the description is nearly complete: it states the action and that the result is a URL. It could add a bit more behavioral context (e.g., no side effects, public access), but the core 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?
Schema description coverage is 100%, so the schema already documents all five parameters in detail. The description only restates the required input as 'any text or URL' and adds no extra semantics for optional parameters like size, color, format, or bgcolor. 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 ('Generate') and resource ('QR code image URL'), plus the input scope ('any text or URL'). An agent can immediately understand the tool's function 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 phrase 'for any text or URL' implies the intended use case, but there is no explicit guidance on when to use this tool versus alternatives or when not to use it. Usage is reasonably obvious from the purpose, so a 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quadratic_solveARead-onlyIdempotent
Solve a quadratic equation ax^2 + bx + c = 0. Returns roots, discriminant, and vertex.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | Coefficient a (must not be 0). | |
| b | Yes | Coefficient b. | |
| c | Yes | Coefficient c. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine value by naming the outputs (roots, discriminant, vertex), which is the key behavioral fact for a tool with no output schema. It does not say what happens when the discriminant is negative (real vs. complex roots), the one remaining behavioral ambiguity.
Agents need to know what a tool does to the 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 operation first, the return payload second. Everything is front-loaded and nothing is repeated from structured 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 3-parameter pure-computation tool with no output schema, the description supplies the equation form and the return values, which is nearly everything an agent needs. The gap is behavior when a=0 is rejected or when the discriminant is negative, neither of which is 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 coverage is 100% and already documents a, b, c, including the 'a must not be 0' constraint. The description ties the three parameters to the standard quadratic form, which is a modest clarification but does not add syntax or range information 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?
Names a specific operation (solve) on a specific object (quadratic equation ax^2+bx+c=0), and disambiguates from nearby siblings such as linear_solve, polynomial_ops, and standard_form. An agent can pick this 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 written-out equation implies when the tool applies, but there is no explicit statement of alternatives (e.g., linear_solve for degree 1, root_find for general roots) or of edge conditions. Usage must be inferred from the formula rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quickbooks_customersCRead-onlyIdempotent
Query QuickBooks Online customers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| where | No | SQL-style WHERE clause (e.g. Active = true) | |
| offset | No | ||
| sandbox | No | ||
| realm_id | Yes | QuickBooks company realm ID | |
| access_token | Yes | QuickBooks OAuth2 access token |
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 no behavioral context beyond 'Query,' such as pagination behavior, sandbox usage, authentication requirements, or what the response contains. It does not contradict the annotations, but it adds no useful 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 a single front-loaded sentence with no wasted words. It is concise, though its extreme brevity contributes to under-specification elsewhere rather than being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool requiring OAuth credentials and offering filtering, pagination, and sandbox options, the description is incomplete. It does not explain the query capabilities, return format, or how the parameters should be used, leaving the agent with little operational context beyond the tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is exactly 50%, with limit, offset, and sandbox left undocumented in the schema. The description does not compensate by explaining pagination, the WHERE clause, sandbox behavior, or how the required access token and realm ID are used. It provides no meaning beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: querying QuickBooks Online customers. It distinguishes the tool from sibling resources like quickbooks_items, quickbooks_payments, and quickbooks_invoices by naming the specific resource. However, 'Query' is somewhat generic and does not clarify whether this is a list, search, or filtered retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to use this tool versus alternatives. It does not mention filtering, pagination, or when a more specific QuickBooks tool such as quickbooks_invoices or quickbooks_payments should be selected instead. The implied usage is simply 'query customers,' which is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quickbooks_invoicesC
List, get, or create QuickBooks Online invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| where | No | ||
| action | No | list, get, or create (default: list) | |
| offset | No | ||
| invoice | No | Invoice object for action='create' | |
| sandbox | No | ||
| realm_id | Yes | ||
| invoice_id | No | Required for action='get' | |
| access_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions create (mutation) but lacks details on side effects, permissions, rate limits, or error states. The description is too vague to inform the agent about behavioral traits beyond the basic actions.
Agents need to know what a tool does to the world before calling 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, making it concise but lacking substance. It front-loads the verbs, but it is too brief to provide meaningful guidance for the complex 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?
Given no output schema, no annotations, 9 parameters with many undocumented, and nested objects, the description is severely incomplete. The agent lacks critical information about return format, authentication, and parameter usage for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%. The description adds no additional meaning beyond the schema; it merely restates parameter names. For critical parameters like 'where', 'limit', 'offset', and 'sandbox', no explanation is given, leaving the agent without sufficient 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 can list, get, or create QuickBooks Online invoices, specifying the resource and actions. However, it does not differentiate from sibling QuickBooks tools like quickbooks_customers or quickbooks_payments, which also operate on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no context for when this tool is appropriate. The description simply lists available actions without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quickbooks_itemsCRead-onlyIdempotent
Query QuickBooks Online items (products and services).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| where | No | ||
| offset | No | ||
| sandbox | No | ||
| realm_id | Yes | ||
| access_token | Yes |
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 no behavioral context beyond those structured hints—it does not mention authentication requirements, rate limits, pagination behavior, or filtering side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero waste. It is appropriately sized for what it attempts to say, even though it omits necessary 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 query tool with six parameters, including filtering and pagination options, no output schema, and no parameter descriptions, the definition is far too sparse. An agent would struggle to call it correctly without guessing parameter formats and behavioral constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 6 parameters with 0% description coverage, and the description provides no information about them. It does not explain limit, where, offset, sandbox, realm_id, or access_token, leaving all parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Query QuickBooks Online items', and clarifies that items mean products and services. This distinguishes it from sibling tools like quickbooks_customers or quickbooks_invoices, 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The only implied usage is that it fetches items, which is the bare minimum.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quickbooks_paymentsCRead-onlyIdempotent
Query QuickBooks Online payments.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| where | No | ||
| offset | No | ||
| sandbox | No | ||
| realm_id | Yes | ||
| access_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond repeating 'Query'—no mention of authentication needs (access_token/realm_id required), rate limits, pagination behavior, or response format. It adds nothing meaningful 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 single sentence is front-loaded and free of waste, but it is under-specified rather than appropriately concise given the tool's six parameters and zero schema coverage. It reads more like a placeholder than a deliberately trimmed 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?
With six parameters, 0% schema description coverage, no output schema, and a non-trivial auth requirement (access_token + realm_id), the description should do far more to make the tool callable correctly. As written, an agent lacks the information needed to use the 'where' filter, paginate results, or understand what fields payments contain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all six parameters, so the description carries the full burden of explaining them. It does not mention limit, offset, where, sandbox, realm_id, or access_token, leaving the QuickBooks-specific 'where' syntax and pagination semantics completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 verb ('Query') and resource ('QuickBooks Online payments'), so the basic purpose is discernible. However, the verb is vague (list vs. search vs. filter) and the description does nothing to distinguish it from closely related siblings like quickbooks_invoices, quickbooks_customers, or xero_payments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent is left to infer everything about appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_by_authorARead-onlyIdempotent
Get quotes by a specific author.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| author | Yes | Author name or slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety and mutability profile is covered. The description adds little behavioral context beyond the retrieval scope, omitting return format, pagination, and any external-API/rate-limit 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 a single front-loaded sentence with no wasted language. It is appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema plus annotations cover most agent needs, but there is no output schema and the description does not explain the response shape, pagination, or what a returned quote list looks like. That leaves some relevant context unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are documented in the schema. The description only mentions the author constraint and does not add details such as author-name-vs-slug handling or the limit/default behavior, so the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get quotes') plus the scope ('by a specific author'), making the core operation clear. It does not explicitly name sibling tools or contrast with quote_search, quote_random, or quote_list_authors, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by a specific author' implies the intended use case, but there is no explicit guidance on when to use this versus quote_search, quote_random, or quote_list_authors. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_list_authorsBRead-onlyIdempotent
List quote authors sorted by number of quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) |
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 ordering rule (descending by quote count), but says nothing about whether all authors are returned, how limit interacts with the ranking, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the sort criterion front-loaded and no filler. It is efficient, though it is so brief that it leaves structural questions (return format, truncation) unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read-only list tool whose annotations and fully documented single parameter carry most of the weight, and with no output schema nothing about return values must be explained. Still, the description does not clarify whether 'sorted by number of quotes' means descending or how limit truncates the ranked list, which matters for correct interpretation of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage, the schema already explains limit and its default of 20. The description adds only an implicit reading (limit yields the top-N most-quoted authors) and does not state truncation behavior 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?
States a specific verb ('List') and resource ('quote authors') plus the sort criterion, which is more than a restatement of the name. It is implicitly distinguishable from quote_random / quote_search / quote_by_author, but the description never names those siblings to make the boundary 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?
Usage is only implied: browse authors ranked by quote volume. There is no 'when to use this instead of quote_search or quote_by_author' guidance and no stated preconditions, so the agent must infer the routing from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_list_tagsARead-onlyIdempotent
List all available quote tags/categories.
| 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 destructiveHint=false, so safety is covered. The phrase 'all available' usefully implies the list is complete with no pagination or filtering, but nothing is said about result size, ordering, or refresh 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?
A single front-loaded sentence with no padding. The paired 'tags/categories' wording is the one bit of imprecision that keeps it from 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?
For a zero-parameter, read-only list tool with no output schema, the definition covers what is needed to select and call it. A short note on the return shape (array of tag strings/objects) 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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Specifying that it returns tags specifically for quotes (not other resources) is the only relevant semantic, and that is 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?
States a specific verb (List) and resource (quote tags/categories) with the scope 'all available'. It is distinguishable from siblings like quote_search and quote_by_author, though the 'tags/categories' hedge leaves slight ambiguity about what a returned item represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 you call this to discover valid tag values before filtering, but the description names no alternatives and gives no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_randomCRead-onlyIdempotent
Get a random inspirational quote.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Comma-separated tags to filter by (e.g. 'wisdom,life') |
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 fully covered without the description. The description adds nothing on top: it does not say whether each call returns a fresh quote, whether the quote set is finite, or what happens if no quote matches a tag. Slight tension with idempotentHint=true given the tool is explicitly random, which is worth clarifying but is not a hard 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?
One short, front-loaded sentence with zero padding — but it is terse to the point of under-specification given the crowded quote-tool namespace. Nothing is wasted; there is simply too little there.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param, no-output-schema tool the bar is low, but the description still leaves out the tags filtering behavior and any signal distinguishing it from the ~10 other random/personalized quote tools in the sibling set. An agent could call it correctly, but could easily call the wrong 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 description coverage is 100% and the single optional `tags` parameter is fully documented in the schema with an example, so the baseline is 3. The description neither reinforces nor explains it, and 'inspirational' arguably narrows the impression of what tags can select, but it does not misstate the 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 states a specific verb and resource ('Get a random inspirational quote'), so the agent knows exactly what it returns. It does not differentiate from the many sibling random-quote tools (zen_quote_random, dummyjson_random_quote, kanye_quote, advice_random) or from quote_search / quote_by_author in the same family, leaving the choice to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusion against similarly named siblings, and no statement of when a filtered or searched quote (quote_search, quote_by_author) is the better pick. The agent must infer the routing decision from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_searchBRead-onlyIdempotent
Search quotes by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| query | Yes | Search keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only that it is a keyword search, without details on pagination, ranking, or rate limits. With annotations carrying the behavioral burden, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It communicates the core action immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the schema and annotations cover most needs. However, with no output schema, the description could clarify what a result contains or how results are ordered, and it omits sibling differentiation. It is adequate but leaves 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 description coverage is 100%, so both query and limit are fully documented in the schema. The description mentions keyword searching but adds no syntax, matching behavior, or formatting details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: searching quotes by keyword. It is clear what the tool does, but it does not distinguish itself from sibling tools like quote_by_author, quote_random, or quote_list_tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives such as quote_by_author or quote_random. The keyword-based nature implies usage, but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quran_surahC
Get a full surah (chapter) from the Quran.
| Name | Required | Description | Default |
|---|---|---|---|
| number | No | Surah number (1-114, default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but it says nothing about what a surah response contains (Arabic text, translation, verse count, language options), whether results are large, or whether the surah is returned whole or paginated.
Agents need to know what a tool does to the 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 tight sentence with no waste. It is appropriately sized, though very short definitions on a bare tool leave room for more useful front-loaded 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?
There is no output schema and no annotations, so the description is the only place return content and safety profile could be conveyed. It omits what a full surah actually returns (text, translation, verse structure) and how it differs from quran_verse, which is a real gap for an agent composing a 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%: the 'number' parameter already documents the 1-114 range and default of 1. The description adds no syntax or semantics beyond that, which meets the baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (a full surah/chapter), and the parenthetical clarifies the domain term. It does not name the sibling quran_verse or explain the verse-vs-surah distinction, but an agent can infer the difference from 'full surah'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance at all. There is a sibling (quran_verse) that an agent could easily confuse with this one, and the description never says which to pick or under what conditions, 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.
quran_verseA
Get a specific verse (ayah) from the Quran with English translation.
| Name | Required | Description | Default |
|---|---|---|---|
| ayah | No | Ayah (verse) number within the surah | |
| surah | No | Surah number (1-114, default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read-only operation and 'with English translation' hints at the output, but there is no disclosure of authentication needs, rate limits, or whether Arabic text is also 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 a single, front-loaded sentence with no wasted words. It immediately conveys the action, resource, and output 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 two-parameter lookup with no output schema, the description gives only that the verse comes with an English translation. It does not clarify whether the Arabic verse is included or what the response shape looks like, leaving a gap for an agent that needs return-value context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters are already fully documented. The description mentions ayah but adds no syntax, defaults, or meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get a specific Quranic verse (ayah), with English translation. This clearly distinguishes it from the sibling quran_surah, which operates on a whole surah rather than an individual verse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 implies when to use it, but there is no explicit guidance about alternatives such as quran_surah or when not to use this tool. The agent must infer that it is for retrieving one verse rather than an entire surah.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rabin_karp_searchBRead-onlyIdempotent
Find all occurrences of a pattern in text using the Rabin-Karp rolling hash algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to search in | |
| pattern | Yes | Pattern to find |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is fully covered. The description adds the algorithmic approach (rolling hash), which implies average-case linear performance, but omits behaviorally relevant details: whether overlapping matches are returned, case sensitivity, empty-pattern handling, and the shape 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?
One front-loaded sentence with no filler or redundancy. Nothing could be removed without losing 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 two-parameter, no-output-schema utility, the description covers the core contract but leaves the return shape and match-overlap semantics unspecified. An agent knows what it does but not exactly what it gets 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?
Schema description coverage is 100% with two required string params, so the schema already carries both parameters. The description adds no format, encoding, or length nuance beyond 'text to search in' and 'pattern to find' — baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ("Find all occurrences of a pattern in text") plus the named algorithm, which is more informative than a generic 'search'. However it never distinguishes itself from close siblings like kmp_search, aho_corasick_search, or text_count_occurrences, so an agent still cannot tell from this text alone why it should pick Rabin-Karp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when-not-to-use, or alternative-naming guidance at all. Given the sibling list contains kmp_search, z_algorithm, aho_corasick_search, regex_test and text_count_occurrences, the absence of any routing hint is a real gap, not a minor one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radio_by_countryCRead-onlyIdempotent
Get radio stations by country.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| country | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds no behavioral context such as result format, pagination, rate limits, or what happens when no stations match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately concise for a simple lookup tool, though it is so terse that important detail is omitted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 two parameters and no schema descriptions, the description is incomplete. It omits parameter formats, the meaning of "limit," and any return-value or pagination expectations, leaving the agent with too little 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 0%, so the description must compensate. It mentions "country" but does not specify whether it expects a name, code, or format, and it says nothing about the optional "limit" 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 states a specific verb and resource ("Get radio stations") plus a filter ("by country"), so the basic purpose is clear. It does not explicitly distinguish itself from nearby siblings such as radio_search, radio_by_tag, or radio_countries, which prevents a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explain when to use this tool instead of alternatives like radio_search or radio_by_tag. The country filter implies a basic use case, but there is no explicit routing guidance or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radio_by_tagBRead-onlyIdempotent
Get radio stations by genre tag.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| limit | No |
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 no behavioral context beyond the purpose sentence: no note on pagination, result count, rate limits, or whether the tag must match exactly. No contradiction exists, but there is little extra 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 short sentence that front-loads the action and filter with no wasted words. It is appropriately sized for the tool's surface area, even if it leaves other dimensions under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% schema description coverage, and an undocumented optional limit parameter, the one-line description is not complete enough. It omits return shape, limit behavior, and any indication of how results are ordered or bounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for two undocumented parameters. It clarifies that 'tag' means a genre tag, which is useful, but says nothing about the 'limit' parameter's meaning, default, maximum, or expected type 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 gives a specific verb and resource ('Get radio stations') plus a distinguishing filter ('by genre tag'). It implicitly separates the tool from siblings like radio_by_country and radio_top_clicked, though it does not name any alternative 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 phrase 'by genre tag' implies the tool should be used when a genre tag is available, but the description never states when to prefer it over radio_search, radio_by_country, or the top-clicked/top-voted siblings. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radio_countriesARead-onlyIdempotent
List all countries with radio stations.
| 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, destructiveHint=false and openWorldHint=true, so safety and determinism are covered. The description adds nothing beyond that — no note on result size, ordering, or whether the list is static.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler; nothing could be removed 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 trivial parameterless list tool with rich read-only annotations and no output schema, the description is nearly sufficient, but it omits what the returned country identifiers look like (names vs codes), which matters because they must be passed to radio_by_country.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a parameterless tool 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 ('List all countries with radio stations'), so the agent knows it returns a country enumeration rather than station data. It is distinguishable in spirit from radio_by_country/radio_search, though it never names those siblings to make the contrast 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?
Usage is only implied: an agent must infer that this is the discovery step whose output feeds radio_by_country. There is no explicit 'use this before/with X' or exclusion statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radio_searchCRead-onlyIdempotent
Search for radio stations via Radio Browser.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond restating the purpose — no mention of how matching works, result ordering, rate limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the core verb front-loaded. It is efficient, though so terse that it omits useful detail rather than being overwrought.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no parameter documentation, so the description is the only place to explain search semantics and the limit parameter, and it does neither. For a two-parameter search tool it leaves too much unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry both parameters, but it explains neither. 'name' is only implicitly the search string, and 'limit' is entirely undocumented (max results? page size?), leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain 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 for radio stations') and names the source (Radio Browser), so the agent can tell what it does. However, it does not distinguish this from siblings like radio_by_country, radio_by_tag, or radio_top_clicked, which are all station-listing operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus the other radio_* tools (by country, by tag, top clicked, top voted). An agent has to infer that this is a free-text name search, and nothing states when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radio_top_clickedCRead-onlyIdempotent
Get the most-clicked radio stations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered; the description adds nothing beyond the implicit descending-popularity ordering. It omits the aggregation window (all-time? weekly?), the source of clicks, and pagination behavior — details that matter for a 'top' ranking 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?
A single front-loaded sentence with zero filler. It is efficient, though the brevity comes at the cost of the missing details flagged above rather than from deliberate tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read-only list tool whose annotations and lack of output schema lower the bar, so the definition is minimally workable. Still, an agent cannot tell how many results come back by default or how this differs from radio_top_voted, which is enough of a gap to keep it at minimum viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter 'limit', and the description says nothing about it — no default value, maximum, or effect on the result set. The description therefore fails to compensate for the documentation 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?
States a specific verb and resource ('Get the most-clicked radio stations') with an explicit ranking criterion, so the agent knows this is a popularity-ranked list rather than a search. However, it never distinguishes itself from the near-identical sibling radio_top_voted (most-clicked vs. most-voted), leaving real ambiguity about which tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no exclusions, and no mention of the sibling tools (radio_search, radio_by_country, radio_by_tag, radio_top_voted) that cover adjacent needs. The agent must infer selection criteria entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radio_top_votedCRead-onlyIdempotent
Get the most-voted radio stations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world. The description adds nothing beyond the purpose itself: no default for limit, no ordering guarantees, no pagination or result-count behavior. For an open-world ranked list, some disclosure about the ranking window or default size would be 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 front-loaded sentence with zero filler. It is efficient, though the brevity borders on under-specification for a tool with a sibling that differs only by ranking metric.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple read-only ranked-list tool with annotations covering safety and no output schema to explain. The description is adequate to identify the tool but leaves open what the ranking window is, how many results come back by default, and how it differs from radio_top_clicked.
Complex tools with many parameters or behaviors need more documentation. 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 'limit' has 0% schema description coverage and is not mentioned in the description, so its meaning (max results returned) and default are undocumented anywhere. The name is mostly self-explanatory, which keeps this above a 1, but the description does not compensate for the coverage 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?
Clear verb+resource: 'Get the most-voted radio stations,' which names both the action and the ordering criterion. It is distinguishable from radio_by_country and radio_by_tag by implication, but it does not explicitly differentiate itself from the very close sibling radio_top_clicked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of alternatives, and no exclusions. With siblings like radio_top_clicked, radio_search, and radio_by_country present, the choice between 'voted' versus 'clicked' ranking is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radix_sortC
Sort non-negative integers using radix sort with configurable base.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Radix base (default 10, range 2-256) | |
| values | Yes | Non-negative integers to sort |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the input constraint (non-negative integers) and configurable base, but does not disclose stability, error behavior on invalid inputs, return format, or complexity. This is minimal behavioral context for a tool with zero 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?
A single well-formed sentence that front-loads the operation and includes the only real configurable aspect. 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?
There is no output schema and no annotations, so the description should explain the return value, error handling, and any behavioral caveats. It does not, leaving the agent to guess what a call returns or how failures are reported.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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, including the base default and range. The description adds no meaning beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (sort non-negative integers) plus the algorithm (radix sort), making the operation unambiguous. It does not differentiate from sibling sorting tools like counting_sort or bucket_sort, 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?
Provides no when-to-use guidance, no prerequisites, and no comparison to alternative sorting tools. The agent knows what it does but not when to choose it over the many sibling sort implementations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railfence_processB
Encrypt or decrypt text using the rail fence (zigzag) cipher.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to process. | |
| rails | No | Number of rails (default 3). | |
| decrypt | No | Decrypt instead of encrypt (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden but only restates the operation. It says nothing about output format, whether the cipher is symmetric/keyless (rail fence needs no key, which is worth noting), or how invalid input (e.g., rails less than 2) is handled.
Agents need to know what a tool does to the 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 fully states the operation with zero filler. Nothing is wasted and no detail is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, stateless, keyless transform with a fully documented three-parameter schema and no output schema, the description is nearly complete. The only minor gap is that it doesn't note the return value is the transformed string, but that is inferable for a cipher utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 text, rails (default 3), and the decrypt flag. The description adds no semantic detail beyond what the schema provides, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb pair (encrypt/decrypt) and names the exact algorithm (rail fence / zigzag cipher), so an agent knows precisely what transformation it performs. It does not, however, distinguish itself from the many sibling cipher tools such as atbash_process, vigenere_process, or rot13_convert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this cipher tool over the numerous sibling cipher/encoding tools, nor any prerequisites or exclusions. The only implicit usage signal is the decrypt flag, which is already a schema parameter rather than descriptive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raindrop_actionC
Perform a Raindrop.io action: search_raindrops, get_collection_raindrops, get_raindrop_collections, create_raindrop, get_raindrop, delete_raindrop.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | ||
| tags | No | ||
| title | No | ||
| action | Yes | ||
| search | No | ||
| api_key | No | ||
| raindrop_id | No | ||
| collection_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as destructive potential, authentication requirements, rate limits, or return format. It merely lists actions without any 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 a single sentence listing actions, which is concise but lacks structure. It does not separate actions, parameters, or usage context, making it minimally informative despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain how to use the tool, what each action does, what parameters are needed for each, or what the response looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to any of the 8 parameters. Parameters like 'action', 'api_key', 'search', etc., are left unexplained, so the agent gains no additional insight beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists multiple actions (search_raindrops, get_collection_raindrops, etc.) making the overall purpose clear as a Raindrop.io action dispatcher. However, it does not differentiate from sibling tools like airtable_action or clickup_action, which follow the same pattern, reducing 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?
No guidance is given on when to use this tool vs alternatives, nor when to choose each specific action. There are no prerequisites, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raise_human_actionFlag an Operations lane as needing the operatorA
ONLY for an absolute brick wall - something no seat can do with its own reach. Requires reason to be one of the recognised walls, and tried_instead to say what you already attempted: your shell, remote access to the fleet, the vault, the forge, the tool catalog, the other seats. Most walls are not walls. This is the one column that costs the operator time, so a lazy entry is worse than no entry. Clear it with clear_human_action the moment it is resolved.
| Name | Required | Description | Default |
|---|---|---|---|
| ask | Yes | The one thing to do, in plain words. | |
| why | Yes | Why it cannot be done without a person. | |
| lane | Yes | Ref (AP-01) or lane id (boardroom). | |
| reason | Yes | One of the recognised walls. list_lanes with include_induction returns the list. | |
| agent_id | Yes | ||
| tried_instead | Yes | What you already attempted with your own reach. Short answers are rejected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent write action. The description adds important consequence context beyond annotations: this entry costs operator time, and a lazy entry is worse than no entry, which discourages low-quality submissions. It could say more about duplicate handling or exactly what raising the action produces, but the key behavioral cost is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical constraint is front-loaded in the first clause, and every subsequent sentence adds operational value: eligibility, required fields, cost of misuse, and cleanup. There is 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 six-required-parameter mutation-style tool with no output schema, the description covers when to use it, what must be attempted first, how to satisfy reason and tried_instead, and how to clear it later. It is sufficient for correct invocation, though it does not describe what the operator-facing entry looks like after creation or how duplicates are treated.
Complex tools with many parameters or behaviors need more documentation. Simple 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 high at 83%, so the schema already documents most parameters. The description adds meaningful semantics for the two most judgment-heavy fields: reason must be one of the recognised walls, and tried_instead must describe actual prior attempts, with categories of reach listed. It does not elaborate on lane, ask, why, or agent_id, but those are covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and scope: flagging an Operations lane as needing the operator, but only for an 'absolute brick wall' no seat can handle. It also explicitly routes away from overuse and names clear_human_action as the cleanup sibling, so an agent can distinguish the operation from routine lane work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use criteria, a strong when-not-to-use warning ('Most walls are not walls'), and concrete alternatives to attempt first: shell, fleet remote access, vault, forge, tool catalog, and other seats. It also names the sibling tool to call on resolution, clear_human_action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ram_get_characterBRead-onlyIdempotent
Get a Rick and Morty character by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Character ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds nothing beyond that: no statement about what happens with an unknown or malformed ID (null, empty result, error), and no note that it hits a live external API. With annotations carrying the load, that leaves minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, verb and resource front-loaded, zero filler. Nothing superfluous for a single-parameter lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param read with full schema coverage and complete annotations, the essentials are present. Missing are the two things an agent would still wonder about: ID format and failure behavior for a non-existent character.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'id' property is documented in-schema, so the baseline is 3. The description contributes only the word 'by ID' and doesn't clarify the expected ID format (numeric string, range, etc.) or whether names are accepted.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (Rick and Morty character) with the 'by ID' qualifier that implicitly separates it from ram_search_characters. The distinction is inferable rather than explicit, so it stops short of 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?
There is no explicit guidance on when to use this versus ram_search_characters or the other ram_ tools. The 'by ID' phrasing implies a direct-lookup use case, but the agent must infer that a known ID is required and that search is the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ram_get_episodeARead-onlyIdempotent
Get a Rick and Morty episode by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Episode ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds little behavioral detail beyond the basic get operation; it does not mention missing-ID behavior, return shape, or error handling, but it does not contradict the annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted wording. It communicates the core operation immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and rich annotations, the description is sufficient to call it correctly. A brief note about episode ID format or not-found behavior would improve it further, but it is not essential here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single parameter is already documented as "Episode ID" in the schema. The description only restates that the lookup is by ID and adds no format or validation 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 verb and resource: get a Rick and Morty episode by ID. The "by ID" scope implicitly distinguishes it from ram_search_episodes, but it does not explicitly name the sibling or contrast the lookup modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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" implies this tool is for when the caller already has an episode identifier, while a search tool would be needed otherwise. However, it does not explicitly say when to use this versus ram_search_episodes or what to do if the ID is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ram_get_locationARead-onlyIdempotent
Get a Rick and Morty location by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Location ID |
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 nothing further about error behavior for invalid IDs or whether the resource is a live external fetch (openWorldHint is only in annotations).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the key differentiator ('by ID') front-loaded and 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 trivial single-param lookup with full annotation coverage this is largely adequate, but with no output schema the description could have said what a location record contains (name, type, dimension, residents), which would help an agent 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?
Only one parameter exists and schema description coverage is 100%, so the schema fully documents 'id'. The description adds no format or example detail beyond it, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('Rick and Morty location') plus the retrieval key ('by ID'). It does not explicitly contrast with ram_get_character or ram_search_episodes, though the naming convention makes the distinction obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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' implies this is for direct lookup rather than searching, but no explicit when-to-use or when-not guidance is given, and no alternative (e.g. a location search) is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ram_search_charactersBRead-onlyIdempotent
Search Rick and Morty characters by name, status, species, or gender.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| page | No | ||
| gender | No | ||
| status | No | ||
| species | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral detail beyond that, such as pagination behavior, matching semantics, result limits, or how multiple filters combine.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler. Every word contributes to identifying the resource and its supported filters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations and no output schema, the description gives enough to attempt a basic call. However, it leaves pagination and matching behavior undocumented, which matters for a five-parameter search endpoint with no schema 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 0%, so the description must compensate, but it only mentions four of the five parameters. It omits the page parameter entirely and does not clarify name matching behavior or how filters interact. Enum values are visible in the schema, but the description adds little semantic meaning beyond repeating property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search Rick and Morty characters,' and lists the main filterable dimensions. It is clear enough to distinguish a search endpoint from a generic getter, though it does not explicitly name ram_get_character as the 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?
Listing name, status, species, and gender implies the tool is for filtered character lookup, but there is no explicit guidance on when to use this versus ram_get_character or when not to use it. The usage context is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ram_search_episodesBRead-onlyIdempotent
Search Rick and Morty episodes by name or episode code.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| page | No | ||
| episode_code | No | e.g. S01E01 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive behavior, so the safety profile is covered. The description adds nothing about result limits, pagination behavior, or whether matching is exact or partial — the remaining behavioral questions an agent would have.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though so terse that it has no room for the pagination and matching details an agent would benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three parameters, low schema description coverage and no output schema, the description should say more: what a result looks like, how 'page' behaves, and whether multiple pages exist. It covers only the search keys, leaving meaningful gaps 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 only 33%, with the one described parameter being episode_code ('e.g. S01E01'). The description confirms that name and episode_code are the search keys, but leaves 'page' completely unaddressed in both schema and description, and doesn't say whether name is a substring or exact match.
Input schemas describe structure but not intent. Descriptions should explain 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 (Rick and Morty episodes) and names the two lookup keys. An agent can distinguish it from ram_get_episode by inference (search vs. fetch by id), though the sibling is never named 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?
'Search ... by name or episode code' implies the trigger condition (you have a title or a code like S01E01). However, it never says when to prefer this over ram_get_episode, whether parameters can be combined, or what happens with an empty query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_duck_imageARead-onlyIdempotent
Get a random duck image URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is fully covered. The description adds one useful nuance — it returns a URL rather than binary image data — but says nothing about response shape, URL lifetime, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero redundancy; the key noun (URL) is placed where it is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, zero-mutation utility with full annotation coverage, the description is essentially complete. The only minor gap is not clarifying whether the URL is a direct image file or a redirect, but that is low-stakes.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly signals that no input 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?
Specific verb+resource: 'Get a random duck image URL' states exactly what is returned. It is clearly distinguishable from most siblings, though it doesn't explicitly differentiate itself from the near-identical 'random_duck_list' 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?
Usage is implied by the name and description — an agent can reasonably infer this is for fetching a single random duck image. However, it never says when to prefer this over 'random_duck_list' or other image tools like 'random_fox_image', and offers no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_duck_listARead-onlyIdempotent
List all available duck image filenames.
| 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, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds that the output is filenames rather than image content, but it does not clarify ordering, freshness, or how this list relates to random_duck_image. With annotations doing the heavy lifting, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word contributes to identifying the operation and the returned resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with full annotation coverage and no output schema, the description is nearly complete. A small gap remains because it does not say whether the filenames are intended to be passed to random_duck_image or what format they take.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so the baseline is 4. The description does not need to explain parameter usage, and the empty schema is consistent with the stated listing 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 ('List') and a precise resource ('available duck image filenames'), so an agent knows exactly what the tool returns. It does not explicitly name the sibling random_duck_image or otherwise contrast itself, 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 phrase 'available duck image filenames' implies this tool is for enumerating options rather than fetching an image, but there is no explicit when-to-use guidance or named alternative such as random_duck_image. The agent must infer the distinction from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_flip_coinC
Flip a coin.
| Name | Required | Description | Default |
|---|---|---|---|
| times | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks annotations and description omits details: fairness, possible outcomes (heads/tails), return format, or side effects. Very limited behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (three words) but sacrifices necessary details. Sentence is front-loaded but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 fails to cover parameter semantics, return value, or use 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 coverage 0% for the times parameter, and description provides no explanation of its meaning or 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?
Description clearly indicates a coin flip, but does not distinguish from sibling random tools like random_roll_dice or random_number. Could mention multiple flips from the times parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives. Sibling tools include many random operations with no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_fox_imageARead-onlyIdempotent
Get a random fox image URL.
| 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, covering the safety profile. The description adds that the return value is a URL string, which is useful since no output schema exists, but it says nothing about rate limits, image formats, or whether repeated calls return different images despite the idempotent hint.
Agents need to know what a tool does to the 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 with no filler. For a zero-param tool this is the right size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations supplying the safety profile and the description telling the agent it receives a URL, everything needed to call it correctly is present. Only minor details (image format, response shape beyond 'URL') are absent, and none block 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 takes zero parameters, so per the baseline this scores 4. The description correctly implies no input is needed.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (random fox image URL), so an agent knows exactly what it produces. It does not differentiate from sibling image tools like random_duck_image or dog_random_image, but the resource itself (fox) is unambiguously distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance and no named alternatives. Usage is implied by the trivially narrow single-purpose nature of the tool, which is adequate but not documented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_lorem_ipsumC
Generate lorem ipsum placeholder text.
| Name | Required | Description | Default |
|---|---|---|---|
| words | No | ||
| sentences | No | ||
| paragraphs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic purpose. For a generation tool, information about randomness, reproducibility, or output format would be helpful but is missing.
Agents need to know what a tool does to the world before calling 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, which is concise, but it omits essential details like parameter usage. While not verbose, it lacks sufficient structure to fully inform 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?
For a simple tool, the description is barely adequate. It does not explain return values, parameter relationships (e.g., exclusive use of paragraphs vs words vs sentences), or any edge cases. The missing output schema and lack of param details leave 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 schema defines three parameters (paragraphs, words, sentences) with no descriptions. The tool description adds no information about these parameters, leaving the agent to guess their behavior and interactions. Since schema coverage is 0%, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Generate lorem ipsum placeholder text' clearly states the action (generate) and the resource (lorem ipsum placeholder text). It is specific and distinguishes this tool from all siblings, none of which focus on lorem ipsum generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. The description does not specify context, prerequisites, or when not to use it. Given the simple nature, some implicit usage is clear, but explicit directions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_numberC
Generate a random number within a range.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| min | No | ||
| count | No | ||
| integer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It states the tool generates a random number within a range but does not explain key behaviors like whether min/max are inclusive, whether the output is integer or float (despite a boolean integer parameter), or how the count parameter affects output. Missing edge-case 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 sentence of 7 words, which is concise but too minimal. It could be expanded to include parameter behavior or usage context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (including non-obvious ones like count and integer), no output schema, and no annotations, the description is severely incomplete. It fails to specify return format, parameter semantics, or behavioral guarantees.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage, the description adds minimal meaning beyond the schema. It vaguely implies min/max as range boundaries but does not explain the count or integer parameters. The schema lists them without descriptions, and the description does not 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 'Generate a random number within a range' clearly states the action (generate) and the resource (random number). It distinguishes itself from sibling tools like random_string or random_roll_dice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives (e.g., random_roll_dice, random_lorem_ipsum). It does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_pick_from_listCRead-onlyIdempotent
Pick random item(s) from a list.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, destructiveHint and openWorldHint, so safety is fully stated elsewhere. The description adds nothing beyond that: it does not say whether sampling is with or without replacement, whether order of the returned items is randomised, or what happens if count exceeds list length.
Agents need to know what a tool does to the 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 short sentence, front-loaded and free of waste. It is arguably too terse rather than padded, but structurally it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0% schema coverage and no output schema, the description needs to explain count semantics and return shape and does neither. An agent cannot tell from this definition whether it will get one value or an array, or what count's default and limits are.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with two parameters (items, count), so the description carries the burden. It only hints at 'item(s)' implying count > 1, but never states that count is optional, its default, whether it must be <= items length, or whether duplicates are permitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('pick random') and resource ('item(s) from a list'), so the operation is unambiguous. It does not distinguish itself from near siblings such as random_shuffle_list (which reorders rather than samples) or random_number/random_uuid, leaving the agent to infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over random_shuffle_list, which is the obvious alternative for list-randomisation needs. No prerequisites, no mention that it is a pure sampling utility with no side effects beyond what annotations declare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_roll_diceC
Roll dice.
| Name | Required | Description | Default |
|---|---|---|---|
| dice | No | e.g. 2d6, 1d20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as whether it returns individual die results or just a sum, or the randomness quality. The schema parameter hint ('e.g. 2d6') is not in the description, so the description itself lacks 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 very concise at two words, but it may be too terse, sacrificing completeness for brevity. It is front-loaded but lacks structure to convey essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and no output schema, the description should at least mention the return format or the standard dice notation. It fails to provide complete context, especially compared to other random tools with more detailed 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?
The schema description for the parameter 'dice' includes examples ('2d6, 1d20'), providing meaning beyond the type. Since schema coverage is 100%, the description does not need to add much, but it adds nothing. 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 'Roll dice.' clearly states the verb and resource, and it distinguishes itself from sibling tools like random_flip_coin or random_number by specifying dice rolling. However, it is very terse and could be more specific about what 'dice' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. The description implies it is for dice rolls but does not explain when it is appropriate or when to use other random tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_shuffle_listCRead-onlyIdempotent
Shuffle a list randomly.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true, but the description says the output is random, which means repeated calls with the same input will not return the same result. That is a direct conflict with the structured metadata. The description also fails to say whether the input list is mutated or a new shuffled copy is 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?
One short, front-loaded sentence with no filler. Brevity is appropriate for a low-complexity tool, though it leaves the behavior underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema and no annotations carrying behavioral detail, the description should still convey what comes back (a reordered array) and whether the original list is preserved. Neither is stated, so an agent cannot predict the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single `items` parameter, so the description must compensate. 'Shuffle a list' only loosely implies that `items` is the list to be shuffled; nothing about element type, ordering, duplicate handling, or output shape is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Shuffle a list'), which distinguishes it from siblings like random_pick_from_list (selects one element) and random_string/random_number. No explicit sibling callout, but the operation 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?
No guidance on when to use this instead of random_pick_from_list, sort_lines, or random_number, and no preconditions (e.g. empty list, single-element list) or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_stringD
Generate a random string.
| Name | Required | Description | Default |
|---|---|---|---|
| length | No | ||
| charset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and the description does not disclose any behavioral traits such as randomness quality (cryptographic vs pseudo), default charset, or side effects. The agent has no insight beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words), which is efficient but too sparse. It lacks structure and reads as a tautology, missing the opportunity to provide meaningful 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 no annotations, no output schema, and no parameter descriptions, the description is inadequate. It fails to provide the agent with sufficient information to use the tool correctly or understand its 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 0% and the description does not explain the parameters. The meaning of 'length' and 'charset' is not conveyed beyond their names, so no value added over 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 'Generate a random string' is a clear verb+resource pair, but it does not differentiate from sibling tools like random_uuid or random_lorem_ipsum, which also generate strings. The lack of detail on the nature of the random string (alphanumeric? printable?) reduces 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?
No description of when to use this tool versus alternatives. With many random generation siblings, the agent needs guidance on which tool to pick. The description provides none.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_tacoA
Generate a random taco recipe with base, seasoning, condiment, and shell.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses the output's structure (base, seasoning, condiment, shell), but says nothing about randomness guarantees, determinism, or rate limits. For a zero-param generator the burden is modest, so this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the verb and resource front-loaded and no wasted words. 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 trivial zero-parameter tool with no output schema, naming the four components returned is enough for an agent to know what to expect. 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 tool takes zero parameters, so there is nothing for the description to document; baseline 4 applies. The description's component list describes output shape rather than inputs, which is harmless.
Input schemas describe structure but not intent. Descriptions should explain 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 ('generate') and resource ('random taco recipe'), and enumerates the four components it produces. It is distinguishable from other random_* siblings by the taco domain, though it does not explicitly contrast with 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?
No indication of when to use this versus other random generators, nor any context about intended use. Usage is only implied by the 'random taco' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_userA
Generate random user profiles with names, emails, addresses, and photos.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of users to generate (default 1) | |
| gender | No | Filter by gender: male or female | |
| nationality | No | ISO 3166-1 alpha-2 codes, comma-separated (e.g. US,GB,AU) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the output content (names, emails, addresses, photos), which covers the core output shape, but says nothing about determinism, uniqueness, rate limits, or data source authenticity. Adequate minimum 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?
A single front-loaded sentence with the verb, resource, and output fields. No filler, nothing redundant, 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?
For a simple generator with 3 fully documented optional params and no output schema, the description is mostly adequate but lacks behavioral context (determinism, uniqueness). No output schema exists, so the description could arguably say more about the returned structure, but the field list 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 coverage is 100%, so all three parameters (count, gender, nationality) are already documented in the schema with examples and format notes. The description adds no parameter-level information. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (random user profiles) and enumerates the field categories produced (names, emails, addresses, photos). This distinguishes it from faker_persons, lorem_name_generate, and random_string siblings without 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?
Implies usage for placeholder/mock user generation but never states when to prefer this over faker_persons or random_string, nor any exclusions. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_uuidA
Generate a random UUID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description accurately reflects the tool's behavior without any hidden effects. No annotations are provided, but the tool is stateless and safe, so transparency is complete.
Agents need to know what a tool does to the 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 of five words. It is perfectly concise with no wasted words. Front-loading is irrelevant due to extreme brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for the tool's simplicity. It could mention the return type (e.g., UUID string), but the name and schema imply it. No output schema, so the description could be slightly more helpful.
Complex tools with many parameters or behaviors need more documentation. 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 are no parameters, so the schema coverage is 100%. The description adds no param-specific information, but none is needed. Baseline 4 for zero 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 'Generate a random UUID.' clearly states the verb (generate) and resource (random UUID). It is unambiguous and leaves no room for confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Although no alternatives exist, the description does not provide any context on when to use this tool. However, given the simplicity, the lack of guidance is not a major issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ratio_simplifyA
Simplify a ratio a:b to its lowest terms. Returns decimal and percentage forms.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First value. | |
| b | Yes | Second value (non-zero). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that the result is returned as decimal and percentage forms, but says nothing about error behavior, sign handling, or non-integer input limits. It adds some behavioral value but leaves meaningful gaps.
Agents need to know what a tool does to the 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-loaded with the operation and followed immediately by the return forms. 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 math utility with 100% schema coverage, the description plus schema is nearly sufficient, and the stated decimal/percentage return partly compensates for the absent output schema. It stops short of noting input constraints such as negatives or decimals, which keeps it at 4 rather than 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two numeric parameters, so the schema already documents a and b fully, including that b must be non-zero. The description's 'a:b' notation reinforces the pairing but adds no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Simplify a ratio a:b') plus scope ('to its lowest terms'), which distinguishes it from siblings like aspect_ratio, proportion_solve, and percentage_calc. An agent can identify the operation 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?
There is no when-to-use guidance, no mention of when an alternative (e.g., proportion_solve or aspect_ratio) would be preferable, and no prerequisites. The agent must infer applicability 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.
rawg_game_screenshotsC
Get screenshots for a RAWG game.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose that the operation is read-only, whether authentication is required (the 'api_key' parameter suggests it), or any behavioral aspects like rate limits or response size. The single sentence adds no behavioral context beyond the tool's name.
Agents need to know what a tool does to the world before calling 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 (one sentence) but overly terse. It lacks structure; key information like parameter details or return format is missing. While brevity is good, it sacrifices usefulness for 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?
Given the tool's simplicity (2 parameters, no output schema), the description is incomplete. It does not hint at the return format (e.g., list of screenshot URLs) or any constraints like pagination. The agent cannot fully understand the tool's behavior from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. It does not explain that 'id' is the game ID or how to obtain it, nor does it clarify the 'api_key' parameter's purpose or optionality. The description fails to compensate for the lack of 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 clearly states the tool retrieves screenshots for a RAWG game, with a specific verb ('Get') and resource ('screenshots for a RAWG game'). It distinguishes itself from sibling tools like 'rawg_get_game' or 'rawg_search_games'. However, it lacks detail on what exactly is returned (e.g., all screenshots or a subset), which slightly reduces 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?
No explicit guidance on when to use this tool vs. alternatives. The description does not mention when not to use it, nor does it differentiate usage from siblings like 'rawg_get_game' or 'rawg_search_games'. The context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rawg_get_gameBRead-onlyIdempotent
Get details for a specific game by RAWG ID or slug.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | RAWG game ID or slug | |
| api_key | No |
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 fully covered. The description adds nothing beyond that — no note on behavior for an invalid/missing ID, no indication of response size or rate limits, and no detail on what 'details' includes.
Agents need to know what a tool does to the 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 with no filler, and the distinguishing constraint (ID or slug) lands immediately. It is efficient but also stops short of any structure that would help an agent recover from a failed lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and no output schema, this is close to sufficient — the agent knows the key and the operation. Gaps remain around what 'details' returns and how the secondary `api_key` parameter is meant to be supplied, which the description leaves entirely to the caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: `id` is documented in the schema and the description merely restates that it accepts an ID or slug. The undocumented `api_key` parameter is not addressed at all, and no format examples (numeric ID vs. hyphenated slug) are given beyond the schema's own wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 details for a specific game') and identifies the lookup key (RAWG ID or slug). It is clearly distinct from rawg_search_games by implying a direct identifier lookup rather than a query, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the right choice when it already holds an ID or slug. There is no explicit statement of when to prefer it over rawg_search_games, nor any note about what to do when only a title is known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rawg_list_genresCRead-onlyIdempotent
List all game genres on RAWG.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
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 safety is covered. The description adds only 'all' as a scope hint, with nothing about API key handling, pagination, or what a genre record contains.
Agents need to know what a tool does to the 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 with no wasted words. It could carry slightly more structure (e.g., a note on the credential parameter) without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read-only list endpoint with annotations covering safety and no output schema, the description is minimally adequate. However, it omits how the API key parameter should be supplied and whether results are paginated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single api_key parameter, and the description does not mention credentials or how the key is supplied. It fails to compensate for the low 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 (List) and resource (game genres) and names the provider (RAWG), which separates it from igdb_list_genres. It does not explicitly contrast with rawg_list_platforms or other RAWG endpoints, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus sibling genre/platform listers, no prerequisites, and no mention of when a search tool like rawg_search_games would be better. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rawg_list_platformsBRead-onlyIdempotent
List all gaming platforms on RAWG.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered structurally. The description adds nothing beyond confirming the source collection — no pagination behavior, no indication of how large the list is, no note that results are static reference 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?
A single front-loaded sentence that maps one-to-one onto the tool's purpose, 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?
For a simple reference-list read with no output schema and strong annotations, the description is adequate but thin: it omits the api_key parameter entirely and says nothing about the shape or size of the returned platform list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is one documented parameter, api_key, which the description never mentions — not whether it is required, optional, or how to supply it. With one undocumented parameter the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List all gaming platforms') plus the data source (RAWG), so an agent knows exactly what it enumerates. It does not name or contrast with siblings such as rawg_list_genres or igdb_list_platforms, which keeps it out of 5 territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus rawg_search_games, rawg_get_game, or igdb_list_platforms, and no prerequisites (e.g. that an api_key may be required). Usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rawg_search_gamesCRead-onlyIdempotent
Search for video games on RAWG.
| Name | Required | Description | Default |
|---|---|---|---|
| genres | No | ||
| search | Yes | Search query | |
| api_key | No | ||
| ordering | No | ||
| page_size | No | ||
| platforms | No |
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 nothing beyond that — no note on result limits, pagination, rate limits, or whether api_key is required for this call.
Agents need to know what a tool does to the 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 with no filler or redundancy. It earns its place but is so terse that the terseness itself is the problem, which is penalized under completeness rather than here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter search tool with 17% schema coverage and no output schema, the description is far too thin. It lacks any indication of filter syntax, result shape, pagination behavior, or why an api_key parameter exists, leaving the agent to guess at most call details.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 17% — just the 'search' field has a (tautological) description, while genres, platforms, ordering, page_size, and api_key are undocumented. The description only implies keyword search and says nothing about the five filter/pagination/credential parameters that an accurate call requires.
Input schemas describe structure but not intent. Descriptions should explain 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 (video games) plus the data source (RAWG), which is enough to separate it from rawg_get_game and rawg_list_genres. It does not explicitly name the sibling it is not, 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?
There is no guidance on when to use this versus rawg_get_game, rawg_upcoming_games, or igdb_search_games, and no mention of what the search does or does not cover. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rawg_upcoming_gamesC
Get upcoming game releases from RAWG.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as API key requirements, rate limits, or whether it returns a list or single item. It only states the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with one sentence, but lacks necessary details. While it earns its place, it is under-specified for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It does not mention return format, pagination, or ordering, which are critical for a list 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 0%, yet the description adds no meaning to the parameters (page_size, api_key). It does not explain their purpose, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource (upcoming game releases from RAWG), distinguishing it from related tools like rawg_search_games. However, it does not explicitly differentiate 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?
No guidance on when to use this tool versus alternatives like rawg_search_games. No context about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rb_tree_simB
Build a red-black tree from a list of keys. Returns inorder traversal, tree height, black height, and validity check.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Keys to insert into the red-black tree |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description does disclose the observable behavior: it builds a tree and returns inorder traversal, height, black height, and a validity check. It omits whether duplicate keys are accepted, whether the input is mutated, and that the operation is purely computational with no side effects, which for a no-annotation tool is a modest 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?
Two tightly written sentences with zero filler: the first states the action, the second front-loads the full return contract. Nothing is padded or repeated from the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter pure-computation tool with no output schema, the description adequately covers both input intent and return values. The only missing piece is disambiguation from structurally similar sibling simulations, which keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter and schema description coverage is 100%, so the schema already carries the semantics ('Keys to insert into the red-black tree'). The description adds nothing about parameter handling such as duplicate or ordering constraints, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (build) and resource (red-black tree) plus the exact return payload, so an agent knows precisely what it computes. It does not, however, distinguish itself from closely related siblings like avl_tree, treap_sim, or cartesian_tree, which all build balanced/ordered trees.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to pick a red-black tree simulation over avl_tree or treap_sim, and no note about input expectations (e.g., duplicates, unsorted keys). Usage is only implied by the verb resource pairing, which leaves the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_domainB
Look up domain registration data via RDAP (WHOIS replacement).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral context. It implies a read-only lookup and identifies the protocol (RDAP/WHOIS), but does not state authentication needs, rate limits, error behavior, or the exact return shape. This is a minimum-viable level of transparency with clear gaps.
Agents need to know what a tool does to the world before calling 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 zero waste. It states the purpose and protocol immediately and does not pad with 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 one-parameter lookup tool with a fully documented schema and no output schema, the description is nearly complete. It could mention what 'registration data' includes or expected errors, but it covers the essentials needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully described in the schema ('Domain name to look up.'), so the schema already does the heavy lifting. The description adds no extra syntax, format, or validation details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Look up') and resource ('domain registration data') plus the mechanism ('via RDAP (WHOIS replacement)'). It is clear what the tool does, but it does not distinguish itself from sibling tools like rdap_ip or domain_get_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor any prerequisites or exclusions. The description only states what it does, leaving the agent to infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_ipBRead-onlyIdempotent
Look up IP address registration data via RDAP.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to look up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is fully covered. 'via RDAP' adds a useful hint that results come from registry RDAP servers (authoritative, public, possibly rate-limited, possibly 404 for unregistered IPs), but the description never states rate limits, not-found behavior, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single twelve-word sentence with the action and the target front-loaded and zero filler; nothing 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 one-parameter, read-only lookup with a fully documented schema, complete annotations, and no output schema, the description carries enough to invoke the tool correctly. The only real gap is disambiguation from sibling IP-lookup tools and any note on failure modes for unregistered addresses.
Complex tools with many parameters or behaviors need more documentation. Simple 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 is documented as 'IP address to look up.' The description adds nothing about accepted formats (IPv4 vs IPv6, CIDR acceptance), so it neither compensates for nor extends 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?
Specific verb ('Look up') plus a well-defined resource ('IP address registration data via RDAP'), which signals registry/WHOIS-style ownership data rather than geolocation. It does not, however, distinguish itself from the many IP-oriented siblings (ipinfo_lookup, ip_lookup, country_by_ip, bgpview_ip) beyond naming the RDAP protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use, when-not-to-use, or named alternative. An agent must already know what RDAP is and infer that this is the right tool when authoritative registration/ownership data is wanted instead of the geo/ASN lookups offered by siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readability_scoreB
Calculate Flesch-Kincaid readability scores and reading level for text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to score. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral-disclosure burden. It names the calculated outputs but does not state that this is a pure/deterministic calculation, what the reading level scale is, or what the return structure looks like. For a simple text-analysis tool the risk is low, but the disclosure is still thin.
Agents need to know what a tool does to the world before calling 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 wasted words. It immediately states the operation and the resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 text-analysis tool with no output schema, the description covers the essential operation and names the output concepts. It could be more complete by clarifying the exact scores returned or distinguishing itself from the sibling text_readability tool, but it is largely 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%, and the single 'text' parameter is already documented in the schema as 'Text to score.' The description adds only the implicit fact that the text is analyzed for Flesch-Kincaid readability, which is already evident from the purpose statement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 calculates Flesch-Kincaid readability scores and a reading level for text. That is clear enough to know what the tool does. However, it does not differentiate itself from the sibling tool text_readability, which appears to cover a similar text-scoring operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives, nor any stated exclusions or prerequisites. The phrase 'for text' establishes only the input type, not the usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_messagesRead the BoardroomARead-onlyIdempotent
Reads recent messages from the user's Boardroom, the build coordination room where worker seats share material work updates. Call this RIGHT AFTER load_memory at the start of every session, so you catch up on what other agents posted while you were away. Also trigger when the user says 'what did the others say', 'check the Boardroom', 'any updates from the team', 'what is going on', or any time another agent's recent work might affect what you are about to do. Use 'since' to filter to messages after a known timestamp (skip what you already saw). 'limit' caps the result count, default 20. Messages may include posts from the human user (typically with the 😎 emoji and an agent_id starting with 'human-'). Treat those as direct input from the user, not from another agent. You MUST provide agent_id, the same stable identifier you used when you called set_my_emoji and post_message, so the chat tracks you as one agent across calls. Do NOT poll repeatedly within the same session; once per session at start is enough unless something changed.
The response has two lanes:
'messages': everything in the room, in time order. Read this for context.
'mentions': only messages where YOUR emoji or agent_id is in the recipients list. Read this FIRST, then skim the rest. Broadcasts to 'all' are not mentions, they're general feed.
Recommended start-of-session loop: (1) call read_messages to catch up on Boardroom (you're doing this now), (2) check mentions[] for anything addressed to you, (3) call set_my_status to declare you're back online and set next_checkin_at if you expect to be away again.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ISO 8601 timestamp; only return messages newer than this | |
| agent_id | Yes | Stable identifier for yourself, e.g. 'claude-code-builder-seat' or 'chatgpt-codex-reviewer-seat'. Use the same value across calls so the chat tracks you as one agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It adds a lot: the two-lane response, how mentions differ from 'all' broadcasts, and how to treat human posts (😎 emoji, agent_id starting with 'human-'). It also states the agent_id stability requirement. However, the three separate explanations of when to call this tool and what follows it repeat each other, and the agent_id requirement is explained twice. Useful context, but padded.
Agents need to know what a tool does to the 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 purpose and the primary trigger, and every section is relevant. However, it is overly long for a read tool, and the session loop and the agent_id instruction are each restated, which reads as padding rather than concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of explaining returns, and it does: 'messages' as a time-ordered general feed, 'mentions' as messages where your emoji or agent_id appears. Combined with parameter guidance and follow-up steps, an agent has everything needed to call and interpret this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description explains 'since' (filter to messages after a known timestamp), 'limit' (default 20), and why agent_id must be a stable identifier reused from set_my_emoji and post_message. That is real added meaning beyond the schema, though the maximum of 100 and the ISO 8601 format are left to 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 and resource ('Reads recent messages from the user's Boardroom') and immediately defines the room's purpose ('build coordination room where worker seats share material work updates'). This distinguishes it cleanly from siblings like post_message, set_my_status, and check_inbox.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 triggers ('RIGHT AFTER load_memory at the start of every session', 'what did the others say', 'check the Boardroom', 'any updates from the team') and an explicit exclusion: 'Do NOT poll repeatedly within the same session; once per session at start is enough unless something changed.' It even names the follow-up tools in the recommended loop.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_orchestrator_contextRead Orchestrator contextARead-onlyIdempotent
Reads current UnClick Orchestrator continuity so a seat can interpret a freshly saved turn before acting. Use immediately after save_conversation_turn in the required Log -> Read -> Decide -> Reply -> Log reply gate. If this read fails, say CONTEXT_UNREAD or UNTETHERED instead of guessing whether a phrase is a test cue, real request, blocker, proof, or status.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Optional search text from the saved turn. Do not include secrets. | |
| limit | No | Maximum events to read. | |
| compact | No | Return compact source summaries by default. | |
| include_raw | No | Include raw fields when explicitly needed. | |
| max_summaries | No | Maximum compact summaries to return when compact mode is on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, non-open-world, so safety is covered. The description adds valuable failure-handling behavior ('say CONTEXT_UNREAD or UNTETHERED instead of guessing'), which is real behavioral context beyond annotations, though it doesn't describe the shape of returned continuity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose then sequencing then failure handling. Dense jargon ('seat', 'gate') is context-specific but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-param tool with full schema coverage, the description covers purpose, timing, and failure modes. With no output schema, it could say more about what 'continuity' actually returns, 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 coverage is 100%, so all five optional parameters are self-documented. The description adds no param-level guidance (e.g., when to use q or include_raw), so this sits at the schema-driven 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?
States a specific verb ('Reads') and resource ('current UnClick Orchestrator continuity') and explicitly positions it relative to save_conversation_turn, so an agent can distinguish it from memory/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?
Explicitly says 'Use immediately after save_conversation_turn' and describes the required Log -> Read -> Decide -> Reply -> Log reply gate. This names the trigger condition and sequencing, 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.
readwise_actionC
Perform a Readwise action: get_readwise_highlights, get_readwise_books, get_daily_review, search_highlights, create_highlight.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | No | ||
| action | Yes | ||
| api_key | No | ||
| book_id | No | ||
| highlights | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does not state whether actions are read-only or mutating (e.g., create_highlight is a write, others are reads), nor mention authentication, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core action list, but it lacks essential details. It is concise in length but not in informational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is highly incomplete. It does not explain what each action does, required parameters per action, or return values. The agent would struggle to use 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 0%, and the description adds no information about parameters like api_key, query, page, etc. The agent must infer parameter usage from the action names alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it performs a Readwise action and lists the specific actions (get_readwise_highlights, get_readwise_books, etc.), making the purpose clear. However, it does not differentiate from sibling tools that are similarly named 'action' tools for other services, though the service name 'Readwise' provides some 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?
No guidance on when to use this tool versus alternatives. No prerequisites mentioned (e.g., needing an API key), and no context for which action to choose based on user intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_commentC
Post a comment on Reddit.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| parent_id | Yes | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and fails to state that this is a mutating write operation, that authentication (the access_token parameter) is required, or any rate-limit/reversibility context. It only weakly implies a write via the word 'post'.
Agents need to know what a tool does to the 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 with no filler, but it is under-specified rather than efficient; there is no wasted text, yet it lacks the content a write tool 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 three-parameter mutation tool with no annotations, no output schema, and no parameter documentation, the description omits too much: auth requirements, the parent_id format, and what is returned. An agent could not reliably call this without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all three parameters (text, parent_id, access_token) are undocumented structured fields. The phrase 'comment on Reddit' hints that parent_id identifies the target of the comment, but the critical fullname format (t1_/t3_ prefixes) and the role of access_token are never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Post a comment on Reddit" names a specific verb (post) and resource (comment), so the agent knows exactly what action results. It does not differentiate from the closely related siblings reddit_post, reddit_thread, or comment_on, leaving the boundary between creating a comment versus creating a submission ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance and names no alternatives, even though the sibling list contains reddit_post and comment_on that an agent could easily confuse it with. Usage is only implied by the verb 'post'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_postC
Create a Reddit post.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| kind | Yes | self, link | |
| nsfw | No | ||
| text | No | ||
| title | Yes | ||
| spoiler | No | ||
| subreddit | Yes | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and it delivers almost nothing: it doesn't say the call is authenticated, that an `access_token` is expected, that posting may be rate-limited or rejected by subreddit rules, or that 'self' vs 'link' kinds have different required fields. Only the bare fact that this is a write/creation operation is conveyed.
Agents need to know what a tool does to the 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 short sentence with no filler, but this is terseness rather than conciseness — the length reflects under-specification, not efficiency. Nothing about the request shape, constraints, or outcome 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 an 8-parameter, unannotated mutation tool with no output schema, a four-word description is far from sufficient. An agent cannot determine required field combinations, auth expectations, or failure modes without opening the schema and guessing.
Complex tools with many parameters or behaviors need more documentation. 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 8 parameters and only 13% schema description coverage, the description needed to explain `kind`, `subreddit`, `title`, `url` vs `text`, `nsfw`, `spoiler`, and `access_token`. It explains none of them, and in particular never clarifies that `url` is used for `kind=link` and `text` for `kind=self`, which is the single most important semantic 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 gives a verb plus a resource ("Create a Reddit post"), so the basic action is unambiguous. But it is essentially an expansion of the tool name `reddit_post` and gives no detail that separates it from siblings such as `reddit_comment`, `reddit_vote`, or `reddit_subscribe` beyond the noun 'post'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus `reddit_comment`, `reddit_read`, or any other Reddit sibling, and no prerequisites (subreddit rules, auth, required token) are mentioned. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_readBRead-onlyIdempotent
Read public posts from a Reddit subreddit. OAuth is optional for public reads.
| Name | Required | Description | Default |
|---|---|---|---|
| t | No | hour, day, week, month, year, all | |
| sort | No | hot, new, top, rising | |
| after | No | ||
| limit | No | ||
| subreddit | Yes | ||
| access_token | No | Optional Reddit OAuth bearer token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful auth context ('OAuth is optional for public reads'), which is a real behavioral detail beyond annotations. It does not describe rate limits, pagination, or what 'public' excludes, so this is a moderate addition rather than rich 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 short sentences with no filler. The main purpose is front-loaded, followed immediately by the only auth caveat. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter read tool with no output schema and only 50% schema description coverage, the description leaves important gaps: pagination via 'after', 'limit' behavior, default sorting, and time-window semantics are unexplained. An agent can attempt a basic call, but cannot confidently use the full parameter set from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: t, sort, and access_token have descriptions, but after, limit, and subreddit do not. The description only indirectly references subreddit and access_token, and says nothing about after, limit, sorting, or time filtering. It does not compensate for the 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 states a specific verb and resource: 'Read public posts from a Reddit subreddit.' That is clear and actionable. It does not explicitly distinguish this listing read from sibling tools like reddit_search or reddit_thread, 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 phrase 'Read public posts from a Reddit subreddit' implies the basic use case, and 'OAuth is optional for public reads' clarifies an auth prerequisite. However, there is no explicit guidance on when to use this tool versus reddit_search, reddit_thread, or reddit_user, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_searchBRead-onlyIdempotent
Search public Reddit posts. OAuth is optional for public reads.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query alias | |
| t | No | hour, day, week, month, year, all | |
| sort | No | relevance, hot, top, new, or comments | |
| after | No | ||
| limit | No | Results to return | |
| query | No | Search query | |
| subreddit | No | Limit to a subreddit | |
| access_token | No | Optional Reddit OAuth bearer token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description's one real contribution is that OAuth is optional for public reads, which is useful auth context but leaves the relationship between the q and query parameters and any rate-limit behavior unaddressed.
Agents need to know what a tool does to the 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 the core purpose front-loaded and no padding. It is efficient, though arguably too terse for an 8-parameter 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 tool with 8 optional parameters and no output schema, the description says nothing about pagination via after/limit, time filtering, sort options, or subreddit scoping. It is under-specified for an agent trying to construct a useful query without reading the whole 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 88%, so the schema already documents time range, sort, subreddit, limit, after and access_token. The description adds no parameter meaning, and in particular does not clarify the duplicate q/query aliases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("Search public Reddit posts"), which cleanly separates it from reddit_read, reddit_post, reddit_comment and other Reddit siblings. It does not explicitly say how it differs from reddit_read, but the search framing 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?
No statement of when to use this versus reddit_read or reddit_thread, and no exclusions. The only directive is that OAuth is optional for public reads, which is about auth, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_subscribeC
Subscribe to or unsubscribe from a Reddit subreddit.
| Name | Required | Description | Default |
|---|---|---|---|
| sr | No | Subreddit name alias | |
| action | Yes | sub or unsub | |
| subreddit | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool can both add and remove a subscription, which is the key trait, but says nothing about authentication requirements, idempotency, or whether unsubscribing is reversible. For an account-mutating tool this is a significant 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?
A single front-loaded sentence with no filler and the resource stated immediately. It is efficient, though its brevity is part of why other dimensions are underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, no annotations, no output schema, and a duplicated subreddit concept in the schema, the description is too thin for an agent to call it confidently. It should clarify which identifier to use and note the auth requirement.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%: sr and action are documented, while subreddit and access_token are not. Critically, the description does not resolve the ambiguity of having two separate subreddit-identifying parameters (sr as an alias vs subreddit), which is exactly the kind of clarification prose should add 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 pair (subscribe/unsubscribe) and resource (Reddit subreddit), making it clearly distinct from siblings such as reddit_read, reddit_vote, and reddit_post. It is clear but does not explicitly contrast itself with any alternative 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?
There is no guidance on when to use this versus reddit_vote or reddit_read, no mention that it requires an authenticated user, and no statement about what happens on repeat calls. The only usage information is implied by the tool name and the enum.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_threadC
Read a public Reddit thread, including the post and comments.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Thread id when url is not supplied | |
| url | No | Full Reddit thread URL | |
| sort | No | ||
| limit | No | ||
| subreddit | No | Subreddit name when url is not supplied | |
| access_token | No | Optional Reddit OAuth bearer token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries full behavioral burden. 'Public' weakly hints at auth, yet the schema exposes an access_token param, leaving the auth model ambiguous. Nothing is said about rate limits, pagination (the limit param), or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no waste and the core action front-loaded. It is efficient but arguably too terse given the tool's six parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 six optional parameters, no annotations, and no output schema, the description should explain how to identify the thread and what sort/limit do. Instead it offers one generic sentence, leaving the agent to infer addressing and pagination from an incomplete 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 only 67%: sort and limit have no schema description and the description adds nothing about them. It also does not clarify the id/url/subreddit alternative addressing scheme, so it fails to compensate for the coverage 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?
Clear verb+resource: 'Read a public Reddit thread' and it specifies the payload ('post and comments'). However, it does not distinguish this from close siblings like reddit_read or reddit_post, so an agent cannot tell which to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternative named. Given siblings reddit_read, reddit_post, reddit_comment, and reddit_search in the same family, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_userBRead-onlyIdempotent
Get a public Reddit user profile and recent activity. OAuth is optional for public reads.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| username | Yes | ||
| access_token | No | Optional Reddit OAuth bearer token | |
| include_posts | No | ||
| include_comments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds useful auth context that OAuth is optional for public reads, but it does not explain rate limits, what happens with private profiles, or how recent activity is bounded.
Agents need to know what a tool does to the world before calling 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 main purpose, and contains no filler. Both sentences provide relevant information about the operation and auth requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter tool with no output schema, the description is only minimally complete. It identifies the operation and auth option, but it leaves pagination, activity inclusion controls, and return behavior unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 20%, with access_token being the only parameter described in the schema. The description mentions OAuth and loosely implies recent activity, but it does not explain limit, include_posts, include_comments, or clarify username formatting, leaving most parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 public Reddit user profile and recent activity. It is clear what the tool returns at a high level, but it does not explicitly distinguish itself from siblings like reddit_read, reddit_search, or reddit_thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note that OAuth is optional for public reads gives useful auth context and implies the tool is for public profile lookups. However, it does not state when to choose this tool over reddit_read or reddit_search, nor does it mention exclusions or private-profile behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_voteC
Vote on a Reddit post or comment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| dir | Yes | 1=upvote, 0=neutral, -1=downvote | |
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose that this is a mutation requiring an access token, whether votes can be changed or removed, whether the operation is idempotent, or what the response contains. Only the basic scope (post or comment) is 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?
The description is a single, front-loaded sentence with no wasted words. However, its extreme brevity contributes to the missing behavioral and parameter context, so it is efficient but arguably underspecified rather than optimally 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 mutation tool with no annotations, no output schema, and only 33% parameter coverage, the description is too sparse. An agent lacks essential information about authentication, ID format, vote replacement behavior, and expected 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?
Schema description coverage is only 33%, and the description adds no meaning beyond what the schema states. It does not explain the expected format of 'id' (e.g., fullname like t3_ or t1_) or what 'access_token' is for, leaving key parameter ambiguity unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: voting on a Reddit post or comment. It is clearly distinct from sibling tools like reddit_read, reddit_search, or reddit_post, though it does not explicitly name alternatives or clarify how it differs from other mutation 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites such as authentication requirements, and no explanation of when not to use it. The only usage signal is the implied scope of voting on posts or comments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_taxonomy_snapshotsRefresh taxonomy snapshotsAIdempotent
Builds source-linked Memory Library taxonomy snapshots from active facts and sessions. Defaults to a dry run so workers can inspect planned snapshots before anything is written. Only pass dry_run=false after the dry-run output is safe and the job needs live write proof.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | When true, preview snapshot output without writing Library docs. | |
| max_sources | No | Maximum facts or sessions to scan. | |
| max_snapshots | No | Maximum taxonomy snapshots to build. | |
| max_sources_per_snapshot | No | Maximum source pointers per snapshot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false. The description adds real context beyond them: nothing is written by default, writes are gated behind a successful dry run, and live write should only happen when write proof is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is built, then the safe default, then the condition for going live. Every sentence carries distinct information with 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?
For a zero-required-param, mutation-capable tool with no output schema, the description covers purpose, default safety posture, and the write gate. It doesn't describe what a snapshot contains or what the dry-run output looks like, which would help an agent validate results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the dry_run default and its safety meaning, but says nothing about max_sources, max_snapshots, or max_sources_per_snapshot beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Builds") plus a distinctive resource ("source-linked Memory Library taxonomy snapshots") and names its inputs ("active facts and sessions"). An agent can identify what it produces without opening the schema, though it doesn't explicitly contrast with storage siblings like save_fact or workspace_put.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit gating rule for the critical choice: it defaults to dry run and "Only pass dry_run=false after the dry-run output is safe and the job needs live write proof." That is a clear when-to-use condition, but no alternative tools or escalation path are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex_testARead-onlyIdempotent
Test a regex pattern against text and return all matches with positions.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to test against. | |
| flags | No | Regex flags (default: g). Options: g, i, m, s. | |
| pattern | Yes | Regular expression pattern. |
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 behavior by stating the return shape ('all matches with positions'), but omits the regex engine/flavor, catastrophic-backtracking risk, and how the default 'g' flag affects results when unset.
Agents need to know what a tool does to the 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 with no filler; the core action and the return value are both stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is the only source of return-value information, and 'all matches with positions' is a thin sketch. For a regex tool, the engine flavor and empty-match/no-match behavior are the details an agent most needs and they are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already documents pattern, text, and flags (with the default 'g' and the valid flag options). The description adds nothing 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?
States a specific verb and resource ('Test a regex pattern against text') and even previews the return ('all matches with positions'). No sibling tool offers regex matching, so ambiguity is low, but the description does not explicitly differentiate from adjacent string-search tools like rabin_karp_search or kmp_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?
Usage is implied by the name and description — an agent can infer this is the tool for regex evaluation. However, there is no statement of when to use it versus a literal-substring tool, and no note about invalid-pattern handling or error behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regression_fitB
Fit a linear regression (y = mx + b) to x/y data points, returns slope, intercept, R-squared.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Array of x values (numbers). | |
| y | Yes | Array of y values (numbers). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states the model and the three returned values, which is useful, but it omits input constraints such as equal-length arrays, minimum data points, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the operation, the model, and the outputs 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 pure-function tool with a rich input schema and no output schema, the description covers the essential purpose and return values. It could mention equal-length array requirements or edge cases, but it is largely 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 coverage is 100%, so the input schema already documents both parameters. The description does not add any syntax, format, or constraint details beyond what the schema provides, making 3 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?
States a specific verb and resource ('Fit a linear regression') plus the formula and returned values. It is clear what the tool does, but it does not explicitly differentiate itself from potentially related siblings like slope_intercept or correlation_calc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, no prerequisites, and no conditions for use. It only describes the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_claimRelease a stale Boardroom claimAIdempotent
Safely releases a stale open Boardroom todo from its current assignee so another worker can claim it. The server refuses fresh owners, protected human/manual work, in-progress work, unassigned work, capped reclaim attempts, and rows that changed during release. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| todo_id | Yes | UUID of the stale open todo claim to release | |
| agent_id | Yes | Stable identifier for the calling agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a non-read-only, idempotent, non-destructive, closed-world operation. The description adds substantial behavioral context beyond those hints: it explains the safe-release purpose and enumerates several server-side refusal conditions, including concurrency-related rejection when rows changed during release.
Agents need to know what a tool does to the world before calling 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 and compact: the first sentence states purpose, and the second enumerates refusal conditions. The only minor redundancy is 'agent_id required', which is already enforced by 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 an idempotent, non-destructive mutation with full schema coverage and helpful annotations, the description covers purpose and key failure conditions. It does not describe the success response, but no output schema exists and the annotations already carry the main safety profile, so 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%, and both parameters are already documented as the todo UUID and stable agent identifier. The description only repeats that agent_id is required and does not add format, syntax, or 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: releasing a stale open Boardroom todo claim from its current assignee. The scope is clear enough that an agent can distinguish this from generic todo mutation or lane-release 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?
It gives a clear use condition (stale open Boardroom todo) and explicitly lists when the server refuses the operation, including fresh owners, protected/manual work, in-progress work, unassigned work, capped reclaims, and concurrent row changes. It does not name sibling alternatives such as claim_lane or drop_todo, so it falls short of full when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_laneRelease an Operations laneAIdempotent
Give up your claim on a lane. Do this when you stop working it rather than letting the 48-hour stale timer do it for you - a lane that reads held when nobody is on it is worse than one that reads free.
| Name | Required | Description | Default |
|---|---|---|---|
| lane | Yes | Ref (AP-01) or lane id (boardroom). | |
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read, non-destructive, idempotent mutation. The description adds meaningful context beyond that: the 48-hour stale-timer alternative and the reason a stale 'held' state is harmful. It does not describe error behavior or permissions, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the action front-loaded and the rationale second. The final clause is colorful but does reinforce the motivation, so it mostly 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 mutation whose safety profile is covered by annotations and which has no output schema, the description supplies purpose, timing, and rationale. It leaves only minor gaps, such as permission requirements and behavior when no claim exists.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%; the lane parameter is documented as accepting a ref or lane id, but agent_id is undocumented. The description implies agent_id identifies the claimant giving up the lane, but it does not add format or edge-case semantics beyond that implication.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Give up your claim on a lane') that clearly identifies the operation. It is distinct from siblings such as claim_lane, update_lane, and list_lanes, so an agent can select it 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?
Explicitly frames the condition for use: when you stop working a lane, rather than waiting for the 48-hour stale timer. It also conveys the negative consequence of not using it, which is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_get_serviceC
Get details for a specific Render service.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| service_id | Yes | Render service ID (srv-...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'Get details' without specifying what details are returned, whether it is read-only, or any auth or rate limit requirements. The behavioral traits of the tool are entirely opaque.
Agents need to know what a tool does to the world before calling 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 with no wasted words. It is concise, but it could benefit from additional detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what 'details' are returned. It does not mention response fields, pagination, or any side effects. Given the low complexity, the description is insufficient for an agent to fully understand the tool's 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 50% (only `service_id` has a description in the schema). The tool description adds no extra meaning for either parameter. The `api_key` parameter is not explained at all, and the description does not clarify the format or source of `service_id` 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 states 'Get details for a specific Render service,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like `render_list_services` by implying a single service lookup through the use of a service 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?
No guidance is provided on when to use this tool versus alternatives like `render_list_services` or `render_trigger_deploy`. The description lacks any context about prerequisites, such as needing a service ID, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_list_deploysC
List deploys for a Render service.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No | ||
| service_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states 'List deploys.' It omits critical details such as read-only nature, authentication requirements, rate limits, pagination, or error handling, failing to adequately inform the agent.
Agents need to know what a tool does to the world before calling 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, which is concise but overly minimal. It earns a 3 because while it is not verbose, it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters and no output schema or annotations, the description is severely incomplete. It fails to specify return value format, pagination, or any usage context, making it inadequate for informed tool 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 0%, and the tool description does not explain any of the three parameters (api_key, service_id, limit). The description must compensate for the low coverage but does not, leaving parameter semantics entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List' and the resource 'deploys for a Render service.' It effectively communicates the tool's purpose but does not differentiate it from sibling tools like render_list_services or render_trigger_deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclusions, leaving the agent without sufficient direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_list_env_varsC
List environment variables for a Render service.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| service_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavioral traits. It states that the tool lists environment variables, implying a read operation, but does not mention whether values are shown, if any authentication is required (api_key hint), or if there are any limitations or side effects. This leaves key gaps for an agent.
Agents need to know what a tool does to the world before calling 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 concise sentence, which is efficient. However, its brevity comes at the cost of completeness; a slightly longer but still concise description could include parameter or usage hints. It scores well for structure but not perfectly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters with zero schema descriptions, no annotations, and siblings with overlapping contexts, the description fails to be complete. It does not clarify what the list returns, how parameters are used, or any constraints, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should explain parameter meaning. It does not mention api_key or service_id at all. The agent receives no context beyond the schema field names, which is insufficient 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 'List environment variables for a Render service.' clearly states the verb (List) and the resource (environment variables for a Render service). This distinguishes it from sibling tools like render_list_services or render_set_env_var, which have 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?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as render_get_service (which might include environment variables) or render_set_env_var (for modifying). It also lacks prerequisites like needing a valid service_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_list_servicesB
List all Render services (web services, static sites, cron jobs, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by type: web_service, static_site, background_worker, cron_job, private_service | |
| limit | No | Max results (default 20) | |
| cursor | No | ||
| api_key | No | Render API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the purpose but does not mention that it reads data, requires an API key (listed in schema), supports pagination via limit and cursor, or that results may be filtered by type. These omissions reduce 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 a single, efficient sentence that immediately communicates the tool's primary action and scope. No extraneous words or information, achieving high conciseness with strong front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters and no output schema or annotations, the description omits details about pagination, filtering, authentication, and return format. Given the complexity, it fails to provide sufficient guidance 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 75% (3 of 4 params described). The tool description adds no additional meaning for any parameter, and the undocumented 'cursor' parameter is not clarified. The description does not compensate for the missing schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List' and the resource 'Render services', with examples of service types like 'web services, static sites, cron jobs, etc.'. This distinguishes it from sibling tools like render_get_service (single service) and render_list_deploys (deploys), making 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?
No guidance is provided on when to use this tool versus alternatives such as render_get_service for specific services. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer context from other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_set_env_varC
Set an environment variable on a Render service.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Environment variable name | |
| value | Yes | Environment variable value | |
| api_key | No | ||
| service_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks behavioral details such as side effects (e.g., does setting a variable trigger a redeploy?), overwrite behavior, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise but too brief for a tool with four parameters, sacrificing necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing output schema and annotations, and the description does not cover return values, error cases, or prerequisites. The tool is not fully contextualized among Render 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 50% (key and value have descriptions, api_key and service_id do not). The description adds no extra meaning beyond the schema; it does not explain api_key or service_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set an environment variable on a Render service' clearly states the verb (set) and resource (environment variable), and it is distinct from sibling tools like render_list_env_vars which list variables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives (e.g., render_list_env_vars for viewing, render_trigger_deploy for deploying). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_trigger_deployC
Trigger a new deploy for a Render service.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| service_id | Yes | ||
| clear_cache | No | Clear build cache before deploying |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It provides none: no mention of whether the deploy is asynchronous, if it returns immediately, side effects, or required permissions. The agent receives no insight into what happens after triggering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short—a single sentence that only states the basic purpose. It sacrifices helpful detail for brevity. While concise, it is under-specified and could easily include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity of triggering a deploy (often involves async operations, potential errors, build processes) and the lack of output schema or detailed schema, the description is severely incomplete. It does not explain return values, error cases, or what constitutes a successful trigger.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no meaning beyond the schema. It does not explain that 'api_key' may be needed for authentication, 'service_id' identifies the service, or that 'clear_cache' clears the build cache. Schema coverage is 33% with only 'clear_cache' documented; the description fails 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 clearly states the tool triggers a deploy for a Render service. The verb 'Trigger' and resource 'deploy' are specific. It distinguishes from sibling tools like 'render_list_deploys' and 'render_get_service' which are for listing or retrieving, not triggering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. It lacks context like prerequisites (e.g., a service must exist) or hints about typical use cases such as triggering after code push.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_cancel_predictionC
Cancel a running Replicate prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| api_token | Yes | ||
| prediction_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only says 'Cancel' with no details on side effects (e.g., if cancellation is immediate, if results are lost, or billing impact). Minimal 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?
Single sentence, no fluff or repetition. However, it is overly concise, omitting critical parameter and behavioral information, so it does not earn the top 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?
Simple tool with 2 required parameters and no output schema. The description lacks parameter details and return value expectations, making it incomplete for reliable 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?
Schema description coverage is 0% (api_token, prediction_id have no descriptions). The description adds no meaning to the parameters, failing to explain their purpose or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Cancel' and the resource 'running Replicate prediction,' distinguishing it from siblings like create_prediction, get_prediction, or list_predictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives (e.g., letting a prediction finish). The description does not mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_create_predictionC
Run a Replicate model by creating a prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Model input parameters as JSON object or string | |
| model | No | Model as owner/name or owner/name:version (use this OR version) | |
| stream | No | ||
| version | No | Model version ID (use this OR model) | |
| webhook | No | ||
| api_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to mention critical behavioral traits: predictions are asynchronous, require polling, may incur costs, and have rate limits. The description 'create a prediction' is too vague for a computational 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 a single sentence with no waste, but it is overly minimal. It is not structured with bullet points or sections, making it less scannable. It earns a 3 for being concise but not well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return value, the asynchronous behavior, error scenarios, or how to handle the prediction ID. A more complete description is needed for a creation tool that triggers background processing.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no parameter semantics beyond the input schema. With 50% schema description coverage, the description should compensate for undocumented parameters like webhook and stream, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Run' and clearly identifies the resource 'a Replicate model' and the action 'creating a prediction'. It distinguishes this tool from siblings like replicate_get_prediction and replicate_cancel_prediction by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives such as replicate_get_prediction for checking results. The description lacks any context about prerequisites or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_get_modelBRead-onlyIdempotent
Get details and latest version for a Replicate model.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Model owner username | |
| api_token | Yes | ||
| model_name | Yes |
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 covered. The description adds that it returns both details and the latest version, which is useful, but it does not disclose auth requirements, rate limits, or response shape 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 clear sentence with no wasted words and is front-loaded with the verb and resource. It is appropriately concise, though it is perhaps too terse to carry the needed parameter 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?
The tool is simple, with three required parameters and rich annotations, but there is no output schema and the description only vaguely says 'details and latest version.' It is minimally adequate, though an agent would benefit from clearer explanation of the required model identifier and returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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%, with api_token and model_name undocumented in the schema. The description does not explain any of the required parameters or how owner and model_name identify the target model, so it does not compensate for the coverage 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 specific verb ('Get') and resource ('details and latest version for a Replicate model'), so the core action is clear. It does not explicitly distinguish this tool from sibling model-listing or prediction tools, but the get-by-model operation is still 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?
It states what the tool does but gives no guidance on when to use it versus alternatives such as replicate_list_models or replicate_get_prediction. There are no exclusions, prerequisites, or context cues for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_get_predictionBRead-onlyIdempotent
Get the status and output of a Replicate prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| api_token | Yes | ||
| prediction_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds the useful fact that the call returns both status and output, but says nothing about polling cadence, terminal statuses, or what an expired/unknown prediction id yields.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though the brevity is part of why parameter and usage detail are absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with annotations covering safety, the description is roughly sufficient, and it does disclose that output is returned despite there being no output schema. It still leaves the caller without any indication of how to obtain or format the prediction_id, which is the main 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 0%, so neither api_token nor prediction_id is documented anywhere. The description does not explain where a prediction_id comes from or what form it takes, leaving the agent to guess at the only non-obvious 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?
States a specific verb and resource ('Get the status and output of a Replicate prediction') so the agent knows exactly what the call retrieves. It does not explicitly distinguish itself from siblings like replicate_list_predictions or replicate_cancel_prediction, but the verb/resource pairing 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 no when-to-use guidance, no prerequisites, and never names an alternative such as replicate_list_predictions or replicate_create_prediction. The agent must infer that this is the follow-up call after a prediction is created.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_list_modelsCRead-onlyIdempotent
List public models available on Replicate.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| api_token | Yes |
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 nothing beyond that: it never mentions that results are paginated via cursor, that an API token is required for auth, or how large a page is — all behaviorally relevant for this call.
Agents need to know what a tool does to the 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 with no filler. It is terse to the point of leaving gaps, but nothing written is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, no parameter documentation, and no mention of pagination or result shape. For a listing endpoint driven by an opaque cursor, the description should at minimum note that repeated calls with the returned cursor enumerate the 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 0%: neither api_token nor cursor carries any schema text. The description does not compensate — it never explains that cursor is a pagination token for fetching subsequent pages, nor what api_token permissions are needed. This is the weakest area for a 2-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?
States a specific verb ('List') and resource ('public models available on Replicate'), so an agent knows exactly what it returns. It does not distinguish itself from related siblings such as replicate_get_model or the several other *_list_models tools in the catalog, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus replicate_get_model (which fetches a specific model's details) or how it relates to replicate_create_prediction. The 'public' qualifier hints at scope but no exclusion or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replicate_list_predictionsBRead-onlyIdempotent
List recent predictions for a Replicate account.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| api_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety behavior is covered. The description adds useful scoping with 'recent' and 'for a Replicate account,' but it does not explain pagination, rate limits, or what the token authorizes. With annotations carrying the main behavioral burden, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant or wasted wording. It immediately communicates the operation and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and both parameters lack descriptions in the schema, so the description carries more burden. It does not explain the required api_token, the optional cursor, pagination behavior, or what a prediction listing contains. It is therefore too thin for an agent to invoke confidently beyond the basic intent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. The phrase 'for a Replicate account' weakly implies that api_token identifies the account, but cursor is completely undocumented, leaving pagination behavior unclear. For a low-coverage schema, the description should compensate more than this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 recent predictions.' The scope is further narrowed to a Replicate account, making the operation clear. It does not explicitly name siblings such as replicate_get_prediction or replicate_list_models, 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 no explicit guidance on when to use this tool versus alternatives like replicate_get_prediction, replicate_create_prediction, or replicate_cancel_prediction. The listing intent is implied by 'List recent predictions,' but no conditions, exclusions, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reqres_get_userARead-onlyIdempotent
Get a specific fake user by ID from Reqres.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID (1-12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds only that the data is fake/mock (Reqres), with no detail on error behavior for out-of-range IDs or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb, resource, and lookup key. 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?
A simple one-parameter read tool with full schema coverage and complete safety annotations. The only mild gap is no hint at the returned fields (name, email, avatar), but with no output schema that is a minor 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 documents id as 'User ID (1-12)'. The description adds nothing beyond that (no behavior for invalid or missing IDs), so the schema does the heavy lifting 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?
States a specific verb (get), resource (user), selector (by ID), and source (Reqres). It implicitly distinguishes from reqres_list_users by emphasizing a single specific user, though it never names the 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?
'Get a specific fake user by ID' implies usage when you have an ID and want one record, versus the listing sibling. But no explicit when-to-use, prerequisites, or alternative routing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reqres_list_resourcesBRead-onlyIdempotent
List fake color resources from Reqres (test API).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) |
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 the data is fake/test data, which is genuinely useful context an agent couldn't get from annotations, but says nothing about pagination behavior or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant restatement of the tool name, title, or annotation-covered traits. Nothing 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 simple one-parameter list tool with a fully described schema and safety annotations, the description is adequate. However, with no output schema and no mention of paging/response shape, an agent lacks a clear picture of what comes back or how to iterate pages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 optional 'page' parameter, so the schema already does the work. The description adds no additional syntax or paging semantics beyond what the schema states, which is the correct 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?
States a specific verb ('List') and resource ('fake color resources') and names the source API (Reqres) so it is distinguishable from the reqres_list_users / reqres_get_user siblings. It is clear, though it doesn't explicitly contrast with 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?
No when-to-use guidance, no mention of alternatives, and no preconditions. The parenthetical '(test API)' hints at a testing context but no explicit selection guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reqres_list_usersBRead-onlyIdempotent
List fake users from Reqres (test API).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and open-world behavior. The description adds useful context that the users are fake and the API is a test API, but it does not mention pagination behavior or return shape, so it adds only modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It communicates the action, resource, and data authenticity immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, fully documented parameter and rich annotations, the description is nearly complete. It could mention that results are paginated, but that is a minor gap given the simple schema and lack 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%, with the single 'page' parameter fully documented as 'Page number (default 1)'. The description adds no additional parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List fake users') and identifies the data source ('Reqres (test API)'), so the agent knows exactly what is returned. It does not differentiate from siblings such as reqres_get_user or reqres_list_resources, 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 gives no explicit guidance on when to use this tool versus alternatives like reqres_get_user or reqres_list_resources. Usage is only implied by the verb 'List' and the plural resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resend_get_emailBRead-onlyIdempotent
Get a sent email by ID from Resend.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| email_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered structurally. The word 'sent' usefully narrows scope to outbound messages, but the description says nothing about authentication via api_key, rate limits, or whether the email must still 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?
A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity is the source of the gaps flagged in other dimensions rather than a model of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-by-id tool with full annotation coverage and no output schema, the description is minimally viable. However, with two entirely undocumented parameters (including a credential), it leaves real ambiguity an agent cannot resolve from structured fields alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across two parameters. 'By ID' loosely maps to email_id, but api_key is completely undocumented in both schema and description, leaving the agent to guess that it is a credential rather than a filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get'), resource ('sent email'), lookup key ('by ID') and provider ('Resend'). It does not differentiate from sibling email retrieval tools (email_get, gmail_read, resend_send_email) beyond the provider name, 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?
There is no statement of when to use this versus resend_send_email or the many other email-read siblings, and no prerequisites or exclusions are given. The agent must infer usage 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.
resend_list_domainsCRead-onlyIdempotent
List domains configured in Resend.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
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 by structured data. The description adds nothing beyond annotations — no mention of pagination, result ordering, authorization scope of the API key, or what the listing contains.
Agents need to know what a tool does to the 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 with zero filler. It is not padded, though it is terse enough that the brevity reflects under-specification rather than discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 this covers the minimum: what is listed and where. However, with no output schema, the description could reasonably say what fields a domain record contains or whether results are paginated, and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole parameter (api_key) is undocumented in both the schema and the description. An agent gets no signal about whether the key is required, how it is passed, or what happens without it, so the description fails to compensate for the coverage 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?
States a specific verb and resource (list domains) scoped to the Resend provider, so it is distinguishable from resend_send_email and resend_get_email. It stops short of explicitly differentiating itself from other list-style siblings, but an agent can identify the operation from the name plus description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to call this tool versus alternatives, no prerequisites, and no note about when a domain listing would be needed. A single declarative sentence leaves all 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.
resend_send_emailC
Send an email using Resend.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| html | No | ||
| text | No | ||
| api_key | No | ||
| subject | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only states 'Send an email', implying a write operation, but fails to disclose authentication needs, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise but under-specified. It lacks structure and critical details, making it borderline appropriate in size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 parameters, no output schema, and no annotations, the description is vastly incomplete. It fails to cover essential behavioral context, parameter usage, or response format.
Complex tools with many parameters or behaviors need more documentation. Simple 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% and the description adds no explanation for any of the six parameters, including the difference between 'html' and 'text' or the role of 'api_key'. Schema names alone are insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Send an email' using Resend, which is a specific service. However, it does not differentiate from sibling tools like 'email_send' or 'sendgrid_send_email', missing explicit 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?
No guidance provided on when to use this tool versus other email sending tools. No context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reservoir_sampleB
Select k random items from a list with equal probability using reservoir sampling.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Number of items to sample (default 1) | |
| seed | No | Optional seed for reproducible results | |
| items | Yes | Array of items to sample from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses 'equal probability' and the reservoir-sampling algorithm, but omits edge-case behavior (e.g., k greater than list length) and any ordering/return-format 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?
A single front-loaded sentence with no filler. The purpose and mechanism are stated immediately and 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 pure, no-annotation, no-output-schema function this is roughly adequate, but it leaves edge cases (k exceeding list size) and result ordering unexplained. A bit more behavioral detail would make the definition robust.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (k, seed, items) are already documented in the schema, including the default of 1 for k and the reproducibility role of seed. The description adds no parameter 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?
The description states a specific verb ('Select') and resource ('k random items from a list') and names the underlying technique. It implicitly distinguishes itself from single-item siblings like random_pick_from_list by specifying k items, but it never explicitly contrasts with 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?
There is no guidance on when to use this tool versus alternatives, despite many siblings that overlap (random_pick_from_list, random_shuffle_list, random_number). No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_textA
Reverse text by characters, words, lines, or sentences.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode: characters, words, lines, sentences (default characters). | |
| text | Yes | Text to reverse. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, but it only discloses the four reversal modes. It does not state that the operation is a pure, deterministic, non-mutating transformation, nor what the output looks like. For a trivial pure function this is a modest gap rather than a serious one.
Agents need to know what a tool does to the 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 with no filler; the mode list is the only detail and it is directly relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure text utility with full schema coverage and no output schema needed, the definition is nearly sufficient. A brief note on return behavior or idempotence would close the remaining 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 schema already documents both parameters, including the mode values. The description restates the mode list but adds no syntax or default information beyond what the schema supplies; 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 ('Reverse') and resource ('text'), and enumerates the four supported reversal granularities, which distinguishes it from generic siblings like text_transform or string_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 no indication of when to prefer this tool over alternatives such as text_transform, nor any prerequisites. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
riot_get_matchBRead-onlyIdempotent
Get details for a specific Riot match by match ID.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | ||
| api_key | No | ||
| matchId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond the bare get operation, such as regional routing requirements, authentication expectations, or what kind of match details are 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 a single, front-loaded sentence with no wasted words. The core action and lookup key are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter Riot API lookup, the definition omits important context for region and api_key and provides no usage distinction from match-history siblings. Annotations cover safety, but the description is not complete enough to confidently invoke the tool across regions or authenticated contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It only reinforces matchId as the lookup key and says nothing about the optional region or api_key parameters, their formats, or when they are 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 names a specific verb and resource: getting details for a specific Riot match by match ID. It is clear enough to distinguish from a general match-history tool, but it does not explicitly name or contrast with sibling tools such as riot_match_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by match ID' implies the tool should be used when a specific match identifier is already known. However, it gives no explicit when-to-use guidance, prerequisites, or alternatives such as riot_match_history for listing matches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
riot_match_historyCRead-onlyIdempotent
Get match history for a LoL/Riot account by PUUID.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| puuid | Yes | ||
| region | No | ||
| api_key | No |
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 only that lookup is by PUUID and does not mention pagination, ordering, rate limits, region behavior, or what happens when the account has no matches.
Agents need to know what a tool does to the world before calling 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. Its brevity is efficient, even though the content itself is underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, zero-schema-description tool with no output schema, one sentence is not enough. Count, region, api_key, pagination, and return shape are all unexplained, so the description does not give enough context for reliable 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 0% across four parameters. The description explains only that puuid identifies the account, while count, region, and api_key are left entirely undocumented; an agent cannot tell what count controls, how region should be formatted, or whether api_key is required or optional.
Input schemas describe structure but not intent. Descriptions should explain 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 match history" for a "LoL/Riot account by PUUID." This is clear enough to distinguish it from riot_get_match (single match) and riot_ranked, though the description does not explicitly name those siblings or clarify the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 "by PUUID" but gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent must infer whether this is for recent matches, paginated history, or a specific match list compared with riot_get_match.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
riot_rankedC
Get ranked stats for a League of Legends summoner.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | ||
| api_key | No | ||
| summonerId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'get ranked stats' without explaining the return format, authentication (api_key field present but not mentioned), rate limits, or data freshness. This is insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling 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 (one sentence, 8 words) but is under-specified. It effectively communicates the tool's core purpose without unnecessary words, but it lacks critical details that would justify a higher score for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is minimal. It does not explain what ranked stats include, how to interpret the region parameter, or the purpose of api_key. The absence of output schema increases the need for description completeness, which is unmet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description adds no meaning to any of the 3 parameters (summonerId, region, api_key). Even the required parameter summonerId is unexplained. The description fails entirely to clarify parameter roles or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get ranked stats for a League of Legends summoner' clearly states the action (get) and the resource (ranked stats) with the context (League of Legends summoner). It distinguishes from sibling tools like riot_get_match or riot_summoner, 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?
No guidance is provided on when to use this tool versus alternatives, prerequisites (e.g., needing a summoner ID from riot_summoner), or context like what region values are accepted. The description lacks any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
riot_summonerC
Get a League of Legends summoner by name.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | e.g. euw1, na1, kr | |
| api_key | No | ||
| summonerName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It fails to mention authentication requirements (e.g., api_key is used, though not required in schema), rate limits, or what happens if the summoner is not found. This lack of disclosure limits safe invocation.
Agents need to know what a tool does to the world before calling 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, which is concise but too brief to provide useful information beyond the name. It does not earn its place as it fails to add value over the tool name itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of output schema and low schema coverage, the description should compensate but does not. It omits critical details like required authentication, expected return format, and error handling, making it incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. 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 only 33% description coverage (only region has an example). The description adds no further meaning beyond 'by name', leaving summonerName format, region naming conventions, and api_key usage undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource 'League of Legends summoner', indicating the tool's purpose. It is distinct from sibling tools like riot_get_match or riot_ranked, but the description does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like riot_match_history or if any prerequisites or exclusions exist. The agent receives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
riot_valorant_accountCRead-onlyIdempotent
Get a Valorant account by game name and tag line.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| tagLine | Yes | ||
| gameName | Yes |
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 nothing beyond that: it does not say the call requires an api_key credential, what happens for an unknown gameName/tagLine, or how rate limits or regions affect 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?
A single front-loaded sentence with no filler; it is tight, though tightness here partly reflects under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with zero schema description coverage and no output schema, the definition says too little: the auth parameter, the shape of the returned account (rank, level, region?), and error behavior for missing accounts are all unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries real weight. It does explain that gameName and tagLine jointly identify the account, which is genuinely useful, but the third parameter api_key is never mentioned, leaving its role undocumented in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain 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 a Valorant account) plus the identifier pair used to look it up. It is distinguishable from siblings like riot_summoner or riot_match_history, though the description never names those siblings to reinforce the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus the other Riot tools in the sibling set (riot_summoner, riot_ranked, riot_match_history), nor any prerequisite or failure context. The agent must infer everything about selection 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.
ripe_asn_neighboursBRead-onlyIdempotent
Get peering neighbours for an ASN from RIPE NCC.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | ASN (e.g. AS13335). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds only the upstream source (RIPE NCC); it says nothing about what 'neighbours' means (upstreams vs peers), freshness of data, or whether results can be empty.
Agents need to know what a tool does to the 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 with no filler; the resource and source are both stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations covering return shape, the description gives no hint of what a neighbour record contains or how it is structured. For a lookup tool whose result is the whole point, this is a meaningful gap, though the source attribution helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage ('ASN (e.g. AS13335)'), so the schema carries the burden. The description adds no format guidance, normalization rules (AS prefix required?), or validation behavior, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Get peering neighbours for an ASN') plus the data source (RIPE NCC), so the operation is unambiguous. It does not, however, differentiate itself from close siblings like bgpview_asn_prefixes or ripe_network_info, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus the other ASN/network tools in the set, and no prerequisites or exclusions. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ripe_network_infoBRead-onlyIdempotent
Get network information for an IP or prefix from RIPE NCC.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | IP address or prefix. |
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 source registry (RIPE NCC) and open-world hint is also annotated. However it does not say what fields 'network information' returns (ASN, netblock, org, abuse contact), leaving the payload opaque.
Agents need to know what a tool does to the 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 with no filler. It is efficient but leaves near-zero room for behavioral context, which is a slightly missed opportunity given the vague 'network information' payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool with rich annotations and full schema coverage, the definition is minimally viable but underspecified on output: with no output schema, the description should hint at what 'network information' contains (ASN, prefix, holder, contacts) 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?
With one required parameter and 100% schema description coverage, the schema already documents 'resource' as an IP address or prefix. The description reinforces the accepted inputs but adds no format examples or CIDR syntax detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (network information) and names the data source (RIPE NCC), which distinguishes it from generic IP lookups like ipinfo_lookup or ip_address_lookup. It does not explicitly differentiate from close siblings such as rdap_ip or bgpview_ip, but the RIPE-specific framing is 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?
Use is implied by the resource type (an IP or prefix), but there is no explicit when-to-use guidance or exclusion of alternatives like rdap_ip, bgpview_ip, or ripe_asn_neighbours. An agent must infer the choice 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.
rle_encode_decodeB
Run-length encode a numeric array into runs, or decode runs back to a numeric array.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Numeric array to encode | |
| runs | No | Runs to decode | |
| operation | Yes | Operation (default encode) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does state the core transformation: encoding returns runs and decoding returns a numeric array. However, it omits edge conditions, conditional input requirements, and error behavior, so it is adequate but incomplete.
Agents need to know what a tool does to the world before calling 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 covers both supported operations without any filler. It is appropriately sized and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and full schema description coverage, the description is nearly complete. It qualitatively explains both return directions, but it does not mention conditional parameter requirements or error handling, and no output schema exists to supplement 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 the data, runs, and operation parameters. The description adds only a high-level restatement of what data and runs are used for, not 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 and resource: run-length encode a numeric array into runs or decode runs back to a numeric array. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as rl_encode or runlength_process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 say when to use this tool instead of alternatives, nor does it provide conditions or exclusions. It only describes the two supported operations, leaving usage context 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.
rl_encodeB
Run-length encode or decode a string.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string to encode or RLE-encoded string to decode | |
| decode | No | If true, decode RLE input (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the basic operation but does not describe side effects, determinism, error handling, output format, or any other behavioral trait beyond what the name 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 a single well-formed sentence with zero waste, and the operation is front-loaded. For a simple utility tool, this is 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?
The tool is simple with a complete input schema and no output schema. The description covers the core operation but is minimal and does not specify the return type or format, leaving a small gap for an agent to infer the output of encode/decode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents both parameters fully. The description adds no parameter semantics beyond the vague phrase 'or decode', so it does not enrich what the schema provides; 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 operation (run-length encode or decode) on a specific resource (string), so the agent can understand what the tool does. However, it does not distinguish this tool from siblings such as rle_encode_decode or runlength_process, which appear to serve similar 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 gives no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It only states the operation, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rmq_sparseB
Build a sparse table for O(1) range minimum/maximum queries.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "min" or "max" (default min) | |
| values | Yes | Input array | |
| queries | Yes | Array of [left, right] pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says what the tool builds but does not disclose whether it returns a data structure, executes queries, or returns results, nor does it mention performance characteristics beyond O(1) queries, memory usage, or any side effects. It is silent on the output and operational 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?
One sentence, front-loaded with the core action and the key benefit. No wasted words and it efficiently conveys the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and the description does not explain what the tool returns or how the built table is used. For a tool that likely returns a data structure or query results, omitting the return behavior and any usage constraints leaves significant gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all three parameters including the mode default and the format of queries. The description adds no syntax or format details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Build') and resource ('sparse table') and names the exact purpose: O(1) range minimum/maximum queries. It clearly conveys what the tool does, distinguishing it from generic array tools. No sibling differentiation is needed here because there is no close alternative among 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 the tool is used for range min/max queries, but it doesn't state when to choose it over other possible approaches (e.g., segment trees, prefix arrays) or mention prerequisites or input constraints. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
robohash_urlB
Generate a unique robot/monster/cat avatar from any text.
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | Background: bg1 or bg2 | |
| set | No | Style: set1 (robots), set2 (monsters), set3 (heads), set4 (cats), set5 (humans) | |
| size | No | Size in pixels (default 300) | |
| text | No | Text seed for the avatar (default robot) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It conveys determinism ('unique ... from any text'), implying the text acts as a stable seed, which is genuinely useful context. It omits that this returns a URL rather than image bytes and says nothing about auth, rate limits, or default behavior when text is omitted.
Agents need to know what a tool does to the 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 with no filler, which is appropriate for a simple generation tool. It is perhaps under-specified rather than over-long, but structure itself is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-optional-parameter image tool with full schema coverage and no output schema, the description is minimally adequate. It does not state that the result is a URL, nor the default seed ('robot') or default size, leaving the agent to read the schema for essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 adds nothing about the bg, set, size, or text parameters beyond what the schema already documents, and it does not even enumerate the style options the schema lists.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Generate') and resource ('avatar') with the text-seed mechanism, which is clearer than most sibling image tools. However, it names only three of the five styles available in the schema (robots/monsters/cat, omitting heads/humans) and does not distinguish itself from siblings like avatar_url or multiavatar_generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance is given. The description does not tell the agent how to pick between this, avatar_url, multiavatar_generate, or the placeholder image tools, all of which generate images from inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roman_convertBRead-onlyIdempotent
Convert between Roman numerals and decimal numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Integer 1-3999 or Roman numeral string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is clear. The description adds little beyond that: it does not state how direction is inferred, what happens for invalid inputs, or what the return format looks like, which are useful behavioral details for a conversion 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 a single, front-loaded sentence with no wasted words. It states the action and the two domains 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, single-parameter tool with no output schema, the description plus schema is minimally sufficient. Still, it omits useful context such as whether direction is auto-detected, valid Roman numeral format expectations, or error behavior for out-of-range inputs, leaving some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 single 'value' parameter as 'Integer 1-3999 or Roman numeral string.' The description does not add any syntax, detection rules, or format details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Convert') and both resource directions ('Roman numerals and decimal numbers'), so the tool's basic purpose is clear. However, it does not distinguish this tool from the many other conversion siblings such as number_base_convert or temperature_convert, leaving the agent to infer the exact 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?
There is no explicit guidance on when to use this tool versus alternatives, nor any stated prerequisites or exclusions. The agent must infer from the name and the parameter description that this is for Roman numeral/decimal conversions only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
root_findBRead-onlyIdempotent
Find roots of a math expression using Newton's method or bisection.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | Left bound (bisection). | |
| b | No | Right bound (bisection). | |
| x0 | No | Initial guess (Newton, default 1). | |
| method | No | Method: newton (default) or bisection. | |
| tolerance | No | Convergence tolerance (default 1e-10). | |
| expression | Yes | Math expression in x (e.g. 'x^2 - 4'). | |
| max_iterations | No | Max iterations (default 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, non-destructive, and open-world. The description adds little behavioral context beyond restating the method options already present in the schema; it does not mention convergence behavior, failure modes, derivative requirements, or the nature of the returned root.
Agents need to know what a tool does to the world before calling 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 extraneous words. It is concise, though its terseness leaves important usage and behavioral details unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 seven parameters and no output schema, the description is minimally adequate but incomplete. The schema and annotations cover parameter definitions and safety, but the description does not explain return semantics, convergence, or method-specific requirements that an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 in the schema. The description adds no additional meaning about parameter relationships or formats beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Find roots of a math expression') and names the supported algorithms. It is clear enough to distinguish from siblings like nth_root, though it does not explicitly contrast itself with 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 names Newton's method and bisection, giving implied usage scenarios, but it does not explain when to choose one over the other or the prerequisites for each (e.g., bounds for bisection, initial guess for Newton).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rot13_convertB
Apply ROT13 (or ROT-N) cipher to text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to encode/decode. | |
| shift | No | Rotation amount (default 13). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the operation is reversible, how non-alphabetic characters are handled, whether case is preserved, or what the output looks like. It only names the cipher, leaving key behavioral traits implicit.
Agents need to know what a tool does to the 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 wastes no words. It efficiently communicates the core operation without unnecessary 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, deterministic transformation tool with a fully described schema, the description is largely complete. It lacks any note on output format, but the operation's nature makes the return value self-evident, so the 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 description coverage is 100%, so both parameters are already documented in the schema. The description's mention of 'ROT-N' adds minor clarification that the shift parameter allows arbitrary rotation values, but this is already conveyed by the schema's 'Rotation amount (default 13)'. 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 operation ('Apply ROT13 cipher to text') and names the exact algorithm, making it distinguishable from sibling cipher tools like atbash_process or vigenere_process. However, it does not explicitly differentiate itself from alternatives or describe the resource beyond '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 no guidance on when to use this tool versus other encoding or cipher tools. It merely states what the tool does, with no conditions, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runlength_processB
Run-length encode or decode text (e.g. aaabbb to 3a3b).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to encode or encoded text to decode. | |
| decode | No | Decode instead of encode (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the encode/decode modes and gives an encoding example, but does not describe edge cases, whitespace handling, default behavior, or output format beyond the example.
Agents need to know what a tool does to the 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 with a useful inline example. It is front-loaded, waste-free, and appropriately sized for a simple transformation 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 pure text transformation with complete schema coverage, the description gives enough context to call the tool correctly. It lacks a decode example and any output-format notes, but the schema covers the input 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 description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no parameter-level detail beyond what the schema provides, which is the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation (run-length encode/decode) and resource (text), with a concrete example. It does not distinguish itself from similar sibling tools such as rle_encode_decode or rl_encode, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the encode/decode operation but provides no when-to-use guidance, no alternatives, and no conditions for choosing this tool over similar siblings. There is no explicit exclusion or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
running_statsARead-onlyIdempotent
Compute running (sliding window) mean, standard deviation, min, and max over a numeric array.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Numeric data array | |
| window | No | Window size (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered and the description need only add context. It clarifies the computed statistics but says nothing about the output shape (one result per position? n-window+1 rows?) or edge behavior such as a window larger than the data array — a real gap given 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?
A single efficient sentence that front-loads the operation and enumerates exactly which statistics are produced. Nothing extraneous, nothing under-specified at the sentence level.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure-computation tool with no output schema, the description should at minimum convey the shape of the result and how boundaries are handled. Those are missing; what is present is accurate and sufficient to know what is computed but not 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?
Schema description coverage is 100% and documents both 'data' and 'window' with the default of 5. The description adds only that the window is a sliding/running window, which is useful framing but no format or constraint details 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: compute running (sliding window) mean, standard deviation, min, and max over a numeric array. The 'running/sliding window' qualifier is a meaningful differentiator. However, it never names the nearby statistics siblings (descriptive_stats, statistics_calc, variance_calc), so an agent must infer the distinction itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'running (sliding window)' — compute per-window statistics rather than whole-array statistics. But there is no explicit when-to-use vs when-not guidance and no pointer to descriptive_stats for whole-series statistics, which is the closest competing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runway_generate_videoA
Generate a video from text or an image using Runway ML. Supports text-to-video and image-to-video. Returns a task_id to poll for completion.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducibility | |
| model | No | Model name: gen3a_turbo (fast) or gen3a (quality). Default: gen3a_turbo | |
| ratio | No | Aspect ratio e.g. 1280:768 or 768:1280 (default: 1280:768) | |
| prompt | No | Text description of the video to generate | |
| api_key | Yes | Runway API key | |
| duration | No | Video duration in seconds (default: 5) | |
| image_url | No | URL of an image to animate (image-to-video mode) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions async behavior (returns task_id to poll), but lacks details on rate limits, cost, or potential destruction.
Agents need to know what a tool does to the 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 fluff, front-loaded with action verb and resource. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with 7 parameters and no output schema, description is functional but lacks details on output structure, model trade-offs, and polling mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds context about modes (text-to-video vs image-to-video) but does not add meaning beyond 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?
Description clearly states it generates video from text or image using Runway ML, and mentions two modes. Platform name helps differentiate from other video tools, but no explicit 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?
States supports text-to-video and image-to-video, implying parameter usage. No explicit when-not-to-use, alternatives, or prerequisites beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runway_get_taskA
Check the status of a Runway ML generation task. Returns status, progress, and video URL when complete.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Runway API key | |
| task_id | Yes | Task ID returned by runway_generate_video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions return values but does not disclose important details such as polling frequency, error handling, rate limits, or the nature of the 'progress' field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 2 parameters and no output schema, the description provides a basic understanding of return values. However, it lacks details on response structure (e.g., format of progress, potential error states) and 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 both parameters with descriptions. The description adds no extra meaning beyond stating the tool's purpose. 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 'Check' and the resource 'status of a Runway ML generation task'. It mentions what is returned (status, progress, video URL). This distinguishes it from sibling tools like runway_generate_video and runway_list_models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 after generating a video, but it does not explicitly state when to use this tool versus alternatives (e.g., when to poll) or provide guidance on 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.
runway_list_modelsBRead-onlyIdempotent
List available Runway ML video generation models.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Runway API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds nothing about return shape, model ID format, or rate limits, so with the lower bar set by annotations, 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?
One front-loaded sentence with no waste. Appropriate for a simple list 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?
No output schema exists, so the description would ideally state what a model entry contains (id, name) since the agent needs those identifiers to call runway_generate_video. That gap is a real, if small, incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (api_key), fully documented at 100% schema coverage. The description contributes nothing about authentication expectations, so the schema 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?
A specific verb ("List") plus a scoped resource ("Runway ML video generation models"). An agent can distinguish it from runway_generate_video and runway_get_task, though the description never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives. The natural use (fetch model identifiers before calling runway_generate_video) is only inferable from the tool name, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_conversation_turnSave conversation turnA
Saves one human, assistant, system, or tool turn into UnClick conversation history so Orchestrator continuity can show and search it. Tethered seats should treat this as the primary receipt path after each accepted subscription chat human turn and after each assistant reply when the client can call tools. If this tool is unavailable, fail loud with UNTETHERED or use the documented API fallback instead of silently continuing. Use a stable session_id for the thread. Do not store secrets, API keys, passwords, one-time codes, or private credentials.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Who produced this turn | |
| content | Yes | Turn text to save, with secrets removed | |
| has_code | No | True when the turn contains code worth preserving for later context | |
| session_id | Yes | Stable thread or chat session identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=false, destructiveHint=false. The description adds valuable behavioral context beyond those: the fail-loud failure mode, the recommendation to use a stable session_id, and a prohibition on storing secrets/credentials. It does not clarify duplicate handling despite idempotentHint=false, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then usage and safety guidance. It is dense and each sentence carries weight, though the tethering/receipt-path sentence is somewhat verbose with domain-specific jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers when to call, fallback behavior, and data-safety constraints. A minor gap remains on what the save returns or how duplicates are handled, but annotations and schema cover the rest adequately.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are documented, but the description still adds meaning: it specifies that session_id must be stable for a thread and that content must have secrets removed, complementing 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 (Saves) and resource (one human, assistant, system, or tool turn into UnClick conversation history), plus the downstream purpose (Orchestrator continuity). An agent can immediately distinguish this from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to call it (after each accepted subscription chat human turn and after each assistant reply when the client can call tools) and prescribes a fallback path (fail loud with UNTETHERED or use the documented API fallback) if unavailable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_factRemember a factA
Saves a new persistent fact about the user that will be available in all future sessions across every AI tool. Use whenever the user shares anything worth keeping -- even if they don't explicitly ask: 'capture', 'noted', 'remember this', 'log', 'store', 'don't forget', or any preference, decision, correction, contact, project detail, technical choice, troubleshooting fix, or personal detail the user mentions. When the user reports a solved client/tool issue, save it as category 'troubleshooting' using the shape 'Issue: . Solution: '. Also trigger proactively when the user corrects you (save the correction immediately), reveals a preference by rejecting something, or names a person/tool/project for the first time. Do NOT trigger for transient values (today's weather, one-off calculations, temporary state that won't matter next session). Do NOT trigger for facts already confirmed stored earlier in this session.
| Name | Required | Description | Default |
|---|---|---|---|
| fact | Yes | The fact -- a single atomic statement | |
| category | No | Category: preference, decision, technical, contact, project, troubleshooting, general | general |
| pr_number | No | PR number linking this fact to a code review (for audit trail) | |
| commit_sha | No | Git commit SHA linking this fact to a code change (for audit trail) | |
| confidence | No | ||
| preserve_as_blob | No | If true, stores as a blob and extracts atomic facts via LLM instead of saving fact text directly | |
| source_session_id | No | Session ID where this fact was learned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/non-destructive/non-idempotent profile, so the description's job is to add semantics — and it does, disclosing persistence scope (all future sessions, every AI tool) and a de-duplication rule against re-saving confirmed facts. It does not explain what preserve_as_blob does behaviorally or how confidence affects storage, leaving small gaps.
Agents need to know what a tool does to the world 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 in sentence one, but the trigger-phrase list ('capture', 'noted', 'remember this', 'log', 'store', 'don't forget') and long enumeration of fact types bloat the middle without adding much decision value; the DO-NOT exclusions are more useful than the synonyms.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 write tool with no output schema, the description covers the two decision-critical things — when to fire and how to categorize — and annotations carry the safety profile. Audit-trail parameters and the blob extraction mode are left entirely to the schema, which is acceptable at 86% coverage.
Complex tools with many parameters or behaviors need more documentation. Simple 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 86%, so the baseline is 3; the description earns an extra point by prescribing category semantics for troubleshooting ('Issue: <symptom>. Solution: <fix>'), which is real guidance beyond the enum listing. It says nothing about pr_number, commit_sha, preserve_as_blob, or source_session_id, but those are largely covered by 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?
States a specific verb+resource ('Saves a new persistent fact about the user') plus the key scope property ('available in all future sessions across every AI tool'), which distinguishes it from session-scoped siblings like save_session and save_conversation_turn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Extremely explicit about when to trigger (user corrections, revealed preferences, first-time mentions of a person/tool/project) and when not to (transient values, facts already stored this session), with concrete trigger phrases enumerated. Alternative-routing is implicit but the inclusion/exclusion boundary is unusually sharp.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_identitySave my identityAIdempotent
Saves or updates a non-authoritative identity or preference proposal that loads as reference context. Use whenever the user states or updates something about themselves or how they want every session to behave: 'my name', 'my role', 'I am', 'I work at', 'my preferences', 'I always', 'from now on', 'always remember', 'my timezone', 'my stack', 'my workflow', 'call me', or any other standing rule or identity anchor. Unlike save_fact (session-scoped context), save_identity is for durable identity and preference information. It never proves human provenance and cannot authorize or govern a future session by itself. Do NOT trigger for one-time facts about a specific task or project (use save_fact instead). Do NOT trigger for information the user explicitly says is temporary.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Unique key within category (e.g. 'timezone', 'preferred_stack') | |
| value | Yes | The value to store (plain text or JSON string) | |
| category | Yes | Category: identity, preference, client, workflow, technical, standing_rule | |
| priority | No | Priority for loading order (higher = loaded first) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by stating the stored data is "non-authoritative," "loads as reference context," and "never proves human provenance and cannot authorize or govern a future session" — a real trust/authority caveat an agent would not infer from readOnlyHint=false/idempotentHint=true. It leaves the upsert-by-key semantics implied by "saves or updates" rather than stated, keeping it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage, then exclusions — the ordering is correct. The middle trigger-phrase list is long and somewhat redundant with the surrounding rules, costing some tightness, but every clause still conveys a distinct rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-destructive, idempotent write with full schema coverage and no output schema, the description covers purpose, boundaries, and authority caveats. The only meaningful gap is the absence of guidance on category selection or priority behavior across sessions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 key, value, category enum, and priority are already documented. The description's phrase lists map loosely to what belongs in an entry but add no guidance on choosing a category, priority ordering, or key naming 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?
Opens with a specific verb+resource and scope: "Saves or updates a non-authoritative identity or preference proposal that loads as reference context." It explicitly distinguishes itself from the closest sibling (save_fact) in the same paragraph, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger phrases, an explicit exclusion ("Do NOT trigger for one-time facts about a specific task or project (use save_fact instead)") and a second exclusion for user-flagged temporary information. When-to-use, when-not-to-use, and the alternative are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_sessionSave this sessionA
Saves a structured summary of the current session so the next session can resume without re-asking. Use at the end of every meaningful session -- even if the user doesn't ask: 'summary', 'wrap-up', 'end of session', 'recap', 'we're done', 'see you next time', 'close out', or whenever significant work was completed, decisions were made, or open loops exist that need carrying forward. Also trigger at natural checkpoints mid-session when a major phase completes. Include: what was accomplished, key decisions made, open loops or next steps. Do NOT trigger after trivial exchanges (single Q&A, quick lookups) with nothing worth carrying forward. Do NOT trigger if the session has already been saved with no new work done since. ALSO extract durable facts here: pass facts:[{text, kind}] with the atomic facts this session surfaced (preferences, decisions, corrections, durable project details) so memory forms in the same call even when no save_fact calls were made along the way.
| Name | Required | Description | Default |
|---|---|---|---|
| facts | No | Atomic durable facts learned this session (max 20). One clause each; skip transient status. Each lands as a normal memory fact via the write gate, linked to this session. | |
| topics | No | Topic tags for searchability | |
| summary | Yes | Narrative of what happened: decisions, work completed, problems solved | |
| platform | No | Platform this session ran on | claude-code |
| decisions | No | Key decisions made during the session | |
| open_loops | No | Unfinished tasks or questions to carry forward | |
| session_id | Yes | Unique session identifier (timestamp or UUID) | |
| duration_minutes | No | Approximate session duration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag write (readOnlyHint=false) and non-idempotent behavior; the description adds the meaningful fact that facts submitted here land as normal memory facts 'via the write gate' linked to the session — a non-obvious side effect. The 'do not re-save with no new work' line also usefully signals the non-idempotent cost. Missing is what the call returns (e.g., which facts were accepted or rejected by the gate).
Agents need to know what a tool does to the world 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 is front-loaded in the first sentence and the trigger list is functional rather than filler. It is dense and fairly long, and the long enumerated phrase list plus the trailing 'ALSO extract durable facts' clause push it past what most readers need in one pass, but no sentence is purely 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?
For an 8-parameter write tool with no output schema, the description covers the critical decisions (when to call, what to put in the summary, whether to attach facts). It leaves the secondary parameters (topics, platform, duration_minutes) and the return behavior undescribed, which is a real but minor gap given 100% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple 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 3 is the floor. The description still adds value by explaining the facts payload semantics — atomic facts, the {text, kind} shape, and why to include them (so memory forms in the same call even without prior save_fact calls) — and by enumerating the content that belongs in summary/decisions/open_loops. Topics, platform, and duration_minutes go unmentioned, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain 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 — 'Saves a structured summary of the current session' — plus the outcome it enables ('so the next session can resume without re-asking'). That distinguishes it cleanly from save_fact (single fact), save_conversation_turn (raw turn capture), and save_identity (profile 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?
Explicitly enumerates trigger phrases ('summary', 'wrap-up', 'recap', 'we're done'), a mid-session checkpoint case, and two negative conditions: no trivial exchanges, no re-save when nothing new happened. This is the full when/when-not pattern, not an inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_asana_tasksBRead-onlyIdempotent
Search tasks by text within an Asana workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Search query | |
| limit | No | ||
| api_key | No | ||
| completed | No | ||
| workspace_gid | Yes | Workspace GID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, and the description adds nothing beyond that profile — no word on match semantics (substring vs token), whether completed tasks are included by default, pagination over results, or rate limits. With annotations carrying the safety profile the bar is lower, but the description still contributes no 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?
A single front-loaded sentence with no filler; every word carries weight and the scoping constraint closes it out. It is short precisely because it says little, but nothing in the text 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 5-parameter search tool with 40% schema coverage and no output schema, one sentence is not enough. The agent is left without default filtering behavior, result limits, or how results differ from list_asana_tasks.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 40% and the description mentions none of the parameters. Three parameters — limit, api_key, and especially the completed filter — have no description anywhere, so an agent cannot tell what the default result set is or how many results come back.
Input schemas describe structure but not intent. Descriptions should explain 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) plus resource (tasks) and scope (within an Asana workspace), so the basic operation is unambiguous. It does not distinguish itself from siblings like list_asana_tasks or get_asana_task, which is the main thing left to 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?
'Search tasks by text' implies the usage condition (you have a text query rather than an ID or a browse intent), but no alternative is named and no exclusion is given. An agent must infer on its own that list_asana_tasks is for enumeration and get_asana_task for retrieval by ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cveCRead-onlyIdempotent
Search the NVD CVE database.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| startIndex | No | ||
| cvssV3Severity | No | LOW, MEDIUM, HIGH, CRITICAL | |
| resultsPerPage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds only that the source is NVD and does not disclose pagination behavior, rate limits, result ordering, or other operational 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 brief and front-loaded, with no wasted wording. However, it is so terse that it underspecifies the tool for a four-parameter search operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four parameters, low schema coverage, and no output schema, the description is incomplete. It omits parameter guidance, result behavior, pagination semantics, and sibling-tool selection criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 25%, with keyword, startIndex, and resultsPerPage undocumented in the schema. The description only implies keyword search and does not compensate by explaining matching behavior, pagination, or result limits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: search the NVD CVE database. It is specific enough to distinguish a CVE search from unrelated tools, but it does not differentiate itself from close siblings such as get_cve_detail, get_recent_cves, or circl_cve_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?
There is no guidance on when to use this tool versus alternatives. It implies keyword search but does not mention when to use get_cve_detail, get_recent_cves, or the circl_cve_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memorySearch memoryARead-onlyIdempotent
Searches the user's stored facts and session history using hybrid semantic + keyword retrieval. Result content is capped to keep strict MCP clients under response limits; pass full_content=true only when the full matching row is required. Use whenever the user asks about anything that might be stored: 'remember', 'recall', 'do you know', 'what did I say about', 'last time', 'context', 'profile', 'facts about me', 'who am I', 'my preferences', 'what have I told you', or when you need background on a topic before answering. Trigger even when the user doesn't explicitly say 'search' -- if the question involves past decisions, preferences, project details, or named people and tools, check memory first. Do NOT trigger for one-shot math, translations, definitions, or questions with no plausible stored context. Do NOT trigger if load_memory was just called and already returned the relevant context.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | ISO 8601 timestamp for point-in-time queries (returns facts valid at that moment) | |
| query | Yes | Search query | |
| max_results | No | ||
| full_content | No | When true, returns full result content instead of 800-character previews. Use sparingly for strict clients. | |
| include_card | No | Phase 1 Wizard opt-in. When true, the response is { results, card } where card is a ConversationalCard summarising the matches for friendly chat surfaces. When false (default), returns the raw results array unchanged for backward compatibility. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds useful behavioral context about response-size capping and the full_content tradeoff, plus the hybrid retrieval mode, though the capping detail largely restates the full_content schema description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and retrieval method are front-loaded, followed by usage guidance and exclusions. The long list of trigger phrases is effective but somewhat verbose, though each clause serves the routing purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter read tool with no output schema and covered annotations, the description gives enough routing and behavioral context to call it correctly. Minor gaps remain around as_of semantics and include_card, but those are fully 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 80%, so the schema already documents as_of, max_results, full_content, and include_card. The description only reinforces full_content usage ('pass full_content=true only when the full matching row is required') and does not explain as_of or max_results, so it adds marginal value 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?
States a specific verb and resource ('Searches the user's stored facts and session history') plus the retrieval method ('hybrid semantic + keyword retrieval'). It also differentiates from the sibling load_memory by instructing not to trigger when load_memory was just called.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger conditions (a long list of user phrasings and contexts), rules for implicit triggers ('Trigger even when the user doesn't explicitly say search'), and explicit non-triggers (one-shot math, translations, definitions, no plausible stored context, or immediately after load_memory). This is close to exhaustive routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_monday_itemsCRead-onlyIdempotent
Search items by name in a Monday.com board.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Search text | |
| api_key | No | ||
| board_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that matching is on item name within a board, but omits key search behavior: substring vs exact matching, case sensitivity, and whether results are paginated or capped by limit. With annotations carrying safety, a 3 fits.
Agents need to know what a tool does to the 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 with no filler or repetition. Its brevity costs some needed detail, but the sentence itself 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?
No output schema, and three of four parameters lack documentation in both schema and description. For a search tool, the agent still cannot tell whether 'limit' paginates, whether 'api_key' is required or optional, or what fields come back per item. That is a substantial gap 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 only 25% — only 'query' is documented ('Search text'). The description hints that board_id maps to a board and query maps to a name, but says nothing about 'limit' (result cap or pagination) or 'api_key' (authentication requirement), so it fails to compensate for the low 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?
Names a specific verb (search), resource (items), and scope (by name within a Monday.com board), which distinguishes it from create_monday_item and update_monday_item. It does not explicitly contrast with the sibling list_monday_items, which retrieves items without a name query, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to prefer this over list_monday_items or get_monday_board, no prerequisites, and no mention of when searching is insufficient. Usage is only implied by the word 'search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_patentsCRead-onlyIdempotent
Search Australian patents via IP Australia.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| status | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds only the geographic/source scope and says nothing about authentication (the api_key parameter), result limits, pagination, or match behavior — nothing behavioral 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?
A single tight sentence with no filler and the resource front-loaded. It is efficient, though its brevity is part of why the other dimensions are thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter search tool with no output schema and no parameter documentation, the description leaves out what fields are returned, how results are ordered or paged, and how the api_key works. An agent could form a query string but could not confidently call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters, so the description carries the full burden and provides none: 'query' syntax, the allowed values of 'status', and whether 'api_key' is the caller's own credential are all undocumented. With a mandatory-looking credential parameter left unexplained, this is a serious 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?
States a clear verb+resource ('Search Australian patents') plus the data source (IP Australia), which distinguishes it from the sibling search_trademarks and get_trademark_details. It does not explicitly name those siblings, so it falls short of the 5 bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus search_trademarks, no prerequisites, and no explanation of what the 'status' filter means. The agent is left to infer usage entirely from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_pinterest_pinsCRead-onlyIdempotent
Search Pinterest pins by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| bookmark | No | ||
| page_size | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is fully covered elsewhere. The description adds nothing on pagination (bookmark/page_size), token/auth needs, or result shape, which is what an agent would actually need 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?
A single front-loaded sentence with no filler. It is efficient but so short that the size reflects under-specification rather than disciplined brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four parameters at 25% coverage, no output schema, and no mention of pagination or auth. For an open-world search endpoint the description is far too thin for an agent to call it confidently beyond the required query.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 25% — bookmark, page_size, and access_token have no schema descriptions. The description neither explains cursor pagination nor how page_size/access_token should be supplied, so it fails to compensate for the 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?
States a specific verb (search) and resource (Pinterest pins) plus the search dimension (keyword), which implicitly separates it from list_pinterest_pins and get_pinterest_board. It doesn't name those siblings, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'By keyword' implies the use case (you have a term, not a board/user id), which is enough to prefer this over the list_pinterest_pins sibling. There is no explicit when-to-use/when-not statement or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_steam_storeB
Search the Steam store for games by name.
| Name | Required | Description | Default |
|---|---|---|---|
| l | No | Language code | |
| cc | No | Country code for pricing | |
| term | Yes | Search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning results format, pagination, rate limits, or any other behavior, leaving the agent uninformed.
Agents need to know what a tool does to the world before calling 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, clear sentence that is front-loaded and efficient. However, it is too brief and omits potentially useful information, 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?
For a simple search tool with full schema coverage and no output schema, the description is minimally adequate but lacks detail about the return format, ordering, or scope of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage (term, cc, l). The description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the Steam store for games by name,' which specifies the verb (search), resource (Steam store), and scope (games by name). It is distinct from sibling tools like 'get_steam_app_details' and 'get_steam_owned_games'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor does it indicate when not to use it or any prerequisites. It is a bare statement without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_trademarksCRead-onlyIdempotent
Search Australian trademarks via IP Australia.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| query | Yes | ||
| status | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, open-world call, so the safety profile is covered. The description adds the meaningful context that data comes from an external government registry (IP Australia), but says nothing about the api_key parameter's necessity, rate limits, pagination, or result volume — gaps that matter for an open-world external API.
Agents need to know what a tool does to the 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 with no filler, which is structurally sound. It is arguably too terse given the undocumented parameters, but conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an external open-world API with four undocumented parameters and no output schema, the description is materially incomplete. An agent cannot tell what 'type' or 'status' accept, whether api_key is mandatory, or even roughly what a result record contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the description carries the full burden and fails to pay it. Only 'query' is weakly implied by the word 'search'; 'type', 'status', and 'api_key' are completely unexplained — no value formats, no valid status values, no indication of whether the key is required or how to obtain 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?
States a specific verb and resource ('Search Australian trademarks') and names the data source ('via IP Australia'), which clearly distinguishes it from the sibling get_trademark_details. It stops short of explicitly contrasting with other search tools (search_patents, domain_search_listings), so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus get_trademark_details, search_patents, or the ABN/domain search tools, and no prerequisites such as whether an API key is needed. The only implicit signal is that a 'query' is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_typed_linksSearch typed memory linksARead-onlyIdempotent
Searches stored graph-style links extracted from Memory facts and conversation turns. Use this when a worker needs to find connections between people, jobs, PRs, receipts, files, tools, and decisions. Prefer search_memory for broad recall and search_typed_links for relationship lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Link search query | |
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the source of the links and the relationship-focused behavior, but it does not describe result format, matching behavior, or limits beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no filler. The core purpose is front-loaded, followed by usage context and the key alternative 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 two-parameter search tool with rich annotations and no output schema, the description gives enough context to select and invoke the tool correctly. The main remaining gap is that it does not clarify result shape or the role of max_results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description does not explain max_results at all. The entity examples indirectly help clarify what the query parameter is for, but the description does not compensate for the undocumented parameter coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it searches stored graph-style links extracted from Memory facts and conversation turns. It also clearly distinguishes this from broad memory recall by naming search_memory as the 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?
It explicitly states when to use this tool: when a worker needs connections between people, jobs, PRs, receipts, files, tools, and decisions. It also directly contrasts it with search_memory, saying to prefer search_memory for broad recall and this tool for relationship lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seatgeek_get_eventCRead-onlyIdempotent
Get a SeatGeek event by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so safety is fully covered structurally. The description adds nothing beyond restating the name and does not mention the external-API nature or that an api_key may be required, which is a meaningful behavioral 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?
A single front-loaded sentence with zero filler. It is efficient, though under-specification rather than padding is the concern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-record lookup with annotations covering safety and no output schema, the description is minimally adequate. The undocumented api_key parameter and lack of any return-value or auth context keep it from being 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 0%, so the description must carry parameter meaning. It implies the id parameter via 'by ID' but leaves the api_key parameter completely unexplained — neither its purpose nor whether it is a required credential.
Input schemas describe structure but not intent. Descriptions should explain 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) and resource (SeatGeek event) with an ID-based lookup, which implicitly distinguishes it from seatgeek_search_events. However, it does not name the sibling or clarify the retrieval-by-identifier scope 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?
No statement of when to use this versus seatgeek_search_events or seatgeek_search_performers. There are no exclusions or prerequisites mentioned; the agent must infer that this requires an already-known ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seatgeek_get_performerCRead-onlyIdempotent
Get a SeatGeek performer by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is fully covered. The description adds nothing beyond the name: no error behavior on missing IDs, no rate-limit or API-key context, no note on what the performer payload contains. With annotations carrying the load, this is only minimally adequate.
Agents need to know what a tool does to the 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 short, front-loaded sentence with zero filler. It is efficient but arguably too thin rather than padded, so it stops short of 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?
There is no output schema and no annotation for the return shape, and the description never says what a performer object contains or how it is keyed. With 0% schema coverage on the api_key parameter and no return-value context, an agent lacks what it needs to call this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple 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% for 2 parameters, so the description must compensate and it does not. It only echoes the 'id' parameter in the name and says nothing about the required SeatGeek numeric ID format or what the api_key parameter is for or whether it is optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 SeatGeek performer) and implies lookup semantics via 'by ID', which distinguishes it from seatgeek_search_performers. However, it never names the sibling search tool or clarifies that this is the detail-fetch counterpart, so the differentiation is only inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus seatgeek_search_performers or seatgeek_get_event, and no prerequisites stated. 'By ID' faintly implies you must already have an ID, but nothing tells the agent how to obtain one or what this tool returns if the ID is invalid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seatgeek_get_venueCRead-onlyIdempotent
Get a SeatGeek venue by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds nothing beyond that — no mention of what a venue record contains, how an invalid ID is handled, or that an api_key may be needed. It is essentially a restatement of the tool name.
Agents need to know what a tool does to the 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 with no filler. Appropriately sized for a one-lookup tool, though the brevity is partly under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should ideally hint at what a venue record includes, and with 0% schema coverage on parameters it should clarify id format and api_key usage. For a simple single-record getter the gap is tolerable but real.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does not: the 'id' parameter's type/format is never explained, and the 'api_key' parameter is not mentioned at all, leaving the agent no idea whether auth is required or how to supply 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?
States a specific verb and resource (get a SeatGeek venue) and adds the lookup key ('by ID'), which distinguishes it from the sibling seatgeek_search_venues. It's clear but doesn't name or contrast with any sibling 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?
No guidance on when to use this versus seatgeek_search_venues (which presumably returns venue IDs in the first place) or versus tm_get_venue/eventbrite_get_venue. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seatgeek_search_eventsCRead-onlyIdempotent
Search for events on SeatGeek.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| type | No | ||
| api_key | No | ||
| per_page | No | ||
| datetime_utc_gte | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true). The description adds essentially no behavior beyond that: it does not mention API-key requirements, pagination, rate limits, result ordering, or what happens when filters are omitted.
Agents need to know what a tool does to the world before calling 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 or repetition. It is structurally clean but so terse that it omits information an agent would need to use 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 five-parameter search tool with no output schema and no schema descriptions, the description is far too thin. Annotations cover the safety profile, but the definition leaves out parameter meaning, pagination behavior, authentication expectations, and return-value characteristics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the five parameters. It does not clarify the query field q, the item type filter, the api_key requirement, per_page pagination, or the datetime_utc_gte filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Search') and resource ('events') and names the provider ('SeatGeek'), so an agent can tell it is an event search operation. It does not, however, differentiate it from sibling searches such as tm_search_events, eventbrite_search_events, or seatgeek_get_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 only what the tool does, with no guidance on when to use it versus alternatives like seatgeek_get_event, seatgeek_search_venues, or other event-search tools. It includes no exclusions, prerequisites, or examples of suitable queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seatgeek_search_performersCRead-onlyIdempotent
Search for performers on SeatGeek.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: no mention of result limits, pagination, fuzzy vs exact matching, or how the api_key is used, which is where value could be added.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no filler, but it is terse to the point of under-specification rather than genuinely efficient. Nothing is wasted, yet almost nothing is contributed either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 open-world search with no output schema, the description should at least say what 'q' matches against and roughly what comes back. With rich annotations covering safety but zero parameter documentation, an agent is left to infer how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not compensate. The required parameter 'q' is never explained (free-text name? partial match?), and 'api_key' is undocumented, so an agent must guess both the format and semantics of the query string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search') and resource ('performers on SeatGeek'), so an agent can tell this is a performer lookup rather than an event or venue lookup. It does not explicitly distinguish itself from the sibling seatgeek_get_performer, but the search/get distinction is clear from the names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus seatgeek_get_performer, seatgeek_search_events, or seatgeek_search_venues. The agent must infer that this is for discovering performers by name and that a follow-up get_performer call is needed for details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seatgeek_search_venuesCRead-onlyIdempotent
Search for venues on SeatGeek.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| api_key | No |
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 fully covered by structured data. The description adds nothing beyond that - no mention of result limits, pagination, or that the search hits a live external index - so it contributes no behavioral value on top of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero padding, and the resource being acted on is front-loaded. Its brevity is a virtue structurally, even though the content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two undocumented parameters, no output schema, and no annotations covering parameters or return shape, the description should state query semantics and result behavior. It leaves the agent guessing about what a search matches and 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?
Schema description coverage is 0%, so the description carries the full burden, yet it never explains what "q" accepts (venue name? city? partial match?) or that api_key supplies authentication. The one-word 'Search' is the only clue about the required query 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 names a specific verb ("Search") and resource ("venues") scoped to SeatGeek, so an agent knows exactly what object type is returned. It does not, however, distinguish this from the sibling seatgeek_get_venue, leaving the search-vs-lookup split to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus seatgeek_get_venue (direct lookup) or seatgeek_search_events, and no stated prerequisites. The agent must infer that this is the free-text discovery path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_disclosure_statusBRead-onlyIdempotent
Check the 90+30 responsible-disclosure timer state for a finding (notified, acked, extended, public, withdrawn).
| Name | Required | Description | Default |
|---|---|---|---|
| finding_id | Yes |
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 value by enumerating the possible state values (notified, acked, extended, public, withdrawn), but leaves '90+30' unexplained and says nothing about how the timer transitions or what triggers extension.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler; the state enumeration is the only extra and 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 read-only status check with no output schema, the description gives the agent enough to know what concept it queries and what states to expect, but leaves the timer mechanics and the parameter's provenance unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter, and the description says nothing about finding_id — where it comes from, its format, or expected source. The name is fairly self-explanatory but nothing compensates the coverage 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 specific verb (check) plus a precise resource (90+30 responsible-disclosure timer state for a finding) and even lists the possible states. It is clearly a disclosure-timer status check rather than the broader finding lookup in securitypass_finding_detail, though it doesn't name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intent is inferable — call this when you need the current state of a finding's disclosure clock — but there is no statement of when to prefer it over securitypass_finding_detail or securitypass_status, and no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_finding_detailB
Fetch a single finding including PoC payload (curl / prompt / payload) and remediation. PoC is generated, never auto-fired.
| Name | Required | Description | Default |
|---|---|---|---|
| finding_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers one genuinely valuable, non-obvious behavioral fact: the PoC is generated and 'never auto-fired', which reassures the agent no exploit is executed. It still omits permission requirements, data source, and whether the finding must exist from a prior scan.
Agents need to know what a tool does to the 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-loaded with the core action and immediately qualifying the PoC 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?
No output schema or annotations exist, yet the description adequately previews return content (PoC payload and remediation). The main gap is finding_id semantics, leaving the definition minimally viable 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 single finding_id parameter has 0% schema description coverage, so the description is responsible for explaining it. It only conveys implicitly that one finding is fetched, adding no format, source, or origin detail for finding_id.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Fetch') and resource ('a single finding') and enumerates the payload content (PoC curl/prompt/payload plus remediation). It does not name or distinguish itself from close siblings like securitypass_report, securitypass_run, or securitypass_status, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no prerequisites, and no named alternative among the many securitypass_* siblings. The only usage signal is implicit: it retrieves one finding by id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_register_packB
Save a SecurityPack YAML for the calling tenant. Validates against the schema.
| Name | Required | Description | Default |
|---|---|---|---|
| yaml | Yes | Pack contents as YAML | |
| pack_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds that contents are validated against a schema, which is genuinely useful behavioral information. But it omits what happens on validation failure, whether an existing pack is overwritten, permission requirements, and the tenant scoping behavior of storage. Not enough for a mutation tool with zero 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 short sentences, front-loaded action verb followed by validation note. Efficient with no filler, though very sparse given the tool's 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?
A mutation tool with no annotations, no output schema, one undocumented parameter (pack_id), and no information about overwrite behavior, error modes, or the relationship to securitypass_run/status. Inadequate for the operation it performs.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%; the yaml parameter is documented in the schema, but pack_id isn't. The description mentions 'SecurityPack YAML' which clarifies the yaml field's purpose, but adds nothing about pack_id (identity, uniqueness, naming rules). Baseline is 3 given partial 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 and resource: 'Save a SecurityPack YAML for the calling tenant.' This is clearly a writer/registration operation and distinguishable from siblings like securitypass_run or securitypass_report. It does not, however, name an alternative in the *pass family to differentiate from e.g. legalpass_save_pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is only implied context: 'for the calling tenant' hints at a multi-tenant scope. No when-to-use vs an update/overwrite sibling, no note about whether this creates vs replaces, and no preconditions. An agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_reportB
Fetch the synthesised report for a completed run (executive narrative + findings). format=json|markdown|html.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | json | |
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation via 'Fetch' but does not disclose permissions, behavior for incomplete runs, rate limits, or any other operational traits beyond the report's 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?
One sentence plus a compact format specifier. It is front-loaded with the core action and free of filler, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description covers purpose and format but leaves run_id undocumented and does not address edge cases like what happens if the run is not complete. Therefore it is adequate but with clear 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 description coverage is 0%, so the description should explain both parameters. It lists format options (json|markdown|html), mirroring the enum, but says nothing about run_id — where it comes from, its format, or its role. This is inadequate compensation for the missing 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?
States a specific verb ('Fetch') and resource ('synthesised report') with scope ('for a completed run') and content details ('executive narrative + findings'). It does not differentiate from sibling tools such as securitypass_finding_detail or securitypass_status, preventing 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 phrase 'for a completed run' implies a precondition but gives no explicit guidance on when to use this tool versus securitypass_status, securitypass_finding_detail, or other siblings. No when-not conditions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_runA
Start a scope-gated SecurityPass scan against a registered pack or target URL. Returns a safe securitypass_receipt_v1 proof envelope without raw secrets or PoC payloads.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_id | No | Pack id, e.g. 'securitypass-web-baseline' | |
| profile | No | smoke | |
| pack_yaml | No | Optional pack YAML to validate and run without prior registration | |
| target_id | No | Target id inside the SecurityPass pack | |
| target_url | No | Target URL (must be in pack scope) | |
| contract_id | No | Scope contract id for skeleton URL scans | |
| proof_method | No | ||
| expected_token | No | Expected scope proof token | |
| proof_timeout_ms | No | Optional timeout for well-known proof fetches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It usefully discloses that execution is scope-gated and that the return is a safe securitypass_receipt_v1 envelope without raw secrets or PoC payloads, but it omits operational details such as whether the scan is active/intrusive, required scope proofs, or timeouts.
Agents need to know what a tool does to the world before calling 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 purpose, then states the return behavior. Every sentence earns its place with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations and no output schema, the description covers the core purpose and output safety. However, it leaves important context unstated, including prerequisites, parameter routing between pack_id/pack_yaml/target_url/contract_id, and how to choose proof methods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78%, so most parameters already have structured descriptions. The description only frames the registered-pack and target-URL modes and adds no detail beyond the schema for parameters such as pack_yaml, profile, proof_method, expected_token, or proof_timeout_ms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Start'), resource ('SecurityPass scan'), and scope ('against a registered pack or target URL'), making the tool's purpose clear. It does not explicitly differentiate itself from sibling tools such as securitypass_register_pack or securitypass_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 used to start a scan against a registered pack or target URL, but it does not state when to use it versus alternatives like securitypass_register_pack, securitypass_verify_scope, or securitypass_status. Usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_statusA
Poll the state of a SecurityPass run. Returns status, verdict summary, counts, and a safe securitypass_receipt_v1 proof envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by securitypass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It partially delivers by disclosing the return contents and implying a read-only polling operation with a 'safe' proof envelope, but it says nothing about auth requirements, rate limits, idempotency, or polling cadence.
Agents need to know what a tool does to the 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 dense sentences with the purpose front-loaded and no filler. The second sentence usefully enumerates return fields, though the term 'securitypass_receipt_v1 proof envelope' is unexplained jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 polling tool with no output schema, the description usefully covers what comes back (status, verdict summary, counts, proof envelope). The opaque 'proof envelope' terminology and absence of any lifecycle/polling guidance are the only 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 description coverage is 100%; the schema already documents run_id as 'The run id returned by securitypass_run.' The description adds no additional parameter semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Poll the state of a SecurityPass run,' and enumerates what the response contains. It is clear on its own, though it does not explicitly differentiate itself from the securitypass_run/securitypass_report/securitypass_finding_detail siblings in the same namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'poll' implies this is used to check an in-progress or completed run, which is meaningful implied guidance for an agent. However there is no explicit statement of when to use it versus securitypass_run, what the terminal states are, or when to stop polling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securitypass_verify_scopeB
Verify scope authorisation for a target via DNS TXT or /.well-known proof. Required before any active probe runs.
| Name | Required | Description | Default |
|---|---|---|---|
| target_url | No | ||
| contract_id | No | Signed scope contract id | |
| target_repo | No | ||
| target_type | No | ||
| proof_method | Yes | ||
| expected_token | No | Token to look for in DNS TXT or /.well-known | |
| proof_timeout_ms | No | Optional timeout for well-known proof fetches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the verification methods and a gating requirement, but it does not disclose failure behavior, whether it mutates state, permission needs, rate limits, or what a successful/failed verification returns. This is a significant gap for a no-annotation 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?
Two sentences, front-loaded with the core purpose and followed by the key precondition. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is too thin. It omits return behavior, most parameter semantics, and operational details needed for an agent to call this verification 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 only 43%, so the description must compensate for undocumented parameters. It only loosely references the proof_method enum values (DNS TXT, /.well-known) without naming the parameter or covering the other two enum options, and says nothing about target_url, contract_id, expected_token, or proof_timeout_ms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Verify) and resource (scope authorisation for a target) with proof methods, so an agent can tell what the tool does. It does not explicitly differentiate itself from the other securitypass_* siblings, 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 second sentence gives a clear precondition: it is required before any active probe runs. That is explicit usage context, though it does not name alternatives or when-not-to-use conditions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_get_sourceBRead-onlyIdempotent
Get details for a single Segment source including settings and enabled state.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Segment Public API token | |
| source_id | Yes | Segment source ID |
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 returned content includes settings and enabled state, which is useful since there is no output schema, but says nothing about permissions, error behavior on unknown IDs, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource is stated first and the returned fields follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with full schema coverage and no output schema, the description conveys enough to invoke it correctly and hints at the payload contents. Only the missing link to its listing sibling and error/prerequisite behavior keep it from full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (api_key, source_id) are already documented in the schema. The description adds no format or sourcing detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a single Segment source') and names the returned fields (settings, enabled state). It is clearly distinguishable from segment_list_sources by the 'single source' framing, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance: nothing says this follows segment_list_sources, that a source_id must already be known, or when the list tool would be preferred. The agent must infer usage 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.
segment_identify_userB
Identify a user in Segment with traits. Links an anonymous ID to a known user ID.
| Name | Required | Description | Default |
|---|---|---|---|
| traits | No | User traits as key-value pairs (e.g. name, email, plan) | |
| user_id | No | Unique user identifier | |
| timestamp | No | ISO 8601 timestamp (defaults to now) | |
| write_key | Yes | Segment source write key | |
| anonymous_id | No | Anonymous ID to link to the user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It indicates a write operation (creating/updating identity) but does not disclose idempotency, error handling, permissions, or rate limits. This is minimal disclosure for a mutation 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 a single sentence that is clear and concise with no redundancy. It is appropriately sized for a simple tool, though it could benefit from additional structured information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 moderate parameter count (5), the description lacks details about return values, error conditions, and parameter optionality. It does not explain that 'user_id' and 'anonymous_id' are optional or the effect of omitting them. This leaves gaps for 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?
Schema coverage is 100% with descriptions for all 5 parameters. The description adds context about linking anonymous ID to user ID and traits, but does not provide significant additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies a user in Segment by linking an anonymous ID to a known user ID, with traits. This verb+resource specification distinguishes it from siblings like 'segment_track_event'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for user identification in Segment but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though the context of sibling tools suggests differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_intersectionB
Find all pairwise intersections among a set of 2D line segments, returning intersection points.
| Name | Required | Description | Default |
|---|---|---|---|
| segments | Yes | Array of line segments (max 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, and it discloses very little beyond the output type. It says nothing about algorithmic cost (naive pairwise is O(n^2)), how collinear/overlapping or endpoint-touching segments are treated, ordering of results, or the 1000-segment cap (which lives only in the schema). Major behavioral gaps for a geometry routine with many degenerate 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?
A single sentence with no filler, front-loading the operation and ending with the return type. 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?
With no annotations and no output schema, the description should spell out the return shape, but 'returning intersection points' is ambiguous for a pairwise operation (one point per intersecting pair? flat list? coordinates tied to segment indices?). It is callable as written but under-specified for an agent that must consume 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?
There is a single parameter with 100% schema description coverage, so the schema already documents the segments array and the max-1000 constraint. The description only restates that inputs are 2D line segments, adding no format, ordering, or structural meaning beyond the schema. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource+scope: 'Find all pairwise intersections among a set of 2D line segments, returning intersection points.' An agent can immediately tell this is a geometry operation distinct from siblings like convex_hull or bezier_clip. It does not, however, explicitly contrast itself with any named sibling, which the highest score would require.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the tool clearly applies when an agent has a collection of 2D segments and needs their crossings, but there is no explicit when-to-use, when-not-to-use, or reference to an alternative tool. For a self-contained math utility this is adequate but leaves the routing entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_list_destinationsBRead-onlyIdempotent
List all destinations connected to a Segment source.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Segment Public API token | |
| source_id | Yes | Segment source ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld behavior, so the safety profile is covered. The word 'all' hints there is no filtering, but pagination behavior, rate limits, and error/auth conditions are unstated — with annotations present, this is an acceptable but thin 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?
A single front-loaded sentence with zero filler. It is efficient; the only reservation is that it is so short it leaves necessary context unaddressed, though that is a completeness issue rather than verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and annotations, the description is minimally sufficient. However, there is no output schema, so nothing tells the agent whether results are paginated, what a destination record contains, or what an empty result implies.
Complex tools with many parameters or behaviors need more documentation. Simple 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 api_key and source_id are already fully documented. The phrase 'connected to a Segment source' reinforces that source_id scopes the results, but adds no format, validity, or retrieval guidance 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 and resource ('List all destinations') and scopes it to a Segment source, which distinguishes it from the sibling segment_list_sources and segment_get_source. It is clear but terse, offering no detail beyond the operation 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?
No guidance on when to use this versus segment_list_sources/segment_get_source, and no hint that a source_id must first be obtained (presumably from segment_list_sources). The agent is left to infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_list_sourcesBRead-onlyIdempotent
List all Segment sources in a workspace using the Segment Public API.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Segment Public API token | |
| workspace_id | Yes | Segment workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds only that it goes through the Segment Public API; it does not mention pagination, result ordering, or empty-workspace 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?
A single efficient sentence with the resource and scope front-loaded. It is appropriately sized for a simple read tool, though it could have traded a few words for a sibling comparison.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, non-destructive list tool with no output schema and full parameter coverage, the description covers the basics. It omits return-shape hints and pagination behavior, which would help an agent plan 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%, so both api_key and workspace_id are documented at the schema level. The description's phrase 'in a workspace' loosely maps to workspace_id but adds no syntax, format, or permission 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 states a specific verb (List) and resource (Segment sources) scoped to a workspace, which is clear enough for an agent to understand. It does not distinguish itself from the sibling segment_get_source, so it falls short of 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 on when to use this versus segment_get_source or segment_list_destinations. The only context is the implicit 'list all' framing, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_track_eventB
Track a custom event in Segment. Use for recording user actions like 'Signed Up', 'Item Purchased', etc.
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | Event name (e.g. 'Item Purchased') | |
| user_id | No | Unique user identifier | |
| timestamp | No | ISO 8601 timestamp (defaults to now) | |
| write_key | Yes | Segment source write key | |
| properties | No | Event properties as key-value pairs | |
| anonymous_id | No | Anonymous ID if user is not logged in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as idempotency, rate limits, or whether the event is created or updated. The minimal description fails to compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main action and providing examples without extraneous 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?
The tool has 6 parameters with nested objects and no output schema. The description is adequate for a simple tracking tool but lacks guidance on optional parameters like user_id vs anonymous_id and what the response looks like.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters have descriptions), so the baseline is 3. The description does not add any additional 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 clearly states the tool tracks a custom event in Segment and provides concrete examples like 'Signed Up'. However, it does not differentiate from sibling tool mixpanel_track_event which serves a similar 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 implies usage for recording user actions but lacks explicit guidance on when to use this tool versus alternatives, or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_treeB
Build a segment tree for range queries (sum/min/max) with point updates on a mutable array.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Initial array of numbers | |
| operation | No | Aggregate operation (default sum) | |
| operations | No | Operations: {type:'update',index,value} or {type:'query',left,right} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does not disclose whether the built tree persists across calls, what the return value looks like (query results? tree handle?), or how the operations list is processed, leaving significant behavioral gaps for a stateful-looking construct.
Agents need to know what a tool does to the 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 tight sentence that front-loads the core action and enumerates the supported operations with zero filler. Nothing 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?
There is no output schema and no annotations, so the description is the only carrier of return/persistence behavior, and it omits that. For a moderately simple algorithmic tool the purpose is conveyed, but the agent cannot tell what calling it actually yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 values, operation (with enum), and operations. The description's mention of sum/min/max and point updates maps to the schema but adds no syntax or format detail beyond it, 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 gives a specific verb+resource ('Build a segment tree') and enumerates its capabilities (range sum/min/max queries and point updates). It is clear what the tool produces, but it does not differentiate from algorithmic siblings like fenwick_tree, sparse_table, or rmq_sparse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance and no alternative tool is named. The phrase 'on a mutable array' implicitly hints at the scenario, but the agent is left to infer selection against the many other range-query/data-structure siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semver_compareARead-onlyIdempotent
Compare two semantic versions (returns greater, less, or equal).
| Name | Required | Description | Default |
|---|---|---|---|
| version_a | Yes | First version. | |
| version_b | Yes | Second version. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, idempotent nature of the operation. The description adds useful behavioral detail by specifying the comparison result set ('greater, less, or equal'), though it does not mention invalid-version error behavior or prerelease 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 entire definition is a single front-loaded sentence with no wasted text. It states the action and the result 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 comparison tool with full schema coverage, annotations, and no output schema, the description provides the essential purpose and return semantics. It is only slightly incomplete regarding invalid inputs and semantic-version edge 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 coverage is 100%, so the two parameters are already documented in the input schema. The description only reiterates that two semantic versions are compared and adds no syntactic or format detail 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 uses a specific verb ('Compare') and resource ('two semantic versions') and even states the return result. It is clearly distinct from sibling semver_parse, though it does not explicitly name that sibling as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: use this tool when two semantic versions need comparison. There is no explicit guidance on when not to use it, prerequisites, or how it relates to alternatives like semver_parse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semver_parseBRead-onlyIdempotent
Parse a semantic version string into major, minor, patch, and prerelease.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | Version string (e.g. 2.3.1-beta.1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description does not say what happens with a malformed or non-semver input (throw vs. partial parse) or whether missing prerelease is omitted or null — meaningful gaps for a parser.
Agents need to know what a tool does to the 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 with no filler; the output components are listed immediately after the verb so the reader knows the shape of the result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, no-output-schema tool this is nearly sufficient, but the return shape (field names/types, handling of absent prerelease, error behavior) is left to inference. A sentence on failure mode would close the remaining 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 the example (2.3.1-beta.1) already lives in the schema, so the description adds little beyond repeating 'version string'. It does reinforce that the input must be a semantic version, but no format edge cases are clarified.
Input schemas describe structure but not intent. Descriptions should explain 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 (parse) and resource (semantic version string) and enumerates the parsed components, so the operation is unambiguous. It does not distinguish itself from the sibling semver_compare, which an agent must infer from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus semver_compare or the other version/number utilities, nor any mention of prerequisites. The agent must infer usage purely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_add_contactB
Add or update a marketing contact in SendGrid.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Contact email address | ||
| api_key | Yes | SendGrid API key | |
| list_ids | No | List IDs to add the contact to | |
| last_name | No | Last name | |
| first_name | No | First name | |
| phone_number | No | Phone number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description needs to disclose behavioral traits. It only says 'Add or update,' but does not explain that it is an upsert operation, what happens to existing fields, potential side effects (e.g., list membership changes), or any mutation details. The minimal description leaves the agent uninformed about important 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 a single, direct sentence with no extraneous words. It is efficient, but could be slightly improved by clarifying the upsert nature without adding 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?
Given the tool has 6 parameters (2 required, 4 optional) and no output schema, the description is insufficiently complete. It does not explain the upsert semantics, the optional parameters (like list_ids, phone_number), or what the tool returns. More context is needed for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described in the input schema. The description adds no extra meaning beyond what is already in the schema. Therefore, it merely meets 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 clearly states the tool's purpose: 'Add or update a marketing contact in SendGrid.' It uses specific verbs ('add or update') and identifies the resource ('marketing contact'), distinguishing it from sibling tools like sendgrid_list_contacts (for listing) and sendgrid_send_email (for sending).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention that it performs an upsert (create or update), nor does it suggest when to use sendgrid_list_contacts for reading contacts or sendgrid_send_email for sending. No context about prerequisites or exclusions is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_get_statsBRead-onlyIdempotent
Get SendGrid email sending statistics for a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | SendGrid API key | |
| end_date | No | End date (YYYY-MM-DD) | |
| start_date | No | Start date (YYYY-MM-DD). Defaults to 7 days ago. | |
| aggregated_by | No | Aggregation period (default: day) |
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 date-range scope but doesn't say which statistics are returned or in what form; with annotations carrying the safety burden, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficient, though it could have used one more clause to add behavioral value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and annotations, the definition is workable, but with no output schema the description never indicates what the returned statistics contain (opens, clicks, bounces), leaving a meaningful 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 api_key, start_date, end_date, and aggregated_by with defaults. The description's mention of a date range aligns with the schema but adds no syntax or aggregation meaning beyond it, 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 (get), a specific resource (SendGrid email sending statistics), and a scope (date range). It is clearly distinguishable from siblings like sendgrid_send_email or sendgrid_list_templates without opening a schema, though it doesn't explicitly name any 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 'for a date range' phrasing implies when the tool applies, but there is no explicit when-to-use guidance, prerequisites, or named alternatives. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_get_templateBRead-onlyIdempotent
Get a specific SendGrid email template by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | SendGrid API key | |
| template_id | Yes | Template 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 covered. The description adds nothing beyond the annotations – no auth/permission requirements, rate limits, or error behavior for a missing/invalid template ID – so it neither helps nor contradicts.
Agents need to know what a tool does to the 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 front-loaded sentence with zero waste; the action, resource, and lookup key appear immediately. It is short enough that there was room to add a clarifying clause without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with full schema coverage and no output schema, this is minimally sufficient – the agent can call it correctly. However, no return-value shape or error behavior is described, which would be helpful given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both api_key and template_id documented in the schema, so the description needs no additional parameter detail. It adds nothing about ID format or API-key sourcing, which is the expected baseline when the schema carries the 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?
States a specific verb ('Get') and resource ('SendGrid email template') with the lookup key ('by ID'), so the agent knows exactly what it retrieves. It doesn't name the sibling it differs from (e.g., sendgrid_list_templates), but the singular 'specific ... by ID' framing makes the distinction reasonably evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'by ID' suggests it is for fetching a single known template rather than browsing, which is adequate to separate it from list-style siblings. There is no explicit when/when-not guidance or mention of alternatives such as sendgrid_list_templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_list_contactsARead-onlyIdempotent
List all marketing contacts in SendGrid.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | SendGrid API key |
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 a meaningful scope qualifier by specifying 'marketing' contacts, distinguishing them from transactional/sender identities. It does not mention pagination, result caps, rate limits, or required API key scopes, which matter for a bulk list call.
Agents need to know what a tool does to the 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 short sentence with the resource scope front-loaded and zero filler. Nothing is redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with rich annotations and no output schema, this is close to adequate, but 'all' is unqualified: the agent is not told whether results are paginated, capped, or returned as a flat array, which affects how it should handle the 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?
With a single parameter at 100% schema description coverage, the schema already documents api_key fully. The description adds no syntax, scope, or permission detail about the key beyond what the schema states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list), resource (marketing contacts), and platform (SendGrid), with the qualifier 'all' implying no filtering. It is clearly distinct from sendgrid_add_contact and sendgrid_send_email, 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?
'List all' hints that this is a bulk retrieval with no filter options, which implies the agent should not expect search semantics. However, there is no explicit statement of when to prefer this over add_contact's return data or any other contact-fetching path, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_list_templatesBRead-onlyIdempotent
List dynamic email templates in SendGrid.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | SendGrid API key | |
| page_size | No | Number of templates (default: 10, max: 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds only the 'dynamic' template qualifier (as opposed to legacy templates), and says nothing about pagination behavior, result count, or rate limits beyond what the schema's page_size 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?
A single front-loaded sentence of seven words with zero filler. Nothing is repeated from the name 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?
For a simple read-only list tool with full schema coverage and rich annotations, this is minimally sufficient. It is missing two things an agent would want: how pagination beyond page_size is handled, and whether 'dynamic' excludes legacy templates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 api_key and page_size (default 10, max 200) are already documented. The description adds no additional parameter guidance, which is acceptable given the schema does the work, but it is baseline only.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List dynamic email templates') and qualifies the template type ('dynamic'), which is more precise than a bare 'list templates'. It does not explicitly distinguish itself from siblings like sendgrid_get_template or sendgrid_send_email, but 'list' vs 'get' is inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus sendgrid_get_template, nor any note about paging through results before calling get_template. The agent must infer the workflow entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendgrid_send_emailB
Send a transactional email via SendGrid.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address | |
| from | Yes | Sender email address (must be verified in SendGrid) | |
| html | No | HTML content | |
| text | No | Plain text content | |
| api_key | Yes | SendGrid API key from app.sendgrid.com | |
| subject | Yes | Email subject line | |
| to_name | No | Recipient display name | |
| reply_to | No | Reply-to email address | |
| from_name | No | Sender display name | |
| template_id | No | SendGrid dynamic template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral details (e.g., that it sends an email, requires authentication, potential side effects). The minimal phrase 'Send a transactional email' adds no transparency beyond the obvious.
Agents need to know what a tool does to the world before calling 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 with no wasted words, efficiently conveying the tool's purpose 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?
Given the complexity (10 parameters, no output schema), the description lacks crucial context such as what happens after sending (e.g., return value, error handling), rate limits, or dependency on a valid API key.
Complex tools with many parameters or behaviors need more documentation. 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 10 parameters have descriptions in the input schema, resulting in 100% coverage. The description adds no additional meaning beyond what the schema already provides, so it meets 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 clearly states the action ('Send') and the specific resource ('transactional email via SendGrid'), differentiating it from other email-sending tools like email_send or postmark_send_email by specifying the provider and email type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for transactional emails through SendGrid but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites like having a verified sender or API key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendle_create_orderC
Create a Sendle shipping order.
| Name | Required | Description | Default |
|---|---|---|---|
| sender | Yes | ||
| api_key | No | ||
| receiver | Yes | ||
| parcel_contents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention any side effects, required permissions, or what constitutes successful invocation. The bare statement offers no 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?
While the description is concise at one sentence, it sacrifices necessary detail. It is under-specified rather than efficiently comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and four undocumented parameters, the description is deeply incomplete. It does not equip the agent to understand inputs or outcomes.
Complex tools with many parameters or behaviors need more documentation. 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 four parameters with zero description coverage. The description adds no meaning for any parameter. The agent must guess the expected structure for 'sender', 'receiver', 'parcel_contents', and 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Create a Sendle shipping order,' specifying a verb and resource. It effectively distinguishes the tool from its siblings like sendle_get_quote and sendle_track_parcel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor does it mention prerequisites or exclusions. The agent is left without context for appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendle_get_quoteCRead-onlyIdempotent
Get a shipping quote from Sendle.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| weight_units | No | ||
| weight_value | Yes | ||
| pickup_suburb | No | ||
| pickup_country | No | ||
| delivery_suburb | No | ||
| pickup_postcode | Yes | ||
| delivery_country | No | ||
| delivery_postcode | Yes |
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 nothing beyond that: no mention of credential requirements, rate limits, whether quotes are live or cached, or what happens with unsupported routes.
Agents need to know what a tool does to the 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 with no wasted words, but its brevity reflects under-specification rather than efficient communication for a 9-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters at zero schema coverage, no output schema, and no annotation coverage of inputs, the description is far too thin. An agent cannot confidently supply address, weight unit, or credential values from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 9 parameters, and the description provides no parameter meaning at all. Critical ambiguities such as weight_units default, country format, suburb optionality, and api_key handling are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 a shipping quote) and names the provider (Sendle), which is enough for an agent to know it retrieves pricing rather than creating an order or tracking a parcel. It does not specify scope such as domestic vs international or what the quote covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus siblings such as sendle_create_order, sendle_track_parcel, or other shipping/quote tools. No prerequisites (API key, supported countries, default weight units) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sendle_track_parcelB
Track a Sendle parcel by tracking number.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| tracking_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits like return format, authorization requirements, rate limits, or side effects. It only states 'Track', omitting all such 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 sentence of 7 words, extremely concise and front-loaded with the action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and no parameter descriptions, the description is inadequate. It does not explain what the tool returns or any behavioral context needed for effective 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?
Schema description coverage is 0%, and the description adds no meaning beyond parameter names. It mentions 'tracking number' for tracking_id but ignores api_key entirely. The description fails to compensate for the lack of 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 uses the specific verb 'track' and clearly identifies the resource as 'Sendle parcel' with the required input 'tracking number'. It is unambiguous and distinct from other tools in the list, though siblings like 'auspost_track_parcel' exist for other carriers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when you have a Sendle tracking number but does not explicitly state when not to use it or provide alternatives such as 'auspost_track_parcel' for other carriers. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sentry_actionC
Interact with the Sentry REST API: list projects and issues, get issue details and events, and resolve issues.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of results. | |
| query | No | Search query to filter issues. | |
| action | Yes | Action: list_projects, list_issues, get_issue, list_events, resolve_issue. | |
| cursor | No | Pagination cursor. | |
| issue_id | No | Issue ID (for get_issue, list_events, resolve_issue). | |
| auth_token | Yes | Sentry auth token. | |
| project_slug | No | Sentry project slug. | |
| stats_period | No | Time window for issue stats: 24h, 14d, etc. | |
| organization_slug | No | Sentry organization slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only lists actions but does not describe side effects, permissions, rate limits, or state changes (e.g., resolve_issue is modify). This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling 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, concise and to the point. However, it could be structured with bullet points for clarity. It avoids unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 params, no annotations, no output schema), the description is too sparse. It omits parameter dependencies (e.g., issue_id required for get_issue), pagination behavior, return format, and does not cover the full scope of actions.
Complex tools with many parameters or behaviors need more documentation. 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 9 parameters, so the description adds no new meaning. Baseline 3 is appropriate; the description does not enhance understanding of parameters 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 the tool interacts with the Sentry REST API and lists specific actions (list projects, issues, get details, events, resolve). This clearly distinguishes it from sibling tools that target other APIs. However, the verb 'Interact' is generic and the description could be more 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios, prerequisites, or exclusions. The tool is expected to be selected based on the 'Sentry' keyword, but explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seopass_lighthouse_planA
Build the heavier Lighthouse execution plan for a SEOPass target URL. seopass_run already emits a lightweight live-readonly verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to audit with Lighthouse | |
| strategy | No | Lighthouse strategy (default: mobile) | |
| categories | No | Lighthouse categories to request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says the tool builds a plan but does not state whether the operation is read-only or mutating, whether it requires authentication, how it interacts with SEOPass, or what side effects or outputs to expect. It hints at a distinction from a live-readonly sibling but does not describe its own 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 purpose is front-loaded, and the sibling contrast follows immediately to guide selection. It is appropriately sized for a tool with a fully described schema and no 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?
The description covers the tool's purpose and its relationship to seopass_run, and the schema fully documents the three parameters. However, with no annotations and no output schema, it leaves key behavioral details unstated, such as whether the plan is read-only, what it returns, or how it should be used after being built. It is minimally adequate but leaves clear 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 description coverage is 100%, so the schema already documents all three parameters including the url, strategy enum, and categories array. The description adds only the context that the URL is a SEOPass target and that this is Lighthouse-related, which is largely redundant with the schema's own 'Lighthouse' references. With complete schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Build the heavier Lighthouse execution plan for a SEOPass target URL.' It also distinguishes itself from the sibling seopass_run by contrasting 'heavier Lighthouse execution plan' with 'lightweight live-readonly verdict.' An agent can tell the two 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 tool seopass_run and describes its role as emitting a 'lightweight live-readonly verdict,' which implies this tool is for heavier planning. However, it does not explicitly say when to use this tool versus seopass_run or state any exclusions. The contrast is clear but not as directive as an explicit 'use this when...' guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seopass_register_packC
Register a SEOPass pack from a YAML string. Validates required keys and stores the pack locally for seopass_run.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_yaml | Yes | Full SEOPass pack definition as a YAML string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
In absence of annotations, the description only states validation and local storage. Does not disclose error behavior, persistence details, or side effects. Leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose. No unnecessary 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 registration tool with one parameter and no output schema, the description covers basic purpose but lacks error handling, storage semantics, and integration notes. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. 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 description adds 'from a YAML string' and 'validates required keys', but these add little beyond the schema's parameter description. No extra format or structure hints for the YAML content.
Input schemas describe structure but not intent. Descriptions should explain 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 states it registers a SEOPass pack from a YAML string. Mentions validation and storage. Differentiates from siblings like seopass_run and seopass_status by indicating it's a setup step. However, it doesn't explicitly distinguish from other similar register/save tools like uxpass_register_pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use before seopass_run, but provides no explicit when-to-use or when-not-to-use guidance. No mention of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seopass_runB
Run SEOPass against a public URL or registered pack. Returns a live-readonly SEO verdict, score, findings, fix prompts, and an in-session run id.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Target URL for a one-off SEOPass read-only run | |
| pack_name | No | Name of a registered SEOPass pack; the pack URL is used as the target | |
| target_sha | No | Optional PR or commit SHA for receipt staleness checks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses "live-readonly" and lists return artifacts, but does not cover prerequisites, side-effect boundaries, run-id lifecycle, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and then the return contents. Every phrase earns its place, 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?
Because there is no output schema, the description's return summary is valuable and reasonably complete. The main gap is usage routing against sibling tools, but the core purpose, targets, and outputs are 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 schema already documents all three parameters. The description maps the URL and registered-pack target concepts but adds no syntax or format detail, and it omits target_sha entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Run SEOPass" states a specific verb and resource, and the target is clarified as a public URL or registered pack. It does not distinguish itself from close siblings such as seopass_register_pack, seopass_status, or seopass_lighthouse_plan, so sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 what can be targeted but gives no explicit when-to-use guidance, no when-not-to-use guidance, and no routing to alternatives. It does not mention prerequisites such as needing a registered pack or when to use seopass_status instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seopass_statusA
Fetch the stored in-session status and report for a SEOPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The SEOPass run id returned by seopass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Stored in-session' is genuinely useful context, hinting the result is a cached/session-scoped read rather than a live re-computation and that data may be lost across sessions. However, it says nothing about permissions, error behavior, or whether the report is returned as JSON or prose.
Agents need to know what a tool does to the 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 with no filler; the verb and resource come first and nothing 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?
For a one-parameter read tool with no output schema, the definition is adequate but thin: it never indicates what the status values or report contain, nor whether the call is safe to repeat. An agent can call it, but cannot set expectations about the 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?
Schema coverage is 100% and the run_id property already documents that the value comes from seopass_run. The description adds no syntax, format, or constraint details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fetch the stored in-session status and report for a SEOPass run.' An agent can tell it retrieves run state rather than launching one, though it never names the sibling seopass_run that produces the run_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?
Usage is implied rather than stated: the run_id parameter refers to seopass_run, so the natural workflow (run first, then poll status) is inferable. There is no explicit when-to-use or when-not-to-use guidance, and no mention of polling cadence or whether the run must still be in session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setlistfm_artist_setlistsC
Get setlists for an artist on Setlist.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| mbid | Yes | ||
| page | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Get setlists,' implying a read operation. No disclosure of pagination, rate limits, data freshness, or error handling 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 description is a single sentence, making it concise, but it sacrifices informativeness. It could be more helpful while still being brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and 3 parameters with 0% coverage, the description is grossly insufficient. It does not explain inputs, outputs, or distinguish from similar tools, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. 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 3 parameters (mbid, page, api_key) with 0% description coverage. The tool description does not explain any parameter's purpose, format, or constraints, leaving the agent without guidance on how to fill 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 'Get setlists for an artist on Setlist.fm,' which clearly identifies the tool's action (get) and resource (setlists for an artist). It is distinguishable from sibling tools like setlistfm_get_setlist and setlistfm_search_setlists, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, no prerequisites (e.g., needing an API key or MBID format), and no context for pagination. The description lacks any usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setlistfm_get_setlistBRead-onlyIdempotent
Get a specific setlist from Setlist.fm by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| setlistId | Yes |
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 safety and mutability are covered. The description adds no behavioral context beyond that, such as the authentication role of api_key, rate limits, or error behavior for missing IDs.
Agents need to know what a tool does to the world before calling 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 wasted words. It communicates the core action and scoping constraint 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 get-by-ID tool with no output schema and an undocumented api_key parameter, the description is too sparse. It doesn't explain authentication, what a setlist ID looks like, or what the agent can expect to receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the two undocumented parameters. It implies that setlistId is the ID to look up, but says nothing about the api_key parameter or the expected format of the setlist ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 setlist from Setlist.fm. The phrase 'by ID' distinguishes it from search-oriented siblings like setlistfm_search_setlists, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'by ID': an agent can infer this tool is for when a setlist ID is already known. There is no explicit guidance on when to use it instead of setlistfm_search_setlists or setlistfm_artist_setlists, and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setlistfm_search_artistCRead-onlyIdempotent
Search for an artist on Setlist.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| artistName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds nothing further: no result shape, no pagination, no fuzzy-vs-exact matching behaviour, and no mention that an api_key is needed.
Agents need to know what a tool does to the 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 short sentence with no wasted words, but the terseness leaves the definition under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, zero-coverage search tool with no output schema, the description leaves the agent guessing about the api_key, matching semantics, and what a hit looks like. Substantially more is needed 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 0%, so the description must carry the parameter burden and it doesn't. 'artistName' is only implicitly referenced by the word 'artist', and the required api_key parameter is never mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain 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 (artist) scoped to Setlist.fm, which is enough to distinguish it from most of the catalogue. It does not contrast with its real neighbours setlistfm_search_setlists or setlistfm_artist_setlists, so the differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this versus the sibling setlist tools (e.g. searching artists vs. retrieving an artist's setlists). The agent must infer the workflow from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setlistfm_search_setlistsCRead-onlyIdempotent
Search setlists on Setlist.fm.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| api_key | No | ||
| cityName | No | ||
| artistName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, but the description adds no behavioral context beyond that. It does not mention authentication despite the api_key parameter, nor pagination, rate limits, or 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?
A single front-loaded sentence with no wasted wording. It is concise, though too thin for a four-parameter 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?
The annotations cover safety, but the description does not compensate for the missing parameter schema or explain the search filters, authentication requirement, or result orientation. An agent would have to infer almost everything from parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are four undocumented parameters: year, api_key, cityName, and artistName. The description does not explain any of them or how they combine in a search.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource: searching setlists on Setlist.fm. However, it does not distinguish this tool from close siblings such as setlistfm_artist_setlists or setlistfm_get_setlist, and gives no scope 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?
Provides no guidance on when to use this search versus setlistfm_artist_setlists, setlistfm_search_artist, or setlistfm_get_setlist. There are no prerequisites, exclusions, or filter-selection hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_my_emojiPick my Boardroom emojiAIdempotent
Registers this AI agent as a participant in the user's Boardroom, the build coordination room where worker seats post and read material work updates. Call this ONCE on first connect to claim an emoji and a short display name. Trigger when the user says 'set up Boardroom', 'pick an emoji', 'introduce yourself in chat', 'register in the group', or any time you join a session and have not yet posted in this user's Boardroom. Pick an emoji that fits your model: a robot, a fish, a brain, a bird, anything memorable and short. Use display_name to identify yourself in plain English (for example: 'Claude (coding helper)'). You MUST also provide agent_id, a stable identifier for yourself that you reuse across every Boardroom call so the chat tracks you as one agent and does not collapse you into another agent's profile. Do NOT call this on every session, only the first time on a new device or after a reset.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | Single emoji to identify this agent in the Boardroom feed | |
| agent_id | Yes | Stable identifier for yourself, e.g. 'claude-code-builder-seat' or 'chatgpt-codex-reviewer-seat'. Use the same value across calls so the chat tracks you as one agent. | |
| display_name | No | Short human-readable name for this agent | |
| user_agent_hint | No | Optional client identifier (e.g. 'claude-code/1.2', 'cursor/0.4') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=false), and the description adds real consequence context: a reused agent_id prevents the chat from 'collaps[ing] you into another agent's profile.' It stops short of saying what happens if the tool is called a second time with a different emoji (overwrite? no-op?), which matters given the idempotent hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded — purpose first, then triggers, then per-parameter guidance, then the do-not-overcall rule. However, the agent_id stability requirement is stated twice at length, and required params (agent_id, emoji) are re-explained even though the schema marks them required, so a couple of sentences duplicate structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a registration tool with no output schema and full parameter coverage, nothing essential is missing: the agent knows when to call, what to supply, and why stability across calls matters. The only omission, the return value or what happens to a prior registration, is minor at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented in structured form, and the description largely restates them (emoji choice, plain-English display_name, stable agent_id). The 'fits your model: a robot, a fish, a brain' guidance and the 'Claude (coding helper)' example add a little flavor beyond the schema, but no new constraint or format detail. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain 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 concrete verb+resource ('Registers this AI agent as a participant in the user's Boardroom') plus the concrete artifacts it claims (an emoji and a short display name). This is unlike anything in the sibling list (mostly data-fetch tools), and the description makes that standalone role obvious without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger phrases ('set up Boardroom', 'pick an emoji', 'introduce yourself in chat') and an explicit negative rule ('Do NOT call this on every session, only the first time on a new device or after a reset'). The when-to-call and when-not-to-call conditions are both stated, which is rare and directly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_my_statusUpdate my Now Playing statusAIdempotent
Update what you're currently doing so it shows on the human's Boardroom Now Playing strip. Call when you start a task, change focus, or idle out. Short, plain English, present-tense. Persists until you change it. agent_id required.
Optional next_checkin_at acts as a dead-man's-switch. Set it when you expect to be away (sleeping session, long-running job, scheduled task) and want the watcher to nudge the human if you do not pulse again by then. Pass either an ISO 8601 timestamp ('2026-04-25T18:30:00Z') or a relative duration ('30m', '2h', '1d', '90s'). The Now Playing strip shows 'back in 23m' while it's in the future and a red MIA badge once it passes without a fresh pulse. Pass an empty string to clear it.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | What you're doing right now in plain English (max 200 chars). Pass an empty string to clear your status back to idle. | |
| agent_id | Yes | Stable identifier for yourself, e.g. 'claude-code-builder-seat' or 'chatgpt-codex-reviewer-seat'. Use the same value across calls so the chat tracks you as one agent. | |
| next_checkin_at | No | Optional dead-man's-switch. ISO 8601 timestamp OR relative duration ('30m', '2h', '1d', '90s'). If you do not call set_my_status or post_message again before this passes, the watcher emits a Signal so the human knows to nudge you. Empty string clears it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (idempotent, non-destructive, write). The description goes further, disclosing that status persists until changed, that next_checkin_at acts as a dead-man's-switch that triggers a watcher nudge, and what the strip displays ('back in 23m', red MIA badge) — rich 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?
Front-loaded with the core effect, then progressively details the optional dead-man's-switch. Somewhat long, but every sentence earns its place by explaining a distinct behavioral consequence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no output schema, yet the description fully covers what happens on write, persistence, the check-in nudge semantics, and clearing behavior. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents formatting. The description still adds behavioral meaning the schema only partially conveys: next_checkin_at as a dead-man's-switch that causes the watcher to nudge the human, and empty-string clearing behavior for both status and the checkin 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 specific verb (update) plus the resource (your status / what you're doing) and its observable effect (shows on the human's Now Playing strip). Clearly distinguishes itself from siblings like set_my_emoji and post_message by naming the Now Playing strip as the destination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit triggers are given: 'Call when you start a task, change focus, or idle out.' No explicit exclusion against alternatives, but the triggers are concrete enough to select this tool without inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setops_calculateC
Perform set operations: union, intersection, difference, symmetric difference, subset/superset.
| Name | Required | Description | Default |
|---|---|---|---|
| set_a | Yes | First set (array of values). | |
| set_b | Yes | Second set (array of values). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, how duplicate or unordered values are handled, what errors are possible, or what the return structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no obvious filler. It is concise, but the brevity contributes to missing operational details such as how the operation is chosen.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 calculation tool with no output schema, the description should clarify how union, intersection, difference, etc. are invoked and what is returned. It instead leaves a critical gap: the schema has no operation parameter, and the description does not explain how to select among the listed operations.
Complex tools with many parameters or behaviors need more documentation. Simple 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 set_a as the first set and set_b as the second set. The description adds a list of possible operations but does not map them to any parameter or explain how the operation is selected, so it adds limited parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Perform set operations,' then enumerates union, intersection, difference, symmetric difference, and subset/superset. However, it does not distinguish this tool from possible siblings, and the lack of an operation selector makes the exact purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided about when to use this tool versus alternatives, nor about when one operation should be selected over another. Usage is only implied by the tool name and the list of set operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_sortB
Sort an array using Shell sort with gap sequence tracking, comparison and swap counts.
| Name | Required | Description | Default |
|---|---|---|---|
| array | Yes | Array of numbers to sort (max 100,000 elements) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden. It usefully discloses that output includes gap sequence tracking and comparison/swap counts, which is meaningful behavioral detail beyond the name. However, it omits whether the sort is in-place or returns a new array, and gives no return-shape or mutation 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?
A single tight sentence that front-loads the operation and algorithm with zero filler. 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 stateless computational tool with no annotations and no output schema, the description covers enough to select and call it, and hints at the returned metrics. It falls short on return structure and in-place vs copy semantics, which an agent would otherwise have to discover by running 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?
There is a single parameter (array) with 100% schema description coverage, including the max-100,000-element constraint. The description adds nothing beyond what the schema already supplies, 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 (sort) and resource (array), plus the exact algorithm (Shell sort) and its distinctive outputs (gap sequence, comparison/swap counts). This clearly separates it from the many other sort siblings like heap_sort, radix_sort, and counting_sort, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to choose Shell sort over the other sorting tools in the catalog, nor any prerequisites or constraints on usage. It only says what the tool does, not when it applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shibe_random_imageCRead-onlyIdempotent
Get random Shiba Inu, cat, or bird images.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Image type: shibes, cats, or birds (default shibes) | |
| count | No | Number of images (1-10, default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, openWorldHint and idempotentHint, so the safety profile is fully structured. The description adds nothing beyond that: no return format, no image size/aspect, no rate-limit or source API behavior. (Note the idempotentHint=true sits oddly with 'random', but that inconsistency lives in the annotations, not in the description.)
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and the resource, with zero filler. It is efficient but so terse that it leaves obvious gaps a slightly longer sentence could have filled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-optional-parameter, fully documented read-only tool this is adequate. However, with no output schema, the description never tells the agent what comes back (image URLs, an array for count>1), which is the one piece of information an agent cannot get elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both `type` (values and shibes default) and `count` (1-10, default 1) fully documented. The description names the three image kinds consistent with `type` but adds no syntax or behavioral nuance 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?
States a specific verb and resource ('Get random Shiba Inu, cat, or bird images'), so the agent knows exactly what it returns. It does not distinguish itself from near-identical siblings such as cat_api_random_image, dog_random_image, or random_fox_image, leaving ambiguity about which image tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 and no mention of alternatives, despite the sibling list containing several overlapping random-animal-image tools. Usage is only inferable from the tool name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shodan_host_infoCRead-onlyIdempotent
Get Shodan information for a specific IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered elsewhere. The description adds nothing beyond that: it says nothing about Shodan API key requirements, query-credit consumption, rate limits, or error behavior for unknown/reserved IPs—all material for an open-world lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is under-informative rather than bloated, so it scores high on conciseness but not on substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world network lookup with two params (one of them an undocumented credential) and no output schema, the description should explain what host data is returned and how the API key is supplied. It provides neither, so an agent cannot anticipate response shape or auth handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, and it largely fails. It never mentions the 'ip' parameter format (IPv4/IPv6, hostnames allowed?) or the role of 'api_key' (required vs. env fallback), leaving both undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('Shodan information') scoped to 'a specific IP address', which implicitly separates it from shodan_search (query-based) and shodan_stats (aggregate). It does not name the siblings, so an agent must infer the boundary, but the IP-specific scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus shodan_search or shodan_stats, no prerequisites, no exclusions. The only routing signal is the phrase 'specific IP address', which is implied rather than stated as a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shodan_searchCRead-onlyIdempotent
Search Shodan for internet-connected devices.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | Yes | ||
| api_key | No |
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 nothing beyond that — no mention of rate limits, result pagination, credit consumption, or how results are ranked/truncated, all of which matter for an open-world search API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is compact and front-loaded, but at this length it is under-specified rather than concise — there is no second sentence carrying the query-syntax or routing information the 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?
With no output schema, no parameter documentation, and no differentiation from two sibling Shodan tools, the definition leaves critical gaps: query syntax, result shape, and when to prefer host_info or stats. An agent cannot confidently construct a call from this alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters, and the description does not compensate at all. It never explains that `query` accepts Shodan filter syntax (e.g., port:, country:), what `page` controls, or that `api_key` can override a default key.
Input schemas describe structure but not intent. Descriptions should explain 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 ("Shodan for internet-connected devices"), which is better than a tautology. However, it does not distinguish this from sibling tools like shodan_host_info or shodan_stats, leaving the boundary between "search", "host info", and "stats" unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus shodan_host_info (look up a known IP) or shodan_stats (aggregate summaries), nor any mention of prerequisites such as needing an api_key. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shodan_statsBRead-onlyIdempotent
Get aggregated statistics for a Shodan query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| facets | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so safety and idempotency are covered. The description adds only that results are 'aggregated statistics,' without disclosing rate limits, authentication needs, or whether facets affect the shape of 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?
A single front-loaded sentence with no wasted words. It states the action and output type immediately, which is appropriate for a short tool 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 three-parameter tool with 0% schema coverage and no output schema, the description is too thin. It omits what facets do, how api_key is supplied, and what the aggregated output looks like, leaving the agent to guess from parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for all three parameters. It hints that 'query' is a Shodan query, but does not explain 'facets' (central to aggregated stats) or 'api_key', leaving most parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('aggregated statistics for a Shodan query'), which makes clear this returns summary/facet data rather than raw search results. It does not explicitly distinguish itself from siblings like shodan_search or shodan_host_info, but the aggregation framing is enough to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of shodan_search or shodan_host_info, nor any mention of prerequisites such as an API key. The only implied usage is 'use this for stats,' which an agent could infer 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.
shopify_collectionsC
Get collections from a Shopify store.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | No | ||
| shop_domain | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation, but does not disclose authentication requirements, permission scopes, pagination behavior, rate limits, or what happens when limit is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of waste, but it is too sparse for a tool with four undocumented parameters. It is concise to the point of being under-specified rather than efficiently complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and 0% schema description coverage, the description is not complete enough for correct invocation. It should at least mention authentication requirements, the shape of the returned collection list, and the role of limit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions none of the four parameters. It does not explain that api_key, access_token, and shop_domain are authentication inputs, nor what limit controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get collections' from a Shopify store. It is clearly distinct from sibling tools like shopify_products and shopify_orders, though it does not clarify whether this retrieves all collections, filters them, or fetches one by identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of filtering or pagination. The agent must infer usage entirely from the name and bare schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_customersC
Get customers from a Shopify store.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| limit | No | ||
| api_key | No | ||
| shop_domain | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It implies a read operation but does not disclose authentication requirements, pagination behavior, rate limits, or whether the result is a full list or affected by filters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it is undersized for a tool with five parameters and no other documentation. It avoids verbosity but lacks the structure needed to guide 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?
Given five parameters, zero schema descriptions, no annotations, and no output schema, the description is materially incomplete. An agent would not know how to authenticate, filter, or page results from this definition alone.
Complex tools with many parameters or behaviors need more documentation. 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 five parameters with 0% description coverage, and the description mentions none of them. It does not explain email filtering, limit behavior, or the required connection details (api_key, shop_domain, access_token), leaving the agent unable to infer parameter semantics from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ("customers") scoped to a Shopify store, which is enough to distinguish it from most unrelated siblings. It does not explicitly differentiate it from other Shopify tools such as shopify_orders or shopify_inventory, 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?
There is no guidance on when to use this tool, when not to use it, or which sibling tools are alternatives. The only implied usage is that it retrieves customers, which is already evident from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_fulfillmentsC
Get fulfillments for a Shopify order.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| order_id | Yes | ||
| shop_domain | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It doesn't disclose that four parameters including api_key, shop_domain and access_token imply credential setup, nor does it mention read-only nature, pagination, or rate limits. 'Get' weakly implies a read, but nothing is stated explicitly.
Agents need to know what a tool does to the 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 front-loaded sentence with zero filler. It is efficient, though the brevity contributes to the gaps noted elsewhere rather than being a model of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a credentialed external-API tool with four parameters, no output schema, and no annotations, the description is far too thin. An agent cannot tell from it how to authenticate, what a fulfillment object contains, or whether the result is a list or single record.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters. The phrase 'for a Shopify order' hints that order_id is the key input, but the three authentication parameters (api_key, shop_domain, access_token) — all required in practice for a Shopify call — receive no explanation of role, format, or whether any are optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 fulfillments') scoped to 'a Shopify order', which lets an agent distinguish it from siblings such as shopify_orders or shopify_inventory by resource name. It is clear but minimal – no statement of what a fulfillment record contains or how results are shaped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus shopify_orders (which may also expose fulfillment data), no prerequisites, and no mention of ordering or filtering conditions. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_inventoryC
Get inventory for Shopify products.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| product_id | No | ||
| shop_domain | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says nothing about authentication needs despite api_key, access_token and shop_domain parameters implying credential handling. Read-only semantics are only weakly implied by 'Get', and there is no mention of pagination, limits, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, so it is concise, but the brevity reflects under-specification rather than efficiency. The key scoping information is simply absent rather than 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 annotations, no output schema, and zero parameter documentation, the one-line description leaves too much unknown for a four-parameter authenticated tool. An agent would have to guess at credential requirements and what the returned inventory actually contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters. The description's mention of 'Shopify products' hints that product_id scopes the lookup, but it says nothing about shop_domain, api_key or access_token, which are the parameters an agent is most likely to misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Get' and resource 'inventory for Shopify products' are present, but the description never specifies what inventory data means here (stock levels, per-location quantities, availability) or how it differs from the sibling shopify_products. An agent cannot tell the scope of the returned data from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or which sibling (shopify_products, shopify_orders, shopify_collections) to prefer for a given question. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_ordersC
Get orders from a Shopify store.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| api_key | No | ||
| shop_domain | No | ||
| access_token | No | ||
| financial_status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation ('Get'), which is some information, but it says nothing about authentication requirements (api_key/access_token/shop_domain), pagination via limit, rate limits, or what the result set contains. That is a large gap for a mutation-free but credential-gated integration 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?
A single front-loaded sentence with no padding, which is structurally fine. The brevity is not the problem; the problem is that almost nothing useful is packed into 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?
Six parameters with no required fields, zero schema descriptions, no annotations, and no output schema. For an integration tool that needs credentials and filter semantics, a four-word description leaves the agent without enough 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 0% across six parameters, and the description mentions none of them. The meanings of status vs financial_status, how limit behaves, and the role of the three credential parameters are entirely undocumented in both structured and natural-language 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 verb and resource are stated ('Get orders'), so the domain is clear, and the plural hints at a list operation. But it never distinguishes listing orders from fetching a single order, nor does it differentiate from the many other order/Shopify siblings (shopify_products, shipify_fulfillments, woocommerce orders). It sits at minimum viable rather than distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 exclusions, and no mention of alternatives like filtered searches. An agent has no signal about whether this is the right tool for a specific order versus a general listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_productsC
Get products from a Shopify store.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| vendor | No | ||
| api_key | No | ||
| shop_domain | No | ||
| access_token | No | ||
| product_type | No | ||
| collection_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and fails to: state that authentication credentials are required, describe pagination or what 'limit' defaults to, or say whether results are a flat list or paged envelope. 'Get' at least implies a read-only operation, but nothing about rate limits, error behavior, or result shape is disclosed.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no padding, which is structurally sound. However, it is concise to the point of under-specification — the brevity comes from omitting information rather than from tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 seven optional parameters, no annotations, no output schema, and no parameter documentation, the agent cannot tell how to authenticate, whether shop_domain needs a full URL or hostname, or how to page results. For a credentialed third-party commerce API this description is materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across seven parameters, including non-obvious ones: which credential field is actually required (api_key vs access_token), how collection_id and vendor/product_type interact, and what limit's default and maximum are. The description supplies zero parameter meaning, leaving every filter undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('products') scoped to a Shopify store, which cleanly separates it from shopify_orders, shopify_customers, shopify_collections and shopify_inventory. It stops short of saying whether this is a full listing or a filtered search, and gives no hint of how it differs from cross-platform siblings like woo_products or ls_list_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to call this versus shopify_collections (browse a curated set) or shopify_inventory (stock levels), and no mention of the auth prerequisites implied by the api_key/access_token/shop_domain parameters. The agent is left to infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_shopC
Get Shopify store information.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| shop_domain | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the entire behavioral burden, yet it says nothing about read-only behavior, authentication requirements, or error conditions. The parameter names (api_key, access_token) hint at auth, but the description never confirms that callers must supply valid credentials or what happens when they don't.
Agents need to know what a tool does to the 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 short sentence with no filler, but it is under-specified rather than concise; there is no front-loaded detail an agent can act on beyond the bare purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A three-parameter authenticated API tool with no annotations, no output schema, and no parameter documentation gets almost nothing from this description. An agent would know what the tool is for but not how to invoke it correctly or what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate for three undocumented parameters and does not. The names api_key, shop_domain, and access_token are largely self-explanatory (domain format, where to obtain keys), which keeps this above a 1, but the description adds zero 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 a specific verb and resource ('Get Shopify store information'), distinguishing it from the transactional siblings like shopify_orders and shopify_products. It does not state what 'store information' actually comprises (name, currency, plan, domains), leaving scope somewhat open.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus the other shopify_* tools, no prerequisites, and no mention of what to do if credentials are missing. The agent must infer that this is the account/store-metadata entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shortcut_get_storyBRead-onlyIdempotent
Get a single Shortcut story by id.
| Name | Required | Description | Default |
|---|---|---|---|
| story_id | Yes | Shortcut story id | |
| api_token | Yes | Shortcut API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds nothing beyond that – no note about what a story record contains, whether deleted/archived stories are visible, or what happens on an invalid id.
Agents need to know what a tool does to the 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 nine-word sentence with no filler and the key qualifier ("by id") front-loaded. Nothing could be removed 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?
This is a simple two-parameter read tool with full schema coverage and annotations covering safety, so little more is needed. The one gap is that the description never signals the relationship to the search sibling or what the returned story includes, but no output schema exists to carry that burden either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 story_id and api_token are already documented in the schema. The description's "by id" merely restates the story_id parameter and adds no format, type, or constraint detail beyond it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Get a single Shortcut story") plus the lookup key ("by id"), which is unambiguous. It does not, however, distinguish itself from the sibling shortcut_search_stories, leaving the agent to infer which one to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus shortcut_search_stories, nor any prerequisite noted (e.g., you must first have a story id from a search). The only hint is the phrase "by id", which implies but never states the condition that selects this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shortcut_list_epicsCRead-onlyIdempotent
List Shortcut epics.
| Name | Required | Description | Default |
|---|---|---|---|
| api_token | Yes | Shortcut API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds no behavioral context beyond that, such as authentication needs, pagination, or result 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 front-loaded sentence with no wasted words. It is perhaps too terse to add much value, but it is structurally clean and appropriately 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 simple one-parameter list operation with rich annotations and full schema coverage, the description is minimally sufficient to invoke the tool. However, it omits useful context such as pagination behavior or whether all epics are returned, so it is adequate rather than 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?
There is one parameter, api_token, and schema description coverage is 100%, so the schema fully documents it. The description does not add any parameter meaning beyond the schema, which is the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: list Shortcut epics. An agent can tell it apart from story- or project-related siblings by the 'epics' resource, though no explicit sibling differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as shortcut_search_stories or shortcut_list_projects. It does not state prerequisites, filtering behavior, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shortcut_list_projectsCRead-onlyIdempotent
List Shortcut projects.
| Name | Required | Description | Default |
|---|---|---|---|
| api_token | Yes | Shortcut API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds nothing beyond that baseline: no pagination behavior, no workspace/team scoping, no note on result size or rate limits for a list 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?
One short sentence, front-loaded with verb and resource, with no filler. Conciseness is genuinely good, though it is short because content is missing rather than because it is tightly edited.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should say something about what comes back (fields, pagination, whether archived projects are included) and it says none of it. For a list tool on a project-management API this leaves meaningful gaps for correct invocation and result handling.
Complex tools with many parameters or behaviors need more documentation. 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 a single parameter, api_token, documented at 100% schema coverage, so the schema carries the full burden. The description adds no meaning beyond it, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List Shortcut projects'), and the resource is distinct from siblings like shortcut_list_epics and shortcut_search_stories. It lacks any statement of scope or output shape, so it stops short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus shortcut_list_epics or shortcut_search_stories, and no indication of prerequisites beyond the API token. The agent must infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shortcut_search_storiesCRead-onlyIdempotent
Search Shortcut stories with the search syntax.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results to return (max 25, default 25) | |
| query | Yes | Search query (e.g. 'state:"In Progress" owner:me') | |
| api_token | Yes | Shortcut API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so safety is covered. Beyond that the description says nothing about result shape, whether the search spans all workspaces, how pagination or the 25-result cap behaves, or what token scope is needed — all open questions for an open-world search call.
Agents need to know what a tool does to the 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 short sentence with no filler. It is front-loaded, but it is under-specified rather than deliberately terse, leaving little room for the agent to 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 search endpoint with no output schema, the description should at least sketch what a result contains (story IDs, names, workflows) and note that IDs feed shortcut_get_story. None of that is present, so the agent cannot plan a follow-up call from this 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 description coverage is 100%, including an example query with field syntax and the limit cap, so the schema carries the semantics. The description's phrase 'search syntax' gestures at the query grammar but never explains it, adding nothing beyond the schema example.
Input schemas describe structure but not intent. Descriptions should explain 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 verb (search) and resource (Shortcut stories), but 'with the search syntax' is circular and adds no discriminating detail against siblings like shortcut_get_story or shortcut_list_epics. An agent can infer the tool is a search, but nothing in the text confirms what a story is or how results differ from the other Shortcut 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 statement of when to use this versus shortcut_get_story or any other retrieval tool, and no prerequisites or exclusions. The agent must guess that this is the entry point for finding stories by query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shunting_yardB
Convert an infix math expression to postfix (RPN) and evaluate it.
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Infix math expression (e.g. '3 + 4 * 2') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose supported operators beyond the example, error handling for invalid expressions, return type, determinism, or edge-case 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?
A single front-loaded sentence with no filler. It states the operation and result directly, which is appropriately sized for a simple one-argument utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure-function math tool with a fully described single parameter, the description is nearly sufficient. However, without an output schema, it could clarify what evaluation returns or how invalid input is handled.
Complex tools with many parameters or behaviors need more documentation. 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 single expression parameter with an example. The description adds no additional parameter meaning beyond the schema's own 'infix math expression' wording, 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?
States a specific verb and resource: convert an infix math expression to postfix (RPN) and evaluate it. This precisely identifies the tool's unique computational function and differentiates it from generic math or calculator 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?
No when-to-use guidance, no alternatives, no prerequisites, and no error conditions are given. The description only states the operation, leaving the agent to infer that this is the tool for infix-to-postfix conversion and evaluation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_of_eratosthenesB
Generate all prime numbers up to N using the Sieve of Eratosthenes algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Upper bound (inclusive), must be >= 2 and <= 10,000,000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. Naming the Sieve of Eratosthenes conveys a deterministic, exact computation with characteristic time/memory behavior, which is genuine behavioral context. However, it says nothing about performance at the 10M bound, output format, or memory 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?
A single, tightly written sentence that front-loads the operation and scope. Every clause earns its place with no 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?
With no output schema or annotations, the description does state the return content (all primes up to N) and the parameter constraints live in the schema. It is largely complete for a single-parameter tool, though it could note the output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 n's inclusive upper bound and its 2-to-10,000,000 range. The description only restates N as an upper bound and adds no syntax or format meaning. 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 (Generate) and resource (all prime numbers up to N) and even names the algorithm used. An agent can distinguish it from sibling primality tools like prime_check or prime_factor. Sibling differentiation is implicit rather than explicit, keeping it 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 on when to use this versus alternatives such as prime_check (single number) or prime_factor (factorization). The description only says what it does, not when it is the right choice or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sigmoid_calculateBRead-onlyIdempotent
Compute activation functions (sigmoid, tanh, relu, leaky_relu, elu, swish) and their derivatives.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Input value. | |
| function | No | Activation function: sigmoid, tanh, relu, leaky_relu, elu, or swish. Default: sigmoid. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so safety is covered. The description adds the supported-function inventory, which is useful, but says nothing about domain behavior (e.g. saturation behavior, what happens with out-of-range inputs). It also mentions 'derivatives' without explaining how to obtain one, which leaves a behavioral 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?
A single well-formed sentence with the function inventory up front and no filler. The trailing phrase 'and their derivatives' is the one element that is not earned, since the schema provides no way to request a derivative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 numeric tool with no output schema, the description is nearly sufficient, but the derivative claim is unsupported by the schema and could mislead an agent into hunting for a missing parameter. 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% and the schema already lists the six function names plus the sigmoid default, so the description is largely redundant here. The mention of 'derivatives' does not map to any parameter in the schema, adding ambiguity rather than clarity.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Compute') and resource (activation functions), and enumerates the supported function names, so an agent knows exactly what it produces. It does not differentiate from neighboring math tools such as newton_math or numerical_diff, which is the only thing keeping it below 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?
There is no statement of when to pick this over alternatives (e.g. numerical_diff for derivatives) and no preconditions or exclusions. The reader must infer usage purely from the name and function list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simplex_solveARead-onlyIdempotent
Solve a linear programming problem (maximize objective subject to <= constraints) using the simplex method.
| Name | Required | Description | Default |
|---|---|---|---|
| objective | Yes | Coefficients to maximize (e.g. [5, 4] for 5x + 4y) | |
| constraints | Yes | Array of {coeffs, bound} for <= constraints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description usefully adds the problem-form restriction (maximization only, <= constraints only), but says nothing about behavior on infeasible/unbounded inputs or the implicit non-negativity assumption typical of simplex.
Agents need to know what a tool does to the 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 tightly worded sentence that front-loads the operation and packs formulation details into a parenthetical. 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 small two-parameter tool with full schema coverage and annotations, the definition is workable, but with no output schema the description should hint at what is returned (optimal solution vector and objective value) and whether the problem is assumed non-negative — both matter for calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented with examples in the schema, so the description only echoes 'maximize objective subject to <= constraints'. Baseline 3 is appropriate; no additional syntax or dimensional constraints (e.g. coeffs length must match objective length) are added.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Solve a linear programming problem... using the simplex method') and pins down the formulation (maximize, <= constraints), which separates it from the equation-solving sibling linear_solve. It does not explicitly name or contrast any sibling, 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 parenthetical 'maximize objective subject to <= constraints' implicitly tells the agent which problem shapes are in scope, but there is no explicit when-to-use/when-not guidance and no routing to alternatives such as linear_solve or knapsack_solve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skip_list_simB
Simulate a skip list: insert values, get sorted output, and search for elements in O(log n) expected time.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Values to search for | |
| values | Yes | Values to insert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the expected time complexity (O(log n)) and that output is sorted, which is genuine behavioral context, but it never states that the operation is a pure, side-effect-free computation, nor what the response actually contains for the search parameter.
Agents need to know what a tool does to the 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 lists the operations in the order they matter. Every clause earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must carry the return-value burden, and it only partially does: it says the output is sorted and that searching is supported, but not whether search returns booleans, indices, or matches. For a two-array algorithmic simulation tool it is adequate but leaves real 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 description coverage is 100%, so both 'values' (Values to insert) and 'search' (Values to search for) are already documented in the schema. The description restates the same two roles without adding format, ordering, or type detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — 'Simulate a skip list' — and enumerates the three operations: insert, sorted output, and search. It is clear but does not differentiate itself from closely related siblings like rb_tree_sim, treap_sim, or avl_tree, which an agent would need help choosing between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus the many other data-structure simulators in the sibling list, and no preconditions or exclusions. The agent is left to infer usage entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slack_actionC
Perform a Slack action: slack_send, slack_read, slack_search, slack_thread_reply, slack_channels, slack_react, slack_upload.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| emoji | No | ||
| limit | No | ||
| query | No | ||
| action | Yes | ||
| channel | No | ||
| bot_token | No | Slack bot token (xoxb-...). Optional when Slack is connected in UnClick or SLACK_BOT_TOKEN is set. | |
| thread_ts | No | ||
| timestamp | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose which actions are reads versus writes, auth requirements, side effects, rate limits, or return behavior; the action names only weakly imply mutation.
Agents need to know what a tool does to the world before calling 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 wasted prose. It is concise, though the dense list format sacrifices some readability for a complex dispatcher.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter, no-annotation dispatcher with no output schema, the description is not complete. It omits per-action required parameters, authentication behavior, side effects, and expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 11% (one of nine parameters documented), and the description adds only the allowed action values. It does not explain how text, channel, thread_ts, timestamp, emoji, query, limit, or bot_token map to specific actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Slack) and enumerates seven concrete operations, so an agent can identify it as a multiplexed Slack action tool. However, the verb 'Perform' is vague and the action labels are not described in terms of 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?
It lists action names but gives no criteria for choosing between slack_send, slack_read, slack_search, slack_thread_reply, slack_channels, slack_react, and slack_upload. There is no when-not-to-use guidance or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleeper_leagueC
Get a Sleeper fantasy league by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| league_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only indicates a read operation ('Get') but omits details like whether data is cached, rate limits, or what the response contains. Minimal 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 very concise at one sentence, but it lacks structure (e.g., sections for usage, return value). It is minimally sized but could benefit from organization while staying brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and no output schema, so the description should clarify what the returned data represents. It does not. The description is incomplete for an agent trying to decide if this tool meets its needs.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no meaning beyond the input schema. It mentions 'by ID' but the schema already defines league_id as a required string. No additional context about the parameter's format, source, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get') and resource ('Sleeper fantasy league') and specifies input method ('by ID'). However, it does not differentiate from sibling tools like sleeper_league_matchups or sleeper_league_rosters, which also relate to leagues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, no prerequisites, and no context about appropriate scenarios. Simply states the operation without any when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleeper_league_matchupsC
Get matchups for a Sleeper fantasy league week.
| Name | Required | Description | Default |
|---|---|---|---|
| week | Yes | ||
| league_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavioral traits. It only says 'Get matchups' with no information about rate limits, authentication, error handling, or whether the operation is read-only. This is a significant 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, front-loaded sentence that efficiently captures the tool's purpose. It avoids redundancy but could benefit from slight expansion without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description is too minimal. It fails to mention return format, error cases, or limitations, leaving the agent without essential context for 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?
The input schema has two parameters (league_id, week) with 0% schema description coverage. The description adds no additional meaning or context about these parameters (e.g., format, constraints, or how matchups are defined).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('get matchups'), the resource ('Sleeper fantasy league'), and the scope ('week'). This clearly identifies the tool's purpose and distinguishes it from sibling tools like sleeper_league (league info) and sleeper_league_rosters (rosters).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. Sibling tools for other Sleeper operations exist (e.g., sleeper_league, sleeper_players), but the description does not help the agent decide which tool to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleeper_league_rostersC
Get rosters for a Sleeper fantasy league.
| Name | Required | Description | Default |
|---|---|---|---|
| league_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behavioral traits. It only says 'Get rosters' without detailing what rosters include, pagination, rate limits, or data freshness. Lacks essential 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?
Extremely concise (7 words) but underspecified. While not verbose, it sacrifices necessary detail. Earns its place but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and minimal description. Does not explain what the rosters contain or how to interpret results. Incomplete for effective tool 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?
Schema description coverage is 0%, and description does not explain league_id parameter. Does not add meaning beyond the schema. A single required parameter should be elaborated.
Input schemas describe structure but not intent. Descriptions should explain 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 verb 'Get' and resource 'rosters for a Sleeper fantasy league'. It distinguishes from sibling tools like sleeper_league, sleeper_league_matchups, sleeper_players, 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?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites like needing league_id from sleeper_league or any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleeper_nfl_stateB
Get the current NFL state from Sleeper.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose behavioral traits such as read-only nature, rate limits, or return format. The description only states the purpose without additional 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 a single, clear sentence. It is concise and front-loaded, though it could briefly mention what 'state' includes (e.g., week, season type).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool, the description is adequate but lacks detail about the return value. The agent may need to experiment to understand the output structure, given 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?
With zero parameters, the baseline is 4. The description adds no parameter info, but no further explanation is needed as the input schema is 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 clearly states the tool returns the current NFL state from Sleeper, using a specific verb and resource. It distinguishes from sibling tools like sleeper_league or sleeper_players by focusing on 'state' rather than leagues or player 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?
No guidance is provided on when to use this tool versus alternatives (e.g., sleeper_league for league details). The agent must infer the context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleeper_playersC
Get all NFL players from Sleeper.
| Name | Required | Description | Default |
|---|---|---|---|
| sport | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'Get all NFL players'. It does not disclose whether the list is static, dynamic, or any limitations like rate limits or data size. The behavior is minimally described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it omits essential information about parameters and behavior. It is not optimally informative for 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?
Given the simplicity of the tool (one optional parameter, no output schema), the description is incomplete. It fails to explain the parameter, return value, or any nuances, leaving significant gaps for 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 has 0% description coverage for the 'sport' parameter, and the tool description does not mention the parameter at all. The agent receives no guidance on what values are valid or how to use 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 clearly states the verb 'Get' and resource 'all NFL players', which distinguishes it from sibling tools like sleeper_trending_players and sleeper_league_rosters. However, the input schema includes a 'sport' parameter, suggesting it might not be limited to NFL, creating slight 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?
No guidance is provided on when to use this tool versus alternatives such as sleeper_trending_players or sleeper_nfl_state. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleeper_trending_playersCRead-onlyIdempotent
Get trending players on Sleeper.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | add or drop | |
| limit | No | ||
| sport | No | ||
| lookback_hours | No |
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, so the safety profile is covered. The description adds nothing else: no mention of defaults for lookback window or limit, no statement that results are a live trend snapshot rather than historical 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?
A single short sentence front-loads the resource, but the brevity is under-specification rather than economy - no sentence in it adds information an agent could not get from 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?
Four optional parameters with no required fields, no output schema, and no defaults stated means the agent cannot know what sport, limit, or lookback window it gets by omitting them. For a trending-snapshot tool whose meaning depends entirely on those windows, this is a real 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 only 25% - the lone documented parameter ('type: add or drop') merely restates its own enum. The description says nothing about 'sport', 'limit', or 'lookback_hours', which are the parameters that most affect results and which lack defaults 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?
States a specific verb and resource ('Get trending players') plus the platform (Sleeper), which is enough to distinguish it from sleeper_players (all players) or sleeper_nfl_state (state). It stops short of explicitly contrasting with those siblings, so 4 rather than 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?
There is no when-to-use guidance, no mention of the add/drop trend distinction, and no statement of how this differs from sleeper_players. The agent must infer from the tool name alone that this is for waiver-trend style lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slope_interceptB
Find the line equation (slope-intercept and standard form) from two points.
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | X of first point. | |
| x2 | Yes | X of second point. | |
| y1 | Yes | Y of first point. | |
| y2 | Yes | Y of second point. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully names the two output forms, but for a pure computation tool it omits relevant behavior such as the undefined-slope case when x1 equals x2. It is deterministic and side-effect-free, so the remaining gap 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?
A single sentence with the verb front-loaded and zero filler. Every clause (input source and both output forms) 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 four-parameter math utility with no output schema, stating the inputs and the produced equation forms is close to sufficient. Only the degenerate vertical-line behavior is unaddressed, a minor gap for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the four point coordinates are already documented by the schema. The phrase 'from two points' loosely maps to x1/y1/x2/y2 but adds no ordering, format, or interpretation details beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find the line equation') plus the exact input ('from two points') and the two output forms (slope-intercept and standard form). However, it does not differentiate from the sibling 'standard_form', which produces part of what this tool already returns, leaving some ambiguity about which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only restates the function; it offers no when-to-use guidance, no conditions, and never names or excludes any alternative such as 'standard_form' or 'midpoint_calc'. An agent must infer all routing 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.
sloppass_runA
Run SlopPass against caller-provided source files, a unified diff, or a GitHub PR target whose public .diff should be fetched. Returns an evidence-backed slop-signal receipt plus JSON, markdown, and HTML reports. SlopPass does not execute code, clone repositories, persist source content, or make paid model calls by default.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | No | Unified diff text to inspect. Added lines are converted into scoped file evidence. | |
| files | No | Source files to inspect. Use this for scoped local artifacts or paste-backed code review. | |
| checks | No | Optional SlopPass check categories to run. Defaults to all built-in categories. | |
| target | Yes | Target being inspected. For live GitHub PR review, use kind=pr with repo plus number, or url/pr_url. | |
| provider | No | Provider mode to record in the receipt. Defaults to http and does not call a model. | |
| target_sha | No | Optional PR or commit SHA for receipt staleness checks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it explicitly discloses that SlopPass does not execute code, clone repositories, persist source content, or make paid model calls by default. These negative guarantees are exactly the kind of behavioral context an agent needs before invoking a code-analysis tool. It could go further on permissions, rate limits, or what happens when a fetch fails.
Agents need to know what a tool does to the 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 dense sentences, front-loaded with the action and input modes, followed by the output artifacts and the negative guarantees. No filler, though the second sentence is a slightly long chain of negations that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description names the return artifacts (receipt plus JSON, markdown, and HTML reports), and it covers the target variants an agent must supply for a 6-parameter tool with a nested required target object. Only minor gaps remain around failure modes and default behavior for optional 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, including the target object's kind/url/number semantics. The description echoes the three input channels but adds no format or syntax detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Run) and resource (SlopPass) and enumerates the three input modes it operates on: caller-provided source files, a unified diff, or a GitHub PR target. It is clear but does not distinguish itself from the many similarly named siblings (copypass_run, testpass_run, seopass_run, securitypass_run, uxpass_run), which an agent must still disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the input modes listed (files/diff/PR) and by the schema's target.kind enum, but there is no explicit when-to-use guidance, no prerequisites, and no mention of alternative SlopPass tooling it might pair with or be replaced by. Adequate but leaves selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solarsystem_bodiesC
List solar system bodies (planets, moons, asteroids, comets).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return. | |
| filter | No | Body type filter: Star, Planet, Dwarf Planet, Asteroid, Comet, Moon. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read-only operation, but nothing is said about pagination, default result count when 'limit' is omitted, ordering, or what a result entry looks like. For a zero-annotation tool this is a thin 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?
A single front-loaded sentence with no filler; the resource and included categories come first. It is efficient, though the extreme terseness for a list tool leaves little room for the routing and behavior hints an agent would benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low-complexity (two optional params, no output schema, no annotations), so the description is close to adequate. Still missing are default-limit behavior and differentiation from the singular 'solarsystem_body' sibling, which an agent needs to route 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 both 'limit' and 'filter' are already documented in the schema, including the accepted body-type values. The parenthetical in the description loosely maps to the filter concept but adds no syntax, default, or range detail beyond what the schema already states, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('solar system bodies') and enumerates the included categories (planets, moons, asteroids, comets), so the agent knows exactly what comes back. It does not, however, distinguish itself from the sibling tool 'solarsystem_body' (singular), leaving the list-vs-single retrieval boundary 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 offers no when-to-use guidance, no mention of alternatives, and no exclusions. An agent cannot tell from this text whether to reach for this tool versus 'solarsystem_body' or any other astronomy sibling, nor under what conditions the filter should be applied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solarsystem_bodyB
Get detailed info about a specific solar system body.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Body ID (e.g. 'terre' for Earth, 'mars', 'jupiter', 'lune' for Moon). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup but never states that it is non-mutating, needs no auth, or is safe to call repeatedly, and it gives no hint about the shape or scope of the returned 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?
One short sentence with no filler, and the key operation is front-loaded. It is efficient, though it is arguably too sparse to be maximally 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?
This is a simple single-parameter read tool with no output schema and no annotations, so the description is close to the minimum viable. It does not address return contents, edge cases (invalid id), or source/coverage of the body data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 id parameter already documents accepted values with examples ('terre', 'mars', 'lune'), so the schema does the heavy lifting. The description adds no additional meaning beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Get) and resource (detailed info about a specific solar system body), clearly distinct from the sibling solarsystem_bodies list tool. It is clear what the tool does, though it never explicitly names that sibling to reinforce the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the singular 'a specific solar system body' plus a required id parameter suggests lookup-by-ID versus browsing the list. There is no explicit statement of when to use this over solarsystem_bodies or any prerequisite/context guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort_linesB
Sort, deduplicate, or reverse lines of text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Multi-line text to sort. | |
| numeric | No | Sort numerically (default false). | |
| reverse | No | Sort descending (default false). | |
| deduplicate | No | Remove duplicate lines (default false). | |
| case_insensitive | No | Case-insensitive sort (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does not state that the operation is a pure, side-effect-free transformation returning new text, nor how the three behaviors interact (e.g., whether sort and deduplicate can be combined). The low-risk nature of the tool makes these omissions minor, but the disclosure is still thin.
Agents need to know what a tool does to the 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 with zero filler. Every word maps to a real capability of 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 5-parameter pure function with a fully documented schema and no output schema, the description is nearly adequate but leaves two gaps: whether the three operations are mutually exclusive (the word 'or' suggests so, while the boolean parameters allow combining them) and what the returned text looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: numeric, reverse, deduplicate, and case_insensitive are all documented in the schema. The description's mention of the three operations overlaps with those structured fields and adds no syntax, ordering, or combination detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific verbs and the resource: sort, deduplicate, reverse lines of text. An agent immediately knows this is a line-oriented text transformation. It does not, however, distinguish itself from nearby siblings such as reverse_text, text_transform, or string_case, 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?
There is no when-to-use or when-not-to-use guidance and no mention of alternative tools. The agent must infer from the name alone when this should be chosen over the many other text-manipulation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sos_dpC
Sum over Subsets (SOS) dynamic programming / zeta transform on bitmasks.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of values indexed by bitmask (length must be power of 2) | |
| direction | No | subset_sum or superset_sum (default: superset_sum) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and falls short: it does not state that this is a pure/read-only computation, what the return value is (a transformed array of the same length?), or the algorithmic complexity that makes it preferable to naive enumerations. Only the operation's name conveys 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?
A single front-loaded sentence with no filler or repetition. It is efficient, though the terseness borders on under-specification rather than tight conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 numeric transform with no annotations and no output schema, the description should at minimum explain what is returned and what 'direction' changes semantically. Neither is covered, leaving the agent unable to predict the result shape or confirm the transform's orientation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'values' parameter is documented as an array of values indexed by bitmask with a power-of-two length requirement, and 'direction' lists subset_sum/superset_sum with a default. The description adds no meaning beyond this, so the schema baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific, well-defined algorithm (Sum over Subsets / zeta transform) and its domain (bitmasks), which is far more than a tautology. It does not, however, differentiate itself from nearby siblings such as bitmask_ops, moebius_function (the inverse transform), or fft_transform, so an agent must know the algorithm to place 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?
There is no when-to-use guidance at all: no statement of what problem this solves, no prerequisites (e.g. fixed-length power-of-two input), and no pointer to alternatives like moebius_function for the inverse or plain bitwise tools. The agent must infer everything from the algorithm name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soundex_encodeARead-onlyIdempotent
Encode words using the Soundex phonetic algorithm, optionally comparing two names.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Word(s) to encode. | |
| compare | No | Second name to compare with the first. |
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 one useful behavioral fact - that the tool has a dual mode, either pure encoding or a two-name comparison - but does not say what the comparison returns (a boolean match, a similarity score, or both codes) or what encoding output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause maps to a parameter or mode of 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?
With no output schema, the description should describe the return value, especially the ambiguous compare mode - it is unclear whether the response contains one Soundex code, two, or a match flag. The algorithmic naming helps, but the output shape is left unstated for a two-mode 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 both parameters are already documented with their roles ('Word(s) to encode', 'Second name to compare with the first'). The description only restates that compare is optional and never expands on accepted input forms such as multi-word strings or the significance of comparing a name against an already-encoded 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?
States a specific verb (encode) plus the named algorithm (Soundex) and the optional comparison mode, which distinguishes it from adjacent text tools such as metaphone_encode and string_distance. It never names those alternatives explicitly, so the differentiation is implicit 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 'optionally comparing two names' implies when the compare parameter should be supplied, but there is no guidance on when to pick Soundex over metaphone_encode, phonetic_spell, or similarity tools like jaccard_similarity. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spaceflight_articlesC
Get latest spaceflight news articles.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of articles (max 20, default 10) | |
| search | No | Search keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies recency ordering via 'latest' but says nothing about pagination, rate limits, or what the return records look like, which matters for an agent deciding whether one call suffices.
Agents need to know what a tool does to the 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 efficient sentence with no waste and the key purpose front-loaded. It is arguably too terse rather than padded, but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool with no annotations and no output schema, the description is minimally adequate. It omits return shape and how 'search' interacts with recency, but the tool is simple enough that this is a modest 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 'limit' (max 20, default 10) and 'search' are already fully documented in the schema. The description adds no parameter meaning beyond that, so the 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 clear verb+resource: retrieving the latest spaceflight news articles. However, it does not distinguish itself from close siblings in the same namespace such as spaceflight_blogs and spaceflight_reports, leaving the agent to guess which source is which.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus spaceflight_blogs, spaceflight_reports, or the spacex_* launch tools. The word 'latest' implies a use case but there is no explicit when/when-not and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spaceflight_blogsC
Get latest spaceflight blog posts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of posts (max 20, default 10) | |
| search | No | Search keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state whether results are cached, whether 'latest' is bounded by a time window, what source it draws from, or how it behaves with no parameters. 'Get latest' is the entire behavioral disclosure and it is thin.
Agents need to know what a tool does to the 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 tight sentence with no filler and the essential verb/resource front-loaded. It is appropriately sized, though it is arguably too short given the ambiguity with siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations, no output schema, and two siblings in the same domain, this description is too thin. It should clarify what 'latest' means, the data source, and how it differs from spaceflight_articles and spaceflight_reports.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit (max 20, default 10) and search (keyword) are documented in the schema. The description adds no parameter detail beyond what the schema already states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a verb (get) and resource (spaceflight blog posts) plus a recency qualifier (latest). But it does not distinguish from siblings spaceflight_articles and spaceflight_reports, which all pull from the same spaceflight domain; an agent cannot tell which of the three to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the sibling alternatives (spaceflight_articles, spaceflight_reports), and no indication of when this tool is preferred over them. The agent is left to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spaceflight_reportsC
Get latest spaceflight technical reports.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of reports (max 20, default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but only 'latest' hints at ordering. It does not disclose the source, refresh cadence, rate limits, whether results are paginated, or what 'latest' means in terms of 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 front-loaded sentence with no filler or redundancy. It is efficient, though arguably too terse to carry the disambiguation burden given the crowded sibling namespace.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple one-parameter read tool with no output schema or annotations does not need much, but the description omits the sibling differentiation that matters most here. It is adequate but leaves the primary ambiguity unresolved.
Complex tools with many parameters or behaviors need more documentation. 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 (limit) is fully documented in the schema, including max 20 and default 10. The description adds no additional meaning, so the baseline of 3 applies when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb ('Get') and a resource ('spaceflight technical reports'), so the basic action is understandable. However, it gives no way to distinguish 'technical reports' from the near-identical siblings spaceflight_articles and spaceflight_blogs, leaving the resource type ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this tool versus spaceflight_articles or spaceflight_blogs, nor any prerequisites or context conditions. The agent is left to guess which of the three spaceflight endpoints it wants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spacex_latest_launchARead-onlyIdempotent
Get the most recent SpaceX launch details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the description need not carry the safety profile. The description contributes the 'most recent' scoping, but does not say what happens when no launch data exists or what fields 'details' includes, leaving a modest 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?
A single short sentence with no filler, front-loading the verb and the scoped resource. 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 zero-parameter, read-only tool with annotations covering safety and an obvious 'latest' scope, the description is essentially sufficient. It could be slightly richer by clarifying what 'details' encompasses, but no output schema or parameters require further explanation.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there are no parameter semantics to explain; the description is not expected to add parameter detail. Baseline 4 applies for a parameterless 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 states a specific verb ('Get') and a precise resource ('the most recent SpaceX launch details'), and the word 'most recent' implicitly distinguishes it from the sibling spacex_launches list endpoint. It stops short of naming siblings explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for the single latest launch rather than a historical list, but there is no explicit 'use this when... / use spacex_launches instead when...' guidance or statement of exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spacex_launchesC
List recent SpaceX launches.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of most recent launches to return (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Recent' is left undefined (how recent? ordered how?), and there is no mention of return shape, auth needs, or rate limits for what is effectively a read-list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though arguably under-specified rather than optimally 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?
No output schema and no annotations, so the description is the only source of behavioral context, yet it omits ordering, recency window, and result shape. Adequate for a simple list call but with clear 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% and the single limit parameter is fully documented in the schema as 'Number of most recent launches to return (default 10)'. The description adds nothing 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?
States a specific verb and resource ('List recent SpaceX launches'), so an agent knows the basic operation. However, it does not differentiate from the sibling spacex_latest_launch, which an agent could easily confuse for the single-most-recent case versus a 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?
No when-to-use guidance and no alternatives named. With spacex_latest_launch sitting right beside it, the description should say when to pick the list versus the single latest launch; instead the agent must infer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spacex_rocketsB
List all SpaceX rockets with specifications.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. 'List' reasonably implies a read-only, non-destructive operation and 'with specifications' hints at the payload content, but there is no statement about pagination, rate limits, or result size — relevant gaps given the absent 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 with no filler; every word (verb, scope, return hint) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameters, the description is the only source of information, and it stops at 'with specifications' without indicating what those specifications are or how many rockets are returned. Adequate for a trivial zero-arg list tool, but thin.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters and the schema is fully described, so there is nothing for the description to compensate for. Baseline 4 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?
Specific verb ('List') plus specific resource ('SpaceX rockets') and an indication of what is returned ('with specifications'). It is clearly distinct from the sibling spacex_launches/spacex_latest_launch by resource type, though it never names or contrasts 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?
No when-to-use guidance, no exclusions, and no reference to the sibling spacex_launches or spacex_latest_launch tools. Usage is only weakly implied by 'List all', which suggests a full unfiltered enumeration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sparse_tableA
Build a sparse table for O(1) range minimum or maximum queries on a static array.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Query mode: 'min' or 'max' (default: min) | |
| array | Yes | Array of numbers | |
| queries | No | Range queries as [left, right] pairs (inclusive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the O(1) query time and the static-array constraint, which is useful, but it omits build/preprocessing complexity and does not clarify return behavior or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It communicates the core algorithm task 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?
The tool takes an array and optional queries, and has no output schema, so the description should ideally explain what is returned. It states the purpose but leaves the result shape and handling of the queries parameter 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?
Schema description coverage is 100%, so the schema already documents the mode, array, and queries parameters. The description adds the O(1) range-query context but no additional parameter 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 and resource: build a sparse table for range minimum or maximum queries. It is clear what the tool does, but it does not distinguish itself from closely related siblings such as rmq_sparse or segment_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the mention of a static array and O(1) queries, suggesting when this structure is appropriate. However, there is no explicit guidance on when to prefer it over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speedrun_get_gameBRead-onlyIdempotent
Get details of a game on Speedrun.com including categories and levels.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | Speedrun.com game ID or abbreviation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, idempotent, read-only lookup with open-world behavior. The description adds useful content by saying the response includes categories and levels, but it does not explain error behavior, rate limits, or response completeness beyond those fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It communicates the resource, source, and key included data points 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 one-parameter lookup tool with rich read-only annotations, the description is largely complete: it identifies the source, resource, and included data. It could be slightly stronger by mentioning that the ID may be an abbreviation or by clarifying error behavior, but no output schema exists to carry return-value details.
Complex tools with many parameters or behaviors need more documentation. 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, game_id, is fully documented in the schema as a Speedrun.com game ID or abbreviation. The description does not add any parameter guidance beyond what the schema already 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 states a specific verb and resource: get details of a Speedrun.com game, including categories and levels. This clearly separates it from speedrun_search_games by implying retrieval of an existing game rather than discovery, though it does not explicitly name the 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?
There is no explicit when-to-use guidance, no mention of prerequisites, and no reference to alternatives such as speedrun_search_games for finding a game ID. The intended usage is inferable only from the tool name and the word 'details'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speedrun_get_leaderboardCRead-onlyIdempotent
Get the leaderboard for a Speedrun.com game category.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Only return top N places | |
| game_id | Yes | Game ID | |
| platform | No | ||
| emulators | No | ||
| video_only | No | ||
| category_id | Yes | Category ID |
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 fully covered. The description adds no behavioral context beyond the purpose statement—it does not explain ordering, whether the leaderboard is paginated, or how the filters affect 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?
A single efficient sentence with no filler. It is front-loaded and appropriately sized for the minimal information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no output schema and incomplete parameter documentation, the description is too thin. It does not explain the undocumented filters (platform, emulators, video_only) or what the leaderboard response contains, leaving an agent to guess at invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%, with platform, emulators, and video_only completely undocumented in both schema and description. The description mentions no parameters at all, so it fails to compensate for the missing schema descriptions on these filter 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?
States a specific verb ('Get') and resource ('leaderboard for a Speedrun.com game category'), which is clear enough for an agent to understand the basic operation. It does not differentiate itself from siblings like speedrun_list_runs, which could also return run 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?
There is no guidance on when to use this tool versus speedrun_list_runs, speedrun_get_game, or speedrun_get_user. The description implies it is for leaderboards but gives no context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speedrun_get_userCRead-onlyIdempotent
Get a Speedrun.com user profile by ID or username.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User ID or username |
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 carried by structured data. The description adds nothing beyond that - no note on lookup resolution order between ID and username, rate limits, or whether the response includes runs/personal bests. It essentially restates structured 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?
A single well-formed sentence with the verb and resource front-loaded and zero filler. It is not padded or ambiguous, though it is also so short that it leaves value on the table.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 single-parameter read, so low verbosity is appropriate, and annotations cover safety. However, with no output schema, the description could usefully state what a profile response contains (levels, region, twitch, etc.) or whether lookup is case-sensitive.
Complex tools with many parameters or behaviors need more documentation. Simple 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's description ("User ID or username") matches the prose exactly, so the description adds no meaning beyond the schema. Baseline 3 applies when the schema does the documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Get a Speedrun.com user profile") and specifies the accepted key forms (ID or username). It does not explicitly name a sibling to distinguish from, but the speedrun_* family is cleanly partitioned by entity (games, leaderboards, runs), so confusion risk is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 reach for this tool versus speedrun_search_games or speedrun_get_game, nor any mention of prerequisites or failure conditions (e.g. what happens when a username doesn't exist). Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speedrun_list_runsARead-onlyIdempotent
List speedruns with optional filters for game, category, user, or status.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| game | No | Game ID | |
| user | No | User ID | |
| status | No | new, verified, or rejected | |
| orderby | No | date, submitted, status, game, category, level, platform, region, emulated, or weblink | |
| category | No | ||
| direction | No | asc or desc |
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 clear. The description adds only that filters are optional; it does not mention pagination, default ordering, or result limits, so it provides some but not substantial extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the core operation front-loaded. It contains no redundant or filler 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 list tool, annotations cover the safety profile and the schema covers most parameters. However, the description does not explain default limiting, ordering behavior, or what the result set looks like, and the 'max' parameter is undocumented in both description and schema, leaving a meaningful 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 71%, and the schema itself documents most parameters including enums for status, orderby, and direction. The description names game, category, user, and status filters, but omits max, orderby, and direction, so it adds modest value without fully compensating for the remaining 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 states a clear verb and resource: 'List speedruns' with optional filtering fields. It is easily distinguishable from sibling retrieval tools like speedrun_get_game or speedrun_get_user, though it does not explicitly contrast itself with alternatives such as search-oriented 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 phrase 'with optional filters' implies that the tool is used to browse or narrow speedrun records, but it does not explicitly say when to use this list operation versus related retrieval tools. No exclusions or alternative-tool guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speedrun_search_gamesARead-onlyIdempotent
Search for games on Speedrun.com by name. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Max results | |
| name | Yes | Game name to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds a useful auth detail ('No API key required'), but it doesn't disclose result format or rate-limit behavior. With annotations doing the heavy lifting, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste, and the core purpose is front-loaded ahead of the auth note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations and a fully described two-parameter schema, the description is nearly complete. It could mention that results include game IDs for chaining to speedrun_get_game, but that is a minor 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 both parameters (name, max) are already documented. The phrase 'by name' reinforces the name parameter but adds no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Search), resource (games on Speedrun.com), and scope (by name), which clearly distinguishes it from sibling tools like speedrun_get_game and speedrun_get_leaderboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only additional sentence is 'No API key required,' which is not usage guidance. There is no mention of when to use this versus speedrun_get_game, or that search results feed into game detail lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spline_interpolateB
Natural cubic spline interpolation through data points, with optional evaluation.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | Array of [x, y] data points (at least 3, distinct x). | |
| eval_at | No | X value(s) to evaluate the spline at. Number or array of numbers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It names the interpolation method, which is genuinely useful, but says nothing about what is returned (coefficients? evaluated values?), what happens when eval_at is omitted, or behavior on invalid input (fewer than 3 points, duplicate x).
Agents need to know what a tool does to the 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 with zero filler; the method and the optional evaluation capability appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small two-parameter math tool this is nearly sufficient, but with no output schema and no annotations the description should state what is returned in each mode (interpolation-only vs. evaluation) and how degenerate inputs are handled. Those gaps keep it at minimum-viable rather than 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 both parameters are already documented in the schema, including the 'at least 3, distinct x' constraint. The description's phrase 'with optional evaluation' loosely maps to eval_at but adds no syntax or format detail beyond the schema, matching 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?
States a specific verb and algorithm ('Natural cubic spline interpolation') plus the resource ('data points'), and notes the optional evaluation step. It is clear on its own, but it never distinguishes itself from closely related siblings like interpolate_calc, catmull_rom, or bezier_curve, which an agent in this large catalog would need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 over interpolate_calc or other curve-fitting siblings, nor any prerequisites such as the minimum point count. It leaves the agent to infer everything about appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
splitwise_actionC
Perform a Splitwise action: get_groups, get_expenses, get_balances, create_expense, get_friends.
| Name | Required | Description | Default |
|---|---|---|---|
| cost | No | ||
| users | No | ||
| action | Yes | ||
| api_key | No | ||
| group_id | No | ||
| description | No | ||
| currency_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits like API key requirement, read vs. write operations, rate limits, or side effects. It only lists actions, omitting all such details, leaving the agent unaware of important behavioral constraints.
Agents need to know what a tool does to the world before calling 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 at one sentence, but it lacks structure and detail. It front-loads the purpose but sacrifices completeness, resulting in an underspecified definition that requires the agent to infer too much.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-action, 7 parameters, no output schema), the description is woefully incomplete. It does not explain return values, authentication, or how parameters relate to actions, leaving the agent without essential 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 description adds value only for the 'action' parameter by listing the allowed values. For the other 6 parameters (api_key, group_id, description, cost, currency_code, users), the schema has 0% coverage, and the description offers no additional meaning, forcing the agent to guess their 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 clearly states it performs Splitwise actions and lists the five possible actions (get_groups, get_expenses, etc.), so the verb and resource are clear. However, it does not distinguish the purpose of each action, leaving the agent to infer from the action names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool vs. alternatives or which action to choose in different scenarios. The description lacks any context for decision-making, such as prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sportsdb_leaguesB
List all sports leagues on TheSportsDB.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It never confirms this is a read-only operation, says nothing about result count, pagination, rate limits, or the shape of a league record. 'List all' hints at an unfiltered read but stops there.
Agents need to know what a tool does to the 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 short sentence with the resource front-loaded and zero filler. Nothing 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 zero-parameter, annotation-free, output-schema-free listing tool, the description is minimally adequate but leaves the agent guessing about return contents and whether the result set is bounded. A brief note on what a league entry contains would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. No parameter-level ambiguity is introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all sports leagues') and names the data source, TheSportsDB. It is clear what the tool returns, but it does not distinguish itself from siblings like sportsdb_search_team or sportsdb_search_player beyond the obvious noun difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'all' implies this is an unfiltered enumeration, but there is no explicit when-to-use statement, no mention of when a search tool would be preferable, and no prerequisites. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sportsdb_search_playerBRead-onlyIdempotent
Search for a sports player by name on TheSportsDB.
| Name | Required | Description | Default |
|---|---|---|---|
| player | Yes | Player name to search for |
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 and external-call profile is fully covered. The description adds only the data-source name (TheSportsDB) and name-based lookup; it says nothing about match semantics (exact vs substring), result caps, or pagination, so with annotations carrying the load this lands at minimum-viable.
Agents need to know what a tool does to the 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 sentence that front-loads the verb and resource with zero filler. It is short but slightly under-specified rather than bloated, which is the more forgivable failure for a simple 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-parameter, fully-documented search with full annotation coverage and no output schema, the definition is adequate. The remaining gap is search behavior (fuzzy vs exact match, result limits), which an agent calling this would want to know but is not 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 coverage is 100% and the single 'player' parameter is documented as 'Player name to search for.' The description's 'by name' restates the schema without adding format or matching details, so the schema does the real work and 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 (Search) and resource (sports player by name) against a named source (TheSportsDB). This is clear enough that an agent distinguishes it from sportsdb_search_team or sportsdb_leagues, though the description does not explicitly contrast 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?
There is no when-to-use or when-not-to-use guidance, no prerequisites, and no reference to alternative tools. The agent must infer that a caller wanting team info should use sportsdb_search_team instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sportsdb_search_teamARead-onlyIdempotent
Search for a sports team by name on TheSportsDB.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | Team name to search for |
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 only the data source, and it says nothing about result behavior such as exact-match versus fuzzy search, pagination, or rate limits. 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 front-loaded sentence with no wasted words, and the core action and resource appear immediately. It is appropriately sized for a one-parameter 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?
The tool is simple and the schema plus annotations cover most behavioral context. However, with no output schema and no mention of what the search returns or whether matches are exact, the description is adequate but leaves some relevant 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 single 'team' parameter is fully documented in the schema as 'Team name to search for', and the description merely restates that it searches by team name. With 100% schema coverage, the baseline is 3, and the description adds no extra syntax or matching 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 ('Search'), resource ('sports team'), and source ('TheSportsDB'), so it is clearly distinguishable from non-team siblings like sportsdb_search_player and sportsdb_leagues. It does not explicitly name any sibling alternative, which keeps it below 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 phrase 'by name' implies the intended usage context, but the description gives no explicit when-to-use guidance or comparison against related tools such as sportsdb_team_events. For a simple search endpoint this is minimally adequate, though an agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sportsdb_team_eventsBRead-onlyIdempotent
Get upcoming events for a team by TheSportsDB team ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | TheSportsDB team 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, covering the safety profile. The description adds the temporal scope ('upcoming events'), but says nothing about return format, pagination, or rate limits, which 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?
A single, front-loaded sentence with no filler. The purpose and scope are communicated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and annotation safety hints, the description covers the essential scope. It omits return-value shape, but no output schema exists and the omission is minor for a straightforward list 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?
With one parameter and 100% schema description coverage, the schema already defines 'id' as the TheSportsDB team ID. The description's 'by TheSportsDB team ID' merely repeats that, adding no extra syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ('upcoming events for a team'), and the 'by TheSportsDB team ID' phrasing hints at its role relative to the search tool. It is clear but does not explicitly name or differentiate against siblings like sportsdb_search_team.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, nor any prerequisite such as obtaining the team ID from sportsdb_search_team. The phrase 'by TheSportsDB team ID' implies an input requirement but stops short of a usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_get_albumC
Get metadata and track listing for a Spotify album.
| Name | Required | Description | Default |
|---|---|---|---|
| album_id | Yes | ||
| bearer_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic function without disclosing authentication requirements, rate limits, or side effects. The agent learns nothing beyond the obvious 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 a single sentence with no extraneous information. It is optimally concise 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 get tool, the description is incomplete. It lacks details on return format, error handling, and usage context. With no annotations or output schema, the agent is left without important operational 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?
With 0% schema description coverage, the description must explain parameters. It does not. There is no mention of how to obtain an album_id or the format of bearer_token. The agent receives no semantic help beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get metadata and track listing for a Spotify album.' It uses a specific verb ('Get') and identifies the resource ('Spotify album'), distinguishing it from sibling tools like spotify_get_artist, spotify_get_playlist, and spotify_get_track.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to use this tool versus alternatives. It does not mention prerequisites, suitability, or exclusion criteria. The agent receives no help in deciding to invoke this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_get_artistCRead-onlyIdempotent
Get metadata and follower count for a Spotify artist.
| Name | Required | Description | Default |
|---|---|---|---|
| artist_id | Yes | ||
| bearer_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered by structured data. The description adds only that metadata and follower count are returned; it says nothing about auth behavior despite bearer_token being required, nor about error/not-found 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?
One clean, front-loaded sentence with no filler. Brevity here is not the problem; the omission of detail is.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and neither parameter is documented, so the description is the only place ID format, auth expectations, and return shape could be specified — and it covers none of them beyond naming two returned 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 0% for both parameters, so the description carries the full burden. It gives no hint whether artist_id is a Spotify base62 ID, a URI, or a name, and says nothing about how bearer_token is obtained or scoped. This is a real gap for a lookup tool where ID format is the most common failure mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Concrete verb and resource ('Get metadata and follower count for a Spotify artist'), and it even names the returned fields. It does not distinguish itself from the many sibling artist-lookup tools (deezer_get_artist, lastfm_artist_info, discogs_get_artist, genius_get_artist, mb_get_artist), so an agent cannot route between them from this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use context, no prerequisites, and no mention of alternatives. The agent must infer that this is the Spotify-flavored artist lookup among a dozen similar music-API siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_get_audio_featuresC
Get audio analysis features (danceability, energy, tempo, etc.) for a Spotify track.
| Name | Required | Description | Default |
|---|---|---|---|
| track_id | Yes | ||
| bearer_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states 'Get', implying a read operation, but does not disclose authentication requirements (bearer_token is required), rate limits, or any side effects. The description fails to add behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling 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 14-word sentence, concise and front-loaded with the core purpose. However, it sacrifices key details like parameters and authentication, which prevents a higher 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 no output schema and no annotations, the description is incomplete. It does not explain how to obtain a track_id, mention authentication, handle errors, or describe the output format. Important context for a tool with two required parameters 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 0%, and the description does not mention either of the two required parameters (bearer_token, track_id). It does not add any meaning beyond the schema, leaving the agent to infer usage from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'audio analysis features (danceability, energy, tempo, etc.) for a Spotify track'. It specifies the kind of data and provides examples, distinguishing it from sibling tools like spotify_get_track which returns metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to use this tool versus alternatives, such as when to prefer this over spotify_get_track or spotify_get_recommendations. No exclusions or context for usage is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_get_playlistC
Get metadata and tracks for a Spotify playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | ||
| playlist_id | Yes | ||
| bearer_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to explain authentication requirements (bearer token), rate limits, or what happens with large track lists. The minimal description does not sufficiently inform the agent about the tool's safety or constraints.
Agents need to know what a tool does to the world before calling 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, clear sentence with no unnecessary words. It is appropriately concise, though it sacrifices completeness for brevity. It earns a high score for conciseness but is not perfectly structured with front-loaded key 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 the lack of output schema and low schema coverage, the description should provide hints about the return structure or usage context. It does not mention that the output will include playlist metadata and track objects, or that pagination may be needed. The description is too minimal for a tool with three parameters and no schema 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 0%, so the description must add meaning to parameters. It does not clarify that 'bearer_token' is a Spotify API token, that 'playlist_id' is the Spotify ID, or that 'market' filters by region. The description adds no semantic value beyond the parameter names 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 clearly states the tool retrieves metadata and tracks for a Spotify playlist, providing a specific verb and resource. However, it does not differentiate from sibling tools like spotify_get_album or spotify_get_track, missing an opportunity to clarify its unique 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?
No guidance is given on when to use this tool versus alternatives such as spotify_search or spotify_get_recommendations. The description lacks context for choosing this tool over others, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_get_recommendationsC
Get Spotify track recommendations based on seed tracks, artists, or genres.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| market | No | ||
| max_energy | No | ||
| min_energy | No | ||
| seed_genres | No | Comma-separated genre names | |
| seed_tracks | No | Comma-separated Spotify track IDs (max 5 seeds total) | |
| bearer_token | Yes | ||
| seed_artists | No | Comma-separated Spotify artist IDs | |
| target_valence | No | ||
| target_danceability | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It fails to mention that the tool returns a list of track objects, requires authentication (though bearer_token is in schema), or any rate limits or side effects. The description only hints at input types nothing about output 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 extremely concise at one sentence. It efficiently conveys the core function. However, the conciseness comes at the cost of omitting critical usage and parameter details, so it is not optimally balanced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema), the description is severely incomplete. It provides no explanation of the output format, the constraint of max 5 seeds total, the meaning of audio feature target parameters, or the market filter. An agent would require external knowledge to use 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 only 30% (only seed_tracks has a description). The description adds no extra parameter semantics beyond mentioning seed tracks, artists, or genres. It does not explain the purpose of limit, market, audio feature parameters (energy, valence, danceability), or bearer_token. This leaves most parameters as opaque properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves Spotify track recommendations based on seed tracks, artists, or genres. It uses a specific verb ('Get') and resource ('track recommendations'), and implicitly distinguishes from sibling tools like spotify_get_track, spotify_search, etc., 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 provides no guidance on when to use this tool versus alternatives (e.g., spotify_search for general discovery, spotify_get_track for specific tracks). It does not mention prerequisites like needing seed IDs from other tools, nor what types of recommendations to expect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_get_trackC
Get metadata for a Spotify track by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | ||
| track_id | Yes | ||
| bearer_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only says 'Get metadata,' implying a read operation, but fails to mention authentication requirements (bearer token is in schema but not explained), rate limits, or the nature of the return data. This is minimal 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 a single sentence that front-loads the verb and resource. It is efficient with no unnecessary words. However, it could be slightly more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 presence of many sibling Spotify tools (e.g., spotify_get_album, spotify_get_audio_features) and no output schema, the description is insufficient. It does not clarify what 'metadata' includes or when to prefer this tool over similar ones, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. It only implies that track_id is used (by saying 'by ID'), but provides no details on bearer_token, market, or what valid values are. The description adds no semantic value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get metadata for a Spotify track by ID,' which clearly identifies the verb (Get), resource (metadata for a Spotify track), and method (by ID). This differentiates from siblings like spotify_get_album or spotify_get_artist, though it could be more explicit about what 'metadata' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as spotify_get_audio_features or spotify_search. The description does not mention use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spotify_searchC
Search Spotify for tracks, albums, artists, or playlists.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Comma-separated: track, album, artist, playlist (default: track) | |
| limit | No | ||
| query | Yes | ||
| market | No | ||
| offset | No | ||
| bearer_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description fails to disclose authentication requirements (bearer_token), pagination behavior (offset/limit), or any side effects. It simply states 'Search' without elaboration.
Agents need to know what a tool does to the world before calling 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, concise but lacking critical details. It front-loads the purpose but fails to provide necessary context beyond that.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 parameters, 2 required, no output schema, and no annotations, this description is incomplete. It omits authorization, pagination, and result format, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (type) is described in the schema; the description adds no meaning for query, limit, offset, or market. With 17% schema coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search', the resource 'Spotify', and the content types 'tracks, albums, artists, or playlists'. It distinguishes from sibling tools like spotify_get_album by indicating it covers multiple types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this vs specific getter tools (e.g., spotify_get_track). No mention of when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
square_catalog_listCRead-onlyIdempotent
List Square catalog objects (items, categories, taxes, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| types | No | Comma-separated types (ITEM, CATEGORY, etc.) | |
| cursor | No | ||
| access_token | Yes |
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 nothing behavioral beyond that: no pagination semantics, no default or maximum limit, no note that access_token is a required prerequisite for every call.
Agents need to know what a tool does to the 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 short, front-loaded sentence with zero filler. It is efficient, though the brevity reflects under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters, no output schema, and a clear sibling alternative, the description should explain the listing/pagination model and how it differs from square_catalog_search. It covers only the purpose, leaving the agent to infer cursor handling and the required auth token.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 25% — only the types parameter is documented. The description's example object types loosely relate to types but add nothing beyond the schema, and limit, cursor, and access_token are undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (List) and resource (Square catalog objects) and names example object types (items, categories, taxes), which is more concrete than the name alone. It does not, however, distinguish this from the sibling tool square_catalog_search, so an agent cannot tell list-vs-search behavior from the 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?
There is no statement of when to use this tool rather than square_catalog_search, and no mention of pagination flow or how to page through results with the cursor. The only implicit guidance is that it returns catalog objects generally.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
square_catalog_searchCRead-onlyIdempotent
Search Square catalog objects by text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| text_filter | Yes | Text to search for | |
| access_token | Yes | ||
| object_types | No | Types to search (default: ['ITEM']) |
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 no behavioral context such as auth requirements, pagination behavior, result shape, or whether all catalog object types are searched by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler or repetition. It is as concise as possible while stating the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter search tool with no output schema and only partial schema coverage, the description is too thin. It omits pagination via cursor/limit, default object type behavior, authentication requirements, and any sense of the returned catalog objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 40%, and the description does not compensate. It clarifies only that text is used for searching, while limit, cursor, and access_token remain undocumented in both the schema and the description, and object_types is only covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: search Square catalog objects by text. This is clear enough to distinguish a text search from unrelated tools, but it does not explicitly differentiate the tool from the sibling square_catalog_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 implies usage for text-based catalog search but gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not tell the agent when to choose this over square_catalog_list or other Square tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
square_customersCRead-onlyIdempotent
List Square customers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| sort_field | No | ||
| sort_order | No | ||
| access_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond restating "List", such as pagination behavior, rate limits, authentication expectations, or result ordering; it merely repeats the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of bloat, so it is concise. However, it is under-specified rather than appropriately sized for a five-parameter listing tool, so it falls short of strong conciseness structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 five undocumented parameters, no output schema, and no pagination or sorting context, the description is not complete enough to guide correct invocation. The annotations cover safety, but the schema burden remains entirely on undocumented 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?
The schema has five parameters with 0% description coverage, including limit, cursor, sort_field, sort_order, and access_token. The description does not mention any of them, their formats, or their effects, leaving all parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ("List Square customers"), which clearly distinguishes it from non-Square customer-list siblings like stripe_customers and shopify_customers. It does not differentiate from other Square tools such as square_payments or square_catalog_list, but the resource noun 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of whether this returns all customers or requires filtering. The agent is left to infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
square_paymentsC
List or create Square payments.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| limit | No | ||
| action | No | list or create (default: list) | |
| cursor | No | ||
| end_time | No | ||
| source_id | No | Required for action='create' | |
| begin_time | No | RFC 3339 timestamp | |
| customer_id | No | ||
| access_token | Yes | Square access token | |
| amount_money | No | {amount: number, currency: string} | |
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action. Authentication requirements, rate limits, side effects of creation (e.g., idempotency) are not mentioned, despite the schema including an idempotency_key parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only five words, which is efficient but at the expense of necessary detail. It earns its place by being short, but lacks structure and substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity of the tool (11 parameters, no output schema, no annotations), the description is severely incomplete. It fails to explain required fields for creation, authentication, or the return format, leaving major gaps for an AI 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 low at 45%, and the description adds no additional meaning to parameters beyond what is already in the schema. For instance, it does not explain the amount_money object or the roles of customer_id and note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List or create Square payments' clearly states the verb-resource (list/create payments) and distinguishes from sibling tools like square_catalog_list and square_customers, which deal with catalog and customer data respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives or when to use list vs create. There is no mention of prerequisites or context, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability_image_to_imageC
Transform an existing image using a text prompt with Stability AI.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| prompt | Yes | ||
| api_key | Yes | ||
| samples | No | ||
| strength | No | 0.0-1.0: how much to change the image (default: 0.35) | |
| cfg_scale | No | ||
| engine_id | No | ||
| image_url | Yes | URL of the source image | |
| negative_prompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only says 'Transform', omitting details like whether the operation is destructive to the source image, cost implications, rate limits, auth requirements, or the effect of key parameters like strength. For a tool with 9 parameters and 22% schema coverage, this is insufficient.
Agents need to know what a tool does to the world before calling 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 with no wasted words. However, for a tool with 9 parameters, it could include more essential information without becoming overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity (9 parameters, no output schema, low schema coverage), the description is far from complete. It does not mention required parameters, default values, output format, or how to obtain engine_id, leaving agents with significant 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 description coverage is only 22% (only image_url and strength have descriptions). The tool description adds no parameter explanations, failing to compensate for the many undocumented parameters (e.g., api_key, prompt, engine_id, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Transform an existing image') and the input ('using a text prompt') with the provider ('Stability AI'). It distinguishes from sibling tools like stability_text_to_image (text-to-image) and stability_upscale (upscaling), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., stability_text_to_image) or prerequisites such as obtaining an engine_id or API key. It lacks context for effective decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability_list_enginesBRead-onlyIdempotent
List all available Stability AI generation engines.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
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 fully covered. The phrase 'all available' adds a modest signal that the list is complete and unpaginated, but the description says nothing about auth requirements (the required api_key) or the shape of a returned engine record.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with no wasted clauses. There is nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 catalog tool with no output schema and full annotation coverage, the essentials are present, but the description omits the one linkage an agent actually needs: that these engine identifiers feed the Stability generation tools. With no output schema, the return shape is also left entirely to inference.
Complex tools with many parameters or behaviors need more documentation. 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 is api_key with 0% schema description coverage, so the description is the only place semantics could be documented — yet it never mentions the credential at all. The name is self-explanatory enough that an agent will likely supply it correctly, keeping this at minimum-viable rather than poor.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Stability AI generation engines') with the scope 'all available'. An agent can tell this apart from the generation siblings (stability_text_to_image, stability_upscale) because it retrieves catalog data rather than producing images, though the description never explicitly names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of the sibling tools it complements. The obvious use case — discovering engine IDs before calling stability_text_to_image — must be inferred entirely by the agent rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability_text_to_imageC
Generate images from a text prompt using Stability AI.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| steps | No | Diffusion steps 10-150 (default: 30) | |
| width | No | ||
| height | No | ||
| prompt | Yes | ||
| api_key | Yes | ||
| samples | No | Number of images (max 10, default: 1) | |
| cfg_scale | No | Guidance scale 0-35 (default: 7) | |
| engine_id | No | Stability engine ID (default: stable-diffusion-xl-1024-v1-0) | |
| style_preset | No | ||
| negative_prompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. Description only states the basic action without disclosing behavioral traits such as cost implications, rate limits, authentication requirements, or what happens with generation failures.
Agents need to know what a tool does to the world before calling 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, which is concise and front-loaded. However, given the tool's complexity (11 parameters), it is too minimal and could benefit from more structured 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 11 parameters, no output schema, and no annotations, the description is insufficient. Important details about defaults, constraints, and parameter interactions are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 36% (4 of 11 parameters have descriptions). The description adds no additional explanation for parameters, failing to compensate for the low 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?
Description clearly states 'Generate images from a text prompt using Stability AI', specifying verb (generate) and resource (images from text). It distinguishes from sibling tools like stability_image_to_image and stability_upscale which handle different modalities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. With siblings like stability_image_to_image and stability_upscale, the description should indicate appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability_upscaleB
Upscale an image using Stability AI ESRGAN.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Target width in pixels (default: 2048) | |
| api_key | Yes | ||
| engine_id | No | Upscale engine (default: esrgan-v1-x2plus) | |
| image_url | Yes | URL of the image to upscale |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It lacks key behavioral details: the need for an API key (api_key is required but not mentioned), potential input/output format constraints, rate limits, or whether the tool is destructive (it's likely read-only, but not stated). The description is insufficient for an agent to understand side effects or requirements.
Agents need to know what a tool does to the world before calling 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 conveys the tool's purpose. It is appropriately concise, though it could include a bit more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is far too minimal. It does not explain the return value, required authentication, or any constraints on input images. An agent would need additional context to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (3 of 4 parameters have descriptions), but the tool description adds no extra meaning. The api_key parameter lacks a schema description and the description does not explain it. The width and engine_id parameters are partially documented in schema, but the description provides no clarification on valid ranges or available engines.
Input schemas describe structure but not intent. Descriptions should explain 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 specifies the action ('Upscale'), the resource ('an image'), and the technology ('Stability AI ESRGAN'). It effectively distinguishes from sibling tools like stability_text_to_image (text-to-image) and stability_image_to_image (image-to-image), 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 when to use (when you want to enlarge an image), but it does not provide explicit guidance on when not to use it, nor does it mention alternatives among the stability tools. No prerequisites or limitations are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackexchange_questionB
Get a Stack Exchange question by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Question ID. | |
| site | No | SE site (default: stackoverflow). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether this is a read-only operation, what happens if the ID is invalid or the question is deleted, whether an API key is required, or anything about rate limiting or the shape of 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?
A single, front-loaded sentence with zero waste. The verb and resource are stated first and nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and two parameters, the description is too thin. It does not cover return values, error behavior, cross-site considerations, or authentication needs, leaving significant gaps for an agent invoking 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% and both parameters are documented in the schema, including the default site (stackoverflow). The description adds no meaning beyond what the schema already 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?
States a specific verb (Get) and resource (Stack Exchange question) plus the identifier used to select it (by ID). It is clearly distinguishable from its sibling stackexchange_search, which retrieves questions by query rather than by identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 about when to use this lookup versus stackexchange_search, and does not mention prerequisites or alternatives. Usage can be inferred from the verb 'Get by ID' but nothing is explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackexchange_searchBRead-onlyIdempotent
Search Stack Exchange (default: Stack Overflow) for questions.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| site | No | SE site (default: stackoverflow). | |
| query | Yes | Search query. |
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 description carries a reduced burden. The only content it adds is the default site, which is already stated in the schema, and it says nothing about result volume, ordering, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource and the default scope front-loaded; nothing is wasted and nothing needs to be scanned for.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A three-parameter search tool with full schema coverage and a safety-covered annotation set is mostly specified. However, with no output schema there is no indication of what a result contains (titles, IDs, links) or how the page parameter behaves, leaving follow-up calls such as stackexchange_question to guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 query, site and page are all documented in the structured schema. The description's "default: Stack Overflow" merely repeats the site parameter default, adding no syntax, format, or page-size 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 states a specific verb and resource ("Search Stack Exchange ... for questions") and adds the default site, so an agent knows exactly what it does. It does not distinguish this from the sibling stackexchange_question, so it stops short of 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?
There is no when-to-use or when-not-to-use guidance and no mention of the sibling stackexchange_question, which is the obvious alternative when the target question ID is already known. Usage context is only implied by the word "Search" in the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
standard_formB
Convert a number to scientific and engineering notation.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Number to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions two output formats but never says whether both are returned in one call or how they are selected, nor what the returned string format looks like (exponent style, precision). For a zero-annotation tool this leaves key behavior unspecified.
Agents need to know what a tool does to the 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 short sentence with no filler, and the action is front-loaded. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial single-parameter conversion with no output schema, the description is minimally sufficient, but it omits the one genuinely useful detail: whether scientific and engineering notation are both returned or how to request each. With no annotations and no output schema, that gap is noticeable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 self-explanatory ('Number to convert.'), so the baseline of 3 applies. The description adds no meaning beyond the schema, but the schema already does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Convert') plus a clear resource ('a number') and named output formats ('scientific and engineering notation'). It does not, however, distinguish itself from nearby numeric-conversion siblings such as number_base_convert, base_convert, or the many math helpers, leaving ambiguity about which notation tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 only what the tool does, with no indication of when to use it versus alternatives or any prerequisites on the input (e.g., valid ranges, negative numbers, zero). An agent gets no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stapi_search_characterBRead-onlyIdempotent
Search Star Trek characters by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Character name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond the basic action, such as whether matching is partial or exact, whether results are paginated, or what a search returns. It repeats little, but it also contributes little.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler. The action and resource are stated immediately, and 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 one-parameter read-only search with full schema coverage and clear annotations, the description covers the essential action. However, it omits search semantics such as match type, result limits, or pagination behavior, which matter for correctly interpreting a search tool's output.
Complex tools with many parameters or behaviors need more documentation. 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 and schema description coverage is 100%, so the schema already documents that 'name' is the string to search for. The description's 'by name' restates the schema rather than adding semantics like case sensitivity, substring matching, or format expectations. Baseline 3 is appropriate when the schema fully covers the 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 states a specific verb and resource: 'Search Star Trek characters by name.' An agent can immediately tell this is a character lookup tool. It does not distinguish itself from sibling searches like stapi_search_species or stapi_search_starship, but the domain noun is clear enough to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives such as stapi_search_species or stapi_search_starship. Usage is only implied by the word 'Search' and 'by name.' No exclusions, prerequisites, or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stapi_search_speciesBRead-onlyIdempotent
Search Star Trek species by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Species name (e.g. Vulcan, Klingon) |
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 fully covered. The description adds nothing beyond that — no indication whether matching is exact or partial, case sensitivity, or whether one or many results come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, zero waste, purpose stated up front. Nothing is buried or 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?
A simple one-parameter read tool with complete annotations and a fully documented schema, so little is required. However, the absence of any note on match semantics (exact vs. substring) leaves a real ambiguity an agent could trip on.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'name' parameter already carries a description with examples ('Vulcan, Klingon'). The description's 'by name' restates what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('Star Trek species') with the qualifying dimension ('by name'). The resource noun distinguishes it from stapi_search_character and stapi_search_starship, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you call this when you want a species rather than a character or starship. There is no explicit when-to-use, no exclusion, and no pointer to the sibling tools despite three parallel stapi_search_* tools existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stapi_search_starshipBRead-onlyIdempotent
Search Star Trek starships/spacecraft by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Starship name (e.g. Enterprise) |
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 fully covered without the description. The description adds nothing beyond that — no note on matching behavior (exact vs substring), result shape, or handling of ambiguous names like 'Enterprise'.
Agents need to know what a tool does to the 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 with no filler. The scope ('Star Trek') and the matching key ('by name') both appear immediately, so an agent can decide in one read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with full annotations this is close to sufficient, but with no output schema the description should say roughly what is returned (e.g. ship class, registry, crew) and whether matching is fuzzy. As written, an agent can call it but cannot predict the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'name' parameter is documented with an example in the schema itself. The description's 'by name' merely restates it, adding no syntax, casing, or partial-match detail. Baseline 3 applies when the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and a specific resource ('Star Trek starships/spacecraft'), scoped by the 'Star Trek' qualifier which implicitly distinguishes it from the Star Wars counterpart swapi_search_starships. No explicit sibling routing, but the entity boundary is clear from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no mention of when to prefer stapi_search_character or stapi_search_species, and no statement about whether the name must be exact or may be partial. An agent must infer that this is for ships only from the single word 'starships'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_crew_runA
Call this tool when the user wants to start a Crews Council run. In a sampling-capable MCP client, it prepares the run, asks advisors for opinions, runs peer review, persists the Chairman synthesis, and returns a ConversationalCard. If sampling is unavailable, the card reports SAMPLING_NOT_SUPPORTED. Response card surfaces was_duplicate when an existing run is returned for an already-seen task_id.
| Name | Required | Description | Default |
|---|---|---|---|
| crew_id | Yes | The UUID of the Crew to run | |
| task_id | No | Client-generated idempotency key (UUIDv5 from thread_id + prompt_hash + time_bucket recommended). Required for safe retry. If omitted, the server creates a fresh row and you lose retry safety; sending the same task_id twice returns the original run_id with was_duplicate=true instead of creating a duplicate. | |
| task_prompt | Yes | The task the Council should deliberate on | |
| token_budget | No | Optional token budget (default 150000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description correctly carries the behavioral burden: it discloses the internal pipeline (prepare, advisor opinions, peer review, persist synthesis), the SAMPLING_NOT_SUPPORTED failure mode, and duplicate handling via was_duplicate. It stops short of a 5 by omitting auth/permission needs and rate or cost characteristics for what is clearly a mutating, resource-heavy run.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the invocation condition before describing mechanics and edge cases. Slightly jargon-heavy terms ('ConversationalCard', 'Chairman synthesis') add length without much value, but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description usefully explains the return (a ConversationalCard) and its notable fields (SAMPLING_NOT_SUPPORTED, was_duplicate). Combined with full schema coverage this is nearly self-sufficient; only the absence of output-shape detail for successful runs leaves a small 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 crew_id, task_id, task_prompt, and token_budget in detail. The description reinforces the task_id idempotency/retry semantics but adds no syntax or format beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('start a Crews Council run') with the user-facing trigger, so the agent knows exactly what the tool produces. It does not distinguish itself from the related sibling tools get_run/list_runs, 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?
Gives an explicit invocation condition ('when the user wants to start a Crews Council run'), which is clear operative guidance. It names no alternatives or when-not-to-use conditions, so it lacks the routing detail that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statistics_calcC
Calculate mean, median, mode, standard deviation, and more for a set of numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | Comma-separated numbers or array. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't say whether all statistics are returned together or selected, what the output shape is, how non-numeric or malformed input is handled, or anything about empty/singleton inputs. The vague 'and more' actively obscures the output 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?
A single efficient sentence with the verb and the output list front-loaded. No waste, though 'and more' is a filler phrase that adds ambiguity rather than information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should clarify what is returned (all statistics vs. a subset) and how errors are surfaced. Instead it leaves the return contract undefined, which is the key gap for a computational tool whose entire value is its output.
Complex tools with many parameters or behaviors need more documentation. 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 has 100% schema description coverage ('Comma-separated numbers or array'), so the schema already documents input format. The description adds only the framing 'for a set of numbers' and contributes no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (statistics over a set of numbers) and enumerates several concrete outputs (mean, median, mode, standard deviation). It is clear what the tool does, but it does not distinguish itself from near-neighbor siblings such as descriptive_stats, variance_calc, or zscore_calculate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus the many overlapping statistics siblings. The agent is left to infer selection criteria from the name alone, which is risky given descriptive_stats exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stern_brocot_treeC
Find best rational approximation using the Stern-Brocot tree and continued fractions.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Positive number to approximate | |
| max_denominator | No | Maximum denominator allowed (default 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the underlying algorithm but does not describe the return format (e.g., fraction as numerator/denominator or decimal), accuracy guarantees, or any other behavioral trait beyond the method.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for a simple computational tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain what the approximation returns, but it does not. An agent lacks information about the result format and any usage context beyond the algorithm name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both parameters. The description adds no extra meaning beyond what is in the schema, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Find' and a precise resource 'best rational approximation', plus the method (Stern-Brocot tree, continued fractions). It is clear what the tool does, but it does not differentiate itself from siblings like continued_fraction or ratio_simplify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, nor any when-not conditions or prerequisites. Usage is only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stirling_numbersA
Compute Stirling numbers of the first or second kind via DP.
| Name | Required | Description | Default |
|---|---|---|---|
| k | Yes | k (0-n) | |
| n | Yes | n (0-200) | |
| kind | No | 1 or 2 (default 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions the DP implementation, but does not disclose the return type, error behavior, determinism, or other behavioral traits; 'compute' implies a pure calculation but is not explicit.
Agents need to know what a tool does to the world before calling 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 wasted words. It delivers the essential purpose and method immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 deterministic math tool with complete schema descriptions and no output schema, the description is largely sufficient: it states what is computed and the implementation method. It could mention the return type or default kind, but those are minor given 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 n, k, and kind with ranges and defaults. The description adds no parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compute') and names the exact mathematical resource ('Stirling numbers of the first or second kind'). It also distinguishes the two variants, so an agent can tell what the tool produces 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 implies usage by naming the computation, but it does not explicitly state when to use this tool versus alternatives or when not to use it. No sibling tools are named or contrasted, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_dailyCRead-onlyIdempotent
Get daily stock price history from Alpha Vantage.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| api_key | No | ||
| outputsize | No | compact or full |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the description needed to add what they can't: Alpha Vantage's aggressive call limits, the api_key requirement, or how far back 'full' history goes. It only names the provider, adding almost nothing beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, front-loading the resource. It is efficient but so terse that the brevity costs information rather than buying 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 three-parameter external-API tool with only 33% schema coverage, an undocumented api_key, an unexplained compact/full enum, and no output schema, the description omits too much to call it correctly without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple 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 33%: only outputsize has a description, and it merely echoes its own enum values. symbol and api_key are completely undocumented, and the description supplies no meaning for any of them, leaving the agent to infer that api_key is effectively required despite not being in the required list.
Input schemas describe structure but not intent. Descriptions should explain 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 daily stock price history) plus the data source, Alpha Vantage. The word 'daily' implicitly separates it from stock_intraday, but it never names or contrasts with stock_quote, stock_intraday, or crypto_daily, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of how this differs from stock_quote (latest price) or stock_intraday (intraday bars), and no prerequisites such as an API key or rate limits. The agent must guess which stock tool fits a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_intradayC
Get intraday stock prices from Alpha Vantage.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| api_key | No | ||
| interval | No | 1min, 5min, 15min, 30min, 60min |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as rate limits, data freshness, historical depth, or whether the operation is read-only. The minimal description fails to inform the agent of important behavioral aspects.
Agents need to know what a tool does to the world before calling 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 of seven words, which is concise. However, it sacrifices substance for brevity, lacking essential details. It could be improved without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and moderate complexity (3 params, 1 required), the description fails to explain output format, data range, or any usage constraints. The tool's functionality is under-specified, leaving critical context 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 schema coverage at only 33%, the description should clarify undocumented parameters like symbol and api_key. However, it adds no meaning beyond the schema, leaving the agent uninformed about required inputs and their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves intraday stock prices from Alpha Vantage, specifying the verb ('Get'), resource ('intraday stock prices'), and data source. It effectively distinguishes from sibling tools like stock_daily and stock_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like stock_daily or stock_quote. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_quoteCRead-onlyIdempotent
Get a real-time stock quote from Alpha Vantage.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| api_key | No |
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 results are real-time and vendor-backed (Alpha Vantage), which implies external API dependencies and possible rate limits, but it never states them explicitly.
Agents need to know what a tool does to the 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 with no filler, so the purpose is clear at first read. However, its brevity borders on under-specification for a tool with two undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameter documentation, so the description must carry the burden of explaining what a quote returns and what symbol format is required. It does none of that, leaving the agent to guess both the input format and the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so neither 'symbol' nor 'api_key' is documented anywhere; the description does not say that symbol expects a ticker string (e.g. AAPL) or that api_key is an optional/alternative credential. With two undocumented parameters, the description fails to compensate for the coverage 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?
States a specific verb and resource ('Get a real-time stock quote') plus the data vendor (Alpha Vantage), which is more informative than the bare name. It does not distinguish itself from closely related siblings such as stock_intraday, stock_daily, or stock_search, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this tool rather than stock_intraday, stock_daily, or stock_search, and names no alternatives or exclusions. 'Real-time' is the only hint of the selection condition, and it is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_searchCRead-onlyIdempotent
Search for stock tickers on Alpha Vantage.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| keywords | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so safety is covered. The description's only added context is naming Alpha Vantage as the upstream provider; it does not mention the api_key requirement, rate limits, or what a match looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. Its problem is under-specification rather than verbosity, so it earns credit for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 0% parameter coverage, and undefined behavior for the API key, an agent lacks what it needs to call this correctly. A brief note on the api_key and what is returned would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning and does not. 'keywords' is only loosely implied by 'search for stock tickers', and the required api_key parameter is never mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a concrete verb and resource ('Search for stock tickers'), so the basic action is clear. But it does not distinguish itself from the many stock siblings (stock_quote, stock_daily, stock_intraday), so an agent cannot tell whether this returns ticker symbols only or price data 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?
No guidance on when to use this versus stock_quote or stock_daily, and no prerequisites stated. The only implied usage is 'you need a ticker symbol first', which must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
string_caseC
Convert text between camelCase, snake_case, kebab-case, PascalCase, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to convert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not explain key behavior such as whether the source case is auto-detected, how the target case is selected, what the return format is, or what 'and more' includes.
Agents need to know what a tool does to the world before calling 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 obvious padding. The phrase 'and more' is slightly vague, but the structure is efficient for such a short tool 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?
With no output schema and no annotations, the description should clarify return behavior and target-case selection. Instead it leaves ambiguous what the tool actually returns or how an agent controls the desired output case.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'text' parameter is already documented in the schema as 'Text to convert.' The description adds little parameter-level meaning beyond implying that the input is text in one of several case formats.
Input schemas describe structure but not intent. Descriptions should explain 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: convert text between case formats, with examples like camelCase and snake_case. It is clear what the tool does, but it does not differentiate itself from likely siblings such as camelsnake_convert or text_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, no prerequisites, and no alternatives. It implies a generic case-conversion task but does not tell an agent when to choose this tool over sibling text-transform tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
string_distanceA
Calculate Levenshtein edit distance and similarity between two strings.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First string. | |
| b | Yes | Second string. | |
| case_sensitive | No | Case sensitive comparison (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It names the exact algorithm (Levenshtein), which is meaningful, but it does not define the 'similarity' metric, output range or format, or whether the operation is symmetric, leaving some ambiguity for return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word earns its place and the core operation appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure calculation tool with three documented parameters and no annotations, the description states the core operation adequately. However, with no output schema, it does not specify what the returned distance and similarity values look like, leaving a minor completeness 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 'a', 'b', and 'case_sensitive' including the default. The description only adds 'between two strings', which does not extend the schema's meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Calculate) and resource (Levenshtein edit distance and similarity) between two strings. Naming 'Levenshtein' distinguishes it from sibling tools like damerau_distance, hamming_distance, and edit_distance, so an agent can identify the operation 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 no when-to-use, when-not-to-use, or alternative-selection guidance. With many similar string-comparison siblings available, an agent receives no help in choosing this tool over damerau_distance, hamming_distance, edit_distance, or jaccard_similarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
string_lcsB
Find the longest common subsequence of two strings with similarity score.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First string. | |
| b | Yes | Second string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, but this is a stateless pure computation so the risk profile is inherently low. It does disclose that a similarity score is returned, adding one piece of behavioral information. It does not state that the operation is side-effect free, deterministic, or how the score is normalized (length ratio, absolute count, etc.).
Agents need to know what a tool does to the 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 efficient sentence with the core verb front-loaded and zero filler. It is appropriately sized, though the 'similarity score' clause could be folded into an output description rather than left dangling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should say more about the return value; it only alludes to a 'similarity score' without stating scale or the shape of the result (subsequence string plus score). For a simple two-parameter pure function this is adequate but leaves gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both 'a' and 'b' documented in the schema, so the baseline is 3. The description adds nothing beyond the schema – it does not clarify ordering effects, case sensitivity, or whether the two arguments are symmetric.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Find the longest common subsequence of two strings'), so the operation is unambiguous. It also signals an additional output ('similarity score'). It does not name or contrast with nearby siblings like longest_common_prefix or edit_distance, so differentiation is left to the reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prefer this over string_distance, edit_distance, hamming_distance, jaccard_similarity, or the other string-comparison siblings. No conditions, no exclusions, no alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe_chargesC
List or create Stripe charges.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| action | No | list or create (default: list) | |
| amount | No | Amount in smallest currency unit (e.g. cents) | |
| source | No | Payment source or token | |
| currency | No | ISO currency code (e.g. usd) | |
| customer | No | ||
| secret_key | Yes | ||
| description | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'List or create Stripe charges' without mentioning authentication requirements, default action, idempotency, or any side effects. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), but it sacrifices necessary detail. It is not overly verbose, but the brevity limits its usefulness. A score of 3 reflects adequate conciseness with room for improvement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, two distinct actions), the description is too sparse. It does not explain how to use 'list' versus 'create' or the required parameters for each action. No output schema is provided, increasing the need for descriptive 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 coverage is 44%, but the description adds no parameter-level information. Some parameters like 'secret_key' and 'starting_after' lack descriptions in the schema, and the description does not compensate. The description provides no additional 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 purpose: to list or create Stripe charges. It identifies the verb (list/create) and resource (charges). However, it does not differentiate between the two actions or clarify the scope, leaving some 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?
No guidance is provided on when to use this tool versus its siblings (e.g., stripe_customers, stripe_invoices) or when to choose 'list' over 'create'. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe_customersC
List or create Stripe customers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| No | |||
| limit | No | ||
| phone | No | ||
| action | No | list or create (default: list) | |
| secret_key | Yes | Stripe secret key (sk_live_* or sk_test_*) | |
| description | No | ||
| starting_after | No | Pagination cursor (customer ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention any behavioral traits such as mutation, idempotency, rate limits, authentication requirements (beyond the key), or error scenarios. The description is silent on what happens during creation or 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 extremely short (one sentence), which makes it concise but at the cost of essential details. It is front-loaded with the actions, but lacks structure or elaboration. It is under-specified rather than optimally 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?
Given the tool's complexity (8 parameters, two operations) and lack of output schema, the description is very incomplete. It does not explain return values, pagination, error handling, or provide examples. An agent would struggle to use this tool correctly without additional 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 low (38%), and the description adds no additional meaning to the parameters beyond what the schema already states. It does not explain the purpose of undocumented parameters like limit, email, name, phone, or description, nor how they affect list or create actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 specifies the resource (Stripe customers) and the two actions (list or create). It is specific and distinguishes itself from sibling tools that handle other Stripe resources. However, it is minimal and does not elaborate on the scope of listing or the creation process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 list vs create, or when to prefer this tool over alternatives. No context about prerequisites, typical use cases, or exclusion criteria. The agent has to infer usage from the parameter schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe_invoicesCRead-onlyIdempotent
List Stripe invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | draft, open, paid, uncollectible, void | |
| customer | No | ||
| secret_key | Yes | ||
| subscription | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the title — notably it omits pagination behavior (there is a starting_after cursor), any rate-limit or auth note tied to secret_key, and the default page size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler, so it is not verbose. But its brevity comes at the cost of under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter authenticated list tool with 17% schema coverage and no output schema, the definition is insufficient: the agent does not know how to obtain the required secret_key, how to page through results, or what the response shape looks like. The annotations cover safety but not operability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 17% and the description supplies no parameter semantics at all. The required secret_key has no documentation, and the pagination cursor starting_after — critical for iterating a list — is never explained in either the schema or the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A concrete verb plus resource ('List Stripe invoices') tells the agent exactly what object is returned. It does not, however, distinguish itself from the many adjacent billing/list siblings (stripe_charges, stripe_customers, xero_invoices, quickbooks_invoices, paypal_invoices), so the agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no mention of prerequisites such as which account or API key scope is needed, and no conditions under which it should not be used. The agent is left to infer all routing from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe_pricesCRead-onlyIdempotent
List Stripe prices.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | one_time or recurring | |
| limit | No | ||
| active | No | ||
| product | No | ||
| secret_key | Yes | ||
| starting_after | No |
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 safety is covered. The description adds nothing beyond that: no mention of pagination behavior, despite limit/starting_after parameters, and no note that a Stripe secret key is needed. It neither contradicts nor enriches 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 short sentence, front-loaded with verb and resource, so nothing is wasted. However, its brevity reflects under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with a required secret_key, no output schema, and no explanation of pagination or filtering, one sentence is not enough. The annotations cover safety, but an agent still lacks the information needed to invoke it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 17% — just the 'type' enum is documented — leaving limit, active, product, secret_key, and starting_after unexplained. With low coverage the description is expected to compensate, but it mentions no parameters at all, so an agent gets no help on filtering or pagination 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?
'List Stripe prices' states a specific verb (List) and resource (Stripe prices), which cleanly separates it from siblings such as stripe_products, stripe_customers, and stripe_subscriptions. It lacks any scope detail (all prices? active only?), but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this versus alternatives like stripe_products, nor when the type/active/product filters matter. An agent must infer usage entirely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe_productsCRead-onlyIdempotent
List Stripe products.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| active | No | ||
| secret_key | Yes | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety and mutability profile is fully covered. The description adds nothing beyond that — no mention of pagination behavior, result limits, or authentication expectations for a list endpoint that needs a secret_key.
Agents need to know what a tool does to the 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 four-word sentence with zero waste, but the brevity is under-specification rather than disciplined concision given the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with a required credential and no output schema, the description leaves the agent without pagination, filtering, or return-shape context. It is not sufficient to invoke the tool confidently beyond the default 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 0%, so the description carries the full burden for four parameters. It says nothing about what 'active' filters, what 'limit' caps, or that 'starting_after' is a pagination cursor — exactly the semantics an agent needs to enumerate results 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?
States a specific verb (List) and resource (Stripe products), which is enough to distinguish it from the algorithmic/log tools in the sibling set. However, it does nothing to distinguish it from the adjacent stripe_invoices, stripe_prices, and stripe_charges tools beyond the noun itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus stripe_prices, stripe_invoices, or the numerous other Stripe siblings, and no mention of prerequisites such as API key scope. The agent must infer everything from the noun.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe_subscriptionsC
List Stripe subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| price | No | ||
| status | No | active, past_due, canceled, etc. | |
| customer | No | ||
| secret_key | Yes | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states 'List Stripe subscriptions' without disclosing read-only nature, required authentication (secret_key), or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) and front-loaded, but it sacrifices useful detail. Nonetheless, it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and low parameter coverage, the description is insufficient. It does not explain pagination (starting_after), filtering (customer, price), or the required secret_key.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 17% (only 'status' has a description). The description does not add any parameter information, failing to compensate for the low 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 verb 'List' and the resource 'Stripe subscriptions', distinguishing it from sibling tools that list other Stripe objects (charges, customers, invoices, 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?
No guidance on when to use this tool versus alternatives like stripe_charges or stripe_invoices. No mention of filtering, pagination, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suffix_array_buildC
Build a suffix array for a string, with optional LCP (longest common prefix) array.
| Name | Required | Description | Default |
|---|---|---|---|
| lcp | No | Also compute the LCP array (default false) | |
| text | Yes | Input string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the core operation and optional LCP but omits behavioral details such as return format, handling of empty or unicode strings, complexity, or error conditions.
Agents need to know what a tool does to the 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 front-loaded sentence that names the operation and the optional flag. It contains no filler and is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain what the tool returns (suffix array only, or both arrays when lcp=true). For an algorithm tool where return shape matters, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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. The description expands 'LCP' as 'longest common prefix' and restates the string input, adding only a minor gloss 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 and resource: 'Build a suffix array for a string', and notes the optional LCP array. It does not distinguish itself from siblings like suffix_tree or suffix_automaton, so it is clear but lacks 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?
No when-to-use guidance, no alternatives, and no prerequisites are provided. The description only explains what it does, leaving the agent to infer appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suffix_automatonA
Build a suffix automaton for a string and count distinct substrings.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string (max 100,000 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It makes clear that this is a computational, non-mutating operation, but it does not describe return behavior, edge cases, complexity, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every part of the sentence contributes to identifying the operation and its result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should ideally clarify what is returned and any edge cases. It communicates the core computation but leaves return format and behavior underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple 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 input parameter is fully documented in the schema with its max length. The description adds no extra parameter semantics 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 algorithm and resource ('suffix automaton for a string') and the computed result ('count distinct substrings'). This distinguishes it from general string tools and from related siblings such as suffix_array_build and suffix_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance and does not compare this tool to related string algorithms. Usage is only implied by the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suffix_treeB
Build a suffix tree (Ukkonen's algorithm) and compute distinct substrings and longest repeated substring.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input text (max 10,000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, but this is a pure read-only computation with limited behavioral surface. It usefully discloses the specific algorithm (Ukkonen's) and the derived outputs, yet says nothing about complexity, limit handling, or the shape of the result set beyond naming two 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?
A single well-formed sentence that front-loads the action and the algorithm, then names the outputs. 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 and no annotations, the description is the only source of return-value information, and it names the two computed results but not their format (e.g., counts vs. actual substring lists). Adequate for a simple single-parameter tool, but not 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?
Only one parameter exists and schema coverage is 100%, with the schema itself stating 'Input text (max 10,000 chars)'. The description adds no syntax, encoding, or format detail beyond the schema, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific algorithm and resource ('Build a suffix tree (Ukkonen's algorithm)') and states the two derived results ('distinct substrings and longest repeated substring'), so the agent knows exactly what it produces. It does not, however, distinguish itself from nearby siblings such as suffix_array_build, suffix_automaton, or eertree, which also operate on suffix structures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this tool over the many other string-structure siblings (suffix_array_build, suffix_automaton, kmp_automaton, trie_ops). The agent must infer applicability from the outputs alone, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sunrise_sunset_timesB
Get sunrise and sunset times for GPS coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude | |
| lng | Yes | Longitude | |
| date | No | Date (YYYY-MM-DD) or 'today' (default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. 'Get' implies a safe read, but the description does not disclose timezone handling, date default behavior, return format, or any constraints, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers all parameters, but there is no output schema and the description does not clarify timezone or return formatting. For sunrise/sunset times, timezone is important context that is 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?
Schema coverage is 100%, so the input schema already documents lat, lng, and date. The description adds no parameter semantics beyond the obvious GPS-coordinate framing, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (sunrise and sunset times) scoped to GPS coordinates. It is clear and not tautological, but it does not distinguish this tool from any sibling alternatives, 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 only implies usage by mentioning GPS coordinates; it gives no explicit when-to-use guidance, no exclusions, and no alternatives. There is no routing information for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supabase_apply_migrationC
Apply a named, tracked migration to a Supabase project's database via the Management API.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The migration SQL. | |
| name | Yes | Short snake_case migration name. | |
| api_key | No | Legacy token alias. | |
| project_ref | Yes | Supabase project ref. | |
| access_token | No | Optional Supabase access token. Omit to use the connected login. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies the migration is recorded ('tracked') but says nothing about destructive DDL effects, irreversibility, required permissions, or whether it is transactional. For a database-mutating tool this is a significant 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?
A single front-loaded sentence with no filler. It is well-sized for the tool, though it could have used the space to add usage or behavioral 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 mutating tool with no annotations and no output schema, the agent still lacks information about tracking behavior, side effects, and permissions. The 'tracked migration' and 'Management API' references give partial context, but not enough to fully cover the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including the sql/name/project_ref fields and the token aliases. The description adds no parameter-level detail beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (apply) and resource (named, tracked migration) scoped to a Supabase project's database via the Management API. It differentiates from supabase_execute_sql only implicitly through 'named, tracked migration', but an agent can still tell 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?
No explicit when-to-use guidance or comparison to the sibling supabase_execute_sql, which is the obvious alternative for running SQL. The 'tracked migration' phrasing hints at the distinction but leaves the agent to infer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supabase_execute_sqlB
Run a SQL statement against a Supabase project's database via the Management API. Destructive statements require confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL to run. | |
| api_key | No | Legacy token alias. | |
| confirm | No | Set true to allow a destructive statement the guard would block. | |
| project_ref | Yes | Supabase project ref (the xxxx in xxxx.supabase.co). | |
| access_token | No | Optional Supabase access token. Omit to use the connected login. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries transparency. It discloses that statements run via the Management API and that destructive statements are guarded by a confirm flag, but it omits return behavior, permission requirements, and other operational 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?
Two sentences, front-loaded with purpose and safety condition. Every clause is relevant 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 database execution tool with no output schema, the description covers the core action and the confirm guard, but it does not explain return values, transaction behavior, or permission expectations, leaving gaps for an agent evaluating execution consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 are already documented. The description reinforces the confirm flag's role for destructive statements but adds no 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 verb and resource: running a SQL statement against a Supabase project's database, and adds the Management API context. It is clear, though it does not explicitly distinguish itself from siblings like supabase_apply_migration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that destructive statements require confirm: true, which is a useful condition, but it gives no guidance on when to use this tool versus alternatives such as supabase_apply_migration or read-only project tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supabase_get_projectARead-onlyIdempotent
Get one Supabase project by project_ref. Read-only Management API call.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Legacy alias for project_ref. | |
| api_key | No | Legacy token alias. | |
| project_ref | Yes | Supabase project ref, for example abcdefghijklmnop. | |
| access_token | No | Optional Supabase access token. Omit it to use the connected Supabase login when available. |
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's 'Read-only Management API call' largely restates what structured data provides. It adds the useful note that this is the Management API (as opposed to data-plane SQL tools), but says nothing about auth requirement, error behavior, or latency.
Agents need to know what a tool does to the 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 the verb+key first and the read-only classification second. 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 single-entity read with full schema coverage and safety annotations, the description is adequate. No output schema exists, but describing return shape is not strictly required; noting what fields come back or what happens on an unknown ref would be the only enhancement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents project_ref, the legacy ref alias, api_key, and access_token. The description only echoes project_ref, adding no format, default, or precedence guidance for the legacy aliases; 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 ('Get one Supabase project') plus the lookup key ('by project_ref'), which clearly distinguishes it from list-style siblings like supabase_list_projects. It stops short of naming an alternative explicitly, but an agent can still tell what it retrieves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Get one ... by project_ref' implies the use case (fetch a single known project rather than enumerate), but no explicit when-to-use or when-to-prefer-supabase_list_projects guidance is given. Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supabase_list_organizationsBRead-onlyIdempotent
List Supabase organizations visible to the connected Supabase account. Read-only Management API call.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Legacy token alias. | |
| access_token | No | Optional Supabase access token. Omit it to use the connected Supabase login when available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive; the sentence 'Read-only Management API call' largely restates them. The one piece of genuine added context is that results are scoped to what the connected account can see, but pagination, rate limits and result shape are not disclosed.
Agents need to know what a tool does to the 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, zero filler, with the action and scope front-loaded and the safety characterization immediately after. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is the only place an agent could learn what a returned organization looks like or how results are bounded (pagination, typical list size). For a listing tool whose annotations already cover the safety profile, the missing return/pagination information is a real 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 parameters are optional with their own descriptions (including the omission-means-use-connected-login semantics). The tool description adds nothing about api_key vs access_token precedence, so the schema carries the full burden and 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 ('List Supabase organizations') plus a scope qualifier ('visible to the connected Supabase account'), which distinguishes it from the project/SQL siblings. It stops short of explicitly contrasting with supabase_list_projects, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the enumeration call to run before project-level operations such as supabase_list_projects. There is no explicit when-to-use/when-not, no mention of prerequisites or alternatives, so it is minimum viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supabase_list_projectsBRead-onlyIdempotent
List Supabase projects visible to the connected Supabase account. Read-only Management API call.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Legacy token alias. | |
| access_token | No | Optional Supabase access token. Omit it to use the connected Supabase login when available. | |
| organization_id | No | Optional Supabase organization id filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so 'Read-only Management API call' largely restates structured data. The phrase 'Management API' adds a little context about which surface is being hit, but auth mechanics (legacy api_key vs access_token fallback) and pagination/result-size behavior are unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and scope, with the read-only trait placed second. Nothing is padded, though the second sentence is largely 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?
With no output schema, the description should sketch the shape of the returned project list (ids, names, org membership) and any pagination limits; neither is covered. Adequate for a low-risk read-only lister, but not 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 all three parameters (api_key, access_token, organization_id) are already documented in the schema. The description adds no interpretation of its own — notably nothing about when the organization_id filter matters — 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?
Names a specific verb (List) and resource (Supabase projects) plus the visibility scope ('visible to the connected Supabase account'). It does not explicitly distinguish itself from the neighboring supabase_get_project, but the list-vs-get distinction is inferable from the name and 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?
Usage is only implied — an agent can guess this is the discovery step before supabase_get_project or supabase_list_organizations, but the description never says so or names an alternative. No conditions for using the organization_id filter are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapi_get_personBRead-onlyIdempotent
Get a Star Wars character by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Character ID (e.g. 1 for Luke Skywalker) |
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 nothing beyond that: no note on what fields come back, whether missing IDs error or return empty, or that this hits a live external API (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?
One short, front-loaded sentence with no filler. Nothing wasted, though there is also very little 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?
There is no output schema, so the description is the only place to say what a returned character record contains (name, height, films, etc.) or how failures behave, and it says neither. Adequate to call correctly, but thin for an open-world read 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 single 'id' parameter is documented in the schema with a concrete example (1 = Luke Skywalker). The description adds no meaning beyond 'by ID', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: fetch a Star Wars character identified by ID. It is distinguishable from swapi_search_people by the ID-based lookup, though the description never names that sibling or says 'person/people' 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?
Usage is only implied: it is obvious that a lookup-by-ID should be used when an ID is known and swapi_search_people when it isn't, but the description does not state this or any other when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapi_get_planetBRead-onlyIdempotent
Get a Star Wars planet by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Planet ID (e.g. 1 for Tatooine) |
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 without prose. The description adds only the ID-keyed lookup scope and says nothing about not-found behavior or what a returned planet record contains.
Agents need to know what a tool does to the 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 with zero filler, which is proportionate for a one-parameter lookup. It is terse to the point of omitting useful routing information, but 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?
For a trivial single-parameter read, the definition is minimally viable: schema is complete and annotations cover safety. However, with no output schema and no description of the returned planet fields or error behavior, an agent cannot anticipate the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself supplies a concrete example ('1 for Tatooine'), so parameter meaning is fully documented structurally. The description contributes nothing beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('Star Wars planet') plus the lookup key ('by ID'), so it is unambiguous. It implicitly contrasts with the sibling swapi_search_planets (search vs. direct fetch) but never states that distinction 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?
Usage is only implied: 'by ID' suggests you must already have an identifier, which hints that swapi_search_planets is the entry point when you don't. No explicit when-to-use, prerequisites, or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapi_get_starshipBRead-onlyIdempotent
Get a Star Wars starship by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Starship ID (e.g. 10 for Millennium Falcon) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered by structured data. The description adds nothing beyond that — it doesn't mention that this hits a live external API (openWorldHint), whether unknown IDs error or return empty, or any rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clause with zero filler, front-loading the verb and resource. Nothing extraneous, nothing repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with rich annotations this is nearly sufficient. However, there is no output schema, and the description says nothing about what a starship record contains or what happens on a missing ID, leaving the response shape entirely unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 already documents type and an example ('10 for Millennium Falcon'). The description's 'by ID' adds nothing the schema doesn't carry, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('Star Wars starship') scoped to a single record by ID. The 'by ID' qualifier implicitly separates it from swapi_search_starships, but the sibling is never named, so the differentiation must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus swapi_search_starships, nor on where an ID comes from (a prior search result). The agent must infer the lookup-by-identifier vs discovery-by-name split from the tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapi_search_peopleBRead-onlyIdempotent
Search Star Wars characters by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. 'luke') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety and repeatability are covered. The description's only added context is that lookup is name-based, with no mention of result caps, matching semantics, or what a search returns when nothing matches. Some value, but thin for a remote search 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?
One front-loaded sentence with no filler. It is slightly under-specified rather than padded, but nothing in it needs cutting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations covering safety and no output schema, the description is adequate but leaves open matching behavior (exact vs substring) and whether results are limited. Those matter for an open-world search endpoint and 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% and the single parameter is already documented with an example in the schema, so the baseline applies. The phrase 'by name' confirms the query targets the character name field, which is a marginal addition over the schema example.
Input schemas describe structure but not intent. Descriptions should explain 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 (Star Wars characters) plus the search field (name). An agent can tell it apart from swapi_get_person by the search-vs-fetch pattern, though the description never names that sibling or states the distinction 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?
'by name' hints at the input, but there is no when-to-use guidance: nothing tells the agent to prefer this over swapi_get_person when an ID is already known, or whether partial matches are supported. The agent must infer selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapi_search_planetsBRead-onlyIdempotent
Search Star Wars planets by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. 'tatooine') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose read-only, idempotent, non-destructive, and open-world behavior. The description adds no additional behavioral context such as match semantics, pagination, error behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is concise for a simple one-parameter search tool, though it could include slightly more context without becoming 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?
For a low-complexity search tool with full schema coverage and rich annotations, the definition is minimally adequate. However, it does not clarify matching behavior or what the search returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the single query parameter with an example. The description adds only the word 'name', which is consistent with the schema but does not provide extra syntax or matching 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 states a specific verb and resource: search Star Wars planets. The phrase 'by name' implicitly distinguishes it from swapi_get_planet, which is presumably an ID-based lookup, but the sibling is not named 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?
Usage is implied by 'Search ... by name', but there is no explicit guidance on when to use this versus swapi_get_planet or other Star Wars tools. No exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapi_search_starshipsARead-onlyIdempotent
Search Star Wars starships by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. 'falcon') |
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 fully covered by structured fields. The description contributes only the fact that matching is name-based against an open-world catalog; it says nothing about result volume, partial matching, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the resource and matching criterion front-loaded; every word earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup the description is minimally sufficient, and rich annotations remove the need to explain safety. However, with no output schema the agent gets no signal about what a result looks like (full starship records vs. matches, result count, whether exact vs. substring matching applies), which matters for a name search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single query parameter is documented at 100% coverage in the schema with an example ('falcon'), so the schema carries the semantics. The description's 'by name' slightly clarifies what the query matches against, but adds no syntax or format detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Star Wars starships) plus the matching facet (by name), so it is clearly distinct from swapi_get_starship, which retrieves by identifier. It stops short of naming that sibling explicitly, but the verb+resource pairing 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?
'By name' implies the intended entry point when you have a fuzzy text query rather than an ID, which indirectly differentiates it from swapi_get_starship. There is no explicit when-to-use/when-not-to-use statement or named alternative, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_meetingsC
Get TAB race meetings for a date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD | |
| api_key | No | ||
| jurisdiction | No | e.g. VIC, NSW |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, error handling, rate limits, or authentication requirements. The agent is left uninformed about side effects or constraints.
Agents need to know what a tool does to the world before calling 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 unnecessary words, but it is too brief and lacks structured breakdown of inputs or 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?
Given no output schema, the description should explain what is returned (e.g., list of meetings with details). It also omits context about the domain, required parameters, and authentication. The tool is simple but still incomplete.
Complex tools with many parameters or behaviors need more documentation. 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 description adds minimal value beyond the schema; it only references 'date'. The api_key parameter lacks any description in both schema and description, and jurisdiction's schema description is already sufficient. With 67% schema coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'TAB race meetings', and specifies the key filter 'date'. However, it does not mention other important inputs like jurisdiction or api_key, and lacks differentiation from sibling tools like tab_race.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus siblings (tab_race, tab_sports_markets) or any prerequisites. The description gives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_raceC
Get TAB race details. A race is addressed by its meeting date, meeting name, and race number (TAB has no single race id).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| race_type | No | R (thoroughbred), G (greyhound), or H (harness). Default R. | |
| race_number | Yes | Race number within the meeting | |
| jurisdiction | No | State jurisdiction, e.g. VIC (default), NSW. | |
| meeting_date | Yes | Meeting date, YYYY-MM-DD | |
| meeting_name | Yes | Meeting name, e.g. Flemington |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that TAB has no single race id, explaining the composite key, but says nothing about return format, the api_key parameter, rate limits, or what happens with an invalid meeting/race combination.
Agents need to know what a tool does to the 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-loaded with the action and followed by the key clarification. No filler, though the second sentence could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 6 parameters and no output schema, the description adequately conveys the addressing scheme. However, with zero annotations and an optional api_key, it leaves auth and any fallback behavior unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents most parameters (including race_type, jurisdiction, and date formats). The description restates the three key identifiers but adds the 'no single race id' framing rather than new syntax or defaults, 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?
States a specific verb (Get) and resource (TAB race details), and the second sentence clarifies exactly what a 'race' is keyed by. It does not name or contrast with the sibling tab_meetings, so an agent must infer the distinction, keeping it 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 explains the addressing scheme but never states when to use tab_race versus tab_meetings or tab_sports_markets. There is no when-to-use or when-not-to-use guidance, only prerequisite identifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_sports_marketsC
Get TAB sports betting markets.
| Name | Required | Description | Default |
|---|---|---|---|
| sport | No | ||
| api_key | No | ||
| competition | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. However, it only states 'Get TAB sports betting markets' without any details on authentication, data return, side effects, or limitations. For a sports betting data tool, critical behavioral traits are missing.
Agents need to know what a tool does to the world before calling 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, which is concise but overly succinct. It lacks structure and fails to provide necessary details, making it insufficient for a tool with multiple parameters and no 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?
Given the absence of annotations, output schema, and parameter descriptions, the tool definition is severely incomplete. It fails to convey how to use the parameters, what the tool returns, or any constraints, leaving significant gaps for an AI 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 0%, meaning the description adds no meaning to the three parameters (sport, competition, api_key). It does not explain their purpose, format, or example values, leaving the agent to rely solely on parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get TAB sports betting markets' clearly states the action (get) and the resource (TAB sports betting markets). It is specific and unambiguous, though it does not explicitly distinguish from sibling tools like 'tab_meetings' or 'tab_race', but the name provides adequate context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. The description does not mention prerequisites, typical use cases, or when not to use it. Sibling tools exist for other TAB services, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tarjan_sccB
Find all strongly connected components of a directed graph using Tarjan's algorithm.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of directed edges |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full disclosure burden, yet it says nothing about the return shape (e.g. a list of vertex-set components), whether self-loops or isolated vertices are handled, or complexity/scale limits. Naming Tarjan's algorithm is mildly informative but does not cover observable 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?
A single, front-loaded sentence that states the operation and the algorithm with zero filler. Nothing is padded and the key information comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations, the definition should ideally describe the return format and edge-case handling for a graph algorithm, and it does not. It remains minimally adequate because the operation is a well-understood deterministic computation, but return-value shape is left for the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 there is only one parameter, whose description ('Array of directed edges') already explains it. The description adds no syntax details such as whether vertex identifiers are arbitrary strings or how isolated vertices are represented, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find'), a concrete resource ('strongly connected components of a directed graph'), and names the exact algorithm used. It does not, however, distinguish itself from the sibling SCC tools kosaraju_scc and gabow_scc, so an agent cannot infer why it should pick this one from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no prerequisites, and no mention of the near-identical siblings (kosaraju_scc, gabow_scc) that solve the same problem. The agent is left to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tarot_all_cardsBRead-onlyIdempotent
List all tarot cards in the deck.
| 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 elsewhere. The description adds no behavioral context of its own — no indication of deck size (e.g. 78 cards), result format, or whether meanings/keywords are included.
Agents need to know what a tool does to the 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 with zero waste. For a zero-parameter enumeration tool, this is appropriately sized; there is no filler 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?
With no output schema and no annotations about return shape, the description never says what a returned card looks like (name only, or name plus suit/arcana/meaning). For a trivial list tool this is a minor but real 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 tool takes zero parameters, so there is nothing for the schema to describe and nothing the description needs to compensate for. Baseline 4 is appropriate for a no-arg 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?
States a specific verb ('List') and resource ('all tarot cards in the deck'), so the operation is unambiguous. It does not name or contrast with the obvious siblings tarot_search and tarot_draw, though the word 'all' implicitly sets it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance and no reference to alternatives. An agent must infer that this is the 'get the full deck' option versus tarot_search (filtered lookup) or tarot_draw (random single card).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tarot_drawC
Draw random tarot cards for a reading.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of cards to draw (default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states randomness but omits key behavioral facts: whether drawn cards are unique, whether reversals are possible, whether drawing is repeatable/stateless, and what a card result looks like. For a random-draw tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no filler. Efficient, though it is on the terse side rather than optimally informative for the tool's 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?
For a simple one-parameter tool with no output schema and no annotations, the description is minimally adequate but does not convey return shape or drawing semantics. It gets by on the schema alone without fully covering the behavioral 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 'count' parameter is fully documented in the schema including its default of 3. The description adds nothing about the parameter, 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?
Specific verb ('Draw') plus resource ('tarot cards') with the 'random' modifier, which implicitly contrasts with the sibling tarot_all_cards (full listing) and tarot_search. It is clear what the tool does, but it never names or explicitly distinguishes itself from 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?
There is no guidance on when to use this versus tarot_all_cards or tarot_search, nor any stated context for the 'reading' use case. The agent must infer the difference from the tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tarot_searchBRead-onlyIdempotent
Search for a specific tarot card by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Card name (e.g. 'The Fool', 'Death', 'Ace of Cups') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety and repeatability are fully covered structurally. The description adds nothing beyond that – no note on what a match returns (single card vs. list), whether matching is exact or fuzzy, or what happens on no match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. It is efficient, though its brevity is part of why gaps remain – it could afford one more clause on matching 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?
For a one-parameter read-only lookup with annotations and full schema coverage, this is minimally adequate. Missing: routing versus the two sibling tarot tools and match/no-match behavior, which are the only real decisions an agent must make here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the query parameter already carries examples ('The Fool', 'Death', 'Ace of Cups'). The description adds no matching-semantics detail (substring, case sensitivity, partial names) beyond the schema's examples, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for a specific tarot card by name'), so the operation is unambiguous. It does not distinguish itself from the sibling tools tarot_all_cards or tarot_draw, which also deal in tarot cards, so an agent gets no help picking among 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?
There is no when-to-use guidance and no mention of alternatives. The agent is not told when to search by name versus listing all cards (tarot_all_cards) or drawing a card (tarot_draw), which is the main ambiguity this tool has.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taylor_expandB
Taylor series approximation for exp, sin, cos, ln(1+x), and atan(x).
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Point to evaluate at. | |
| terms | No | Number of terms (default 10, max 50). | |
| function | Yes | Function: exp, sin, cos, ln1p, or atan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the method is an approximation but omits accuracy, convergence, domain restrictions such as ln(1+x) requiring x > -1, and how the number of terms affects 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?
It is a single front-loaded sentence with no filler. Every word supports the purpose, and the function list is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 numerical tool with a fully described input schema, the description is minimally adequate. However, with no output schema and no annotations, it could still clarify the return value, domain limits, and the effect of the terms parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 x, terms, and function. The description adds the useful mapping from ln1p to ln(1+x), but otherwise does not add 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 method, Taylor series approximation, and enumerates the exact functions supported: exp, sin, cos, ln(1+x), and atan(x). This is enough to distinguish it from generic math or approximation 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 says what functions can be approximated but gives no guidance on when to choose this tool versus direct evaluation, numerical methods, or other math siblings. There are no conditions, exclusions, or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_get_updatesCRead-onlyIdempotent
Get Telegram bot updates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| timeout | No | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds almost nothing beyond the name, omitting polling behavior, blocking semantics of timeout, offset handling, and whether updates are consumed or acknowledged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no wasted words. Its brevity is appropriate structurally, though the content itself is under-specified for a tool with four parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four parameters, only one partially described, and no output schema, the description is too thin. It does not explain return behavior, pagination via limit/offset, or what a timeout means, leaving the agent to infer critical operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 25%, with limit, offset, and timeout completely undocumented in both schema and description. The description does not compensate by explaining how these parameters control update retrieval, leaving three of four parameters semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get Telegram bot updates.' An agent can understand the core operation, but the description does not distinguish this from sibling tools like telegram_read or telegram_search, which likely offer overlapping read functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance is provided. The description does not explain when to use this tool versus telegram_read, telegram_search, or other Telegram-related tools, nor does it mention prerequisites like a bot token.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_manage_chatC
Manage a Telegram chat (get info, ban, kick, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| chat_id | Yes | ||
| user_id | No | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full behavioral burden. It hints at destructive operations (ban, kick) but never states irreversibility, required admin permissions, rate limits, or how mixed read/write actions behave in one 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?
One compact sentence front-loads the resource and operation. It is efficient, though the trailing 'etc.' signals underspecification rather than helpful brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A multi-action chat management tool with no annotations, no output schema, and a free-text action parameter needs far more explanation. The definition leaves the agent guessing about valid actions, permissions, and return 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 only 25%, and the critical 'action' parameter has no enum and no description, leaving valid values like ban vs kick vs get-info undocumented. Only bot_token has a schema description; the description compensates minimally with examples but not with actual accepted 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 verb "Manage" is generic and the scope is broadened by "etc.", but the parenthetical examples (get info, ban, kick) give an agent some sense of the operations. It does not distinguish this from siblings like telegram_send, telegram_read, or telegram_search, nor does it enumerate valid action values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus telegram_send, telegram_read, telegram_search, or telegram_get_updates. The description also doesn't state prerequisites, like whether the bot must be an admin to ban or kick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_readCRead-onlyIdempotent
Read Telegram messages/updates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. |
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 essentially nothing beyond that: it doesn't say whether this is a long-poll or a paged fetch, what limit/offset do, whether a bot token is required, or what happens with zero updates. With annotations carrying the read-only/idempotent story, the description's extra value is near zero.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short fragment with no waste, but the "messages/updates" slash construction is vague rather than front-loaded information. Brevity here reads as under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter network-read tool with no output schema and a crowded sibling set, the description leaves the agent without paging behavior, return shape, or sibling differentiation. Given it overlaps almost entirely with telegram_get_updates, this is a significant completeness 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 only 33% — bot_token is documented in the schema, but limit and offset are bare numbers with no defaults, bounds, or meaning. The description does not compensate at all: it never mentions paging, maximum batch size, or what offset refers to (update_id vs. record offset), which is the key semantic ambiguity for this 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?
"Read Telegram messages/updates" gives a verb (read) and a resource (Telegram messages), so the basic purpose is legible. But it does nothing to separate itself from close siblings such as telegram_get_updates, telegram_search, and telegram_send, so an agent cannot tell which one to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or which sibling to prefer — despite telegram_get_updates and telegram_search existing in the same family. The only implicit guidance is the word "Read", which is not enough to route between overlapping Telegram readers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_searchCRead-onlyIdempotent
Search Telegram messages in a chat.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| chat_id | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered by structured data. The description adds nothing beyond purpose – no mention of search semantics (substring matching? case sensitivity?), result limits, recency scope, or pagination behavior that would matter for a search 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?
A single efficient sentence with zero waste and the resource front-loaded. It's arguably too terse for a 3-parameter search tool, but the sentence itself is well-formed and not 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 search tool with no output schema and only 33% param coverage, the description should say what results look like (message objects, counts, ordering) and what chat_id accepts. None of this is present, leaving key caller questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 33% (only bot_token documented). The description loosely implies chat_id identifies the chat and query is the search term, but doesn't specify whether chat_id takes a numeric ID, @username, or channel handle, nor does it explain query matching behavior. It fails to compensate for the low 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) and resource (Telegram messages) with a scope qualifier ('in a chat'), which distinguishes it from telegram_send and telegram_get_updates. It doesn't explicitly contrast with telegram_read, but the search semantics are clearly different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'in a chat' implies the tool is scoped to a single conversation, but there's no explicit guidance on when to use search vs telegram_read or telegram_get_updates, and no prerequisites mentioned. Usage 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.
telegram_sendC
Send a Telegram message.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| chat_id | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| parse_mode | No | ||
| reply_to_message_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and provides almost nothing: no mention of authentication requirements, rate limits, whether delivery is synchronous, or what happens if chat_id is invalid. Only the schema's bot_token field hints at auth, and it is not echoed here.
Agents need to know what a tool does to the 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 clean sentence with no filler, but it is under-specified rather than concise; there is no front-loaded scope, format, or constraint information to anchor the call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Five parameters, 20% schema coverage, no annotations, and no output schema — the description should explain the auth path, formatting options, and target resolution but covers none of it. Only the parameter names let an agent proceed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 20% — just bot_token is documented. The description adds no meaning for parse_mode (formatting behavior), reply_to_message_id (threading), or chat_id format, so the under-documented parameters stay opaque.
Input schemas describe structure but not intent. Descriptions should explain 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 plus resource ("Send a Telegram message"), which is enough to distinguish it from telegram_read, telegram_search, and telegram_send_media by implication. It stops short of explicitly naming those siblings or the delivery 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?
No guidance on when to use this rather than telegram_send_media, telegram_manage_chat, or the many other messaging tools in the sibling list. No prerequisites or exclusions are stated; the agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_send_mediaC
Send media (photo/document/video) via Telegram.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | ||
| chat_id | Yes | ||
| bot_token | No | Bot token. Optional when connected in UnClick or the documented env var is set. | |
| media_url | Yes | ||
| media_type | Yes | photo, document, video, audio |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies an external send operation but does not disclose auth requirements, bot token fallback behavior, media size or URL constraints, caption limits, 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?
The description is a single front-loaded sentence with no wasted text. It is concise, though the brevity contributes to the gaps in the other dimensions rather than being a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter send/mutation tool with no annotations and no output schema, the description is too thin. An agent still lacks operational context about authentication, media type coverage, URL requirements, and what happens on success or failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 40%, and the description does not compensate. It mentions photo/document/video but omits audio and animation from the enum, and does not explain chat_id, media_url, caption, or the optional bot_token behavior 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: send media via Telegram, with examples of media types. It is clear enough to distinguish from generic telegram_send, though it does not explicitly name the sibling or contrast 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?
There is no guidance on when to use this tool versus telegram_send, telegram_search, or other Telegram tools. It also omits prerequisites such as chat availability, bot token setup, or media URL accessibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
temperature_convertCRead-onlyIdempotent
Convert temperature between Celsius, Fahrenheit, Kelvin, and Rankine.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Source unit: c, f, k, or r (default c). | |
| value | Yes | Temperature value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is fully covered structurally, and the description contributes nothing further. It says nothing about precision/rounding, how offsets are handled, or — most importantly — that only a source unit is supplied, so results presumably come back for multiple target scales.
Agents need to know what a tool does to the 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 with no filler, so it is efficient. It is arguably too terse for a tool whose output set is ambiguous, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, fully annotated, and has complete parameter coverage with no output schema, so the description need not explain return values. Still, the absence of any note on what gets returned given a single 'from' unit and on precision leaves a genuine hole for an agent that must report a number.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'from' parameter already documents the c/f/k/r codes and its default, so the description's unit list is largely redundant. Because the schema exposes only a source unit and no target, the description's phrase 'between Celsius, Fahrenheit, Kelvin, and Rankine' leaves the agent guessing which outputs it receives; baseline 3 with that caveat.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Convert) plus resource (temperature) with the four supported scales enumerated, which cleanly separates it from convert_length, convert_volume, convert_speed and the other unit converters in the sibling list. It does not, however, distinguish itself from the sibling actually named convert_temperature, which appears to do the same job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to pick this tool over convert_temperature, nor any prerequisites, input-range guidance (e.g. absolute zero), or note about which direction conversions run. The agent is left to infer everything about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ternary_searchARead-onlyIdempotent
Ternary search on a sorted array (search mode) or find the extremum of a unimodal array (max/min mode).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode: search (default), max, or min | |
| array | Yes | Array of numbers | |
| target | No | Value to search for (search mode only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered structurally. The description adds genuine behavioral context by tying array shape to mode (sorted vs. unimodal), which is more than the annotations say. It omits what the call returns (index vs. value), and undefined behavior for edge cases, so it does not earn a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with zero filler, front-loading the algorithm and then partitioning behavior by mode. Nothing repeats the tool name or restates the schema verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 saying what comes back — and it does not, leaving ambiguous whether the result is an index, a value, or a boolean. For a computational tool with no output schema, that is a meaningful gap, though the mode semantics and preconditions are otherwise adequately 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; the schema already documents mode (with enum values and default), array, and target. The description contributes only the semantic constraint that array ordering depends on mode, which is marginal added meaning over the schema. It does not clarify what 'target' yields on success.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 algorithm (ternary search) and clearly splits the two behaviors by mode: searching a sorted array vs. finding the extremum of a unimodal array. That is a concrete verb+resource statement an agent can act on. It does not differentiate itself from the many other algorithm siblings (e.g. kmp_search, bfs_search, binary-style search tools), 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 mode-to-behavior mapping implies when each mode applies ('search mode' for sorted arrays, 'max/min mode' for unimodal arrays), which is useful usage context. However, it never states prerequisites explicitly as constraints (array MUST be sorted for search, MUST be unimodal for max/min), nor what to do when the target is absent, nor any named alternative tool for plain linear/exact lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_edit_itemB
Override the verdict and notes for a single check item in a TestPass run. Fail-to-pass edits are flagged in mc_signals.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | Required reviewer note explaining the manual verdict edit | |
| run_id | Yes | The run the item belongs to | |
| item_id | Yes | The testpass_items row id (uuid) | |
| verdict | Yes | New verdict |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full disclosure burden. It usefully reveals one non-obvious behavior: 'Fail-to-pass edits are flagged in mc_signals.' However, it says nothing about required permissions, whether the override is reversible, or what side effects accompany a verdict change, leaving significant gaps for a mutation 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?
Two tight sentences with the core action front-loaded and the mc_signals caveat following immediately. No filler; 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?
This is a mutation tool with no annotations and no output schema, so the description carries the full burden. Parameters are fully covered by the schema, but the description omits permission requirements, reversibility, and the effect of the override on the wider TestPass run, leaving it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and all four parameters (run_id, item_id, verdict, notes) are documented in the schema, including the enum for verdict and the 'required reviewer note' constraint on notes. The description names verdict and notes but adds no syntax or semantic detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Override') and resource ('verdict and notes for a single check item in a TestPass run'), making the operation concrete. It implicitly distinguishes itself from read/report siblings like testpass_report_json or testpass_status, though it doesn't explicitly name the edit alternative (legalpass_edit_item exists for a parallel system).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor any prerequisites or conditions (e.g., after a run exists, versus testpass_run). The word 'Override' hints at manual correction but no when/when-not framing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_evidenceB
Fetch one TestPass item and its attached evidence by item_id or check_id. Use this when a chat agent needs proof for a specific checklist item.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by testpass_run | |
| item_id | No | Optional testpass_items row id | |
| check_id | No | Optional checklist id such as RPC-001 or MCP-007 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and no output schema, so the description carries the full burden. It says it fetches an item and its 'attached evidence' but never says what evidence consists of, what happens if both item_id and check_id are supplied, whether the operation is read-only, or how missing/partial results behave. For a fetch tool with zero structured backing, this is a substantial 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?
Two tight sentences, purpose front-loaded with the selectors immediately following. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does enough to identify the tool and its selectors but omits the shape of the returned evidence and the behavior when both optional selectors are provided. Adequate but with clear gaps for a multi-param fetch 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 run_id, item_id, and check_id. The description echoes the 'item_id or check_id' selection but adds no precedence rule or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Fetch one TestPass item and its attached evidence') and names the selectors (item_id or check_id). It is broadly distinguishable from testpass_run, but does not explicitly differentiate from siblings like testpass_edit_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 an implied context ('when a chat agent needs proof for a specific checklist item') but names no alternatives and gives no when-not guidance. Usage is inferrable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_fix_listA
Get the Markdown fix-list for a TestPass run. This is an explicit alias for the markdown report so agents can discover the copy-paste repair artifact directly.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by testpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full disclosure burden. It does convey the return format (Markdown fix-list / copy-paste artifact), which is useful, but says nothing about auth requirements, whether access is read-only, or how the alias relates to the canonical report at runtime.
Agents need to know what a tool does to the 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-loaded with what the tool returns, with no redundant or filler text. 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 retrieval tool with no output schema, the description adequately names the returned artifact (Markdown fix-list) and its discovery purpose. Only a note on how it differs operationally from testpass_report_md would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple 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 run_id parameter and its schema description already explains it is the id returned by testpass_run. The description adds no further parameter meaning, 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?
States a specific verb ('Get') and resource ('the Markdown fix-list for a TestPass run') and explicitly positions itself relative to the markdown report, which helps distinguish it from the sibling testpass_report_md. The 'alias' framing is clear, though it slightly raises the question of why the alias exists separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'so agents can discover the copy-paste repair artifact directly' implies this is the entry point for the repair artifact, but it never states when to prefer this over testpass_report_md or testpass_report_json. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_list_packsARead-onlyIdempotent
List TestPass packs available to the caller, including system packs and the caller's custom packs.
| 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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds useful scoping context (system vs. caller-custom packs), but says nothing about result size, pagination, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, leading with the action and resource. Nothing is repeated from the schema or annotations, so every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool whose safety profile is fully covered by annotations and with no output schema to explain, the definition is nearly sufficient. It is only slightly short on how the returned packs are structured or how many come 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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. The scoping sentence at least tells the agent no filtering argument exists — the caller sees exactly its own and system packs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'List' plus resource 'TestPass packs', with scope clarified as system packs plus the caller's custom packs. It distinguishes itself from mutating siblings like testpass_save_pack and testpass_edit_item by being a pure enumeration, though it doesn't 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 the tool is for discovering available packs, but it never states when to use it versus testpass_status or testpass_run, nor any prerequisite such as needing a pack id first. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_report_htmlC
Get the HTML report for a TestPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by testpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the report is read-only, requires specific permissions, or has size limits. It merely states the action without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded and easy to parse. While efficient, it could include slightly more informative content without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (one parameter, simple action) and absence of an output schema, the description is adequate but minimal. It does not clarify that a successful run is needed or that the report is an HTML string.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 parameter run_id, and the description does not add new meaning beyond what the schema already provides. The baseline of 3 is appropriate as no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 an HTML report for a TestPass run, using a specific verb and resource. However, it does not explicitly distinguish from sibling tools like testpass_report_json or testpass_report_md, though the name implies the 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 no guidance on when to use this tool versus alternatives (e.g., JSON or MD report tools), nor does it mention prerequisites like checking run status. Agents must infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_report_jsonB
Get the JSON report for a TestPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by testpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Get the JSON report.' It does not disclose behavioral traits such as whether the operation is read-only, error handling, or requirements like run must exist. With no annotations, the description carries full burden but adds minimal 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, efficient sentence with no wasted words. It is appropriately sized for a simple retrieval 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?
Given low complexity (1 param, no output schema), the description is minimal. It does not specify that the run must exist or mention any prerequisites. With no annotations, the agent lacks complete context for 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 coverage is 100% with a single parameter 'run_id' described. The description does not add meaning beyond the schema (e.g., source or format of run_id). Baseline 3 is appropriate for full 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 clearly states 'Get the JSON report for a TestPass run,' specifying the verb, resource, and format. It distinguishes from sibling tools like testpass_report_html and testpass_report_md by explicitly mentioning 'JSON'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. Siblings exist for HTML and Markdown reports, but the description does not mention them or provide selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_report_mdB
Get the Markdown report for a TestPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by testpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It fails to disclose key behavioral traits such as whether the report requires a completed run, error handling, or 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?
The description is a single, front-loaded sentence with no waste. While it is concise, it could add more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 report retrieval with one parameter and no output schema, the description is minimally adequate. It specifies the output format (Markdown) but lacks details on prerequisites, error conditions, or 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?
The schema covers 100% of the single parameter (run_id) with a clear description. The tool description adds no additional meaning beyond what the schema provides, meeting 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 action 'Get' and the specific resource 'Markdown report for a TestPass run', distinguishing it from sibling tools like testpass_report_html and testpass_report_json.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no guidance on when to use this tool versus alternatives (e.g., HTML or JSON reports), nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_runA
Start a TestPass run against an MCP server. Seeds deterministic and agent checks from the given pack and returns the run id plus an initial verdict summary. Response includes was_duplicate: boolean indicating whether the row was already present (idempotent retry).
| Name | Required | Description | Default |
|---|---|---|---|
| pack_id | No | Pack slug (default: testpass-core) | |
| profile | No | Run profile (default: smoke) | |
| task_id | No | Client-generated idempotency key. The API requires UUID format; non-UUID values are deterministically converted to a stable UUIDv5-shaped id, so any string is safe and retries stay idempotent. Required for safe retry. If omitted, the server creates a fresh row and you lose retry safety; sending the same task_id twice returns the original run_id with was_duplicate=true instead of creating a duplicate. | |
| target_url | Yes | HTTP URL of the MCP server to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does add meaningful behavior: it seeds checks, returns a run id plus an initial verdict summary, and explains the was_duplicate idempotency-retry semantics. It stops short of disclosing auth, rate limits, or whether re-running mutates prior state, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary action and outcome, with the was_duplicate detail last. No wasted phrasing, though the third sentence is somewhat redundant with the task_id schema 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?
With no output schema and no annotations, the description compensates by naming the return values (run id, verdict summary, was_duplicate) and the seeding behavior. For a 4-param mutation tool this is nearly complete; only auth/permission expectations are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 task_id field already documents the idempotency behavior in detail, so the schema does the heavy lifting. The description only alludes to the pack and idempotent retry, adding little beyond the structured fields. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Start) and resource (a TestPass run against an MCP server), and describes the core mechanic of seeding deterministic and agent checks from a pack. An agent can distinguish it from siblings like testpass_status or testpass_report_md without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context of starting a run implies this is the entry-point tool, and the mention of the pack and idempotent retry implies usage, but the description never explicitly says when to call this versus testpass_status or the report tools. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_save_packB
Save a TestPass pack YAML definition for the caller. Creates or updates the pack identified by pack_id.
| Name | Required | Description | Default |
|---|---|---|---|
| yaml | Yes | Full pack definition as a YAML string | |
| pack_id | Yes | Unique slug for the pack (e.g. 'my-mcp-pack') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states 'creates or updates' without disclosing side effects, authentication requirements, or error conditions. Lacks details on behavior when pack_id already 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 concise sentences front-loaded with the action. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 string parameters and no output schema, the description covers core purpose but lacks usage context and behavioral details. 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% with clear descriptions for pack_id and yaml. The description adds 'for the caller' but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves a TestPass pack YAML definition, with create/update semantics. It distinguishes from sibling tools like testpass_run or testpass_status by focusing on saving the pack definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like testpass_edit_item or other testpass tools. Missing context on prerequisites or scenarios where saving a pack is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testpass_statusA
Fetch the current status, verdict summary, and fail count for a TestPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The TestPass run id returned by testpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the tool as a read operation, but does not explicitly state that it is non-destructive, has no side effects, or any rate limits or data freshness constraints. For a status check tool, this lack of safety disclosure is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loaded with the verb 'Fetch' and the resource. Every word is necessary and contributes to clarity. 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 description lists the data returned (status, verdict summary, fail count) but does not specify the format or structure of the response (e.g., JSON fields). Given the lack of an output schema and annotations, a brief description of the return structure would improve completeness. As is, it is adequate but has a clear 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%; the single parameter 'run_id' is well-described in the schema as 'The TestPass run id returned by testpass_run'. The tool description adds no additional meaning beyond what the schema already 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 the action (Fetch) and the resource (current status, verdict summary, fail count for a TestPass run). It distinguishes 'testpass_status' from siblings like 'testpass_run' (which initiates a run) and 'testpass_report_*' (which generate formal reports), making the tool's role 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 implies usage after a TestPass run (since it fetches status and results), but it does not explicitly state when to use this tool versus alternatives like 'testpass_report_html' or 'testpass_run'. No guidance on prerequisites or exclusions is provided, leaving the agent to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_analyseB
Analyse text (word count, sentences, readability).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as safety (read-only), required permissions, or limitations. It only states what it does, not how it 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?
Extremely concise single sentence with parenthetical detail. Front-loaded and free of 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?
The description is adequate for a low-complexity tool with one parameter and no output schema. However, it omits output format details and edge cases, so the agent may need to infer return 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 has one parameter 'text' with 0% description coverage. The description adds value by listing output metrics but does not explain parameter constraints (e.g., length, language). Baseline 3 is appropriate given the simple parameter and partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Analyse' and the resource 'text', and lists specific metrics: word count, sentences, readability. This distinguishes it from sibling tools like text_count_occurrences or text_extract_emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, nor any conditions or prerequisites. The description lacks context for tool selection among similar text siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_count_occurrencesBRead-onlyIdempotent
Count occurrences of a substring in text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| search | Yes | ||
| case_sensitive | No |
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 no further behavioral context such as default case sensitivity, handling of overlapping matches, or return format, but it does not contradict the annotations and is minimally sufficient when combined with 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 consists of a single clear sentence with no wasted words, front-loading the core action. It is appropriately sized for a simple utility 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 counting tool with three parameters and no output schema, the description leaves gaps: it doesn't specify the default for 'case_sensitive', whether overlapping occurrences are counted, or the return type. These are minor but relevant for correct invocation, so the definition is adequate but not 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 0%, so the description must compensate, but it only implies that 'text' and 'search' are inputs without explaining the 'case_sensitive' parameter or clarifying whether 'search' is literal or regex. It adds marginal meaning beyond the bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('count') and resource ('occurrences of a substring in text'), making the tool's function immediately clear. It does not explicitly differentiate from similar siblings like word_count or char_frequency, but the combination of verb and resource is distinctive enough for an agent to identify its 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?
No guidance is provided on when to use this tool versus alternatives (e.g., word_count, char_frequency, or text_analyse). There are no exclusions or contextual cues; the agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_extract_emailsC
Extract all email addresses from a text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It fails to disclose behavioral traits such as whether it returns a list or string, how it handles invalid input, or if it deduplicates email addresses. The simple 'extract' leaves too much ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence with no filler. Every word is functional and to the point. Appropriate for such a simple 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 the tool's simplicity (1 param, no output schema, no nested objects), the description lacks completeness. It does not specify the return format (e.g., JSON array of strings), whether duplicates are removed, or how edge cases like no emails are handled. The agent is left guessing.
Complex tools with many parameters or behaviors need more documentation. 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 coverage is 0%, meaning the description adds no additional meaning beyond the parameter name 'text'. The param is just a string, but no format, length, or content guidelines are provided. The description offers no compensation for the low 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 function: 'Extract all email addresses from a text.' It uses a specific verb ('extract') and resource ('email addresses'), distinguishing it well from sibling tools like text_extract_phone_numbers or text_extract_urls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or context where this extraction is appropriate vs other regex or parsing approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_extract_phone_numbersB
Extract all phone numbers from a text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions 'extract all phone numbers' but does not specify return format, handling of international formats, edge cases (e.g., no numbers), or what constitutes a phone number.
Agents need to know what a tool does to the world before calling 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 concise sentence with no wasted words. It is appropriately sized for a simple 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 extraction tool with one parameter, the description is adequate but has clear gaps. It does not mention the output structure, edge cases, or whether it handles punctuation or international formats.
Complex tools with many parameters or behaviors need more documentation. 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 add meaning. It only adds 'from a text' to clarify the 'text' parameter, which is minimal. No details on encoding, max length, or format expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Extract all phone numbers from a text.' It uses a specific verb (extract) and resource (phone numbers), distinguishing it from sibling tools like text_extract_emails and text_extract_urls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when phone numbers are needed, but provides no explicit when-to-use or when-not-to-use instructions. Sibling tools exist for other extraction tasks, but no guidance on alternatives is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_extract_urlsB
Extract all URLs from a text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose what constitutes a URL, how malformed text is handled, or any expected behavior. The minimal description does not sufficiently inform the agent of operational 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?
The description is concise with one sentence and front-loaded action. However, it is under-specific for a tool with no additional documentation, making it insufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple, but without output schema or additional details, the description should explain return values (e.g., returns list of strings). It does not, leaving the agent uncertain about the output format. Edge cases 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 0%, requiring the description to add meaning. However, the description adds no detail about the 'text' parameter beyond its name in the schema. It does not specify expected format, encoding, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (extract) and resource (all URLs from a text). It effectively distinguishes from sibling tools like text_extract_emails and text_extract_phone_numbers which operate on different patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the purpose implies usage for URL extraction, no explicit guidance is provided on when to use this tool versus alternatives. There is no mention of when not to use it or of related tools like text_extract_emails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_readabilityC
Analyze text readability with Flesch-Kincaid grade and reading ease scores.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to analyze for readability. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a pure computation (analyze) but does not state whether it is read-only, deterministic, or what the output structure looks like. Minimal behavioral context for a no-annotation 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?
A single efficient sentence with the action and the returned metrics front-loaded. No waste, though also no additional useful 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-param computation with no output schema, the description is minimally adequate: it names what is computed but omits output format and the metric scale/interpretation. Could do more given the absence of both annotations and 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% with a single required 'text' parameter that the schema already documents. The description names no syntax, format, or limitations beyond 'text', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Analyze) and resource (text readability) and names the metrics returned (Flesch-Kincaid grade and reading ease). This clearly distinguishes it from siblings like readability_score or wordfreq_analyse, though a sibling readability_score exists with no stated 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?
No guidance on when to use this versus alternatives. Notably a sibling named readability_score exists, and the description does nothing to route the agent between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_slugifyC
Convert text into a URL-safe slug.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to slugify. | |
| separator | No | Separator character (default -). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies the output is URL-safe and (via the separator parameter) hyphen-joined, but it does not disclose how non-ASCII characters, casing, punctuation, or duplicate separators are handled, nor whether the operation is pure and deterministic.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is appropriately short for a simple utility, though it is arguably too terse to earn a 5 given the missing behavioral 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 two-parameter pure-text utility with no output schema and no annotations, a one-line description is close to adequate, but the slug-transformation rules and separator semantics are unstated and would matter 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 both parameters are already documented in the schema, giving a baseline of 3. The description adds nothing about the separator parameter (default '-', valid characters, behavior on multi-char separators), so it does not exceed 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 (Convert) and resource (text) plus the output form (URL-safe slug), so the operation is unambiguous. It does not, however, differentiate itself from the many neighboring text utilities (text_transform, string_case, text_truncate), leaving an agent to infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this rather than a general text transformer or case converter, and no mention of alternatives or conditions. The description is purely definitional with no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_transformB
Transform text (uppercase, lowercase, title case, slug, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| transform | Yes | uppercase, lowercase, titlecase, slug, reverse, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose side effects, auth needs, or return format. 'Transform' implies modification but lacks details on output structure or safety.
Agents need to know what a tool does to the 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 with no unnecessary words. Front-loaded with key action and examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description does not specify what is returned (transformed text). With 2 simple parameters, some return context would help. Error cases not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%; description adds examples of transform values (uppercase, lowercase, etc.), partially compensating. However, it does not explain the 'text' parameter beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (transform) and resource (text), with examples of transformations like uppercase, lowercase, title case, slug. It distinguishes from sibling text tools (e.g., text_analyse, text_extract_emails) by focusing on format conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like text_truncate or text_count_occurrences. No context on prerequisites or scenarios where a specific transform is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_truncateC
Truncate text to a maximum length.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| suffix | No | ||
| max_length | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral transparency burden. It only states truncation to max length, omitting details on how truncation occurs (e.g., character vs word level), behavior with optional suffix, or what happens when text is shorter than max_length.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short sentence), but it is under-specified. It is not backed with essential details about optional parameters or behavior, so it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description should provide more context. It fails to describe the optional suffix parameter, return value, or edge cases, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, so the description must compensate. However, it does not explain any parameter meanings (text, max_length, suffix). It adds no value beyond the schema's parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: truncating text to a maximum length. It uses a specific verb ('Truncate') and resource ('text'), and distinguishes from sibling text tools like text_analyse and text_extract_emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. There is no mention of use cases, prerequisites, or scenarios where other tools might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_wrapB
Hard-wrap text to a specified column width.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to wrap. | |
| width | No | Column width (10-200, default 80). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The word 'hard-wrap' usefully signals that real line breaks are inserted (as opposed to visual/soft wrapping), but the description does not state the return form, whether wrapping occurs on word boundaries, or what happens to whitespace, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the core action front-loaded and zero filler. It is efficient, though the brevity borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure utility with a fully documented two-parameter schema and no output schema, this is minimally adequate. However, it omits edge behavior (word-boundary handling, handling of text already shorter than width) that an agent might need to predict output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'text' and 'width' (including the 10-200 range and default 80) are already documented in the schema. The description repeats the width concept as 'specified column width' but adds no format, boundary, or default information beyond the structured 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 names a specific verb ('hard-wrap') and resource ('text') along with its scope ('specified column width'). 'Hard-wrap' is a precise term distinguishing it from soft wrapping, but it does not differentiate itself from nearby siblings such as text_truncate, text_transform, or sort_lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of prerequisites, and no reference to any alternative sibling tool. The agent must infer applicability purely from the tool name and one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tfidf_calculateBRead-onlyIdempotent
Calculate TF-IDF scores to rank documents by relevance to a query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query. | |
| documents | Yes | Array of document strings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that: it says nothing about whether scores are normalized, whether results are sorted, whether zero-relevance documents are omitted, or how ties are handled — all things an agent needs to interpret the returned ranking.
Agents need to know what a tool does to the 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 with zero filler, front-loaded with the verb and resource. Nothing is redundant and there is no padding to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure computation with full annotation coverage this is close to adequate, but with no output schema the description should at least sketch the return shape (e.g., per-document scores vs. a sorted ranking), which it does not. The agent can call it, but cannot anticipate 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% and both parameters ('query', 'documents') are documented in the schema, so the schema carries the semantics. The description adds no extra meaning such as corpus size expectations, tokenization behavior, or whether documents are treated as pre-tokenized.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Calculate TF-IDF scores') plus the outcome ('rank documents by relevance to a query'), which is far more informative than a name restatement. It does not name nearby siblings such as cosinesim_compare or jaccard_similarity, so an agent still has to infer that this is the lexical-weighting option rather than a similarity metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 rank documents by relevance to a query' implies the use case (search/ranking over a small in-memory corpus), but there is no explicit when-to-use, when-not-to-use, or referral to an alternative. Usage is inferable, not instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thecolorapi_idB
Get detailed color information (name, RGB, HSL, CMYK) for a hex color.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex color code (e.g. FF5733 or #FF5733). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but this is a simple read-only lookup with a low behavioral burden. The description helpfully enumerates the returned representations (name, RGB, HSL, CMYK), yet it never explicitly states that the operation is a non-mutating read, so it does not fully carry the disclosure load on its own.
Agents need to know what a tool does to the 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-formed sentence with the resource and returned fields front-loaded and zero filler. 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 one-parameter read-only lookup with full schema coverage and no output schema, the description is essentially complete: it names the input and lists the return fields. The only gap is the absence of sibling routing, which is minor 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 description coverage is 100% and the single 'hex' parameter is fully documented with examples in the schema. The description only restates 'for a hex color' without adding format or validation detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('color information'), and the exact fields returned (name, RGB, HSL, CMYK) scoped to a hex input. However, it never differentiates itself from close siblings such as color_info, color_hex_convert, or thecolorapi_scheme, so an agent cannot easily route between them from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives. The phrase 'for a hex color' only weakly implies the input context, leaving the agent to infer when this tool is preferable to the many other color tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thecolorapi_schemeB
Generate a color scheme from a seed hex color.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Seed hex color (e.g. FF5733). | |
| mode | No | Scheme mode: monochrome, analogic, complement, triad, quad (default: analogic). | |
| count | No | Number of colors (default 5, max 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose read-only nature, determinism, auth/rate limits, or return format; it only states that a scheme is generated.
Agents need to know what a tool does to the 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 with the verb and resource front-loaded and no wasted words. It is appropriately sized for its minimal 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 generation tool, the schema covers all parameters, but with no annotations or output schema the description omits return format and mode behavior. It is minimally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple 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 detailed descriptions for hex, mode, and count. The description mentions the seed hex but adds no mode/count semantics beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Generate') and resource ('color scheme') plus the seed input, distinguishing it from random palette tools. It does not name or differentiate from siblings such as colormind_generate_palette or color_palette beyond the seed-hex 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?
Provides no when-to-use guidance, prerequisites, or alternatives. The agent must infer that this is for seed-based scheme generation rather than other color/palette tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_api_current_by_zoneBRead-onlyIdempotent
Get the current date and time for an IANA timezone via timeapi.io.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | IANA timezone name (default: UTC). E.g. America/New_York. |
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 fully covered. The description adds only the upstream provider name (timeapi.io), which duplicates the openWorldHint already present and says nothing about freshness, failure modes, or what is 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?
One short sentence with the action and the resource front-loaded and zero filler. 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 one-parameter read there is no output schema and the description does not indicate the shape of the returned time (ISO string? offset? zone abbreviation?), which is the only remaining thing an agent could need. Adequate but with a clear 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 the single parameter is fully documented in the schema including the IANA format, default of UTC and an example. The description's mention of 'IANA timezone' restates the schema rather than adding format or edge-case detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get the current date and time) and scopes it to an IANA timezone, which is clear in isolation. However, the sibling list contains worldtime_by_timezone, datetime_current_time, epoch_now and timezone_info, and the description does nothing to distinguish this tool from 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?
There is no guidance on when to choose this over worldtime_by_timezone or datetime_current_time, no mention of prerequisites or exclusions. The agent must infer usage 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.
time_api_timezonesB
List all available IANA timezone names from timeapi.io.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state whether the list is paginated, how large the response is, whether results are cached, or anything about the return payload. For a list endpoint with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word earns its place and the purpose is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no-param list tool with no output schema and no annotations, the description covers the basic what but omits the source-of-truth details, return shape, and how it relates to the many timezone-related siblings in the toolset.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, which by rule gives a baseline of 4. There are no parameter semantics to document, and the description correctly implies a no-input listing operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (IANA timezone names) plus the source (timeapi.io). It is clear what the tool does, though it does not distinguish itself from siblings like worldtime_list_timezones or timezone_info that appear to offer similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Siblings such as worldtime_list_timezones and timezone_info exist and likely overlap, but the description does not state when this one is preferred or what makes it distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timezone_infoARead-onlyIdempotent
Look up timezone offset and details by abbreviation, or list all timezones.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | Timezone abbreviation (e.g. EST, AEST). Omit to list all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, open-world, and non-destructive, so the safety profile is covered. The description adds the two-mode behavior and the omit-to-list convention, but does not explain what 'details' include or any other behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that covers both lookup and list modes without unnecessary words. Every clause contributes to understanding the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full annotation coverage and complete schema documentation, the description is largely sufficient: it explains both invocation modes and the optional parameter. The only minor gap is that 'details' is vague and there is no output schema to clarify the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter is fully documented with examples and the omit-to-list-all behavior. The description repeats that same information rather than adding new 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 verb and resource: look up timezone offset/details by abbreviation, or list all timezones. It clearly distinguishes the tool's two operating modes, but does not differentiate it from close siblings such as worldtime_by_timezone, worldtime_list_timezones, or time_api_timezones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'Omit to list all' gives a useful condition for the no-argument mode, but the description provides no explicit guidance on when to choose this tool over the many sibling timezone tools. Usage is implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_movieC
Get details for a TMDB movie by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like authentication requirements (api_key is optional but not mentioned) or error handling. It does not, leaving the agent uninformed about potential side effects or expected 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 very concise (one sentence) but may be under-specified. It is front-loaded but lacks detail; however, it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 absence of output schema and parameter descriptions, the description is incomplete. It does not convey what the returned details include, whether an API key is required, or how to interpret the ID parameter in the broader TMDB 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 0%, and the description adds no meaning to the parameters. It mentions 'by ID' but does not explain what the 'id' field represents or the purpose of 'api_key'. This is a critical 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 clearly states the verb 'Get details' and the resource 'a TMDB movie by ID', which is specific and distinguishes it from sibling tools like tmdb_search_movies. However, it could be more precise about what details are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool vs alternatives such as tmdb_search_movies or tmdb_now_playing. The description lacks any context about prerequisites or suitable scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_now_playingC
Get movies currently in theaters from TMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It fails to mention pagination, rate limits, authentication requirements, or the format of returned data (e.g., list of movie objects). The minimal statement provides almost no 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 sentence with no extraneous words. It is concise and straight to the point, though it could benefit from a bit more detail without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two parameters and no output schema, the description is incomplete. It omits details about the result structure, pagination behavior, and whether api_key is required. A complete description would address these 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 description coverage is 0%, meaning no parameter descriptions exist in the schema. The description adds no meaning to the parameters 'page' and 'api_key', leaving the agent unaware of their purpose or constraints (e.g., api_key likely required but not indicated).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get movies currently in theaters from TMDB.' It uses a specific verb ('Get') and a distinct resource ('movies currently in theaters'), which distinguishes it from sibling TMDB tools like tmdb_search_movies or tmdb_trending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives. No mention of use cases, prerequisites, or exclusions. For example, it does not indicate that searching movies by query should use tmdb_search_movies instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_popular_tvC
Get popular TV shows from TMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states 'Get popular TV shows', failing to mention pagination (despite a `page` parameter), rate limits, or the meaning of 'popular'. The return format is also unspecified.
Agents need to know what a tool does to the world before calling 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 short sentence with no waste, but given the tool's complexity (2 parameters, many siblings), it is too minimal to be effective. It lacks necessary front-loaded context about pagination or alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should explain return values or pagination. It does not. Combined with low parameter documentation and no usage guidelines, the description is incomplete for correct tool 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?
Schema description coverage is 0%, and the description does not mention either parameter (`page`, `api_key`). The agent receives no guidance on purpose or constraints of these inputs, leaving them entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get'), resource ('popular TV shows'), and source ('from TMDB'). Among sibling tools, it distinctly contrasts with `tmdb_search_tv`, `tmdb_tv`, and `tmdb_trending`, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With multiple TMDB TV-related siblings, the lack of usage context (e.g., 'for a list of trending shows use tmdb_trending') makes it harder for the agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_search_moviesCRead-onlyIdempotent
Search for movies on TMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| year | No | ||
| query | Yes | ||
| api_key | No |
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 nothing beyond that, such as pagination behavior, API key requirements, rate limits, or result formatting.
Agents need to know what a tool does to the world before calling 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 wasted words. It is efficient, though its extreme brevity contributes to gaps in guidance and parameter semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four parameters at 0% schema coverage and no output schema, the description is too thin. It omits API key handling, pagination via page, year filtering, and any indication of what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for four undocumented parameters. The word 'search' only loosely implies the query parameter, while page, year, and api_key receive no explanation at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('movies on TMDB'), making the basic purpose clear. It implicitly distinguishes itself from tmdb_search_tv by naming movies, but does not explicitly name any sibling or clarify scope boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. An agent gets no signal about whether to use tmdb_movie for details, tmdb_trending for popular titles, or tmdb_search_tv for TV searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_search_tvCRead-onlyIdempotent
Search for TV shows on TMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | Yes | ||
| api_key | No |
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 nothing beyond that — no note on result volume, pagination, or the fact that authentication is supplied via a parameter.
Agents need to know what a tool does to the 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 with no filler, but it is terse to the point of under-specification rather than genuinely efficient — there is room to add pagination or auth context without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, three parameters are undocumented, and the unusual api_key parameter suggests an auth requirement that is never stated. For a tool an agent must actually call successfully, this leaves too much unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description carries the full burden and fails: it never mentions that 'query' is the search term, that 'page' controls pagination, or that 'api_key' is an auth credential. Only the search-term role is loosely implied by the word 'Search'.
Input schemas describe structure but not intent. Descriptions should explain 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 ('TV shows') plus the data source (TMDB), which distinguishes it from tmdb_search_movies and other siblings by media type. It does not, however, clarify the boundary with tmdb_tv (detail lookup) or tvmaze_search (alternate TV provider).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus tmdb_tv, tmdb_popular_tv, or tvmaze_search, and no mention of prerequisites such as an API key. The agent must infer everything 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.
tmdb_trendingCRead-onlyIdempotent
Get trending movies or TV shows on TMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| media_type | No | movie, tv, or all | |
| time_window | No | day or week |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing beyond a basic fetch: no rate limits, no note that results are a ranked list, no default behavior when time_window is omitted.
Agents need to know what a tool does to the 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 short, front-loaded sentence with zero waste. It is efficient but under-specified for the routing ambiguity it leaves unresolved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, three parameters, none required — yet the description never says what is returned (ranked list? paginated?), what the default media_type/time_window is, or how results differ from tmdb_popular_tv. Too thin for a tool sitting in a dense cluster of TMDB 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 coverage is 67% and the two documented enums just restate allowed values ('movie, tv, or all', 'day or week'). The description mentions only movies/TV, silently omitting the 'all' option, and says nothing about defaults (which time_window applies if omitted) or api_key handling.
Input schemas describe structure but not intent. Descriptions should explain 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 trending movies/TV on TMDB), so the agent knows the operation. But it never distinguishes itself from sibling trending/popular tools like tmdb_popular_tv, tmdb_now_playing, tmdb_upcoming, or tmdb_search_movies/tmdb_search_tv.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to choose this over the many nearby TMDB siblings (popular, now_playing, upcoming, search). The only implied usage is 'trending', which the name already carries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_tvB
Get details for a TMDB TV show by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, but it only states 'Get details' without disclosing any behavioral traits like authentication requirements, rate limits, or the nature of the return details. The optional api_key parameter is 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 of 8 words, front-loaded with the main action. It is appropriately concise with 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 get-by-ID tool with 2 parameters and no output schema, the description is adequate but lacks details on what 'details' are returned. It assumes prior knowledge of TMDB. Slight gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters. The 'id' parameter is not clarified as a TMDB TV show ID, and 'api_key' is not explained. The description adds no 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 provides a specific verb ('Get'), a clear resource ('TMDB TV show'), and the input method ('by ID'). This clearly distinguishes it from sibling tools like tmdb_search_tv (search) and tmdb_movie (movie 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?
No guidance on when to use this tool versus alternatives such as tmdb_search_tv or tmdb_now_playing. The description lacks context for selection, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmdb_upcomingC
Get upcoming movies from TMDB.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, pagination behavior, or output format. The agent learns nothing beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence with no extra words. However, it could include a brief parameter hint without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of annotations, output schema, and parameter documentation, the description is insufficient. It does not explain what the tool returns, pagination, or authentication needs.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage, the description should clarify the purpose of 'page' and 'api_key' parameters. It does not, leaving the agent without meaningful context for using these 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 states the verb 'Get' and the resource 'upcoming movies' from TMDB. It is specific and distinct from sibling tools like tmdb_now_playing or tmdb_search_movies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. The user must infer based on the name and sibling tool names, but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tm_get_eventCRead-onlyIdempotent
Get details for a specific Ticketmaster event.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing beyond that: it doesn't mention the api_key requirement, error behavior for unknown IDs, or rate limits on the live Ticketmaster API.
Agents need to know what a tool does to the 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 short, front-loaded sentence with no padding. Its brevity is appropriate, though it leaves little room for the missing guidance, which is penalized elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% parameter documentation, and no annotations explaining return values, the description must carry the load and doesn't. It says nothing about what fields come back (dates, venues, price ranges) or how to supply the API key.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema gives only names and types. The description implies 'id' identifies an event but does not say where that ID comes from (presumably a search result), and the required-looking 'api_key' parameter is never mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain 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 verb+resource combination ('Get details for a specific Ticketmaster event') and the tm_ prefix makes it plainly distinct from tm_search_events and tm_search_venues. It stops short of naming siblings explicitly, but the single-resource lookup 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 word 'specific' hints that this is an ID lookup rather than a search, but there is no statement of when to use it versus tm_search_events or what to do when you lack an ID. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tm_get_venueCRead-onlyIdempotent
Get details for a specific Ticketmaster venue.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
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 nothing beyond them – no mention of authentication requirements despite the api_key parameter, no rate-limit or openWorld request-cost context, no indication of error behavior for an unknown venue ID.
Agents need to know what a tool does to the 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 tight sentence with no filler, and the resource is front-loaded. It is concise to the point of under-specification, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world HTTP lookup with two completely undocumented parameters and no output schema, the description should at minimum cover ID format and the api_key parameter. As written, the agent has to infer nearly all calling details from the schema's bare types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters are undocumented in the schema. The description only hints that 'id' identifies a venue ('specific venue'); it says nothing about the ID format or about the api_key parameter's purpose and whether it is required or optional, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get') and resource ('details for a specific Ticketmaster venue'), so the agent knows it's an ID-based single-resource lookup. It doesn't explicitly contrast with the sibling tm_search_venues, though the word 'specific' implies a known identifier rather than a query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus tm_search_venues, seatgeek_get_venue, or eventbrite_get_venue. The only implied guidance is that a single specific venue is being fetched, which the agent must infer from the noun phrase rather than any explicit instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tm_search_attractionsCRead-onlyIdempotent
Search for attractions/artists on Ticketmaster.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| keyword | No | ||
| classificationName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, and the description adds nothing on top of them—no mention of pagination, result limits, what an 'attraction' record contains, or the required api_key.
Agents need to know what a tool does to the 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 with no filler; it is not padded, but its brevity comes at the cost of specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three undocumented parameters, no output schema, and a crowded sibling set of Ticketmaster/SeatGeek tools, the definition leaves too much for the agent to guess about filtering behavior and return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the meaning of all three parameters, yet it explains none. 'keyword' and 'classificationName' are never distinguished (e.g., free-text search vs. category filter), and the api_key requirement is unmentioned.
Input schemas describe structure but not intent. Descriptions should explain 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 (attractions/artists on Ticketmaster), and the parenthetical 'attractions/artists' clarifies an ambiguous domain term. It does not, however, distinguish this from sibling tools like tm_search_events or tm_search_venues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus tm_search_events, tm_get_event, tm_search_venues, or the SeatGeek performer search. The agent must infer from the name alone that this searches performers rather than events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tm_search_eventsCRead-onlyIdempotent
Search for events on Ticketmaster.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| size | No | ||
| api_key | No | ||
| keyword | No | ||
| countryCode | No | ||
| startDateTime | No | ||
| classificationName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only the API source ('Ticketmaster') and does not disclose any behavior beyond annotations, such as the need for an api_key, pagination behavior, rate limits, or what the results contain. With annotations carrying the burden, this is a minimal contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It is front-loaded and has no wasted words, but for a tool with seven undocumented parameters and many alternatives, a single six-word sentence does not earn its place as an adequate 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?
Given the tool's complexity (seven parameters, zero schema descriptions, no output schema), the description is wholly inadequate. It says nothing about parameters, authentication, result shape, or how this differs from the numerous other event-search tools, leaving the agent without the information needed 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 has seven parameters with 0% description coverage, and the description mentions none of them. Parameters such as api_key, size, startDateTime, and classificationName are completely undocumented, so the agent gets no semantic guidance for any input 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?
The description gives a clear verb+resource ('Search for events') and names the source ('on Ticketmaster'), so the purpose is immediately understandable. However, it does not distinguish this tool from sibling event search tools such as seatgeek_search_events, eventbrite_search_events, or yelp_search_events, leaving the agent to infer differentiation from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its many sibling event-search tools, nor any mention of prerequisites, typical use cases, or exclusions. The only implied usage is that it searches events, which is already obvious from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tm_search_venuesCRead-onlyIdempotent
Search for venues on Ticketmaster.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| keyword | No | ||
| stateCode | No | ||
| countryCode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behaviour, so safety is covered. The description adds nothing beyond that: no mention of pagination, result caps, ranking, empty-result behaviour, or that an api_key parameter suggests credentialed access. With annotations doing the disclosure work, this is a thin add-on rather than a 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?
A single front-loaded sentence with no filler, which is structurally clean. However, the brevity is under-specification rather than efficiency — the one sentence carries almost no decision-relevant information for a four-parameter search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search endpoint with four optional parameters, zero schema descriptions and no output schema, the definition should say what can be filtered, what results look like at a high level, and whether paging exists. None of that is present, so an agent must guess at both filtering semantics and return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only place semantics could be explained, and it explains none of the four parameters. 'Search' loosely implies keyword usage, but stateCode/countryCode formats (codes vs names), whether they combine as AND filters, and the role of api_key are all undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 for venues') scoped to a named provider ('on Ticketmaster'), which is clear enough to act on. It does not differentiate from near neighbours such as tm_get_venue (single venue details) or seatgeek_search_venues / venue searches from other providers, leaving sibling selection to inference from names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives: nothing says to call this to find a venue ID before tm_get_venue, or how it differs from tm_search_events or seatgeek_search_venues. The only implied usage is 'searching', which the agent already infers from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
todoist_complete_taskB
Complete (close) a Todoist task by id.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task id to close | |
| api_token | Yes | Todoist API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. 'Complete (close)' implies a mutation, but there is no disclosure about permissions, idempotency, what happens if the task is already completed, or whether the action is reversible.
Agents need to know what a tool does to the world before calling 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 wasted words. It is appropriately sized for the tool's simple purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high schema coverage, the description is minimally sufficient to call the tool. However, with no annotations and no output schema, it leaves behavioral gaps around authentication, side effects, and result handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 documents both api_token and task_id. The description repeats the task_id usage ('by id') but adds no format, validation, or additional 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 ('Complete (close)'), resource ('Todoist task'), and lookup key ('by id'). This clearly differentiates it from list/create siblings by action, though it does not explicitly name any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 update_todo, delete_todo, or other Todoist task operations. The intended use is only implied by the verb 'Complete'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
todoist_create_taskC
Create a Todoist task.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The task text | |
| priority | No | Priority 1 (normal) to 4 (urgent) | |
| api_token | Yes | Todoist API token | |
| due_string | No | Natural-language due date (e.g. 'tomorrow 5pm') | |
| project_id | No | Project id to add the task to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it says nothing beyond 'create'. It does not disclose whether the task is immediately persisted, what happens with duplicate content, what permissions the api_token needs, or what the call returns. For a mutation tool with zero annotation coverage this is a significant 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?
A single short, front-loaded sentence with no wasted words. It is efficient, though the brevity reflects under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should at minimum say what is returned or confirm persistence and auth expectations. None of that is present, leaving the agent reliant entirely on the parameter 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 all five parameters (content, priority, api_token, due_string, project_id) are already documented with examples in the schema. The description adds no syntax or format detail beyond that, so the 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 (Create) and resource (Todoist task), which is unambiguous about the operation. However, it offers no differentiation from adjacent tools such as create_todo, create_asana_task, or the other todoist_* siblings, so the agent must infer boundaries from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives like create_todo or create_asana_task, nor any prerequisites such as needing a valid api_token or project context. The description merely names the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
todoist_list_projectsCRead-onlyIdempotent
List your Todoist projects.
| Name | Required | Description | Default |
|---|---|---|---|
| api_token | Yes | Todoist API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is clear. The description adds no behavioral context such as pagination behavior, rate limits, or what the listing includes, so it contributes nothing 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 a single short sentence with no wasted words. However, it is arguably too terse and under-informative rather than optimally 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 simple one-parameter listing tool with annotations covering safety, the description is minimally adequate. But with no output schema, it could have explained what the list returns or how projects are ordered, leaving a clear 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?
There is only one parameter (api_token) and the schema description coverage is 100%, so the schema already documents it. The description adds no parameter-specific meaning, which matches the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a specific verb ('List') and resource ('Todoist projects'), but it essentially restates the tool name without elaborating on scope, filtering, or how it differs from todoist_list_tasks. An agent can infer the purpose, but the description adds little beyond the 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?
There is no guidance on when to use this tool versus alternatives such as todoist_list_tasks or other listing tools. It also omits prerequisites like authentication, though api_token is required in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
todoist_list_tasksBRead-onlyIdempotent
List active Todoist tasks, optionally by project or filter.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Todoist filter query (e.g. 'today', 'overdue') | |
| api_token | Yes | Todoist API token | |
| project_id | No | Limit to one project 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 safety is covered structurally. The description adds one real behavioral detail — only 'active' tasks are returned, so completed ones are excluded — but omits pagination, result limits, and ordering.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with the optional scoping clause trailing. No wasted text, though it is arguably thin for the tool's surface area.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage, annotations, and no output schema, the definition covers the essentials. It is still silent on result volume, pagination, and ordering, which an agent would want to know before relying on the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 filter, project_id, and api_token all documented in the schema, so the baseline of 3 applies. The description reinforces project/filter narrowing but adds no format or syntax 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 ('List') and resource ('active Todoist tasks') with a clear scope qualifier ('active'), which distinguishes it from todoist_create_task and todoist_complete_task. It does not explicitly contrast with todoist_list_projects, but the resource noun differs enough to be 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 phrase 'optionally by project or filter' implies how to narrow results, but there is no explicit statement of when to use this tool versus alternatives or when a filter is preferable to a project_id. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
togetherai_chat_completionA
Run a chat completion with any Together AI model. Supports Llama, Mistral, Qwen, and 100+ open-source models.
| Name | Required | Description | Default |
|---|---|---|---|
| stop | No | Stop sequences | |
| model | Yes | Model ID (e.g. meta-llama/Llama-3-8b-chat-hf). Use togetherai_list_models to browse. | |
| top_k | No | Top-k sampling | |
| top_p | No | Top-p nucleus sampling | |
| api_key | Yes | Together AI API key | |
| messages | Yes | Array of {role, content} message objects | |
| max_tokens | No | Maximum tokens to generate | |
| temperature | No | Sampling temperature 0-2 (default 0.7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It correctly indicates a generative text operation but does not disclose any behavioral traits like idempotency, rate limits, or that it does not modify existing 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?
Extremely concise: two sentences with no fluff. All information is front-loaded and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should mention return format (e.g., completion response). It does not. However, for a standard API call, the behavior is somewhat 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 coverage is 100%, so baseline is 3. Description adds value by mentioning supported model families for the 'model' parameter, but other parameters (max_tokens, temperature, etc.) are not elaborated 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 clearly states it runs chat completions with Together AI, lists specific models (Llama, Mistral, Qwen) and mentions 100+ open-source models. Distinguishes from sibling tools like togetherai_completion and other providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool vs alternatives like openai_chat_completion or anthropic_create_message. Only implies it's for chat completions with Together AI models.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
togetherai_completionB
Run a text completion with any Together AI model.
| Name | Required | Description | Default |
|---|---|---|---|
| stop | No | Stop sequences | |
| model | No | Model ID (e.g. mistralai/Mistral-7B-v0.1) | |
| top_k | No | Top-k sampling | |
| top_p | No | Top-p nucleus sampling | |
| prompt | Yes | Text prompt to complete | |
| api_key | Yes | Together AI API key | |
| max_tokens | No | Maximum tokens to generate | |
| temperature | No | Sampling temperature 0-2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits, but it only states the basic function. It does not mention authentication requirements beyond the api_key parameter, rate limits, output format, or any potential side effects. For a tool that makes API calls, this is insufficient.
Agents need to know what a tool does to the world before calling 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, concise sentence with no wasted words. It is front-loaded with the core action and resource. However, it could benefit from additional detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description should provide more context about usage and expected return values. It fails to clarify what the completion output looks like or how to handle the response. The description is too brief for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 no additional meaning beyond what is already in the input schema. It does not explain the role of required parameters like api_key or prompt, but the schema already provides those 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 clearly states the action (run), the resource (text completion), and the scope (any Together AI model). It effectively distinguishes itself from sibling tools like togetherai_chat_completion by specifying 'text completion' rather than 'chat completion'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives like togetherai_chat_completion, togetherai_create_embedding, or togetherai_list_models. The description lacks context for selecting the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
togetherai_create_embeddingB
Create text embeddings using a Together AI embedding model.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text string or array of strings to embed | |
| model | No | Embedding model ID (e.g. togethercomputer/m2-bert-80M-8k-retrieval) | |
| api_key | Yes | Together AI API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the basic action. There is no mention of permissions, rate limits, input size limits, or whether the operation is read-only or creates side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 10 words, efficient and front-loaded with the purpose. However, it could be slightly more detailed without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of output schema and annotations, the description should compensate with context about return values, input constraints, or batch support. It does not, leaving significant 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 parameter descriptions. The tool description adds no extra meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), resource ('text embeddings'), and provider ('Together AI embedding model'). It is specific and distinguishes from sibling embedding tools like openai_create_embedding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives (e.g., other embedding models), nor are there any exclusions or use-case recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
togetherai_list_modelsARead-onlyIdempotent
List all available models on Together AI including chat, completion, embedding, and image models.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Together AI API key |
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 fully covered elsewhere. The description's only added value is the note that the result spans multiple model categories, which is mildly useful, but nothing is said about pagination, result size, or whether the catalog is live or cached.
Agents need to know what a tool does to the 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 sentence, front-loaded with the verb and resource, with the model-category enumeration as a compact qualifier. No filler, no 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 one-parameter read tool with no output schema, the description leaves the agent guessing about what a returned model entry looks like (ID, context length, pricing) and whether the list is filtered by the key's entitlements. Adequate but thin given nothing else describes the 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?
There is a single parameter, api_key, and the schema already describes it at 100% coverage. The description says nothing about the API key, so it neither adds nor detracts from the schema — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-and-resource pair ('List all available models on Together AI') and enumerates what the inventory covers (chat, completion, embedding, image). That is enough to separate it from siblings like togetherai_chat_completion, though the distinction from other provider list-models tools rests on the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case (discovering which model IDs exist before calling a generation endpoint) is implied but never stated, and there is no explicit when-not or alternative guidance. No mention of the sibling togetherai_chat_completion / togetherai_create_embedding flow it presumably feeds into.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_create_time_entryC
Create a new Toggl time entry.
| Name | Required | Description | Default |
|---|---|---|---|
| stop | No | ||
| start | Yes | ||
| api_key | No | ||
| project_id | No | ||
| description | No | ||
| workspace_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description's mention of 'Create' implies mutation, but it fails to disclose important behaviors such as whether entries can be updated, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but at the expense of necessary detail. It achieves the minimum viable structure for a simple 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?
Given the tool has 6 parameters, 2 required, no output schema, and no annotations, the description is severely incomplete. It does not explain how to use parameters like start/stop format or api_key requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no parameter descriptions in schema), and the tool description adds no meaning for any of the 6 parameters, leaving their purpose and format entirely unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and the resource ('new Toggl time entry'), distinguishing it from sibling tools like toggl_time_entries (list) and toggl_summary (aggregation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or contextual cues like needing an API key or workspace ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_projectsCRead-onlyIdempotent
Get Toggl projects for a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| workspace_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so safety is covered without the description. Beyond that the description adds only the workspace scoping; it says nothing about pagination, whether archived projects are included, filtering options, or the shape of results, which is thin for an open-world list 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?
A single short sentence with the resource and scope front-loaded and no filler. It is efficient, though its brevity comes at the cost of the missing usage and behavioral detail noted above.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema, the description should at minimum indicate what is returned and whether results are paginated or include archived projects. Neither is present, and with 0% parameter documentation the definition is not sufficient on its own to invoke reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not. It implies workspace_id selects the workspace but says nothing about the api_key parameter or authentication expectations, leaving half the parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 plus scope ('Get Toggl projects for a workspace'), so an agent knows exactly what it retrieves. It does not distinguish itself from Toggl siblings (toggl_time_entries, toggl_summary, toggl_create_time_entry), though the resource noun makes confusion unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus the other Toggl tools, no prerequisites, and no note about what the workspace_id must refer to. The only usage signal is the implicit 'list projects' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_summaryCRead-onlyIdempotent
Get a Toggl time summary report.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | ||
| until | No | ||
| api_key | No | ||
| workspace_id | Yes |
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 clear. The description adds that it returns a 'summary report', implying aggregated data, but does not disclose what the report contains, its granularity, or any response format 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, short sentence with no wasted words. It is front-loaded and appropriately sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, no output schema, and 0% schema coverage, the description is far too minimal to be complete. It lacks parameter explanations, usage context, and details about the summary report, though annotations partially cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about any of the four parameters (since, until, api_key, workspace_id). It does not compensate for the lack of schema documentation, leaving parameter meanings ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ('Toggl time summary report'), making the core purpose clear. However, it does not distinguish this tool from siblings like toggl_time_entries or toggl_projects, so an agent could confuse it with those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor any mention of prerequisites or appropriate contexts. The description only states what it does, not when it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_time_entriesCRead-onlyIdempotent
Get Toggl time entries.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| end_date | No | ||
| start_date | No |
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 nothing beyond that — no note on pagination, default date range, timezone handling, or result volume, all of which matter for a date-ranged list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, but its brevity reflects under-specification rather than disciplined editing; the front-loaded verb+resource is at least correctly placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations about return shape, and three wholly undocumented parameters, the description is far too thin to let an agent call this correctly without guessing at date formats and 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?
Schema description coverage is 0% for all three parameters. The description does not clarify the date format expected for start_date/end_date, whether the range is inclusive, behavior when omitted, or what api_key should be — leaving every parameter ambiguous.
Input schemas describe structure but not intent. Descriptions should explain 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 verb (Get) and a resource (Toggl time entries), so the purpose is identifiable, but it is a bare restatement with no scope detail and no differentiation from sibling tools like toggl_summary or toggl_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus toggl_summary (aggregates), toggl_projects (project metadata), or toggl_create_time_entry. The agent must infer the choice entirely from the tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tokencount_estimateARead-onlyIdempotent
Estimate token counts for text across different LLM tokenizers (GPT-4, Claude, WordPiece).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to estimate tokens for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds useful context that results are estimates spanning multiple tokenizer families, which clarifies no per-call tokenizer selection is needed, but says nothing about result shape or accuracy 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?
One front-loaded sentence with the key information — estimate, token counts, multi-tokenizer scope — and zero 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?
Adequate for a simple read-only utility whose annotations and full schema coverage carry most of the load. What remains missing is whether the response contains one count per tokenizer or an aggregate, which matters when deciding whether to call it once or many times.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'text' parameter, so the schema does the heavy lifting and the baseline is 3. The description doesn't elaborate on input constraints such as text length limits, and pair the tokenizer list with the absence of a tokenizer parameter only implicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb (Estimate) plus resource (token counts) and scope (across GPT-4, Claude, WordPiece tokenizers). It is clearly distinct from near-neighbours like word_count or text_analyse, though it never names those alternatives to reinforce 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 use case is implied by the name and description — reach for this when you need LLM token counts rather than character or word counts — but there is no explicit when-to-use or when-not statement, and no guidance on related text tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tomorrow_forecastCRead-onlyIdempotent
Get a weather forecast from Tomorrow.io.
| Name | Required | Description | Default |
|---|---|---|---|
| units | No | ||
| api_key | No | ||
| location | Yes | ||
| timesteps | No | 1h or 1d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing on top: it doesn't mention that an api_key is required, whether calls are metered/rate-limited, or what horizon the forecast covers. With annotation coverage this becomes a minor gap, but the description contributes zero 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?
One short, front-loaded sentence with no wasted words, which is structurally clean. But the brevity here is under-specification rather than efficiency — the size reflects missing information, not discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 4-parameter, open-world external API call with no output schema and 25% schema coverage needs the description to explain inputs, units, and return shape. The single sentence leaves an agent unable to construct a correct call without guessing at location format and units.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 25% — only 'timesteps' has a description, and that merely restates the enum ('1h or 1d'). The description does not explain the location format (city name, lat/lon, or ID), the accepted values for 'units', or that 'api_key' is a credential the caller may need to supply. With low coverage, the description was expected to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb and resource ('Get a weather forecast') plus the provider name ('Tomorrow.io') tell the agent what the tool returns and which API backs it. It does not, however, distinguish forecast from the many weather siblings (weather_forecast, weather_hourly, tomorrow_history, tomorrow_realtime, marine_forecast), so the agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this instead of weather_forecast, weather_hourly, tomorrow_realtime or tomorrow_history. The agent gets no exclusions, no prerequisites, and no hint about what inputs produce a useful forecast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tomorrow_historyCRead-onlyIdempotent
Get historical weather data from Tomorrow.io.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| endTime | Yes | ||
| location | Yes | ||
| startTime | Yes |
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. The description adds no behavioral context beyond what annotations provide — no rate limits, auth requirements, time-range constraints, or data availability notes.
Agents need to know what a tool does to the world before calling 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 wasted words. It is concise, though its brevity means it omits useful context rather than being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 historical-weather tool with no output schema and 0% schema description coverage, the description is far too thin. It does not explain date formats, location format, API key handling, units, or response shape, leaving significant gaps 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 0% and the description mentions no parameters at all. It does not explain the required location, startTime, or endTime fields, nor the api_key parameter, leaving the agent to infer formats and meaning entirely from bare schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get historical weather data from Tomorrow.io.' This clearly separates it from forecast/realtime siblings by the word 'historical,' but it does not explicitly name or contrast with alternatives like tomorrow_forecast or historical_weather.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. The word 'historical' implies a past-data use case, but the description does not mention when-not-to-use, prerequisites, or which sibling to pick for forecasts or current conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tomorrow_realtimeC
Get realtime weather from Tomorrow.io.
| Name | Required | Description | Default |
|---|---|---|---|
| units | No | ||
| api_key | No | ||
| location | Yes | lat,lon or place name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavior beyond the basic function. It does not mention required API key, rate limits, return format, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. While appropriate for a simple tool, it may be too brief given the context of siblings and missing parameter 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?
The description is incomplete: no output schema, sibling differentiation is minimal, and parameter semantics are lacking. An agent would not know how to use this tool effectively or what to expect as output.
Complex tools with many parameters or behaviors need more documentation. 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 only 33% schema coverage, the description adds no additional meaning to the parameters. The 'units' and 'api_key' parameters are unexplained, and the description does not compensate for the missing 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 gets realtime weather from Tomorrow.io, using a specific verb and resource. It distinguishes from sibling tools like tomorrow_forecast and weather_current.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives such as tomorrow_forecast, tomorrow_history, or other weather tools. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topo_countBRead-onlyIdempotent
Count the number of distinct topological orderings of a DAG.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Directed edges as [from, to] pairs | |
| num_nodes | Yes | Number of nodes (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered and the description does not contradict it. The description adds no behavioral context of its own, however - it says nothing about output magnitude (counts grow factorially, which is why the 20-node cap exists) or about behavior with cyclic/invalid input.
Agents need to know what a tool does to the 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 with zero filler; the resource and the operation are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure-computation tool with no output schema, the description covers the essential purpose, but it never states that the result is a single integer count or what happens for invalid/cyclic graphs. It is minimally adequate rather than 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%, with both num_nodes and edges documented including the max-20 limit and the [from, to] edge format. The description adds no 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 names a specific verb ('count') and a specific resource ('distinct topological orderings of a DAG'), so an agent knows exactly what the tool computes. It does not explicitly name the sibling topo_sort or explain how it differs from it (count vs. produce an ordering), which keeps it out of 5 territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and the obvious alternative (topo_sort, which enumerates a single ordering) is never mentioned. The agent must infer the use case from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topo_sortA
Topological sort of a directed graph with cycle detection.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Array of [from, to] directed edge pairs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state what the tool returns (order list, cycle indicator, boolean), whether the graph is weighted, whether parallel edges are handled, or error behavior on cycles. Only the existence of cycle detection is disclosed – significant behavioral gaps remain for a mutation-free algorithmic 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?
One efficient sentence that front-loads the operation, resource, and distinguishing feature. 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?
With no annotations and no output schema, the description needs to carry more detail than it does. It omits return format, cycle-handling behavior, and edge case semantics, making it only minimally 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?
Schema coverage is 100% and the single 'edges' parameter is documented as 'Array of [from, to] directed edge pairs.' The description adds no syntax or format details 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?
States a specific algorithmic verb+resource ('Topological sort of a directed graph') and adds the distinguishing feature ('with cycle detection'), which sets it apart from the many other graph sibling tools like bfs_search, dfs_search, and topo_count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for directed graphs by naming the resource, but provides no explicit when-to-use or when-not-to-use guidance relative to alternatives like bfs_search or dfs_search. For an algorithmic tool in a dense sibling cluster, this is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treap_simB
Simulate a treap (randomized BST): insert values, get sorted output, tree height, and search.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Values to search for | |
| values | Yes | Values to insert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It mentions 'randomized BST' and lists outputs, but does not disclose return format, error behavior, persistence, or randomized output variability, leaving significant gaps for a simulation 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 a single, front-loaded sentence with zero waste; it efficiently lists the core operations without 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 no output schema and no annotations, the description does provide a basic indication of return values (sorted output, tree height, search results). However, it lacks detail on output structure, types, or edge cases, leaving moderate gaps for an agent to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple 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. The description maps 'insert values' to the values parameter and 'search' to the search parameter, but adds no syntax or format details beyond what the schema provides, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Simulate') and resource ('treap (randomized BST)'), then lists the operations (insert, sorted output, height, search). It clearly conveys what the tool does, but does not differentiate it from siblings like avl_tree or rb_tree_sim.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of alternatives, and no prerequisites. The description only implies usage through its functional summary, leaving the agent to infer when a treap simulation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trello_actionC
Interact with the Trello REST API: list boards and lists, get and search cards, create cards, and update card properties.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Due date as ISO 8601 string. | |
| pos | No | Card position: top, bottom, or a positive float. | |
| desc | No | Card description. | |
| name | No | Card name (for create_card and update_card). | |
| limit | No | Max results for search_cards. | |
| query | No | Search query (for search_cards). | |
| token | Yes | Trello user token. | |
| action | Yes | Action: get_boards, get_lists, get_cards, create_card, update_card, search_cards. | |
| closed | No | Archive or unarchive the card. | |
| filter | No | Filter for boards or lists: open, closed, all. | |
| api_key | Yes | Trello API key. | |
| card_id | No | Card ID (for update_card). | |
| id_list | No | Move card to this list ID. | |
| list_id | No | List ID. | |
| board_id | No | Board ID. | |
| member_id | No | Member ID for get_boards (default: me). | |
| due_complete | No | Whether the due date is marked complete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only states 'Interact with the Trello REST API'. It does not disclose rate limits, destructive nature of create/update actions, error handling, or authentication specifics beyond parameter names.
Agents need to know what a tool does to the world before calling 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 concise sentence that front-loads the purpose. It could include more detail without losing conciseness, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 parameters, no output schema, and no annotations, the description is too minimal. It does not explain which parameters are required for each action, nor does it provide context for the complex multi-action 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 coverage is 100% with descriptions for all parameters, so the baseline is 3. The description adds no additional meaning beyond the schema, merely listing action names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it interacts with the Trello REST API and lists specific actions (list, get, search, create, update) and resources (boards, lists, cards). It is distinct from sibling tools like airtable_action, but does not explicitly differentiate from 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?
No guidance is provided on when to use this tool versus alternatives. Required parameters like api_key and token are mentioned in the schema but not highlighted in the description as prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triage_brain_dumpGive a Brain Dump an outcomeBIdempotent
Closes the anti-dust loop. Choose promote to create a linked Boardroom Job, park to keep the thought with a deliberate later decision, or reject to close it. A rationale is mandatory and is saved on the original dump. This tenant-scoped action is available to every connected AI account and does not require superuser status. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ||
| decision | Yes | ||
| priority | No | normal | |
| rationale | Yes | Short reason for the outcome (max 1000 chars). | |
| brain_dump_id | Yes | ||
| assigned_to_agent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readonly, non-destructive, idempotent, closed-world behavior. The description adds meaningful side-effect context: promote creates a linked Boardroom Job, park retains the thought for later, reject closes it, rationale is persisted, and the action is tenant-scoped with no superuser 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 four tight sentences and front-loads the outcome and decision options. Product jargon like 'anti-dust loop' and 'Boardroom Job' is slightly opaque but does not waste 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?
There is no output schema, and the description does not explain what the call returns or whether a linked job identifier is exposed. It covers the main decision semantics and authorization context but leaves priority/assignment behavior and preconditions incomplete for a six-parameter mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 17%, so the description must carry parameter meaning. It explains decision, rationale, and that agent_id is required, but priority and assigned_to_agent_id are completely unmentioned, and brain_dump_id is only implicit, leaving important semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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: applying an outcome/decision to a brain dump, with clear meanings for promote, park, and reject. It distinguishes this as the closing/triage step relative to dump-creation or listing 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?
Explains the decision choices and the mandatory rationale, implying this is used after a brain dump exists and before later follow-up work. It gives no explicit when-not guidance, prerequisites, or named alternatives such as brain_dump or list_brain_dumps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triangle_solveARead-onlyIdempotent
Solve a triangle given three side lengths. Returns angles, area, perimeter, inradius, circumradius, and type.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | Side a length. | |
| b | Yes | Side b length. | |
| c | Yes | Side c length. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no output schema, the description carries the return-value burden and does so explicitly (angles, area, perimeter, inradius, circumradius, type). Annotations already declare readOnly/idempotent/non-destructive, so the remaining gap is error behavior for degenerate inputs, which is 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?
Two sentences, front-loaded with the operation and followed by the return contract. 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 pure deterministic math tool with full schema coverage and annotations covering the safety profile, the description is nearly complete; only the invalid-triangle case is left 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?
Schema description coverage is 100% and the parameters are self-evidently named a/b/c, so the schema does the heavy lifting. The description adds nothing about units, ordering constraints (a+b>c), or validation beyond restating 'three side lengths'.
Input schemas describe structure but not intent. Descriptions should explain 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 (solve a triangle) plus the exact input constraint (three side lengths) and the outputs produced. That is far more precise than the sibling geometry helpers like area_calculate or polygon_calculate, though it never names which sibling it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Given three side lengths" implicitly defines the precondition, but there is no guidance on when to prefer this over area_calculate or polygon_calculate, and no note about what happens when the three lengths violate the triangle inequality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trie_opsC
Build a trie (prefix tree) from words and perform search, prefix count, and autocomplete queries.
| Name | Required | Description | Default |
|---|---|---|---|
| words | Yes | Words to insert into the trie | |
| prefix | No | Prefix for autocomplete suggestions | |
| queries | No | Words to search for (exact match and prefix count) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and falls short. It does not say whether the trie is built fresh per call or persisted, whether the three operations run in one invocation or are selected by which params are supplied, or what the response shape is for a tool with no output schema. Only the surface operations are named.
Agents need to know what a tool does to the 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 efficient sentence with the resource and its capabilities front-loaded and no wasted words. It is well-sized, though the terseness contributes to the missing behavioral detail rather than being purely a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param, multi-operation tool with no annotations and no output schema, the description is only adequate. It names the operations but does not explain how params select behavior or what comes back, leaving the agent to infer the contract from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 words, prefix, and queries, making 3 the baseline. The description adds a little meaning by tying prefix to autocomplete and queries to exact match plus prefix count, but does not clarify how the three params combine or which are optional in which operation.
Input schemas describe structure but not intent. Descriptions should explain 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 verb+resource: build a trie from words, then run search, prefix count, and autocomplete. An agent can tell what it does. However it gives no differentiation from the many sibling string-search tools (aho_corasick_search, kmp_search, suffix_tree), so it stops at a clear-but-undifferentiated 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance at all. It never says when a trie is preferable to aho_corasick_search, kmp_search, or the other substring/frequency tools in the sibling list, nor does it state prerequisites or ordering (must queries come after build?). The multi-operation nature makes this omission more costly than for a single-purpose tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trivia_categoriesBRead-onlyIdempotent
Get available trivia categories from Open Trivia DB.
| 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, openWorldHint=true, idempotentHint=true and destructiveHint=false, so safety and repeatability are covered structurally. The description adds only that the data originates from Open Trivia DB, which hints at a small static list, but says nothing about caching or the shape of the returned categories.
Agents need to know what a tool does to the 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 with the verb, resource and data source in that order, and no filler. Nothing could be removed 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?
For a zero-parameter, annotation-covered read this is close to sufficient, but with no output schema an agent still does not know whether categories come back as names only or as id/name pairs ready to feed into a questions call. One clause on the return shape (and the ID used by trivia_questions) would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description's silence on parameters is appropriate rather than a 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?
States a specific verb ('Get') and resource ('trivia categories') and names the source API (Open Trivia DB), so the purpose is immediately clear. However, it does not distinguish itself from the near-identical sibling 'triviadb_categories', leaving an agent to guess which of the two category endpoints to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention of a follow-up step (e.g., passing a category into trivia_questions / triviadb_questions), and no exclusion telling the agent when the sibling 'triviadb_categories' is the better choice. The usage has to be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triviadb_categoriesARead-onlyIdempotent
List all available Open Trivia Database question categories.
| 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, destructiveHint=false and openWorldHint=true, so the safety profile and external-source nature are covered without the description. The description adds nothing further — it does not say whether the category list is static or changes, or what identifiers come back — so it earns only a baseline score against already-rich annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loading the verb and resource. Nothing in it is redundant or 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 is the only place to learn what comes back — and it does not say that each category has an ID and name, which is exactly what an agent needs to call triviadb_questions. For an otherwise trivial tool this is the one meaningful 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. Nothing in the description misleads about 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 uses a specific verb ('List') plus a precisely named resource ('Open Trivia Database question categories'), so an agent knows exactly what it retrieves. It does not, however, distinguish itself from the closely related sibling triviadb_questions or explain the relationship 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?
Usage is only implied: an agent can infer this is the lookup step before calling triviadb_questions, but the description never states that, nor does it name any alternative or prerequisite. For a zero-parameter discovery tool that is the main thing an agent needs to know, this is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triviadb_questionsB
Get trivia questions from Open Trivia Database by category, difficulty, or type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Question type: multiple (4 choices) or boolean (true/false). | |
| amount | No | Number of questions (default 5, max 50). | |
| category | No | Category ID (use triviadb_categories to list them). | |
| difficulty | No | Difficulty: easy, medium, or hard. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' does imply a non-mutating read, which is the one behavioral signal given, but there is nothing about the Open Trivia DB rate limit, whether auth is needed, or what the response contains — the description is thinner than a zero-annotation tool should be, though not misleading.
Agents need to know what a tool does to the 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 with no filler — the resource and its filter axes come first. It is efficient, though the terseness is part of why usage and behavioral context are missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four optional params, no output schema, and no annotations, the description is minimally adequate: it identifies the source and filters but does not explain the shape of a returned question (choices vs. true/false answer) or the default call behavior. Sibling disambiguation from 'trivia_questions' is also absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including the default amount of 5 and max of 50. The description names category, difficulty, and type but adds no semantics beyond the schema (no ID ranges, no combining rules), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get trivia questions from Open Trivia Database') plus the filter dimensions, so the action is unambiguous. However, it fails to distinguish itself from the near-identical sibling 'trivia_questions' (nor 'trivia_categories'/'triviadb_categories'), leaving the agent to guess which of the two question fetchers to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 at all — no statement of when this beats 'trivia_questions', no note that 'triviadb_categories' should be consulted first (that hint lives only in the schema param description), and no indication that all parameters are optional so a bare call returns defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trivia_questionsC
Get trivia questions from Open Trivia DB.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | multiple, boolean | |
| amount | No | ||
| category | No | ||
| difficulty | No | easy, medium, hard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits beyond the basic function. Important details like whether questions are random, rate limits, or if there's pagination are omitted.
Agents need to know what a tool does to the world before calling 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, clear sentence with no filler. It is concise but could be improved by adding brief parameter context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and 0 required parameters. The description does not explain the expected return structure (e.g., array of question objects) or mention the existence of the sibling 'trivia_categories' tool for category IDs. For a data-fetching tool, this is insufficiently 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 50% (only difficulty and type have descriptions that repeat enum values). The description adds no additional meaning about parameters like 'amount' or 'category' (e.g., what category numbers map to or that 'amount' controls number of questions).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get trivia questions from Open Trivia DB.' It specifies the verb (Get), resource (trivia questions), and data source (Open Trivia DB), and distinguishes from the sibling 'trivia_categories' tool which likely fetches categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives (e.g., trivia_categories) or when not to use it. The description only states what it does, not contextual usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trove_get_workCRead-onlyIdempotent
Get a specific Trove work by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds nothing beyond that: it does not mention auth requirements, whether a missing work errors or returns empty, or any response characteristics. It does not contradict annotations, but it contributes no behavioral context of its own.
Agents need to know what a tool does to the 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 with no filler; every word earns its place. The sparseness is a completeness problem rather than a conciseness one, so it is not penalized heavily here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and no parameter descriptions, the description should at minimum explain what a "Trove work" is (versus a newspaper article) and what api_key is for. Neither is covered, so an agent lacks what it needs to call this correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. "By ID" gives faint meaning to the required id, but the api_key parameter is entirely undocumented in both schema and description, leaving an agent to guess that it is a Trove API credential and whether it 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?
States a clear verb and resource ("Get a specific Trove work") plus the lookup key ("by ID"), which distinguishes it implicitly from trove_search and trove_newspaper_article. It stops short of explicitly naming those siblings, so an agent must infer the single-record vs search 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?
"By ID" implies the tool is for when an identifier is already known, which is useful routing signal, but there is no explicit statement of when to use this versus trove_search or trove_newspaper_article, and no prerequisites (e.g., needing an API key or a prior search result).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trove_newspaper_articleC
Get a specific Trove newspaper article by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits such as rate limits, authentication requirements, or error handling (e.g., what happens if ID is invalid).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is concise (one short sentence) but does not earn its place as it omits critical details. It could be expanded without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. Description is too sparse given the complexity of the Trove API. Lacks any information about response format or additional constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description adds no meaning beyond parameter names. The 'id' and 'api_key' parameters are undocumented, leaving the agent without type or format 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 the action (get) and resource (Trove newspaper article) with the identifier (by ID). It distinguishes from sibling tools like trove_search and trove_get_work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this vs alternatives like trove_search or trove_get_work. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trove_searchCRead-onlyIdempotent
Search the National Library of Australia's Trove.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of results | |
| zone | No | e.g. newspaper, book | |
| query | Yes | ||
| api_key | No |
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 no behavioral context beyond that, omitting any mention of API-key requirements, rate limits, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words, but it is too terse to be appropriately sized for a four-parameter search tool with partial schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 requiring an API key, with multiple zones and no output schema, this description is under-specified. It omits API-key requirements, zone meaning, and basic result behavior, leaving critical invocation details absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, with 'n' and 'zone' briefly described but 'query' and 'api_key' left bare. The description does not compensate by explaining what values zone accepts, how api_key is supplied, or what query syntax is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: searching the National Library of Australia's Trove. It is clear what the tool does, though it does not distinguish itself from related siblings like trove_get_work or trove_newspaper_article.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this search versus the related trove_get_work or trove_newspaper_article tools. There is also no mention of required API key handling or zone selection despite the zone parameter's presence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tsp_solveA
Find a short tour visiting all cities and returning to start (traveling salesman, nearest-neighbor heuristic).
| Name | Required | Description | Default |
|---|---|---|---|
| cities | Yes | Array of {name, x, y} city locations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and usefully discloses that the method is a nearest-neighbor heuristic and that the tour returns to the start. It does not state whether the result is guaranteed optimal, how ties are broken, or what the return value looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence front-loads the action and objective, then adds the formal problem name and heuristic in parentheses. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the description is mostly adequate, but with no output schema it leaves the return format and the approximation guarantee unstated. An agent can infer that a tour is returned, but not whether to expect a full ordered list, distance total, or error 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 the single cities parameter is already well documented structurally. The description adds no parameter-specific meaning beyond implying that all provided cities are visited.
Input schemas describe structure but not intent. Descriptions should explain 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 (find a short tour) and names the algorithm class (traveling salesman, nearest-neighbor heuristic), so the tool's purpose is unambiguous even among many algorithmic 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?
Usage is implied by the TSP description and the nearest-neighbor heuristic label, but there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance. The heuristic label hints that results are approximate, yet this is not framed as a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turso_create_databaseC
Create a new Turso SQLite edge database.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | ||
| name | Yes | Database name | |
| group | Yes | Group to attach to (e.g. default) | |
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, but it only says 'create,' implying mutation without details on side effects, error handling (e.g., duplicate name), permissions, or response format. Significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wasted words. However, the extreme brevity sacrifices necessary detail, so while structurally efficient, it is under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 required parameters and no output schema or annotations. The description fails to explain how to provide the required fields (e.g., valid api_key, org meaning), any constraints, or what happens on success/failure. Incomplete for a creation 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?
Schema coverage is 50% (only name and group have descriptions). The description adds no extra meaning beyond the schema. For undocumented parameters like api_key and org, the agent has no guidance on their purpose or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it creates a new Turso database, distinguishing it from sibling tools like turso_list_databases, turso_execute_sql, etc. The verb 'create' and resource 'new Turso SQLite edge database' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites mentioned (e.g., need for existing org/group), and no exclusions. The description is too brief to help an agent decide contextually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turso_execute_sqlC
Execute a SQL query against a Turso edge database.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | ||
| sql | Yes | SQL statement to execute | |
| api_key | Yes | ||
| db_name | Yes | Database name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks disclosure of behavioral traits beyond the basic action. Since no annotations are provided, the description should warn about potential destructive SQL operations, authentication requirements, or error handling. It does not mention that executing SQL can modify 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 one short sentence, which is concise. However, it lacks any structure or additional details that would be helpful, making it minimally adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of output schema, no annotations, and incomplete parameter descriptions, the description is too sparse to provide complete context for a SQL execution tool. It omits return value expectations, error handling, and safety warnings.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50%, and the description does not explain the undocumented parameters (api_key, org) or add meaning beyond the schema's minimal descriptions. The agent cannot infer what 'api_key' or 'org' represent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (execute) and the resource (SQL query against a Turso edge database). It is specific enough to distinguish from other turso tools like create_database, but it does not differentiate from similar tools like neon_execute_sql.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as neon_execute_sql or other turso tools. There are no prerequisites, when-not-to-use instructions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turso_get_databaseCRead-onlyIdempotent
Get details for a specific Turso database.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | ||
| name | Yes | Database name | |
| api_key | Yes |
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 adds essentially nothing about behavior. It does not mention that api_key/org/name must be supplied, whether a nonexistent database errors, or what detail set is returned (e.g. hostnames, groups, sizes).
Agents need to know what a tool does to the 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 short sentence that is front-loaded with the verb and resource and contains no filler. It is concise to the point of under-specification, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with three required parameters at 33% schema coverage and no output schema, the description should clarify the two undocumented parameters and the fact that the result is a single database object. It also never names the alternative listing tool, so the definition is incomplete for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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% – 'org' and 'api_key' are completely undocumented in the schema and the description supplies no meaning for either. Only 'name' is covered ("Database name" in the schema), and the description contributes no additional parameter guidance such as org slug format or where the API key comes from.
Input schemas describe structure but not intent. Descriptions should explain 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 details for a specific Turso database), which is enough to distinguish it from turso_create_database or turso_execute_sql by name alone. However, it never explicitly contrasts with turso_list_databases, the closest sibling, so the agent must infer the single-record vs. list distinction from the description names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this instead of turso_list_databases (to enumerate databases) or turso_execute_sql, and no prerequisites such as needing an existing database created first. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turso_list_databasesCRead-onlyIdempotent
List all databases in a Turso organization.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name or slug | |
| api_key | Yes | Turso API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered structurally. The description adds nothing beyond that: no pagination behavior, no result count limits, no note that authorization is scoped to the org passed in.
Agents need to know what a tool does to the 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 with no filler. It is efficient, though arguably too terse for a tool with 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 simple, read-only, two-parameter list operation whose annotations fully cover the safety profile, the description is adequate but minimal. It omits anything about the shape or volume of results, which matters somewhat given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters ('org' and 'api_key') documented inline, so the schema carries the load. The description only adds that listing is scoped to an organization, which the schema's 'Organization name or slug' already conveys.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List all databases') and scopes it to a Turso organization, so the agent knows exactly what is returned. It does not differentiate from nearby siblings such as turso_get_database, turso_list_groups, or the similarly named do_list_databases and neon_list_databases, leaving 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?
There is no statement of when to call this versus the alternative listing/inspection tools (turso_get_database, do_list_databases, neon_list_databases). The only implied usage is 'you want the list', which is a restatement of the name rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turso_list_groupsCRead-onlyIdempotent
List all groups in a Turso organization.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | ||
| api_key | Yes |
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 safety is covered. The description adds the organizational scoping constraint but says nothing about pagination, result size, or how authentication via api_key is handled.
Agents need to know what a tool does to the 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 with no wasted words. It is efficient, though so terse that structure is minimal rather than exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with no output schema and zero documented parameters, the description should explain the return shape or at least the auth/org input expectations. As written, an agent cannot tell what a group record contains or whether results are paginated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two required parameters. The description only implicitly covers 'org' through the phrase 'in a Turso organization' and gives no guidance on api_key or expected value formats, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all groups') scoped to a Turso organization, which is clear enough to act on. It does not name or contrast with the sibling list tools (turso_list_databases, turso_get_database), so sibling differentiation is left to the resource noun alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus turso_list_databases or turso_get_database, no prerequisites, and no exclusions. Usage is only implied by the verb 'list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_scheduleARead-onlyIdempotent
Get the TV schedule for a country and date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format (default today) | |
| country | No | ISO 3166-1 country code (default US) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds only the country/date scope and does not mention return shape, timezone handling, or rate limits, but 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?
It is a single, front-loaded sentence with no wasted words. The core purpose and scope are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and both optional parameters are fully documented, but there is no output schema and the description does not clarify the response shape or timezone semantics. That leaves a modest gap for an agent forming expectations about the returned schedule.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 format/default and ISO country code/default are fully documented in the schema. The description adds no parameter meaning 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 verb and resource ('Get the TV schedule') with clear scope for country and date. It implicitly distinguishes itself from siblings like tvmaze_search and tvmaze_show, but 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 purpose implies when to use it: looking up a schedule for a given country/date. However, it gives no explicit guidance on when to prefer it over tvmaze_search or tvmaze_show, and no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_searchCRead-onlyIdempotent
Search for TV shows by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Show name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no further behavioral context such as result ordering, pagination, rate limits, or what happens with ambiguous names, so it contributes essentially nothing beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the purpose front-loaded. It is appropriately sized for a simple search tool, though it could include one routing note without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search with complete schema coverage and safety annotations, the definition is minimally adequate. It omits what the search returns, whether multiple matches are possible, and how it relates to the sibling detail tool, leaving some ambiguity for an agent choosing among TV-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?
Schema coverage is 100% for the single 'query' parameter, and the schema itself documents it as 'Show name to search for.' The description's phrase 'by name' aligns with the schema but adds no extra syntax or format guidance, which is acceptable given 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 clear verb and resource: 'Search for TV shows by name.' An agent can distinguish it from tvmaze_show and tvmaze_schedule at a high level, though it does not explicitly name those siblings or clarify the boundary between search and 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?
There is no explicit guidance on when to use this instead of tvmaze_show or tmdb_search_tv. The search purpose is implied, but the description provides no exclusions, alternatives, or contextual triggers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_showARead-onlyIdempotent
Get full details for a TV show by its TVmaze ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | TVmaze show ID |
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 fully covered. The description adds only 'full details,' hinting at a comprehensive payload, but says nothing about response shape, error behavior for invalid IDs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the lookup key is placed at the end where it naturally belongs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 idempotent read with full annotation coverage, the definition is essentially complete. The only residual gap is that 'full details' is not elaborated (which fields, whether nested), but no output schema exists 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?
The single 'id' parameter is 100% documented in the schema as 'TVmaze show ID', and the description reinforces the same meaning. No additional syntax or format detail (e.g. numeric, example value) is added beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get full details') and resource ('a TV show') plus the identifying key ('by its TVmaze ID'). This implicitly distinguishes it from tvmaze_search, which would be used without an ID, but the sibling is not named 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?
Usage is only implied — the agent can infer it should be used when a TVmaze numeric ID is already known, and that tvmaze_search is the alternative when it isn't. No explicit when/when-not statement or named alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twilio_check_verifyCRead-onlyIdempotent
Check a verification code submitted by a user via Twilio Verify.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| code | Yes | The OTP code entered by the user | |
| auth_token | Yes | ||
| account_sid | Yes | ||
| service_sid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so safety is covered. The description adds essentially nothing beyond that: it does not state what a failed check looks like (error vs approved/denied status), whether the verification code is consumed, or whether attempt limits/rate limits apply — the details an agent most needs for a verification 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?
One sentence, front-loaded with the verb and resource, with no filler. It is short enough that nothing is wasted, though the brevity is partly the source of the gaps elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, all-required tool with no output schema and low schema coverage, the description should explain the credential/identifier params and what the check returns. Neither is present, so an agent cannot call it correctly without external Twilio knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 20% (only 'code' is documented), so the description carries the burden — yet it says nothing about account_sid, auth_token, service_sid, or 'to'. The agent is left to guess that 'to' is the phone number being verified and that the SIDs are Twilio credentials/resources.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs the verb 'Check' with a specific resource ('a verification code submitted by a user') and names the Twilio Verify service, so an agent understands it validates an OTP rather than sending one. It does not explicitly name the sibling it complements (twilio_send_verify), 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?
Usage is implied by 'submitted by a user', which frames the check as the follow-up step in the Verify flow, but there is no explicit when-to-use/when-not or reference to twilio_send_verify as the prerequisite step. The agent must infer the pairing from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twilio_get_messageCRead-onlyIdempotent
Get a single Twilio message by SID.
| Name | Required | Description | Default |
|---|---|---|---|
| auth_token | Yes | ||
| account_sid | Yes | ||
| message_sid | Yes |
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 needs no restatement. The description adds nothing beyond that — no note on auth/credential handling, error behavior for invalid or expired SIDs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient but that efficiency comes partly from omitting needed 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?
With no output schema, no annotation-independent guidance, and 0% schema coverage, the description should explain what a retrieved message contains and how credentials are passed. It leaves all of that to inference, which is too thin for a tool with three required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three required parameters, and the description only accounts for message_sid ('by SID'). It says nothing about account_sid (which account scope) or that auth_token is a credential that must be supplied — meaning two of three params remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain 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 a single Twilio message') and scopes it by SID, which implicitly distinguishes it from the list-style sibling twilio_list_messages. It is clear, though it never names the 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 only usage signal is 'by SID' — an agent must infer that this tool is for when a message SID is already known. There is no explicit statement of when to prefer it over twilio_list_messages or what to do if only a phone number/date range is known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twilio_list_callsCRead-onlyIdempotent
List outbound and inbound calls on a Twilio account.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| status | No | queued, ringing, in-progress, completed, failed, busy, no-answer | |
| page_size | No | ||
| auth_token | Yes | ||
| account_sid | Yes |
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 phrase 'outbound and inbound' adds a little scope context (no direction preselection), but nothing is said about authentication requirements, pagination, or result volume for an open-world remote API call.
Agents need to know what a tool does to the 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 clean sentence, front-loaded with the verb and resource, with zero filler. It is efficient but so short that it avoids rather than earns its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool requiring credentials, with low schema coverage and no output schema, the description should say what the auth parameters are, which filters exist, and what a listing returns. None of that is present, so an agent would need to infer usage entirely 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 only 17% — just the status value list — so the description must compensate and does not. It never explains that account_sid/auth_token are required, what 'from'/'to' filter on, or how page_size behaves, leaving five of six parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 (calls) with explicit scope: 'outbound and inbound calls on a Twilio account.' An agent can distinguish it from twilio_list_messages or twilio_make_call by resource, but the description does not name any sibling to reinforce the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of alternatives like twilio_make_call or twilio_get_message, and no note that credentials must be supplied to read a specific account's calls. The intent is only implied by the verb 'list.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twilio_list_messagesCRead-onlyIdempotent
List SMS messages sent or received on a Twilio account.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| date_sent | No | Filter by date (YYYY-MM-DD) | |
| page_size | No | ||
| auth_token | Yes | ||
| account_sid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: no mention that account_sid and auth_token credentials are required, no pagination or page_size behavior, and no statement about result ordering or volume 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?
A single front-loaded sentence with no waste. It is not padded, though it is arguably under-specified rather than efficiently scoped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool requiring credentials, with no output schema and 17% schema coverage, the description should explain filtering, paging, and what is returned. None of that is present, leaving the agent to guess at page_size semantics and credential handling.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 17% — of six parameters only date_sent carries a schema description. The description says nothing about the to/from filters, page_size, or the required credential parameters, so it fails to compensate for the 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?
States a specific verb ('List') and resource ('SMS messages') plus the scope 'sent or received on a Twilio account'. It does not distinguish itself from twilio_get_message or twilio_list_calls, so the agent must infer the split from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus twilio_get_message (single message by SID) or twilio_list_calls. The 'sent or received' phrasing hints at a broad listing, but no exclusions, prerequisites, 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.
twilio_make_callB
Initiate an outbound phone call via Twilio.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | E.164 phone number to call | |
| url | No | URL that returns TwiML for the call | |
| from | Yes | Your Twilio phone number | |
| twiml | No | TwiML instructions for the call | |
| auth_token | Yes | ||
| account_sid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description omits behavioral details such as whether the call is synchronous, what is returned, or any cost or rate limit implications. The word 'Initiate' hints at asynchronous behavior but is not explicit.
Agents need to know what a tool does to the 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, concise sentence that is front-loaded and contains no extraneous words. Could include more detail without becoming verbose, but current form is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description fails to explain the return value or how the call progresses after initiation. For a tool that makes a phone call, this is insufficient 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 coverage is 67%, with descriptions for 4 of 6 parameters. The description adds no additional meaning beyond the schema, so it meets the baseline but does not enhance 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 clearly states the action ('Initiate an outbound phone call') and the service ('via Twilio'), effectively distinguishing it from sibling tools like twilio_send_sms or twilio_list_calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, nor any prerequisites or exclusions. The agent is left to infer context solely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twilio_send_smsC
Send an SMS via Twilio.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number in E.164 format | |
| body | Yes | Message text | |
| from | Yes | Your Twilio phone number or messaging service SID | |
| auth_token | Yes | ||
| account_sid | Yes | ||
| status_callback | No | URL to receive status updates |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like that it actually sends an SMS (cost, not a test), potential failures, or rate limits. It provides none of this, leaving the agent underinformed.
Agents need to know what a tool does to the world before calling 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, concise but overly minimal. It lacks structure or additional helpful details, though it is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and no annotations, the description is incomplete. It does not cover return values, error scenarios, or any operational context needed for proper 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?
Schema description coverage is 67%; account_sid and auth_token lack descriptions. The tool description adds no parameter meaning beyond the schema, failing to compensate for the 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 'Send an SMS via Twilio' clearly indicates the action and resource. However, it does not distinguish from sibling tools like twilio_make_call or twilio_check_verify, missing an opportunity to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives, nor any prerequisites (e.g., needing a Twilio account). The description is silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twilio_send_verifyB
Send a verification code via Twilio Verify (SMS, call, email, or WhatsApp).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | E.164 phone number or email | |
| channel | No | sms, call, email, or whatsapp (default: sms) | |
| auth_token | Yes | ||
| account_sid | Yes | ||
| service_sid | Yes | Twilio Verify Service SID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose that this is a write operation that initiates a one-time password send, requiring user confirmation via a separate verification tool. With no annotations, it should mention side effects, authentication requirements, or that it does not finalize verification itself.
Agents need to know what a tool does to the world before calling 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, concise sentence of 12 words that front-loads the core purpose. It is efficient with no redundant or unnecessary 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 lacks information about what the tool returns (e.g., a verification status or success indicator) since there is no output schema. It also does not mention that the tool creates a verification attempt or that the user must check the code using twilio_check_verify.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (3 of 5 parameters have descriptions). The description adds no additional meaning for account_sid and auth_token, which are left undocumented in both schema and description. For the other parameters, the schema already provides sufficient description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it sends a verification code via Twilio Verify and lists supported channels (SMS, call, email, WhatsApp). This distinguishes it from sibling tools like twilio_send_sms which sends an SMS directly, and twilio_check_verify for checking verification codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like twilio_send_sms or twilio_check_verify. It does not mention prerequisites such as having a Twilio Verify Service SID, nor does it specify that a subsequent verification step is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_channel_infoBRead-onlyIdempotent
Get information about a Twitch channel by its login name.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Twitch channel login name, e.g. 'shroud' | |
| client_id | No | ||
| client_secret | No |
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 nothing further — no mention of what data a channel lookup returns, whether auth credentials are required or where to source them, or how failures (e.g., unknown channel) are surfaced.
Agents need to know what a tool does to the 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 tight sentence with no filler and the key detail (login name) included. It is appropriately sized, though its brevity comes at the cost of the missing guidance noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lookup with annotations covering safety and no output schema, the description is minimally adequate. It does not tell the agent what fields come back or how the client_id/client_secret parameters should be supplied, which matters given the low schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the 'channel' parameter is documented in the schema (33% coverage); client_id and client_secret are bare strings in both schema and description. The description's phrase 'by its login name' adds a small hint that the argument is a login rather than a numeric ID, but it leaves the two credential parameters completely unexplained for a tool that clearly needs 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 names a specific verb ('Get information') and resource ('a Twitch channel') with a lookup key ('login name'), so the agent knows exactly what the tool retrieves. It does not distinguish itself from nearby siblings such as twitch_get_stream or twitch_search_streams, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this rather than twitch_search_streams, twitch_get_stream, or twitch_search_games, and no prerequisites or exclusions. The agent must infer usage 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.
twitch_get_clipsCRead-onlyIdempotent
Get clips for a Twitch broadcaster.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | ||
| game_id | No | ||
| client_id | No | ||
| client_secret | No | ||
| broadcaster_id | No |
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 structurally. The description adds nothing beyond that—notably it never mentions that client_id and client_secret parameters imply an authentication requirement, nor anything about pagination or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded with zero waste, so it is concise in the literal sense. That concision comes at the cost of under-specification rather than efficiency—one more clause about credentials or the game_id filter would have earned 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 five undocumented parameters, no output schema, and an authentication-sensitive surface, the description leaves too much to inference. It doesn't need to explain return values, but it should at minimum cover credential handling and what the optional filters do.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across all five parameters, so the description must carry the burden and does not. Only broadcaster_id is obliquely implied by 'for a Twitch broadcaster'; first, game_id, client_id, and client_secret are entirely unexplained (page size, filtering by game, credential handling).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 clips) scoped to a Twitch broadcaster, which is more informative than a bare name restatement. It doesn't, however, distinguish this from Twitch siblings like twitch_get_stream or twitch_channel_info, which an agent would also consider for channel-level 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?
There is no statement of when to use this tool versus the many related Twitch siblings, nor any prerequisite context. An agent must infer from the name alone that this retrieves clip listings rather than streams, games, or schedules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_get_streamBRead-onlyIdempotent
Get a specific Twitch stream by user login.
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | No | ||
| user_login | Yes | ||
| client_secret | No |
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, giving the agent the safety profile. The description adds no further behavioral context—nothing about authentication needs (client_id/client_secret), rate limits, or what happens if the stream is offline. With annotations carrying the burden, the lack of added context merits a 2.
Agents need to know what a tool does to the world before calling 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 waste. It immediately conveys the essential information, so it scores 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?
For a simple read tool with annotations covering safety, the description is almost complete. However, with three params at 0% schema coverage and no output schema, the missing explanation of client credentials and error/offline behavior leaves a gap. A 3 reflects adequacy but not completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters. The description only clarifies that 'user_login' is the lookup key, adding meaning to the required parameter, but it leaves client_id and client_secret completely undocumented. It therefore only partially compensates for the coverage gap, deserving a 2.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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), resource (stream), and scope (by user login), making the tool's purpose immediately clear. It implicitly distinguishes from the sibling twitch_search_streams by emphasizing a specific lookup, though it does not name the alternative. A 4 is appropriate because the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by user login' implies this tool is for when you already know the streamer's login, versus a search tool. However, there is no explicit statement of when to use it over siblings like twitch_search_streams, nor any preconditions or exclusions. Score 3 for implied but not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_scheduleCRead-onlyIdempotent
Get a Twitch channel's streaming schedule by its login name.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Twitch channel login name, e.g. 'shroud' | |
| client_id | No | ||
| client_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a safe, read-only, idempotent, open-world operation. The description adds essentially no behavioral detail beyond that: it does not mention authentication requirements, rate limits, or whether the schedule is returned for upcoming streams only. Its only extra information, 'by its login name,' is already present 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?
A single, front-loaded sentence with no wasted words. It states the operation and the key input in one line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, one of which is undocumented, and includes credential parameters that the description never explains. With no output schema and no mention of authentication expectations, the definition is not complete enough for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 needs to compensate and does not. It mentions the channel login name, but says nothing about the two credential parameters client_id and client_secret, which are completely undocumented in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get a Twitch channel's streaming schedule.' It is clear what the tool returns. However, it does not distinguish itself from nearby siblings like twitch_channel_info or twitch_get_stream, so an agent cannot tell when this is the right Twitch tool without further inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as twitch_channel_info, twitch_get_stream, or twitch_search_streams. The phrase 'by its login name' describes the input, not a usage condition or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_search_gamesCRead-onlyIdempotent
Search for games on Twitch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| client_id | No | ||
| client_secret | No |
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 no behavioral context beyond that, such as authentication requirements, rate limits, pagination, or whether results are paginated.
Agents need to know what a tool does to the world before calling 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 wasted words. It is concise, but its brevity contributes to the missing usage and parameter context rather than being fully appropriate for a tool with authentication parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with 0% schema description coverage and no output schema, the description is too thin. It omits authentication details, result behavior, and how it relates to other Twitch or game-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 description coverage is 0% for three parameters. The phrase 'search for games' weakly implies that 'name' is the search term, but the description does not explain the client_id/client_secret authentication parameters or their required/optional status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Search for games on Twitch.' That is clear enough to distinguish it from a generic search tool, but it does not explicitly distinguish it from siblings like twitch_top_games, twitch_search_streams, or igdb_search_games.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 basic action but gives no guidance on when to use this instead of twitch_top_games, twitch_search_streams, or third-party game search tools. The agent must infer the use case entirely from the tool name and one-sentence description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_search_streamsCRead-onlyIdempotent
Search for live streams on Twitch.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | ||
| game_id | No | ||
| client_id | No | ||
| user_login | No | ||
| client_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing about authentication, rate limits, pagination, or response behavior, which is a significant omission for a search tool that requires client credentials. It does not contradict the annotations, but it also adds no 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 a single front-loaded sentence with no wasted text. It is structurally clean but too sparse to be informative, which is captured in other dimensions rather than penalizing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 endpoint with five undocumented parameters, including client authentication fields, the description is not complete enough to guide correct invocation. It does not explain how to scope results, how many results are returned, or what the response contains. Given no output schema, some return-value context would also be expected.
Complex tools with many parameters or behaviors need more documentation. 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 are 5 parameters and schema description coverage is 0%, so the description carries the full burden of explaining parameter meanings. It mentions none of them: first, game_id, client_id, user_login, or client_secret. This leaves critical usage details such as pagination and authentication undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 live streams on Twitch. It is clear what the tool does at a high level, though it does not differentiate from close siblings such as twitch_search_games or twitch_get_stream. The absence of sibling routing information 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 provides no guidance on when to use this tool versus alternatives like twitch_get_stream, twitch_search_games, or twitch_top_games. It also does not mention prerequisites such as authentication or required filters. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_top_gamesBRead-onlyIdempotent
Get top games currently streaming on Twitch.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | ||
| client_id | No | ||
| client_secret | No |
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 the 'currently streaming' temporal scope, but omits authentication needs implied by client_id/client_secret and any rate-limit or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It immediately conveys the action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameter descriptions, the one-line description leaves credential handling, result count behavior, ranking, and return format unaddressed. Annotations cover safety, but the definition is not complete enough for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters, yet it says nothing about 'first', 'client_id', or 'client_secret'. An agent can guess that client_id/client_secret are credentials and that 'first' is a count, but this is not explicit.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('top games currently streaming on Twitch'). The temporal and ranking qualifiers help distinguish it from twitch_search_games and twitch_search_streams, but no sibling is explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no when-to-use guidance or exclusions. It does not mention alternatives such as twitch_search_games for query-based lookup or twitch_search_streams for live streams, so the agent must infer that this is for ranked live-game discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
two_satB
Solve a 2-SAT boolean satisfiability problem using implication graph and SCC.
| Name | Required | Description | Default |
|---|---|---|---|
| clauses | Yes | Clauses as [a, b] pairs where positive = true, negative = negated | |
| variable_count | Yes | Number of boolean variables (1-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It doesn't say whether the result is a satisfying assignment or just a satisfiability verdict, what happens on unsatisfiable input, or how malformed clauses (e.g. wrong arity) are handled.
Agents need to know what a tool does to the 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 with no filler. Every word contributes to identifying the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 computational tool with full schema coverage this is minimally sufficient, but with no output schema the return value (assignment vs. boolean) is undocumented anywhere, which is a real gap for chaining.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 the clause encoding and 1-based variable counting. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Solve a 2-SAT boolean satisfiability problem') and even names the solving technique (implication graph + SCC). It is unambiguous and no sibling competes with it in the flat tool list, but it stops short of any sibling differentiation or scope statements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 reach for this tool, what inputs are invalid, or how to interpret results. An agent gets a definition of the problem but nothing about choosing or applying it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
typeform_get_formARead-onlyIdempotent
Get a Typeform form definition (fields and titles) by id.
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes | Form id | |
| access_token | Yes | Typeform personal access token |
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 safety is covered. The description adds that the operation returns form definition fields and titles, but does not mention auth requirements, errors, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero wasted words, front-loading the verb, resource, and returned 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 read-only lookup with complete schema and annotations, the description is nearly sufficient. It names the returned definition fields and titles, though it could explicitly exclude responses or note limitations if relevant.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters are documented in the schema. The description adds the key notion that lookup is by id, but does not add format details or 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 uses a specific verb and resource ('Get a Typeform form definition') and clarifies the returned content with 'fields and titles'. It is clear, but it does not explicitly distinguish itself from sibling tools like typeform_get_responses or typeform_list_forms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrasing 'by id', suggesting retrieval of a known form, but the description does not state when to use this instead of list_forms or get_responses. 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.
typeform_get_responsesCRead-onlyIdempotent
Get submissions for a Typeform form.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Responses to return (max 1000, default 25) | |
| since | No | ISO 8601 lower bound on submission time | |
| form_id | Yes | Form id | |
| access_token | Yes | Typeform personal access token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds nothing beyond the name — no pagination behavior, no mention that results are bounded by limit/since, no rate-limit or return-shape 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?
A single front-loaded sentence with zero waste. Efficient, though it is so terse that it borders on under-specification rather than serving structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with full schema coverage and rich annotations this is minimally sufficient. However, with no output schema, the description could have clarified the return shape (list of responses/answers) and default paging behavior, which it omits.
Complex tools with many parameters or behaviors need more documentation. Simple 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 limit, since, form_id, and access_token all documented in the schema itself. The description adds no semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (submissions for a Typeform form), which is clearly distinct from siblings like typeform_list_forms and typeform_get_form. No explicit sibling differentiation, but the resource name makes the distinction obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this vs typeform_get_form or typeform_list_forms, and no prerequisites (e.g., need a valid form_id first). Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
typeform_list_formsCRead-onlyIdempotent
List your Typeform forms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Forms to return (max 200, default 25) | |
| search | No | Filter forms by title | |
| access_token | Yes | Typeform personal access token |
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 fully covered structurally. The description adds nothing beyond that — no note about pagination behavior, ordering, or that results are scoped to the token owner's account.
Agents need to know what a tool does to the 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 with zero waste. It is appropriately short for a simple list tool, though the brevity borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read-only list operation with rich annotations, a fully documented schema, and no output schema, the description is minimally sufficient. It leaves the agent without any signal on result shape or how pagination interacts with limit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit (max 200, default 25) and search (filter by title) fully documented in the schema. The description 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 gives a specific verb and resource ("List ... Typeform forms"), and the name plus scope make the operation unambiguous. It does not explicitly differentiate from siblings like typeform_get_form or typeform_get_responses, but the "list" framing is clear enough to be distinguishable in practice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus typeform_get_form (single form) or typeform_get_responses, nor any mention of prerequisites or pagination context. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uk_police_crimesC
Get reported crimes at a UK location from data.police.uk.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Month in YYYY-MM format (default: latest). | |
| latitude | Yes | Latitude of the location. | |
| longitude | Yes | Longitude of the location. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the entire behavioral burden. It implies a read-only lookup but does not disclose the well-known characteristic of this dataset (crime data lags by roughly two months), pagination or result caps, or what the response contains. It adds no behavioral context beyond the source name.
Agents need to know what a tool does to the 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 with zero filler; the core action and scope come first. It is efficient, though its brevity is part of why behavioral context is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. However, with no annotations it leaves gaps around data recency and result limits that an agent would benefit from knowing before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 latitude, longitude, and the YYYY-MM date parameter are already documented in the schema. The description adds no format, range, or radius 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?
States a specific verb+resource ("Get reported crimes") and scopes it to "a UK location" and to the data.police.uk source. It implicitly distinguishes itself from uk_police_forces (which lists forces), but the description never names or contrasts that sibling, so the caller must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the related uk_police_forces tool, and no prerequisites or exclusions. An agent must guess that this is a location-scoped query rather than a force-level one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uk_police_forcesA
List all UK police forces with id and name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description must carry the behavioral burden. It does disclose the return fields and that the listing is complete ('all'), implying no filtering or pagination, but says nothing about auth, caching, or ordering of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, stating resource and return fields. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter reference-list tool with no output schema, the description covers the resource and the fields returned, which is what an agent needs to select and call it. Only minor details (e.g., result ordering, whether the list is static) are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline of 4 applies. The sentence instead usefully documents the shape of each returned item.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('List'), resource ('UK police forces'), and even the returned fields ('id and name'), so the agent knows exactly what it gets. The only similar sibling, uk_police_crimes, is implicitly differentiated by the resource noun, though it is never named 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?
There is no guidance about when to use this versus uk_police_crimes, nor any indication that the returned ids are the inputs such crimes lookups require. The description is a pure statement of content with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unclick_workspace_listARead-onlyIdempotent
Superuser/God only: list the shared UnClick Dropbox workspace. No personal Dropbox connection is used. area is strictly Context or System Information.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | context = /UnClick/Context (handovers, status, briefs). system_information = /UnClick/Credentials/System Information. | |
| limit | No | Most entries to return, 1-200 (default 100). Folders come first, then files newest first. | |
| relative_path | No | Optional folder below the area, never an absolute path. Omit for the area root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so safety needs no restating. The description still adds real value beyond them: a privilege requirement (superuser only), the fact that shared rather than personal credentials are used, and a constraint on the area argument. It omits any statement of result ordering or paging behavior, though the schema covers those.
Agents need to know what a tool does to the 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, access restriction and scope front-loaded, with no wasted prose. The final sentence largely duplicates the schema enum, slightly reducing density but not hurting readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with annotations covering safety and a fully documented schema, the description supplies the missing operational context: who may call it and which credential domain it touches. Return shape and pagination are handled by the schema, so nothing critical is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter (area enum, limit, relative_path) is well documented in the schema. The description only echoes the area constraint without adding format or path semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('list the shared UnClick Dropbox workspace') and adds a meaningful scope distinction ('No personal Dropbox connection is used'), which separates it from generic Dropbox listers. It does not explicitly differentiate itself from the close siblings unclick_workspace_read / unclick_workspace_write, 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?
'Superuser/God only' gives an access precondition, which is useful usage context. However, there is no explicit when-to-use guidance versus unclick_workspace_read, workspace_list, or dropbox_list_folder, leaving the agent to infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unclick_workspace_readARead-onlyIdempotent
Superuser/God only: read a UTF-8 text file from the shared UnClick Dropbox workspace. No personal Dropbox connection is used; paths are hard-limited to Context or System Information.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | context = /UnClick/Context (handovers, status, briefs). system_information = /UnClick/Credentials/System Information. | |
| relative_path | Yes | File path below the area, for example '20260917 Status.md'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavior: UTF-8 text only (no binary), no personal OAuth connection is touched, and paths are hard-limited to Context or System Information (a path-traversal guard). It omits failure behavior for missing files, but the added constraints are 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?
Two sentences, zero padding, with the access restriction front-loaded before the scope and path limits. Every clause carries information an agent needs before invoking.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full annotation coverage and no output schema, the definition covers who may call it, what it reads, encoding, and where it can read from. Only minor gaps remain, such as missing-file errors and size limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 carry their own descriptions including the enum mapping to concrete directories. The description only reinforces the hard path restriction already implied by the enum, so the schema is doing the heavy lifting — 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 (read a UTF-8 text file) plus the exact storage scope (shared UnClick Dropbox workspace, not a personal Dropbox connection). This implicitly separates it from dropbox_read_file and the sibling unclick_workspace_list/write, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a strong gate — 'Superuser/God only' — and enumerates the two permitted areas, which tells an agent who may call it and on what. It does not say when to prefer this over unclick_workspace_list or unclick_workspace_write, so routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unclick_workspace_writeADestructive
Superuser/God only: create a UTF-8 text file in the shared UnClick Dropbox workspace. No delete operation exists. Set overwrite=true only to replace an existing file.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | context = /UnClick/Context (handovers, status, briefs). system_information = /UnClick/Credentials/System Information. | |
| content | Yes | UTF-8 text content, at most 500,000 bytes. | |
| overwrite | No | Replace an existing file (default false: an existing file is refused). | |
| relative_path | Yes | File path below the area, for example '20260917 Handover.md'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag a write with destructiveHint=true and openWorldHint=true; the description adds genuinely new context — superuser/God-only authorization, the absence of any delete path, and the default refusal behavior on existing files. It omits the 500KB content ceiling (left to the schema) and what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler, and the privilege gate plus the resource/scope are front-loaded ahead of the overwrite 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 4-parameter write tool with no output schema, the definition covers authorization, scope, mutation semantics and the one risky flag. The only missing piece is the return value (e.g. resulting path or confirmation), which 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 description coverage is 100%, so area, content, relative_path and overwrite are all already documented. The description's only parameter-level addition is the overwrite usage rule, which largely restates the schema's 'default false: an existing file is refused'.
Input schemas describe structure but not intent. Descriptions should explain 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 (create) and resource (UTF-8 text file) plus the exact location (shared UnClick Dropbox workspace), and scopes it to the two areas defined in the schema. This clearly separates it from the read/list siblings unclick_workspace_read and unclick_workspace_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?
Gives a concrete conditional rule for the overwrite flag ('only to replace an existing file') and rules out a class of intent by noting no delete operation exists. It does not explicitly point at the read/list siblings, so it stops short of full when-to-use routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
union_findC
Perform union-find (disjoint set) operations: merge elements and query connectivity.
| Name | Required | Description | Default |
|---|---|---|---|
| unions | Yes | Pairs to merge | |
| queries | No | Optional pairs to check connectivity |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that unions are merged and connectivity is queried, but does not explain whether state persists across calls, whether union order matters, whether queries are answered against all previously applied unions, or what the response format is.
Agents need to know what a tool does to the world before calling 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 core operation. It contains no wasted words and is appropriately sized for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should do more to explain behavior and return values. It omits what the connectivity queries return, whether unions and queries are processed in order, and whether the tool maintains state, leaving significant gaps for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already describes both parameters as 'Pairs to merge' and 'Optional pairs to check connectivity.' The description adds essentially the same information, 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 names the specific algorithm and its two operations: 'union-find (disjoint set)' with 'merge elements and query connectivity.' This is clear and specific, but it does not explicitly differentiate the tool from other graph or algorithm siblings in 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description only states what the tool does, leaving usage context entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
universities_searchBRead-onlyIdempotent
Search world universities by name and/or country.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | University name to search (partial match). | |
| limit | No | Max results (default 25). | |
| country | No | Country name (e.g. 'Australia', 'United States'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds nothing beyond that — no note on result ordering, coverage of the dataset, or pagination — leaving it at minimum viable given the annotation support.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, zero filler. Slightly terse relative to what it could convey, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It is a simple zero-required-param search with full schema docs and annotations covering safety, so little is required. However, with no output schema the description gives no hint of what a result contains (name, country, identifiers) or how results are ranked/limited beyond 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%, with each parameter (name partial match, country example, limit default 25) fully documented in the schema. The description only echoes the two filter fields and adds no syntax or edge-case detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('world universities') plus the two filter dimensions (name, country). An agent knows exactly what the tool retrieves; there are no university siblings to differentiate from, so 4 rather than 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?
'by name and/or country' implies the filterable modes and that all filters are optional, but there is no explicit when-to-use/when-not guidance or mention of adjacent tools (e.g. country/geo lookups) an agent might pick instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsplash_get_photoARead-onlyIdempotent
Get a single Unsplash photo by id (URLs + attribution).
| Name | Required | Description | Default |
|---|---|---|---|
| photo_id | Yes | Unsplash photo id | |
| access_key | Yes | Unsplash Access Key |
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 return context ('URLs + attribution'), but does not discuss auth expectations beyond the schema's access_key field or error behavior for invalid ids.
Agents need to know what a tool does to the 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 with no wasted words. It communicates the core action, lookup key, and return content 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 read-only lookup with complete schema and annotation coverage, the description is largely sufficient, especially since it sketches the return content. It could be slightly more complete by naming alternatives or clarifying invalid-id behavior, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both photo_id and access_key are already documented. The description reinforces that lookup is by id but adds no format or 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?
States a specific verb and resource: get a single Unsplash photo by id. The phrase 'single ... by id' implicitly distinguishes it from sibling search and random-photo tools, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by id' wording implies the tool should be used when a photo id is known, but it gives no explicit when-not guidance or alternatives such as unsplash_search_photos or unsplash_random_photo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsplash_random_photoARead-onlyIdempotent
Get a random Unsplash photo, optionally matching a query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional topic to match | |
| access_key | Yes | Unsplash Access Key | |
| orientation | No | Filter by orientation |
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 largely covered. The description adds that results are random and optionally query-filtered, but does not mention access-key auth, rate limits, or Unsplash attribution 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?
It is a single, front-loaded sentence with no redundant or filler content. The core behavior and optional query are communicated 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 read-only image retrieval tool with full schema coverage and clear annotations, the description covers the essential purpose. It leaves return-format details unstated, but there is no output schema and the schema already documents the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 query, access_key, and orientation are already documented in the schema. The description only restates the optional query behavior and adds no further meaning for orientation or the required access key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: retrieving a random Unsplash photo, with optional query filtering. The word "random" meaningfully distinguishes it from unsplash_search_photos and unsplash_get_photo, 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 phrase "optionally matching a query" implies when the query parameter is useful, but the description does not explicitly say when to choose this over unsplash_search_photos or unsplash_get_photo. Usage is inferable from the name and description, but exclusions and alternatives are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsplash_search_photosCRead-onlyIdempotent
Search Unsplash photos.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to search for | |
| per_page | No | Photos to return (max 30, default 10) | |
| access_key | Yes | Unsplash Access Key | |
| orientation | No | Filter by orientation |
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 nothing beyond that – no mention of required API key/auth, rate limits, or result paging 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?
A single front-loaded sentence with no waste, but it is so terse that it omits useful context an agent would need.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters (including a required access_key) and no output schema, the description should say something about auth requirements, default result count, or what a search returns. It leaves all of that to the schema and 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 description coverage is 100%, so all four parameters including the orientation enum and per_page max are documented in the schema. The description offers no additional parameter meaning, 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?
States a specific verb ('Search') and resource ('Unsplash photos'), which is enough for an agent to know it queries the photo catalog rather than fetching a single asset. It does not, however, distinguish itself from siblings like unsplash_get_photo or unsplash_random_photo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus unsplash_get_photo, unsplash_random_photo, or the many other image tools. The agent must infer that 'search by keyword' is the selecting condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
untappd_beer_activitiesC
Get recent activity/check-ins for a beer on Untappd.
| Name | Required | Description | Default |
|---|---|---|---|
| bid | Yes | ||
| limit | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or side effects. The agent is left to infer that this is a read operation from the name and description.
Agents need to know what a tool does to the world before calling 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 concise sentence, which is appropriate for a simple tool. However, it lacks any additional structure or breakdown of parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema), the description is too minimal. It does not specify what constitutes 'recent activity' (e.g., time frame), whether check-ins are from all users, or what the response contains. The agent may need to infer or experiment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond the parameter names and types. For example, 'limit' is not explained, and 'api_key' is present but not described as an authentication requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource ('recent activity/check-ins for a beer'), which helps differentiate from sibling tools like 'untappd_get_beer' or 'untappd_search_beer'. However, the word 'activities' is somewhat ambiguous and could be more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, 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.
untappd_get_beerBRead-onlyIdempotent
Get details for a specific beer on Untappd.
| Name | Required | Description | Default |
|---|---|---|---|
| bid | Yes | Beer ID | |
| api_key | No |
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 fully covered. The description adds nothing beyond that — no mention of auth handling for api_key, rate limits, or what an unknown bid returns — so it neither contradicts nor enriches 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 front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is part of why other dimensions are under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 rich annotations this is close to adequate, but the unexplained api_key parameter and the absence of any return-content hint leave gaps. An agent knows what to call but not fully how to authenticate or what shape the beer record takes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 50%: 'bid' is documented as 'Beer ID' but 'api_key' has no description at all. The description does not compensate by clarifying that api_key is an authentication credential or that bid must come from a search result, leaving one parameter undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain 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 details for a specific beer') on Untappd, which distinguishes it from the generic search sibling by name alone. It does not explicitly contrast with untappd_search_beer or untappd_beer_activities, 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 phrase 'for a specific beer' implies a lookup-by-identifier use case versus searching, but the description never names untappd_search_beer as the alternative or states when to prefer it. Usage is inferable only from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
untappd_get_breweryCRead-onlyIdempotent
Get details for a brewery on Untappd.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| brewery_id | Yes |
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 no behavioral context beyond a generic 'Get details' statement—nothing about authentication, rate limits, response contents, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately sized for a simple lookup tool, though the information density is low due to missing 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 read-only lookup with rich annotations and no output schema, the description is minimally sufficient to call the tool with a brewery ID. However, it omits parameter semantics, authentication expectations, and return-value hints, leaving clear 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 description coverage is 0% for both parameters. The description does not explain `brewery_id` (type, expected format, source) or `api_key` (authentication requirement). Since the schema provides no descriptions, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get details for a brewery.' It is clear what the tool returns at a high level, but it does not explicitly distinguish itself from the sibling `untappd_search_brewery` or other Untappd 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?
There is no guidance on when to use this tool versus `untappd_search_brewery` or other brewery-related tools. An agent must infer that this is for fetching details after obtaining a brewery ID, but the description never states that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
untappd_search_beerCRead-onlyIdempotent
Search for beers on Untappd.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive, so the safety profile is covered. The description adds nothing beyond that: no mention of the api_key requirement, rate limits, result caps via 'limit', or whether results are paginated — all relevant for a live third-party 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?
A single short sentence with no filler and the key concept front-loaded. It is efficient, though the brevity reflects under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 an undocumented api_key parameter, an unexplained limit, and no output schema, the description is far too thin — an agent cannot tell whether api_key is required per-call or configured, nor what a result record contains (beer ID, brewery, style) to chain into untappd_get_beer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it explains none of the three parameters. 'query' is only weakly implied by 'Search', while 'limit' (result count) and 'api_key' (auth credential) are entirely undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 ('beers') scoped to Untappd, which distinguishes it from untappd_get_beer (single-beer lookup) and untappd_search_brewery by implication. It does not explicitly name those siblings, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus untappd_get_beer or untappd_beer_activities, no mention of prerequisites, and no note that search returns candidate beers whose IDs feed the get_beer tool. The agent must infer the workflow entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
untappd_search_breweryCRead-onlyIdempotent
Search for breweries on Untappd.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| api_key | No |
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 nothing beyond that: no mention of auth requirements, result caps, rate limits, or that results come from a remote third-party index.
Agents need to know what a tool does to the 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 with zero waste, but the brevity reflects under-specification rather than disciplined economy. There is no second sentence doing useful work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world remote API tool with an undocumented api_key parameter, no output schema, and no indication of return shape or match behavior, the description leaves an agent guessing on nearly everything beyond the resource name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does not. It never explains what 'query' accepts (brewery name, partial match, location?) or that 'api_key' is an authentication credential rather than a search filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search for breweries') and names the data source (Untappd), distinguishing it from untappd_search_beer and untappd_beer_activities by resource type. It does not explicitly contrast with untappd_get_brewery, but the search-vs-fetch distinction is implicit in the 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?
No guidance on when to use this search versus untappd_get_brewery or the other Untappd siblings. An agent looking up a brewery by known name/id has no information here to decide whether search is the right entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upc_lookupBRead-onlyIdempotent
Look up a product by UPC/EAN barcode number.
| Name | Required | Description | Default |
|---|---|---|---|
| upc | Yes | UPC or EAN barcode number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile needs no restating. The description adds nothing beyond that: it says nothing about not-found behavior, whether it hits a paid/rate-limited external service, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with no filler. 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 one-parameter read-only lookup this is close to sufficient, but with no output schema the description should at least say what a miss looks like and how it differs from upc_search. Two small additions would make it 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 'upc' parameter, and the description's 'UPC/EAN barcode number' merely restates the schema text. No extra meaning (formatting, hyphens/check digits, fallback behavior) is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('look up a product') and scopes it to exact-identifier lookup by UPC/EAN barcode. That implicitly separates it from the sibling upc_search (keyword search), but the sibling is never named, so the distinction must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The barcode framing implies the case to use it (you already have a barcode number), but there is no explicit when-to-use / when-not-to-use guidance and no pointer to upc_search for name-based lookups. Adequate only by inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upc_searchBRead-onlyIdempotent
Search products by name in the UPC item database.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Product search query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered and the bar is lower. The description confirms the external UPC database (consistent with openWorldHint) but says nothing about result counts, pagination, fuzzy vs exact matching, or empty-result behavior — meaningful for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. Nothing in it is redundant 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 one-parameter read-only search this is close to adequate, and the annotations carry the safety semantics. But with no output schema, the description is the only place an agent could learn what a result looks like (product name, brand, UPC, image) or how it relates to upc_lookup — and it supplies neither.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 there is a single required param, so the schema does the documentation work. The description does add one useful nuance beyond the schema — that the query is a product name rather than a UPC code — but nothing on format, partial matching, or length constraints.
Input schemas describe structure but not intent. Descriptions should explain 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 products by name in the UPC item database"), which is clear on its own. It stops short of differentiating from the sibling upc_lookup, so an agent cannot tell from the description alone whether to search by name or look up by code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no exclusion of the alternative path. The presence of upc_lookup in the sibling list makes the missing routing decision material — a user supplying a 12-digit code versus a product name is exactly the case the description should disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_asana_taskC
Update an existing Asana task.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| notes | No | ||
| due_on | No | YYYY-MM-DD or null to clear | |
| api_key | No | ||
| assignee | No | Assignee GID or null to unassign | |
| task_gid | Yes | Task GID | |
| completed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states 'Update an existing Asana task' without disclosing behavioral details like partial updates, error handling, return values, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but too minimal. It lacks substantive content beyond the basic purpose; every word is earned but more detail is needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema, no annotations), the description is severely incomplete. It fails to cover return format, update behavior, or permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 43%, with 4 undocumented parameters (name, notes, completed, api_key). The description adds no parameter-specific context to compensate for the missing 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 verb 'Update' and the resource 'existing Asana task'. It distinguishes from sibling tools like create_asana_task, get_asana_task, list_asana_tasks, and search_asana_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. It does not mention prerequisites, required permissions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ideaUpdate a Boardroom ideaBIdempotent
Edit an idea's title, description, or status ('proposed', 'voting', 'locked', 'parked', 'rejected'). agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| status | No | ||
| idea_id | Yes | ||
| agent_id | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=true, so safety and repeatability are covered elsewhere. The description adds that only three fields are editable, which is useful mutation scope, but says nothing about permissions, status-transition rules, or what happens to omitted fields. Adequate but thin for a mutation 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?
Two short sentences, front-loaded with the action and the mutable fields, with no filler. The parenthetical status list is slightly redundant against the schema enum, but it costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation tool with no output schema and no annotation guidance beyond safety hints, the definition covers the essentials but omits transition validity, permission requirements and whether partial updates preserve untouched fields. An agent could call it, but may not call it correctly in edge 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 coverage is 0%, so the description does real work by enumerating the editable fields (title, description, status) and flagging agent_id as required. However, idea_id is never explained, and the status values it lists merely duplicate the schema enum, so half the parameters remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Edit') and resource ('an idea') and names the three mutable fields, which lets an agent separate it from create_idea, vote_on_idea, promote_idea_to_todo and list_ideas without inspecting schemas. It stops short of explicitly naming those siblings, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus create_idea, vote_on_idea or promote_idea_to_todo, and no preconditions for legal status transitions. The only usage-like note, 'agent_id required', restates a schema requirement rather than guiding selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_laneUpdate an Operations laneAIdempotent
Record what you found: traffic light, priority, a short comment, and context_doc - the markdown file holding the longer story, so the next seat picking up a stale lane reads it instead of starting cold. Absent fields are left untouched, so updating one never blanks another seat's note. Leave light alone rather than saying green about something you did not check.
| Name | Required | Description | Default |
|---|---|---|---|
| lane | Yes | Ref (AP-01) or lane id (boardroom). | |
| light | No | ||
| comment | No | Short. Empty string clears it. | |
| agent_id | Yes | ||
| priority | No | ||
| context_doc | No | Path or filename of the markdown holding the longer story. Empty string clears it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as non-read-only, non-destructive, and idempotent. The description adds important non-obvious behavior: absent fields are left untouched, so updating one field never blanks another seat's note. That directly supports safe partial updates.
Agents need to know what a tool does to the world before calling 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 fields being recorded and is only three sentences long. Each sentence adds useful information: what to record, partial-update safety, and how to handle the light field honestly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 mutation tool with annotations and no output schema, the description covers the important operational behavior: partial updates, field intent, and the context_doc handoff purpose. Required fields and lane format are left to the schema, which is reasonable, but agent_id and priority semantics remain lightly 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 50%, so the description needs to add meaning. It does so for the main fields: context_doc is explained as the markdown holding the longer story, comment is described as short, and light gets semantic guidance about not marking green without checking. It does not explain priority range or agent_id, but it meaningfully compensates for much of the schema 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 clearly identifies the fields being recorded on an Operations lane: traffic light, priority, comment, and context_doc. It does not explicitly distinguish the tool from siblings such as claim_lane, release_lane, or list_lanes, so it is clear but lacks direct 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?
Usage is implied: record findings so the next seat inherits context. The description also gives a useful light-specific caution, but it does not say when to choose update_lane over claim_lane, release_lane, list_lanes, or other lane-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_monday_itemC
Update a column value on a Monday.com item.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | New value (string or JSON) | |
| api_key | No | ||
| item_id | Yes | ||
| board_id | Yes | ||
| column_id | Yes | Column ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fails to disclose behavioral traits such as side effects, error handling, or authentication requirements. It only implies mutation via 'Update'.
Agents need to know what a tool does to the world before calling 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 with a single sentence, but it lacks structure and omits critical details, making it insufficiently informative despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, annotations, and the complexity of a mutation tool, the description is severely incomplete, failing to explain return values, error cases, or prerequisites.
Complex tools with many parameters or behaviors need more documentation. 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 only two of five parameters with descriptions, and the tool description adds no extra meaning beyond the schema, leaving key parameters like board_id and api_key unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Update) and resource (column value on a Monday.com item), distinguishing it from sibling tools like create_monday_item and list_monday_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance is provided; the description does not indicate when to use this tool over alternatives or mention prerequisites like needing the column ID from board metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_todoUpdate a Boardroom todoAIdempotent
Update a todo's title, description, priority, status, assignee, or due date. Use when scope changes, ownership shifts, or you move it between kanban columns ('open', 'in_progress', 'done', 'dropped'). agent_id required for attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| due_at | No | Optional due date in ISO format. A date-only value like 2026-06-15 means due by the end of that day. Pass empty string to clear. | |
| status | No | ||
| todo_id | Yes | UUID of the todo to update | |
| agent_id | Yes | Stable identifier for the calling agent. | |
| priority | No | ||
| description | No | ||
| assigned_to_agent_id | No | Pass empty string to unassign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent=true, destructive=false, readOnly=false, so the safety profile is covered. The description adds that agent_id is required for attribution and implies partial-update semantics by listing fields with 'or', but never states explicitly that unmentioned fields are untouched or what the call returns. Adequate, 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?
Three short sentences, front-loaded with the fields being mutated, then the usage trigger, then the required-param note. No filler; only a mild redundancy between the field list and the kanban-column parenthetical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with no output schema, the description covers fields and triggers but omits return behavior and partial-update guarantees. Annotations carry the safety signal, so the gaps are moderate rather than disqualifying.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 50% (title, status, priority, description are undescribed), and the description compensates by enumerating every mutable field and mapping status values to kanban columns. It also explains agent_id's purpose (attribution), which the schema only labels as a 'stable identifier'. It does not repeat the schema's documented empty-string clearing behavior for due_at/assignee.
Input schemas describe structure but not intent. Descriptions should explain 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 (update) and resource (todo) and enumerates the mutable fields, so an agent immediately knows the operation. It does not distinguish itself from siblings that also change status (complete_todo, drop_todo), which is a missed opportunity given status='done'/'dropped' are valid here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 triggers: scope changes, ownership shifts, or moving between kanban columns. However it never says when NOT to use it — e.g. whether marking work done should go through complete_todo instead of update_todo with status='done' — leaving a real routing ambiguity with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_kafka_list_topicsC
List all topics in an Upstash Kafka cluster.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| api_key | Yes | ||
| cluster_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, placing full burden on the description. The description only states 'List all topics', but does not confirm it is read-only, disclose permissions, rate limits, or behavior on empty clusters. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling 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, efficiently stating purpose. However, it omits essential details; every sentence should earn its place, and while concise, it does not add value beyond purpose. Still, it is appropriately brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3 required parameters, no output schema, and no annotations, the description fails to provide adequate context. The agent lacks understanding of inputs, outputs, and operational behavior, making the tool nearly unusable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema only provides names and types. The description does not explain any parameters (api_key, email, cluster_id), leaving their roles and formats entirely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List all topics in an Upstash Kafka cluster', which specifies the verb (list), resource (topics), and scope (cluster). Among sibling tools like upstash_kafka_produce, this uniquely identifies its 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 provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. An agent has no context for deciding between this and other Upstash tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_kafka_produceC
Produce messages to an Upstash Kafka topic.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| topic | Yes | ||
| api_key | Yes | ||
| messages | Yes | JSON array of message objects [{value: '...'}] | |
| cluster_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states 'Produce messages', omitting critical behavioral traits such as idempotency, error handling, authentication requirements (implied by api_key), or impact on existing messages.
Agents need to know what a tool does to the world before calling 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, which is concise but too sparse. It lacks any structural elements like sections or examples that would aid an AI 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?
Given 5 required parameters and no output schema, the description fails to explain how to obtain critical inputs (e.g., api_key, cluster_id) or what the tool returns on success or failure. The tool is under-specified for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%; only the 'messages' parameter has an inline description. The other four required parameters (api_key, email, cluster_id, topic) lack explanation of their purpose or format beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Produce messages' and identifies the resource 'Upstash Kafka topic', clearly distinguishing this tool from siblings like 'upstash_kafka_list_topics' which lists topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives. It does not mention contexts like prerequisites, batching, or when to avoid producing messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_redis_delC
Delete a key from an Upstash Redis database.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| db_id | Yes | ||
| Yes | |||
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provide safety cues. The description omits that deletion is irreversible, potential side effects, or required permissions. For a destructive operation, more disclosure is needed.
Agents need to know what a tool does to the world before calling 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 short sentence with no redundancy, but it is too minimal and lacks necessary context. It earns its place but fails to inform adequately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not mention what the tool returns (e.g., confirmation, count). It also lacks information on error conditions, making it incomplete for a database delete 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?
Schema coverage is 0% and the description only mentions 'key' generically. It adds no meaning to the four parameters (api_key, email, db_id, key), leaving them entirely self-documenting via 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 ('Delete a key'), resource ('a key'), and target ('Upstash Redis database'), which distinguishes it from siblings like get and set operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives (e.g., set, incr), no context on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_redis_getB
Get the value of a key from an Upstash Redis database.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key to retrieve | |
| db_id | Yes | Redis database ID | |
| Yes | Upstash account email | ||
| api_key | Yes | Upstash API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose key behaviors like whether it returns nil for missing keys, idempotency, or error conditions. Only the basic operation is stated.
Agents need to know what a tool does to the world before calling 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 fluff. It efficiently communicates the core action, though more context about parameters could be included without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose but omits important behavioral details like missing key handling and authentication context (though parameters handle the latter). It is minimally complete for a simple get 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?
Schema coverage is 100%, and the description does not add any meaning beyond the parameter names and types already documented in the schema. 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 states the action ('Get'), the resource ('the value of a key'), and the scope ('from an Upstash Redis database'). It distinguishes from siblings like upstash_redis_set and upstash_redis_del by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as upstash_redis_list_keys for enumeration or other Redis operations. No context on prerequisites or excluded scenarios provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_redis_incrC
Increment a numeric key in an Upstash Redis database.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| db_id | Yes | ||
| Yes | |||
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states it increments, implying mutation, but does not disclose idempotency, error handling, or return value.
Agents need to know what a tool does to the 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 action and resource, 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?
With four required parameters, no output schema, and no annotations, the description fails to provide sufficient context for correct usage. It is minimal and incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four required parameters (api_key, email, db_id, key). It adds no 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 clearly states the tool increments a numeric key in an Upstash Redis database, using a specific verb ('increment') and resource ('numeric key'), which distinguishes it from sibling tools like get, set, and del.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when or when not to use this tool versus alternatives like set or del. The description lacks context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_redis_list_keysB
List keys in an Upstash Redis database matching a pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| db_id | Yes | ||
| Yes | |||
| api_key | Yes | ||
| pattern | No | Key pattern (default *) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks disclosure of read-only nature, authentication requirements, rate limits, pagination, or result limits. The vague 'matching a pattern' does not specify return behavior or constraints.
Agents need to know what a tool does to the 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 with no redundancy. Efficiently conveys the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description does not mention return value format (e.g., list of key names, count, pagination). Lacks information about authentication parameters. Insufficient for an agent to fully understand tool 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 only 25% (pattern parameter has description). Description adds no explanation for api_key, email, or db_id, leaving the agent to infer their roles. Does not compensate for the sparse 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 clearly states the verb 'list' and resource 'keys in an Upstash Redis database' with optional pattern matching. It effectively distinguishes from sibling Upstash Redis tools like get, set, del which handle individual keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus other Upstash Redis tools or alternatives. Does not mention when not to use it or provide context for pattern selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upstash_redis_setC
Set a key-value pair in an Upstash Redis database.
| Name | Required | Description | Default |
|---|---|---|---|
| ex | No | Expiry in seconds (optional) | |
| key | Yes | ||
| db_id | Yes | ||
| Yes | |||
| value | Yes | Value to store | |
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It only states the action without disclosing side effects (e.g., overwriting existing keys, removing TTL), return value, or authentication details. This is insufficient for a write 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 concise at 9 words, but it is too minimal for a tool with 6 parameters and no annotations. While it is front-loaded with the action, it does not earn its place by providing sufficient 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?
Given the tool's complexity (6 params, write operation, no output schema, no annotations, low schema coverage), the description is severely incomplete. It omits return value, constraints, and disambiguation from 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?
With only 33% schema description coverage, the description fails to explain the roles of parameters like api_key, email, db_id, and key. It adds no value beyond the schema, and the schema itself lacks descriptions for most 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 action ('Set a key-value pair') and the resource ('Upstash Redis database'), effectively distinguishing it from sibling tools like upstash_redis_get, upstash_redis_del, upstash_redis_incr, and upstash_redis_list_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, no mention of optional parameters like 'ex' for expiry, no restrictions on value types, and no context about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uptimerobot_get_accountBRead-onlyIdempotent
Get UptimeRobot account details and limits.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | UptimeRobot API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only that the payload includes account details plus limits; it says nothing about rate limits, auth failure behavior, or response shape, which 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?
A single front-loaded sentence with no filler. It is efficient, though it is also the bare minimum and leaves no room for routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read-only account lookup with full annotation coverage and no output schema, this is nearly sufficient. However, it doesn't hint at what 'limits' means (monitor/plan quotas) or the response structure, leaving a small gap an agent calling it cold would want filled.
Complex tools with many parameters or behaviors need more documentation. 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 a single api_key parameter with 100% schema description coverage, so the schema carries parameter documentation. The description adds nothing about key format or scope, which is the expected baseline for a one-param 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?
States a specific verb and resource ('Get UptimeRobot account details and limits'), so an agent immediately knows what it retrieves. It doesn't explicitly distinguish itself from the sibling uptimerobot_get_monitors, though the resource noun makes the split fairly obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus uptimerobot_get_monitors or any other sibling, and no mention of prerequisites beyond what the schema implies. The agent must infer that this is the 'who am I / what are my plan limits' call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uptimerobot_get_monitorsARead-onlyIdempotent
List UptimeRobot monitors (signals when any are DOWN).
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter monitors by name or URL | |
| api_key | Yes | UptimeRobot API key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld behavior, so the safety profile is covered. The description adds useful behavioral context by saying results signal when monitors are DOWN, but it omits pagination, return shape, and any rate-limit or auth nuances beyond the schema-covered api_key.
Agents need to know what a tool does to the 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, and the parenthetical adds the key behavioral signal with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with fully documented parameters and annotations covering safety semantics, this is nearly complete. Only return format and pagination details are absent, but the description at least signals that DOWN statuses are surfaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 both the optional 'search' filter and required 'api_key' documented in the schema. The description adds no parameter syntax, examples, or filtering details beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('UptimeRobot monitors') and adds 'signals when any are DOWN' so an agent knows the tool returns monitor statuses. It does not explicitly name the sibling uptimerobot_get_account or explain the boundary, 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 parenthetical implies the tool is useful for spotting DOWN monitors, but there is no explicit when-to-use/when-not guidance or named alternative. Usage must be inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urban_defineB
Look up slang definitions on Urban Dictionary.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Slang term to define |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup but does not disclose side effects, authentication needs, rate limits, or return behavior. The single sentence adds little beyond the core purpose.
Agents need to know what a tool does to the world before calling 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 zero wasted words. It is appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description is nearly complete: it identifies the source and action. It could mention the return format or that it returns definitions for the given term, but the omission 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 description coverage is 100% and the only parameter 'term' is documented in the schema as 'Slang term to define'. The description adds no further meaning about the parameter, 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 ('Look up') and resource ('slang definitions on Urban Dictionary'), making the tool's purpose clear. However, it does not explicitly distinguish this term-based lookup from the sibling tool urban_random or from generic dictionary 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 no guidance on when to use this tool versus alternatives such as urban_random or dictionary_lookup. It implies usage through the phrase 'Look up slang definitions', but provides no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urban_randomBRead-onlyIdempotent
Get random Urban Dictionary definitions.
| 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 safety is covered. However, the description adds nothing beyond the name, and it doesn't explain what a random result contains or how randomness is scoped, so it provides no context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized for a zero-argument tool, though it is so terse that it carries little extra 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 tool is simple (0 params, annotations present, no output schema), so this short description is nearly sufficient. What it leaves unstated is the shape of a returned definition (word, meaning, example, author) and whether repeated calls can return the same entry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This zero-parameter tool sets a baseline score of 4; there are no parameter semantics that the description needs to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb ("Get") plus a specific resource with a randomness qualifier ("random Urban Dictionary definitions") makes the intent unambiguous. It does not distinguish itself from the closely related sibling urban_define, which looks up a specific term, 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?
There is no guidance on when to pick this over urban_define or when a random definition is preferable to a targeted lookup. Usage has to be inferred entirely from the word "random".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_decodeARead-onlyIdempotent
Decode a URL-encoded (percent-encoded) string.
| Name | Required | Description | Default |
|---|---|---|---|
| encoded | Yes | URL-encoded string to decode. |
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 by structured data. The description adds nothing beyond that — no mention of error behavior on invalid percent sequences, encoding assumptions (UTF-8 vs latin-1), or output format — which is the main behavioral gap for a decode utility.
Agents need to know what a tool does to the 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 short sentence with the core verb front-loaded and no filler. There is nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pure function with full annotation coverage, complete schema documentation and no output schema, the description is nearly sufficient. The only omission is expected behavior on invalid or partially-encoded input, a minor gap for this tool class.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 `encoded` parameter is already documented as 'URL-encoded string to decode.' The description restates the same idea and adds no syntax, format, or edge-case detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Decode') and resource ('URL-encoded string'), plus a clarifying synonym '(percent-encoded)' so the agent knows exactly what transformation happens. This is unambiguous against the sibling `url_encode`, which performs the inverse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 strongly implied by the name/description but never stated: there is no guidance on when to choose this over `url_encode`, what happens on malformed input, or whether '+' is treated as space. For a trivial, single-purpose utility this is acceptable, but it leaves the agent to infer everything.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_encodeBRead-onlyIdempotent
URL-encode text (percent-encoding for query strings).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to URL-encode. |
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 and repeatability are covered structurally. The description adds only that percent-encoding is used; it does not say how spaces or reserved characters are handled, which is the one behavior an agent might still care about.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the action and resource, with the qualifier in parentheses. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-argument pure transformation with full annotation coverage and a documented parameter, the definition is sufficient to call the tool correctly. The only residual gap is encoding specifics such as space handling, which is minor for this class of utility.
Complex tools with many parameters or behaviors need more documentation. 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 a single parameter with 100% schema description coverage ('Text to URL-encode.'), so the schema carries the load and the baseline of 3 applies. The description adds no format or example 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 and resource ('URL-encode text') and the parenthetical 'percent-encoding for query strings' disambiguates which encoding scheme is applied. It does not name the sibling url_decode, but the name/description pair is self-distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 query strings' hints at intended context but there is no explicit when-to-use, no when-not, and no reference to url_decode or base64_encode as alternatives. An agent must infer usage 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.
urlhaus_lookup_urlBRead-onlyIdempotent
Check if a URL is listed as a malware distribution site in the URLhaus database.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds no extra context such as rate limits, whether a negative result is authoritative, or what the response contains.
Agents need to know what a tool does to the 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 wastes no words. Nothing is padded, though it could have used the remaining space for a routing hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-param read tool with no output schema, the definition is workable but leaves the return shape (verdict only vs full threat details) and negative-result semantics unstated, which matters for a 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% and there is only one parameter, so the schema already documents 'url' fully. The description adds no format expectations (scheme required, hostname vs full URL) 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?
States a specific verb (check) and resource (URL against the URLhaus malware-distribution dataset), so an agent immediately knows what it does. It does not distinguish itself from related siblings such as virustotal_url_report, urlscan_search, or urlhaus_recent, 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 mention of the URLhaus database implies the context (threat-intel blocklist check) but never says when to use this instead of virustotal_url_report or urlscan, and offers no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_recentARead-onlyIdempotent
Get recent malware URLs added to the URLhaus database.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds only the 'recent additions' framing and says nothing about the time window, result count, pagination, or rate limits, so added value 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?
A single tight sentence that front-loads the verb and resource with zero filler. Nothing is padded or 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 parameters, no output schema, and full annotation coverage, the description is largely sufficient for correct invocation. It could be slightly more complete by noting the recency window or approximate result size, but that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to elaborate; baseline 4 applies. No misleading or missing parameter context exists.
Input schemas describe structure but not intent. Descriptions should explain 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') and resource ('recent malware URLs added to the URLhaus database'), so an agent understands exactly what it returns. It doesn't explicitly contrast with the sibling urlhaus_lookup_url, but the 'recent' framing implicitly differentiates a listing from a 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?
Usage is only implied: 'recent' suggests a feed-style listing versus the lookup sibling, but there is no explicit when-to-use or when-not guidance and no mention of alternatives such as urlhaus_lookup_url for a specific URL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlscan_get_resultCRead-onlyIdempotent
Get the result of a urlscan.io scan by UUID.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond that: it does not say what happens if the scan is still running, whether results are eventual/polled, or that authentication is required for some scans.
Agents need to know what a tool does to the 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 with no filler or repetition. It is efficient but too terse to carry the missing usage and parameter 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 read tool with no output schema and zero parameter documentation, the description should explain the UUID source, scan-pending behavior, and the role of api_key. None of that is present, so an agent calling it is guessing at the authentication and readiness model.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden, yet it only implies the uuid meaning via 'by UUID'. The second parameter, api_key, is never explained (authentication requirement, when it is needed versus optional), leaving a real 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?
States a specific verb and resource ('Get the result of a urlscan.io scan') and the lookup key ('by UUID'), which is enough for an agent to know what it retrieves. It does not differentiate from the sibling tools urlscan_search or urlscan_scan, so a caller must infer whether this is the right entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus urlscan_search or urlscan_scan, and no mention that the UUID typically comes from a prior urlscan_scan submission. The agent must infer prerequisites such as the scan having been submitted and possibly needing time to finish.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlscan_scanC
Submit a URL for scanning on urlscan.io.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| api_key | No | ||
| visibility | No | public, private, or unlisted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only says 'submit for scanning'. It does not disclose scanning duration, impact on the URL, rate limits, or response behavior (e.g., whether it returns immediately or asynchronously).
Agents need to know what a tool does to the world before calling 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 of 7 words, which is very concise. While clear, it could benefit from slightly more structure, such as mentioning the required parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 insufficient for a tool with 3 parameters, no output schema, and no annotations. It does not explain return values, usage of api_key, or the meaning of visibility options beyond what the schema provides.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), and the description adds no extra meaning beyond the schema. The 'visibility' parameter is already documented in the schema, while 'url' and 'api_key' have no description in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (submit a URL) and the service (urlscan.io), which is specific and distinguishable from sibling tools like urlscan_get_result and urlscan_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?
No guidance is provided on when to use this tool versus alternatives (e.g., urlscan_get_result to retrieve results). There is no mention of prerequisites or typical workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlscan_searchCRead-onlyIdempotent
Search urlscan.io scan results.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| size | No | ||
| api_key | No |
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 fully covered. The description adds no behavioral context beyond that — nothing about anonymous vs api_key access, result caps, pagination, or what a 'size' limit does.
Agents need to know what a tool does to the 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 with zero waste, but it is undersized for a search tool whose query language is non-obvious. Conciseness is achieved at the cost of the guidance an agent actually 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?
With no output schema and 0% parameter coverage, the description should explain query syntax, result shape/size limits, and API key behavior; it explains none of them. Annotations cover safety but not the operational details an agent needs to call this 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 0%, so the description carries the full burden for all three parameters and fails: q's query syntax (urlscan.io uses Lucene-style field queries), size's default/maximum, and the api_key's role are all unexplained. Only the word 'search' implicitly hints that q is a query string.
Input schemas describe structure but not intent. Descriptions should explain 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 (urlscan.io scan results), so an agent knows this is the retrieval side of the urlscan family. It does not explicitly position itself against siblings like urlscan_scan (submission) or urlscan_get_result (single result fetch), leaving that differentiation to the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus urlscan_scan or urlscan_get_result, and no mention of prerequisites (API key needed for higher quotas, rate limits, pagination limits). The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
useless_fact_randomBRead-onlyIdempotent
Get a random useless fact.
| 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, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the behavioral detail that results are 'random' (varying), which is not captured by annotations. It does not explain return format, rate limits, or anything else 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, front-loaded sentence with zero wasted words. It is appropriately sized for a trivial no-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering the safety profile, the description is minimally adequate. However, it fails to distinguish this tool from the sibling 'useless_fact_today' or to clarify the expected return (e.g., a single fact string), which could lead an agent to choose the wrong 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, so there are no parameter semantics to document. The baseline score for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'random useless fact.' This is clear enough for an agent to understand what the tool does. However, it does not differentiate from the sibling tool 'useless_fact_today' or clarify the distinction between a random fact and today's fact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor does it mention any prerequisites or exclusions. The sibling 'useless_fact_today' is a direct alternative, but the description is silent on this choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
useless_fact_todayARead-onlyIdempotent
Get today's useless fact of the day.
| 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, destructiveHint false, and openWorldHint, so safety and repeat-call behavior are covered. The description adds nothing beyond that — it doesn't say what timezone defines 'today', whether the fact changes at midnight, or where the fact comes from. Some added value, but only marginal over structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and scope. It is slightly redundant ('useless fact' restating the tool name plus 'fact of the day'), but there is no filler or wasted 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?
With no parameters, no output schema, and full annotation coverage, only a bare minimum of description is needed. Still, the definition omits what 'today' means (timezone/rotation) and never points at useless_fact_random as the alternative, leaving a small but real routing 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 tool takes zero parameters, so the schema baseline for this dimension is 4. There is no argument semantics the description needs to compensate 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?
States a specific verb ('Get') and resource ('useless fact of the day'), and the word 'today's' implies a day-scoped selection that separates it from a random-fact tool. It never names the obvious sibling useless_fact_random, so the differentiation must be inferred rather than read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not statement. The time qualifier 'today's' implicitly signals a stable daily fact versus a random draw, but the agent is left to connect that to useless_fact_random on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_earthquake_detailC
Get details for a specific USGS earthquake event.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only says 'Get details' without mentioning response format, data freshness, rate limits, or any side effects. This is insufficient for informed use.
Agents need to know what a tool does to the world before calling 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, which is concise but omits essential details about parameters and return values. It is underspecified rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 0% parameter coverage, the description should detail what 'details' include and how the tool fits among siblings. It fails to provide enough context for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter event_id has 0% schema coverage and the description does not explain its purpose, format, or how to obtain it. The tool cannot be used correctly without 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 states the tool retrieves details for a specific USGS earthquake event, using the verb 'Get' and specifying the resource. It distinguishes from sibling tools like usgs_earthquakes_by_region and usgs_recent_earthquakes, which list multiple events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when a specific event ID is known, but does not explicitly state when to choose this over siblings or provide exclusions. It lacks guidance on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_earthquakes_by_regionARead-onlyIdempotent
Get recent USGS earthquakes within a radius of a point (latitude/longitude).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Centre latitude | |
| lon | Yes | Centre longitude | |
| limit | No | Max results (default 20, max 500) | |
| radius | No | Search radius in km (default 500) | |
| min_magnitude | No | Minimum magnitude |
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 only the word 'recent' as temporal scope, without defining the time window, result ordering, or upstream rate limits, so it contributes modestly 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?
A single sentence with no filler, and the resource plus the spatial scoping constraint are front-loaded. Nothing redundant or 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?
With no output schema, the description should say something about what comes back (event fields, ordering by time or magnitude) and what 'recent' means. For a five-parameter query tool, those omissions leave a real gap, though annotations and the fully described schema cover the mechanical call details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (lat, lon, radius, limit, min_magnitude) carries its own description with defaults and max values. The description only restates that lat/lon and radius are involved, adding no format, unit, or boundary detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Get), resource (recent USGS earthquakes), and scope (within a radius of a point) are all stated in one sentence. It implicitly separates itself from a plain 'recent earthquakes' feed by its spatial filter, but it does not name the sibling usgs_recent_earthquakes or usgs_earthquake_detail to make the distinction 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 'within a radius of a point' implies the usage condition (agent has coordinates and wants nearby events), but there is no explicit when-to-use/when-not guidance and no mention of choosing this over usgs_recent_earthquakes. Usage must be inferred from the scoping phrase alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_recent_earthquakesCRead-onlyIdempotent
Get recent earthquakes from USGS.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| period | No | hour, day, week, month | |
| minmagnitude | No |
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 covered. The description adds no behavioral context beyond the annotations, such as data freshness, update cadence, rate limits, or default result size.
Agents need to know what a tool does to the world before calling 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 wasted text. It is appropriately concise, though its brevity contributes to the missing usage and parameter context scored elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no required parameters and no output schema, the description does not explain what 'recent' means, how limit and minmagnitude affect results, or what the response contains. It is too thin to let an agent invoke the tool confidently without inspecting 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 coverage is only 33%: period has an enum description, but limit and minmagnitude are undocumented beyond their types. The description provides no parameter meaning at all, so it fails to compensate for the low schema coverage and leaves defaults and units unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: get recent earthquakes, with the source USGS. It does not distinguish this tool from siblings such as usgs_earthquake_detail or usgs_earthquakes_by_region, so an agent cannot tell from the description alone when this broad recent-quakes feed is preferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus usgs_earthquakes_by_region or usgs_earthquake_detail. The word 'recent' implies a current-events use case, but 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.
uuid_generateB
Generate one or more cryptographically random UUID v4 strings.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of UUIDs (1-100, default 1). | |
| uppercase | No | Output in uppercase (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, but the tool is a stateless pure generator so the risk surface is small. It does add real value by specifying 'cryptographically random' and 'v4' rather than leaving randomness quality unspecified. It omits output formatting details beyond the uppercase flag, so it is adequate rather than 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?
A single tight sentence with zero filler. The essential qualifiers (count-agnostic, cryptographic, v4) are front-loaded and the sentence is exactly as long as it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-required-param generator with a fully described schema and no output schema, this is nearly complete; the agent needs nothing more to call it. The one gap is the absence of any tie-break against the 'random_uuid' sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: count (1-100, default 1) and uppercase (default false) are fully documented in the schema. The description only implies multiplicity with 'one or more' and adds no syntax or range detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with key qualifiers: 'Generate', 'UUID v4', 'cryptographically random'. An agent knows exactly what it produces. However, it never distinguishes itself from the sibling 'random_uuid' (or 'httpbin_uuid'), which is the main selection ambiguity for this 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?
No when-to-use guidance and no mention of alternatives, despite 'random_uuid' and 'httpbin_uuid' existing as close siblings. The agent gets the behavior but not the routing criteria that would let it choose this over the alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uxpass_register_packA
Register a UXPass pack from a YAML string. Validates the basic shape (required keys: name, url, viewports, themes, hats, synthesiser, budgets, remediation) and persists the pack so uxpass_run can reference it by name. Returns the assigned pack_id.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_yaml | Yes | Full pack definition as a YAML string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses validation, persistence, and return value. In absence of annotations, description is fairly transparent, though could mention overwrite behavior or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with action, each sentence adds essential information. No unnecessary 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 single-parameter tool with no output schema, the description adequately explains input, validation, persistence, and return, making it complete for 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?
Schema already describes the parameter (pack_yaml) with 100% coverage. Description adds context about validation of required keys, which adds 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?
Clearly states the action (register), resource (UXPass pack), input format (YAML string), validation (basic shape with required keys), and outcome (persists, returns pack_id). Distinguishes from siblings like uxpass_run and uxpass_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates usage after which uxpass_run can be called, but lacks explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uxpass_report_htmlB
Get the HTML report for a UXPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by uxpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'Get the HTML report'. It omits important behavioral details like whether the report is generated synchronously, if it requires a successful run, or the format of the output (text, file, etc.).
Agents need to know what a tool does to the 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 is concise and directly states the tool's purpose without extraneous information. However, it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 presence of multiple report format siblings and no annotations, this description is too minimal. It does not explain output format, prerequisites, or error conditions, leaving gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with run_id described as 'The run id returned by uxpass_run'. The description adds no further meaning beyond what the schema already provides, earning 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 clearly states the verb 'Get' and the specific resource 'HTML report for a UXPass run'. It effectively distinguishes from sibling tools like uxpass_report_json and uxpass_report_md by specifying the output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., HTML vs JSON vs Markdown reports). No context about prerequisites such as needing a completed run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uxpass_report_jsonA
Get the JSON report for a UXPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by uxpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states 'Get' which implies a read operation, but it does not disclose whether the tool has side effects, requires specific authentication, or what happens on invalid run_id. Minimal 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 a single sentence of seven words, concise and front-loaded with the key information: what it does and for what context. 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?
The description covers the basic purpose and required input, but it lacks context about the relationship to sibling tools (e.g., uxpass_run), error handling, or output format. Given no output schema, some guidance on the return structure 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?
Schema coverage is 100% with an adequate description of run_id. The tool description adds no new meaning beyond the schema; it merely repeats the purpose. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'JSON report', and the context 'for a UXPass run', distinguishing it from sibling report tools that output other formats like HTML or Markdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives (e.g., uxpass_report_html, uxpass_report_md). Usage is implied but not clarified, leaving the agent to infer from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uxpass_report_mdA
Get the Markdown report for a UXPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by uxpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no behavioral details such as whether the report is cached, requires authentication, or has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, front-loading the purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameter and no output schema, the description is minimally adequate but could explain what the Markdown report contains or how to interpret 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 coverage is 100% and the parameter description is adequate. The tool description adds no additional 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 the action ('Get the Markdown report') and the resource ('for a UXPass run'), with 'Markdown' differentiating it from sibling tools that return HTML or JSON reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 retrieving the Markdown version of a UXPass report, but does not explicitly say when to choose Markdown over HTML or JSON reports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uxpass_runA
Run a UX journey/usability check synchronously against a URL. Executes the deterministic uxpass-core check set and returns the run id, status, UX Score, summary, and uxpass_receipt_v1. UIPass now owns visual/interface polish; this legacy UXPass runner still calls out when screenshots or mobile/desktop proof are missing for visible surfaces. Pass either url (a one-off check) or pack_name (resolves the registered pack's url). The hats parameter is accepted for forward compatibility but is currently ignored; LLM hats land in a later chunk. Response includes was_duplicate: boolean indicating whether the row was already present (idempotent retry).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Target URL for a one-off run (takes precedence over pack_name) | |
| hats | No | Reserved for future use. Currently ignored; the deterministic runner evaluates the full uxpass-core check set on every run. | |
| task_id | No | Client-generated idempotency key (UUIDv5 from thread_id + prompt_hash + time_bucket recommended). Required for safe retry. If omitted, the server creates a fresh row and you lose retry safety; sending the same task_id twice returns the original run_id with was_duplicate=true instead of creating a duplicate. | |
| pack_name | No | Name of a registered UXPass pack; the pack's url is used as the target | |
| target_sha | No | Optional PR or commit SHA for receipt staleness checks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: synchronous execution, the returned fields, the was_duplicate idempotency behavior, the retry-safety role of task_id, and the fact that hats is silently ignored for forward compatibility. Auth requirements and rate limits are still unstated, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and keeps each sentence functional (scope, precedence, ignored param, idempotency), though a couple of clauses about UIPass ownership and 'LLM hats land in a later chunk' are more lore than 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?
Since no output schema exists, the description usefully enumerates the response (run id, status, UX Score, summary, uxpass_receipt_v1, was_duplicate) and covers both target inputs and idempotency. Complete enough to call correctly, with only auth/limits and receipt structure left 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?
Schema coverage is 100%, so the schema already documents url precedence, the ignored hats array, the task_id idempotency key and target_sha. The description restates the same semantics rather than adding new detail, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Run a UX journey/usability check synchronously against a URL') and names the deterministic uxpass-core check set and the returned artifacts. It is readily distinguishable from uxpass_status, uxpass_report_* and uxpass_register_pack without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the url-vs-pack_name selection rule and clarifies the tool's scope relative to UIPass ('UIPass now owns visual/interface polish; this legacy runner still calls out missing screenshot/mobile proof'). It does not explicitly point to sibling tools such as uxpass_status for polling, so it stops short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uxpass_statusB
Fetch the status, UX Score, summary, and uxpass_receipt_v1 for a UXPass run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id returned by uxpass_run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, and it does disclose what the call returns (status, UX Score, summary, receipt v1), which is useful given there is no output schema. However, it says nothing about whether the run must be finished, what happens on an unknown run_id, or read-only 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?
A single sentence with the verb and the returned fields front-loaded, and zero wasted words. Nothing could be trimmed 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?
The description enumerates the return payload, which matters because there is no output schema, but for a status/polling tool it omits state semantics (pending vs. complete), error behavior, and any relationship to the report siblings. Adequate but with clear 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 description coverage is 100% and the single run_id parameter is documented as coming from uxpass_run. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies for a one-parameter tool whose schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetch) and a specific resource set (status, UX Score, summary, and uxpass_receipt_v1 for a UXPass run). An agent can distinguish it from uxpass_run or the report siblings, 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?
There is no stated when-to-use, no prerequisites (e.g., 'call after uxpass_run has completed'), and no routing to sibling tools such as uxpass_report_json for richer output. The only contextual hint, that run_id comes from uxpass_run, lives in the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
variance_calcBRead-onlyIdempotent
Calculate population/sample variance, standard deviation, median, range, and coefficient of variation.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of numeric values (at least 2). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered by structured data rather than prose. The description adds value only by listing the returned metrics (partially compensating for the missing output schema); it says nothing about how population vs. sample is chosen or what happens with malformed input.
Agents need to know what a tool does to the 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 short sentence with zero waste, front-loading the verb and the output set. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the enumeration of returned statistics is the right thing to include, and it is present. But the description says 'population/sample variance' while the schema exposes no mode selector, leaving the agent unsure whether both are returned or which one applies; input validation behavior is also unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 single 'values' parameter is already documented including the at-least-2 constraint. The description never mentions the input shape at all, so it adds nothing 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?
The description names a specific verb ('Calculate') and enumerates the exact statistics produced (variance, standard deviation, median, range, coefficient of variation), so the agent knows precisely what comes back. It does not, however, distinguish this from heavily overlapping siblings such as descriptive_stats, statistics_calc, or percentile_calc, which likely cover much of the same ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over descriptive_stats/statistics_calc, and no prerequisites or exclusions are stated. The only implied usage is 'you have an array of numbers' — everything else 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.
vatcomply_countriesARead-onlyIdempotent
List EU member states with country name and code.
| 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, destructiveHint=false and openWorldHint, so the safety/determinism profile is fully covered. The description adds that the result set is the static EU membership list with name and code fields, which is useful context but not deep 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?
One short sentence, front-loaded with the verb and scope, with zero filler. Nothing is redundant or delayed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, annotation-covered lookup with no output schema, the description gives enough to know the contents (EU members, name and code). Minor gap: it doesn't indicate the container shape (array of objects) or whether codes are ISO alpha-2, which would fully close the loop.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a 0-param tool 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?
Specific verb ('List') plus a precise resource ('EU member states') and even the fields returned ('country name and code'). It is distinguishable from vatcomply_rates by resource, though the description doesn't explicitly contrast with 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 states what the list contains but never says when to call it (e.g. to resolve a country code before calling vatcomply_rates) or when an alternative is more appropriate. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vatcomply_ratesBRead-onlyIdempotent
Get EU VAT rates (standard, reduced, super-reduced) per country.
| Name | Required | Description | Default |
|---|---|---|---|
| country_code | No | ISO 2-letter country code (omit for all EU countries). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful detail that results are broken out into standard/reduced/super-reduced tiers, but says nothing about rate freshness, effective dates, or whether non-EU country codes return empty 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?
A single well-formed sentence with the resource and the returned tier breakdown front-loaded; nothing is wasted. It is however terse to the point of leaving useful context out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 with no output schema, the description gives enough to understand the domain but not the response shape (e.g., whether results are keyed by country code) or whether historical rates are available. Adequate but with clear 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 a single parameter and 100% schema description coverage, the schema already fully documents country_code including the 'omit for all EU countries' behavior. The description adds no 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?
The description names a specific verb and resource ('Get EU VAT rates') and specifies what dimensions are returned (standard, reduced, super-reduced, per country). It does not acknowledge the sibling vatcomply_countries, which is the obvious alternative for the country list itself, so an agent has to infer the boundary 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?
Usage context is only implied: the schema note 'omit for all EU countries' hints at the all-countries case, but the description says nothing about when to pick this over vatcomply_countries or any other lookup. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_actionC
Perform a vault action: vault_init, vault_store, vault_retrieve, vault_list, vault_delete, vault_rotate, vault_audit.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| value | No | ||
| action | Yes | ||
| encrypt | No | ||
| master_password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects (e.g., deletion, rotation), required permissions, rate limits, or the security implications of handling master passwords. This is a significant deficiency.
Agents need to know what a tool does to the world before calling 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 but too terse for the complexity of the tool. It lists items without structure or hierarchy, which could be improved by grouping actions or providing brief definitions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-action nature, lack of output schema, and zero parameter documentation, the description is grossly incomplete. It omits return values, error conditions, prerequisites, and usage examples for each action.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage and parameters like 'action', 'master_password', 'key', 'value', and 'encrypt', the description adds no meaning beyond listing allowed action values. The AI cannot infer how to use these parameters across different actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Perform a vault action' and lists six specific sub-actions (vault_init, vault_store, etc.), making the general purpose clear. However, it does not explain what each sub-action does, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives, nor does it specify prerequisites or conditions. For a multi-action tool, this oversight limits the AI's ability to choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_create_deploymentA
Create a Vercel preview deployment. Direct production creation is disabled: production must use the canonical Safe Beta delivery rail with shared exact-SHA admission, staged smoke, promotion proof, and a terminal receipt. Pass deployment_id to redeploy an existing commit, or project_id + git_ref to deploy fresh from git. Set force_new=true to skip the build cache.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| gitRef | No | Alias for git_ref. | |
| target | No | Use 'preview'. 'production' is refused and must use the canonical delivery rail. | |
| teamId | No | Alias for team_id. | |
| api_key | No | ||
| git_ref | No | Branch or SHA to deploy. Defaults to 'main'. | |
| team_id | No | ||
| forceNew | No | Alias for force_new. | |
| force_new | No | Skip build cache. Default false. | |
| projectId | No | Alias for project_id. | |
| project_id | No | Deploy fresh from the project's linked git repo. | |
| deploymentId | No | Alias for deployment_id. | |
| deployment_id | No | Redeploy the git source of this existing deployment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the most important non-obvious behavior: production targets are refused here, and redeploy vs fresh-build paths differ. It omits authentication requirements (an api_key parameter exists) and what the call returns, but the core operational constraints are stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scope statement is front-loaded and the mode choice is clear, but the 'canonical Safe Beta delivery rail with shared exact-SHA admission, staged smoke, promotion proof, and a terminal receipt' clause is dense internal jargon that consumes space without helping the agent decide how to call this 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 13-parameter mutation with no annotations and no output schema, the description covers the key routing decision but leaves several parameters (name, team_id, api_key) undocumented in both schema and description, and says nothing about permissions or failure 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 coverage is 77%, so the schema already documents most fields including the two deployment strategies and force_new. The description reinforces the deployment_id vs project_id + git_ref choice and the cache-skip flag but adds no syntax, defaults, or precedence rules beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Create a Vercel preview deployment') and immediately bounds the scope to preview, distinguishing it from production deployment paths. An agent knows exactly what this tool produces 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?
Explicitly states production creation is disabled and must go through the canonical delivery rail, and gives the two invocation modes (deployment_id to redeploy vs project_id + git_ref for a fresh build). It does not name a concrete sibling tool for production, but no production-deploy sibling exists in the toolset, so the guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_create_envA
Create (or upsert) an environment variable on a Vercel project. Target defaults to production, preview, and development. Use type='plain' for non-secret values, 'encrypted' or 'sensitive' for secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| type | No | plain | encrypted | sensitive | secret | system. Defaults to plain. | |
| value | Yes | ||
| target | No | CSV of environments: 'production,preview,development'. Defaults to all three. | |
| teamId | No | Alias for team_id. | |
| upsert | No | Overwrite existing value for same key/target. Default true. | |
| api_key | No | ||
| comment | No | ||
| team_id | No | ||
| gitBranch | No | Alias for git_branch. | |
| projectId | No | Alias for project_id. | |
| git_branch | No | ||
| project_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the operation creates or upserts, that target defaults to all three environments, and when to use secret vs non-secret types, but it omits auth requirements, permission scope, and the destructive implications of overwriting an existing secret.
Agents need to know what a tool does to the world before calling 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, front-loaded with the core action and followed by useful defaults and type guidance. There is no wasted text and the structure is 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?
For a 13-parameter mutation tool with no annotations and no output schema, the description is incomplete. It does not explain how to identify the project/team, where api_key comes from, or how aliases like projectId/project_id interact, which an agent needs in order to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 46%, so the description should compensate for gaps. It explains the important target and type parameters and implies key/value usage, but it does not clarify api_key, comment, team/project aliases, or git branch scoping, leaving several parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Create (or upsert) an environment variable on a Vercel project.' It clearly distinguishes the tool from siblings like vercel_get_env and vercel_delete_env by stating that this is the creation/upsert operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the action described, and the description gives guidance on type selection. However, it does not explicitly say when to use this tool versus vercel_get_env or vercel_delete_env, nor does it state prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_delete_envB
Delete a Vercel environment variable by its env id (get ids from vercel_get_env).
| Name | Required | Description | Default |
|---|---|---|---|
| envId | No | Alias for env_id. | |
| env_id | No | ||
| teamId | No | Alias for team_id. | |
| api_key | No | ||
| team_id | No | ||
| projectId | No | Alias for project_id. | |
| project_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden of behavioral disclosure for a destructive mutation. It says 'Delete' but does not state that deletion is irreversible, what permissions or scope (team/project) are required, or what happens on success/failure. Only the bare mutation verb is conveyed.
Agents need to know what a tool does to the 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 with zero waste; the identifier source is given inline rather than buried after unrelated 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 destructive, unannotated tool with 7 parameters, no required fields, duplicate aliases, and no output schema, the description is too thin. It omits the safety profile, auth expectations, and param aliasing pitfalls that an agent needs to call this 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 only 43% across 7 parameters, and the description only addresses env id. It never explains the envId/env_id, teamId/team_id, and projectId/project_id alias pairs, nor when api_key or team/project scoping is needed — a real risk since an agent could pass both alias forms or omit required scoping 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?
Description states a specific verb and resource ('Delete a Vercel environment variable') and identifies the key handle ('its env id'), which clearly separates it from the read-side vercel_get_env. It does not explicitly distinguish from vercel_create_env, the other obvious sibling, 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?
It gives a concrete precondition ('get ids from vercel_get_env'), telling the agent where the required identifier comes from. It stops short of naming when not to use the tool or what alternative applies, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_get_deploymentCRead-onlyIdempotent
Get details for a specific Vercel deployment.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | No | ||
| api_key | No | ||
| deploymentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it read-only, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds nothing beyond that: it says nothing about authentication via api_key, team scoping, error behavior for missing deployments, or whether the response includes build logs/status.
Agents need to know what a tool does to the 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 short sentence, front-loaded with the verb and resource, with zero filler. Brevity is achieved but partly by omitting necessary detail rather than by tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% parameter documentation and no annotations beyond safety hints, the description is the only source of operating detail and provides almost none. An agent cannot tell what 'details' contains, how to authenticate, or what team scoping does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description must compensate and it does not. It never explains that deploymentId is required, or what api_key and teamId are for (auth credential vs team scope), leaving the agent to infer everything from bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get details') and resource ('a specific Vercel deployment'), which clearly contrasts with the list-style sibling vercel_list_deployments. It stops short of naming the sibling or clarifying what 'details' includes, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus vercel_list_deployments, no prerequisites such as needing an existing deploymentId or team context, and no notes on what happens if the ID is unknown. Usage is only implied by the words 'specific' and 'Get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_get_domainCRead-onlyIdempotent
Get information about a Vercel domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| teamId | No | Alias for team_id. | |
| api_key | No | ||
| team_id | No |
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 no behavioral context beyond annotations: it does not mention authentication needs, team scoping, what happens if the domain does not exist, or what information is 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 a single, front-loaded sentence with no wasted words. It is concise, though it provides almost no structure or detail for a tool with four parameters and 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?
Given four parameters, low schema description coverage, and no output schema, the description is too thin. It does not explain what domain information is returned, how team scoping works, or how authentication via api_key/team_id should be handled. An agent would need to inspect the schema and infer much of the 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?
The tool has four parameters and only 25% schema description coverage; only 'teamId' has a schema description ('Alias for team_id'). The description does not explain 'domain', 'api_key', or 'team_id', leaving most parameter semantics undocumented outside the schema. The description only indirectly implies the 'domain' 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 states a clear verb and resource: 'Get information about a Vercel domain.' An agent can identify it as a read operation on a domain resource. However, 'information' is vague and it does not distinguish this tool from sibling Vercel tools or clarify what kind of domain information is 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?
There is no explicit guidance on when to use this tool versus alternatives. The phrase 'Get information about a Vercel domain' implies usage only weakly, and there are no exclusions, prerequisites, or references to sibling tools such as vercel_list_deployments or vercel_get_deployment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_get_envCRead-onlyIdempotent
Get environment variables for a Vercel project.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | No | Alias for team_id. | |
| api_key | No | ||
| decrypt | No | ||
| team_id | No | ||
| projectId | No | Alias for project_id. | |
| project_id | Yes |
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 nothing beyond that — in particular it never explains the existence or effect of the decrypt parameter, which likely exposes plaintext secrets and is exactly the kind of behavior an agent needs warned about.
Agents need to know what a tool does to the 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 with no filler. It is concise but under-specified rather than efficiently dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters at 33% coverage, no output schema, and a secret-bearing decrypt flag left undocumented, the definition leaves out information an agent needs to call this correctly and safely. Nothing about return shape (names, values, targets/environments) is conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 33%: project_id and the two aliases (projectId, teamId) are described, but api_key, decrypt and team_id carry no explanation anywhere. The description does not compensate — it says nothing about team scoping, alias precedence, or what toggling decrypt does to the returned 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?
States a specific verb (Get), resource (environment variables) and scope (a Vercel project), which is enough for an agent to identify the operation. It does not distinguish itself from sibling env tools such as vercel_create_env, vercel_delete_env or render_list_env_vars, 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 gives no when-to-use/when-not-to-use guidance and never mentions the related create/delete env siblings or when reading env vars is the right call versus listing projects or deployments. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_list_deploymentsCRead-onlyIdempotent
List Vercel deployments for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| teamId | No | ||
| api_key | No | ||
| projectId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so safety is covered. Beyond that the description adds nothing: it does not mention that an api_key is required, how results are paginated or defaulted, whether an unpaginated call returns everything, or whether teamId changes the scope of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the brevity is partly under-specification rather than tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four undocumented parameters, no output schema, and no indication of return shape (deployment list fields) or pagination behavior. For a list tool whose filtering and auth semantics are entirely in the schema, the description is too thin to let an agent call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, and the description compensates only for projectId (implicitly). limit, teamId, and especially api_key — a credential whose presence/absence determines whether the call succeeds — are undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List Vercel deployments') with a scoping qualifier ('for a project'), so the operation is unambiguous. It does not distinguish itself from siblings like vercel_get_deployment or vercel_create_deployment, but the verb/resource pair is clear on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this versus vercel_get_deployment (single deployment detail) or vercel_create_deployment, and no mention of when project scoping or team scoping matters. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_list_projectsCRead-onlyIdempotent
List all Vercel projects.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| teamId | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it read-only, idempotent, non-destructive and open-world, so the safety profile is covered elsewhere. The description adds nothing beyond that: no pagination behavior, no statement about whether the list is scoped to a team or spans all teams, and no mention of auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is efficient but so terse that the terseness becomes under-specification rather than crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three undocumented parameters, no output schema, and no explanation of pagination or team scoping, the description is not complete enough for an agent to call it confidently. Annotations carry the safety profile, but the operational details are 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 0% for three parameters (limit, teamId, api_key), yet the description mentions none of them. Critically, it says 'all projects' while offering a teamId filter, leaving the scoping semantics ambiguous rather than clarified.
Input schemas describe structure but not intent. Descriptions should explain 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 (list Vercel projects), which is unambiguous on its own. It does not distinguish itself from nearby siblings such as vercel_list_deployments, supabase_list_projects, or netlify_list_sites, so an agent must infer scope from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives, nor any mention of prerequisites such as needing a team scope or an API key. The agent gets no help deciding between this and other listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vigenere_processC
Encrypt or decrypt text using the Vigenere polyalphabetic cipher.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Cipher key (letters only). | |
| text | Yes | Text to process. | |
| decrypt | No | Decrypt instead of encrypt (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about case handling, how non-letter characters in the text are treated, or what the tool returns (ciphertext vs plaintext). For a pure text-transform function the risk is low, but the description still omits everything beyond the one-line summary.
Agents need to know what a tool does to the 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 with no filler or repetition. It is efficient, though its brevity is also the reason behavioral detail is absent rather than a sign of discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, no-annotation, no-output-schema tool, the description is minimal but sufficient to invoke correctly, since required/optional inputs are clear from the schema. It omits the return-value expectation and any edge-case behavior, which would have been worth one more clause.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'key', 'text', and 'decrypt' all documented inline, so the schema does the heavy lifting. The description adds no syntax, format, or constraint detail beyond what the schema already states (e.g., letters-only key). Baseline 3 is appropriate given the 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 pair (encrypt/decrypt) and a specific resource (Vigenere polyalphabetic cipher), so the agent immediately knows what operation is performed. It does not differentiate itself from adjacent cipher siblings such as atbash_process, rot13_convert, or railfence_process, but the cipher name is distinctive enough on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this tool versus the other cipher tools in the same family (atbash, rot13, railfence, morse), nor any statement of prerequisites or exclusions. The description is purely declarative and leaves tool selection entirely to the agent's inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
virustotal_scan_domainC
Get a VirusTotal report for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behaviors like authentication (api_key) or rate limits, but it only states the core action. No mention of whether it triggers a scan or retrieves an existing report, or any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it sacrifices necessary detail. It is front-loaded but not sufficiently informative for the agent to use 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?
Given the presence of sibling tools and the lack of an output schema, the description is incomplete. It does not clarify the difference between this tool and virustotal_url_report, nor does it describe the report format or any constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for its two parameters. The description fails to explain that 'domain' is the target domain or that 'api_key' is an optional authentication key, leaving the agent to infer from the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a VirusTotal report for a domain' clearly states the action (get a report) and the target resource (domain). It distinguishes itself from sibling tools like virustotal_scan_ip, virustotal_scan_url, and virustotal_url_report by specifying 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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or when to opt for scanning an IP or URL instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
virustotal_scan_ipC
Get a VirusTotal report for an IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks disclosure of critical behaviors like authentication requirements (api_key is optional but likely needed), rate limits, error handling, or what constitutes a 'report'. No annotations to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at one sentence, but this brevity sacrifices necessary detail. It is front-loaded and avoids fluff, but leaves significant gaps in 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?
Given the absence of annotations, output schema, and parameter descriptions, the description is incomplete. It does not cover return format, error conditions, or practical usage context for an AI 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 description does not explain the parameters beyond what the input schema provides. With 0% schema description coverage, the agent gets no additional semantic information about 'ip' or 'api_key'.
Input schemas describe structure but not intent. Descriptions should explain 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 states 'Get a VirusTotal report for an IP address', which distinctly identifies the tool's action and resource, differentiating it from sibling tools like virustotal_scan_domain or virustotal_scan_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives such as virustotal_scan_domain. The description does not mention prerequisites, limitations, 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.
virustotal_scan_urlC
Submit a URL for scanning on VirusTotal.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose whether scanning is synchronous or asynchronous, any rate limits, or what happens after submission (e.g., returns a scan ID).
Agents need to know what a tool does to the 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, concise but underspecified. Lacks detail though it is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and only two parameters. Description fails to explain return values, authentication method, or behavioral expectations for a scanning endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. Description does not explain the purpose of 'api_key' (optional) or any constraints on 'url' (e.g., must include protocol). No added value beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Submit a URL') and the target resource ('for scanning on VirusTotal'), differentiating from sibling tools like 'virustotal_scan_domain' and 'virustotal_url_report'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives (e.g., scanning a URL vs. getting a report). No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
virustotal_url_reportC
Get a VirusTotal report for a URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as rate limits, permissions, data freshness, or what the report contains. It merely restates the function implied by the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of one short sentence. However, this conciseness comes at the cost of missing necessary details, earning a middle 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 simplicity of the tool, the description is still incomplete. It lacks context about what a report entails, output, or any usage conditions. The complete absence of parameter descriptions and behavioral info makes it inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage. The description does not explain the 'url' or 'api_key' parameters beyond implying the URL. No meaning is added 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 'Get a VirusTotal report for a URL.' clearly states the action (Get) and resource (VirusTotal report for a URL). It is specific and distinguishes from sibling tools like virustotal_scan_url or virustotal_scan_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 provides no guidance on when to use this tool versus siblings like virustotal_scan_url. It lacks context on prerequisites, such as whether the URL must be submitted first, or any alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_on_ideaVote on a Boardroom ideaAIdempotent
Cast or change your vote on an idea ('up' or 'down'). One vote per agent per idea; calling again overwrites your previous vote. agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| vote | Yes | ||
| idea_id | Yes | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only idempotent mutation with no destructive/open-world effects. The description adds useful behavioral detail: one vote per agent per idea and that a subsequent call overwrites the previous vote. It does not describe the response, but the key state-change semantics are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the action and followed by the key behavioral constraint. Every sentence adds information and there is no redundant 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 simple three-parameter mutation with rich annotations and no output schema, the description covers the essential action, vote options, uniqueness rule, overwrite behavior, and required agent_id. A response-format note is absent, but annotations already carry the safety profile and the tool's scope is small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate. It clarifies the vote values ('up'/'down'), states that agent_id is required, and implies the idea/agent relationship through 'one vote per agent per idea.' However, it does not explain idea_id format or add much beyond the schema's enum and required 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 states a specific verb-resource pair: cast or change a vote on an idea. It clearly separates this from sibling tools like create_idea or update_idea by focusing on voting rather than idea authoring. An agent can identify the action immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 clear when to use the tool: to cast or change a vote, with the note that calling again overwrites the previous vote. It does not name explicit alternatives or when-not-to-use conditions, but the context is sufficiently unambiguous for this simple action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_room_todoWatch a Jobs card in a roomAIdempotent
Subscribes a Chat room to one Jobs card. The scheduled room watcher posts a single line only when the card's material state changes.
| Name | Required | Description | Default |
|---|---|---|---|
| todo_id | Yes | Jobs card UUID. | |
| thread_id | Yes | Chat thread UUID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is an idempotent, non-destructive write. The description adds valuable context: a scheduled watcher posts a single line only on material state change. It does not cover auth or rate limits, but the added behavioral detail is substantial.
Agents need to know what a tool does to the 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 action is front-loaded and the second sentence adds behavioral nuance 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?
Annotations cover safety and idempotency, and the description explains the effect of the call. It does not mention how to remove the watch or any side effects outside the card's state changes, but for a simple subscription tool it 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 coverage is 100%, so both parameters are fully documented. The description mentions 'a Chat room' and 'one Jobs card' which map to the schema parameters, but adds no syntax or format details beyond what the schema provides. 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 ("Subscribes") and resource ("a Chat room to one Jobs card"), making the action clear. However, it does not explicitly contrast with siblings like list_room_watches or post_room_update, so it falls just short of the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 explaining the effect (subscription to a card), but it does not state when to use this tool versus alternatives or any prerequisites. It leaves the agent to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wavelength_convertARead-onlyIdempotent
Convert between wavelength and frequency. Returns energy and EM spectrum band.
| Name | Required | Description | Default |
|---|---|---|---|
| frequency_hz | No | Frequency in hertz. | |
| wavelength_m | No | Wavelength in meters. |
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 output context by stating that the result includes energy and the EM spectrum band, though it does not disclose assumptions such as vacuum propagation or handling of zero/negative inputs.
Agents need to know what a tool does to the 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, both front-loaded and free of waste. The first sentence states the operation and the second adds the return 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 compensates somewhat for the missing output schema by naming what is returned. However, with both input parameters optional, it does not clarify whether the caller should provide exactly one of frequency_hz or wavelength_m, which is an important 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?
The schema fully documents both parameters at 100% coverage. The description does not add parameter-level guidance beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific conversion: wavelength to frequency and vice versa, plus the returned energy and EM spectrum band. This is clearly more specific than a generic converter, but it does not explicitly distinguish itself from sibling conversion tools such as convert_length.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 implies usage cases, but there is no explicit when-to-use guidance, no exclusions, and no named alternatives. For a tool sitting among many convert_* siblings, it could be clearer about when this is the right converter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wavelet_treeB
Build a wavelet tree for an integer array and answer range kth-smallest queries.
| Name | Required | Description | Default |
|---|---|---|---|
| array | Yes | Array of integers (max 100,000) | |
| queries | No | Queries: {type:'kth', l, r, k} for kth smallest in [l, r) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the full behavioral burden. It doesn't mention whether the tree is built once and then queried, whether multiple queries are supported, what happens if queries are empty, or any performance characteristics. It only states the basic action.
Agents need to know what a tool does to the world before calling 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 concise sentence that front-loads the main action. It is efficient but could be slightly more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is too sparse for a tool that likely returns a constructed tree or query results. It lacks details on output format, query behavior (e.g., multiple queries, indexing conventions), and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds little beyond repeating 'integer array' and 'range kth-smallest queries'. However, it does not provide additional 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 verb and resource: 'Build a wavelet tree for an integer array' and also specifies its primary use case ('answer range kth-smallest queries'). This distinguishes it from other data structure tools like segment_tree, fenwick_tree, or suffix_array_build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies usage for range kth-smallest queries but does not explicitly state when to use this tool over alternatives (e.g., segment_tree or sparse_table) or any preconditions. The schema provides some guidance on the query format, but the description lacks explicit when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wayback_checkARead-onlyIdempotent
Check if a URL has been archived by the Wayback Machine and get the closest snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to check for archived snapshots. | |
| timestamp | No | Target timestamp (YYYYMMDDhhmmss) for closest snapshot. |
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 open-world lookup. The description adds that it returns the closest snapshot, but it does not mention rate limits, failure behavior, authentication, or response 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?
A single front-loaded sentence with no wasted words. It communicates the core action and result compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full parameter schema coverage and annotations, the description is mostly adequate. However, with no output schema it does not clarify what the returned snapshot contains, and it does not explain default timestamp behavior when omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for both parameters. The description's phrase 'closest snapshot' lightly reinforces the timestamp parameter's purpose but adds no syntax or behavior beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: checking a URL against the Wayback Machine and retrieving the closest snapshot. It is understandable without opening the schema, but it does not explicitly distinguish itself from archive-related siblings such as archive_search or archive_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 by 'Check if a URL has been archived... and get the closest snapshot,' but there is no explicit guidance on when to use this versus archive_search/archive_metadata or when to omit the timestamp parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_currentBRead-onlyIdempotent
Get current weather for a location from Open-Meteo (no API key required).
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | ||
| timezone | No | ||
| longitude | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world and non-destructive, so the safety profile is fully covered. The description adds genuinely useful context — the provider and that no authentication/API key is needed — but says nothing about units (metric vs imperial), rate limits, or what happens with an invalid coordinate.
Agents need to know what a tool does to the 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 with no wasted words; the verb/resource lead and the no-API-key note follows. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should say what comes back (temperature, wind, conditions, units), and it does not. It is complete enough to attempt a call, but an agent cannot know the response shape or unit system without invoking 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 0%, so the description carries the full burden for three parameters and adds nothing. Latitude/longitude are largely self-describing by name, but the expected format (decimal degrees vs DMS), valid ranges, and the meaning of the optional timezone field (IANA name, "auto", or default to UTC) are left entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 current weather for a location") plus the data source and the notable absence of an API key requirement. The word "current" implicitly separates it from weather_hourly/weather_forecast, but those siblings are never named, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Current" implies the use case (present conditions, not forecasts or historical), which is enough for an agent to pick it over weather_forecast or historical_weather. However, there is no explicit when-to-use statement, no prerequisites, and no mention of alternatives or coordinate-resolution helpers like nominatim_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_forecastCRead-onlyIdempotent
Get weather forecast for a location from Open-Meteo.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| latitude | Yes | ||
| timezone | No | ||
| longitude | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, open-world call. The description adds only the data source and gives no further behavioral context such as forecast horizon, default values, units, or response 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?
The description is a single front-loaded sentence with no wasted words. It is concise to the point of under-specification for a four-parameter forecast tool, but its structure is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four undocumented parameters and no output schema, the description is too sparse. It does not explain the forecast length, timezone handling, units, or what the response contains, so an agent would need to inspect the schema and guess at key 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 description coverage is 0%, so the description carries the burden of explaining four parameters. It only implies that 'latitude' and 'longitude' represent a location and says nothing about 'days' or 'timezone', leaving half the parameters without any semantic explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('weather forecast') and names the data source (Open-Meteo). It is clear what the tool does, but it does not distinguish itself from sibling forecast tools such as weather_hourly, weather_current, historical_weather, or tomorrow_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 forecast versus weather_hourly, weather_current, historical_weather, or willyweather_forecast. The intended usage is only implied by the tool name and the word 'forecast'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_hourlyC
Get hourly weather forecast from Open-Meteo.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| latitude | Yes | ||
| timezone | No | ||
| longitude | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It fails to disclose any behavioral traits such as rate limits, data validity period, or what the returned data contains.
Agents need to know what a tool does to the world before calling 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, which is concise but under-specified. It communicates the core purpose efficiently but omits necessary 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?
Given no output schema, no annotations, and undocumented parameters, the description is completely inadequate. The agent cannot determine return values, parameter usage, or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the description adds no meaning to the parameters (latitude, longitude, days, timezone). The agent receives no guidance on valid values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'hourly weather forecast', and the source 'Open-Meteo'. It effectively distinguishes from siblings like 'weather_current' and 'weather_forecast' by specifying hourly granularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives (e.g., daily forecast). The agent is left to infer usage 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.
webflow_get_siteCRead-onlyIdempotent
Get a single Webflow site by id.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Webflow site id (can be a saved default) | |
| access_token | Yes | Webflow API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds nothing beyond the annotations: no statement about what happens when the site id is invalid or whether the response includes nested collections.
Agents need to know what a tool does to the 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 eight-word sentence with the identifier constraint front-loaded and no wasted clauses. Its brevity is efficient rather than padded, though it leaves little room for the guidance an agent actually 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 two-parameter read tool with full schema coverage, complete annotations, and no output schema, the description covers the essentials of what it does. It is still missing where the site_id comes from and what the call returns, which matter for a chained workflow starting at webflow_list_sites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (site_id and access_token) are already documented, including the useful "can be a saved default" note for site_id. The description's "by id" merely echoes the schema and adds no format or sourcing detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Get") and resource ("a single Webflow site") scoped to a single record by id, which implicitly distinguishes it from webflow_list_sites. It stops short of naming the sibling list tool explicitly, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of webflow_list_sites, and no indication that a site_id must first be obtained from the list tool. The phrase "by id" weakly implies a prerequisite but nothing is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webflow_list_collectionsBRead-onlyIdempotent
List CMS collections for a Webflow site.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Webflow site id (can be a saved default) | |
| access_token | Yes | Webflow API token |
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 no further behavioral context such as authentication requirements, pagination behavior, default handling, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low complexity with rich schema descriptions and annotations, so the one-sentence description is minimally sufficient. However, with no output schema, it could have clarified return shape, pagination, or whether omitted site_id uses a saved 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 description coverage is 100%, and the schema already explains that site_id can be a saved default and access_token is a Webflow API token. The description only says 'for a Webflow site' and adds no parameter syntax or 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 states a specific verb and resource: list CMS collections, scoped to a Webflow site. It is clear enough to distinguish collections from items, but it does not explicitly name sibling tools such as webflow_list_items or webflow_list_sites as 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 no explicit guidance on when to use this tool versus related tools like webflow_list_sites, webflow_get_site, or webflow_list_items. Usage is only implied by the action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webflow_list_itemsCRead-onlyIdempotent
List items in a Webflow CMS collection.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (max 100, default 25) | |
| offset | No | Pagination offset | |
| access_token | Yes | Webflow API token | |
| collection_id | Yes | Webflow collection id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds nothing beyond the bare purpose: no note on pagination behavior, collection ordering, or what happens with large collections, which is the kind of context annotations cannot supply.
Agents need to know what a tool does to the 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 short sentence with zero filler and a front-loaded verb. Efficient, though its brevity borders on under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 endpoint with fully documented parameters and rich annotations, the description is adequate but minimal; no output schema exists, yet the description does not sketch the returned shape or pagination contract. Just enough to call correctly, nothing more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit (max 100, default 25), offset, access_token and collection_id all documented in the schema. The description adds no parameter semantics of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (items in a Webflow CMS collection), and the scoping by collection is clear enough to distinguish it from webflow_list_collections and webflow_list_sites. It stops short of naming those siblings explicitly, so it lands just below the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus webflow_list_collections, webflow_get_site, or any paginated fetch alternative, and no prerequisites noted. The agent is left to infer usage 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.
webflow_list_sitesBRead-onlyIdempotent
List Webflow sites for the account.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | Yes | Webflow API token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=true, so the safety profile is fully covered. The description adds the scoping detail that results are limited to the authenticated account's sites, which is genuinely useful context, but says nothing about result size, pagination, or ordering.
Agents need to know what a tool does to the 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 short sentence with no filler and the resource front-loaded. It is perhaps over-terse rather than bloated, but nothing in it 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 should say roughly what comes back (site id, name, etc.) since downstream tools need those IDs. Annotations cover safety and the single param is fully documented, but the return-value picture is left entirely 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?
Only one parameter exists and schema description coverage is 100% ('Webflow API token'), so the schema already documents everything. The description adds no syntax, auth-flow, or scope detail for the token beyond the phrase 'for the account'. Baseline 3 applies when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List Webflow sites') plus a scope qualifier ('for the account'), so the agent knows this is a discovery/enumeration call over sites. It does not, however, distinguish itself from the sibling webflow_get_site (single-site) or webflow_list_collections/items, which the agent must differentiate by name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of when to prefer this over webflow_get_site, and no stated preconditions beyond the implicit need for an access token. The agent must infer that this is the entry point for discovering site IDs used by other Webflow tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weighted_meanC
Compute weighted, arithmetic, geometric, and harmonic means of a set of values.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of numeric values. | |
| weights | No | Optional weights (same length as values). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions computing means but doesn't disclose behavioral traits such as whether it handles empty arrays, negative values, zero weights, or the behavior of the weighted mean when weights are omitted. No information on output format or 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?
The description is a single, efficient sentence that front-loads the core action and lists the mean types without any waste. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no annotations and no output schema, the description is incomplete. It fails to explain how weights affect the computation, what happens if weights are omitted, or the return values (e.g., a single number or object with multiple means). An agent would need to guess about the output structure and edge-case 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 (values and weights) are fully documented in the schema. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate when 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 states the verb 'Compute' and the resource 'weighted, arithmetic, geometric, and harmonic means of a set of values.' It distinguishes itself from generic mean calculators by listing multiple mean variants. However, it doesn't explicitly differentiate from other statistical tools like descriptive_stats or statistics_calc that might overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives. The description implies usage for computing various means, but it doesn't state conditions, exclusions, or alternatives like descriptive_stats. No usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wger_categoriesARead-onlyIdempotent
List exercise categories from the wger workout database.
| 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 the source database (wger), but does not describe return format, ordering, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It states the action and resource immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing tool with annotations covering safety, the description is nearly complete. It could optionally mention how it relates to sibling tools, but nothing critical is missing for calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and it correctly implies a parameterless listing operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 exercise categories from the wger workout database.' It is clear what the tool does, but it does not explicitly differentiate itself from nearby siblings such as wger_exercises or wger_muscles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like wger_exercises or wger_muscles, nor any indication of prerequisites or context. The only usage signal is the implied action of listing categories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wger_exercisesC
Search and browse exercises from the wger workout database.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (default 20) | |
| search | No | Exercise name to search for | |
| category | No | Category ID (use wger_categories for list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool reads from a workout database (implying read-only), but says nothing about pagination behavior beyond the default limit, rate limits, or whether results include full exercise details vs. summaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the purpose front-loaded. No wasted words, though it is arguably too sparse given the tool's search/browse 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?
For a search/browse tool with three parameters, no annotations, and no output schema, the description is too thin. It omits result structure, pagination behavior, and how the search/category parameters interact, leaving the agent to infer 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 coverage is 100%, with all three parameters documented (limit, search, category) including a cross-reference to wger_categories for the category ID. The description adds no parameter detail beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Search and browse') and resource ('exercises from the wger workout database'). The sibling set includes wger_categories and wger_muscles, and this tool is distinguishable by the 'exercises' resource, though the description never explicitly names 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?
No guidance on when to use this tool versus wger_categories or wger_muscles, nor on how to combine them. The schema mentions wger_categories for category IDs, but the description itself provides no routing or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wger_musclesB
List muscle groups from the wger workout database.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only list, but discloses nothing about return shape, ordering, caching, or whether results are static taxonomy 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?
One sentence, front-loaded with the verb and resource, with no filler whatsoever.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 static taxonomy listing, the description is essentially sufficient to invoke the tool correctly. It would be fully complete only if it hinted at what a muscle group record contains, since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so parameter semantics are trivially satisfied; the baseline for a parameterless tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('List') and resource ('muscle groups') plus the source database (wger). It is distinguishable in substance from wger_exercises and wger_categories, but the description never explicitly contrasts itself with 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?
There is no when-to-use guidance and no mention of alternatives, even though wger_categories and wger_exercises are obvious sibling lookups an agent must choose between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whatsapp_get_mediaBRead-onlyIdempotent
Get the download URL and metadata for a WhatsApp media object by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | ||
| bearer_token | Yes |
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 safety profile is covered. The description adds the useful behavioral fact that the return is a URL plus metadata, but omits operationally critical traits such as the fact that WhatsApp media URLs are short-lived, or that the returned URL must itself be fetched.
Agents need to know what a tool does to the 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 with no filler; the essential information appears first. It is arguably too terse rather than padded, so the efficiency itself is not penalized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with a full annotation profile and no output schema, this is close to adequate. What is missing is meaningful for an agent: what bearer_token is and where it comes from, and how long the returned download URL stays valid.
Complex tools with many parameters or behaviors need more documentation. Simple 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 carry parameter meaning and it only does half the job: 'by ID' implies media_id identifies the media object, but bearer_token is left entirely unexplained (required auth credential, which account/scope). The gap matters because a missing or wrong token would look like a bad media ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get') and a precise resource ('download URL and metadata for a WhatsApp media object'), so an agent knows exactly what it returns. It does not explicitly differentiate itself from the sibling whatsapp_upload_media, which is the inverse operation and the natural confused 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?
There is no when-to-use guidance and no mention of the sibling pair sequence (upload media to obtain an ID, then get media by that ID). Nothing says whether this is the correct tool when the agent already has a media ID versus when it must first call whatsapp_upload_media.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whatsapp_send_mediaC
Send a media message (image, video, audio, document, sticker) via WhatsApp.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| caption | No | ||
| filename | No | For documents: the display filename | |
| media_id | No | ID of a previously uploaded media object | |
| media_link | No | URL of the media to send | |
| media_type | Yes | image, video, audio, document, or sticker | |
| bearer_token | Yes | ||
| phone_number_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as authentication requirements, handling of missing media_id/media_link, rate limits, or return behavior. It only states the basic action.
Agents need to know what a tool does to the world before calling 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 concise sentence, but it lacks necessary detail for a tool with 8 parameters. It is appropriately front-loaded but insufficient in 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?
Given the tool's complexity (multiple media types, optional parameters, no output schema), the description is too brief. It does not cover important usage constraints like whether both media_id and media_link can be provided or what happens if neither is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (4 of 8 parameters have descriptions). The description adds no parameter semantics, e.g., it doesn't explain the relationship between media_id and media_link, or when caption is applicable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (send), resource (media message), and lists supported types (image, video, audio, document, sticker). It distinguishes from sibling tools like whatsapp_send_text, whatsapp_send_template, and whatsapp_upload_media.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool vs alternatives like whatsapp_upload_media (for uploading first) or whatsapp_send_template. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whatsapp_send_templateA
Send a WhatsApp template message (required for first contact or >24h since last message).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| language | No | Language code, e.g. en_US (default) | |
| components | No | Array of template component objects for variable substitution | |
| bearer_token | Yes | ||
| template_name | Yes | ||
| phone_number_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that sending a template message is a write operation and adds the behavioral constraint about timing. However, it does not mention error cases (e.g., template not approved), rate limits, or authentication details beyond the required parameters.
Agents need to know what a tool does to the world before calling 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 of 16 words, front-loading the purpose and the critical condition. Every word is essential, and there is no redundant 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 the tool has 6 parameters and no output schema or annotations, the description adequately explains the core use case and when to invoke it. However, it lacks details on return values, error handling, and where to find template names, which would be needed for full autonomous 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 6 parameters with only 33% description coverage. The description adds no parameter-specific information beyond what is in the schema. For example, it does not explain 'bearer_token', 'phone_number_id', 'to', 'template_name', or 'components'. This low coverage combined with no added parameter meaning results in a score of 2.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Send), the resource (WhatsApp template message), and crucially adds the condition 'required for first contact or >24h since last message', which distinguishes it from other WhatsApp sending tools like whatsapp_send_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 specifies when this tool is required (first contact or >24h since last message), providing clear context for the agent to decide when to use it over alternatives. It does not list exclusions or alternatives explicitly, but the condition implicitly covers when not to use other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whatsapp_send_textA
Send a text message via WhatsApp Business Cloud API.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number in E.164 format | |
| body | Yes | Message text | |
| preview_url | No | ||
| bearer_token | Yes | ||
| phone_number_id | Yes | Your WhatsApp phone number ID from Meta for Developers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It mentions the API but does not disclose authentication requirements (bearer_token), rate limits, or message size limits. The behavioral traits are minimally covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that is front-loaded with the key action and platform. 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?
The description is minimal and does not explain the response format (e.g., success status, message ID). Given the parameter count (5) and no output schema, the description could be more complete. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with most parameters described in the schema. The description adds value by naming the tool's purpose but does not repeat parameter details. The baseline is elevated due to decent 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 'Send a text message via WhatsApp Business Cloud API', specifying the action and platform. It distinguishes from sibling tools like whatsapp_send_media and whatsapp_send_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives. The description implies it is for text messages but does not mention exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whatsapp_upload_mediaC
Upload a media file to WhatsApp and get a media ID for use in messages.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | ||
| media_url | Yes | URL to fetch the media from | |
| mime_type | Yes | MIME type, e.g. image/jpeg, video/mp4 | |
| bearer_token | Yes | ||
| phone_number_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden, but it only states the high-level action. It fails to disclose critical behavioral traits such as that the media is fetched from a URL (media_url), authentication requirements (bearer_token), or potential limitations (file size, supported types, error behavior).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is too terse given the tool's complexity. It could benefit from a second sentence clarifying the URL-fetching behavior or parameter roles without being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain how the media ID is returned, the prerequisites for using the bearer token, or the typical workflow (upload first, then use ID in send_media). This leaves significant gaps 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?
The schema has only 40% parameter description coverage, yet the description adds no context for the parameters (e.g., bearer_token, phone_number_id, filename). It does not explain the purpose of each parameter beyond what the schema already provides, leaving the agent with insufficient 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 states the action (upload media file), the target system (WhatsApp), and the result (get a media ID for use in messages). It is specific and distinct from sibling tools like whatsapp_send_media which sends media to a user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives like whatsapp_send_media or whatsapp_send_text. It lacks any context about prerequisites, workflow, or when-not-to-use, which is essential given the multiple WhatsApp-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikidata_get_entityBRead-onlyIdempotent
Get structured data for a Wikidata entity by Q-id (e.g. Q42).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wikidata entity ID (e.g. Q42). | |
| language | No | Language code (default: en). |
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 fully covered. The description adds nothing about language fallback behavior or what the returned 'structured data' comprises, so it is adequate but thin 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?
A single front-loaded sentence with no waste, though it is on the terse side and leaves some useful framing (what 'structured data' means, behavior with language) unsaid.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should clarify what an entity record contains and how the language parameter affects labels, but it does neither. For a simple read tool it is minimally sufficient yet leaves meaningful 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%; the id and language parameters are both documented in the schema, and the description's Q-id example merely echoes the schema text. Baseline 3 applies 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?
States a specific verb ('Get') and resource ('structured data for a Wikidata entity') and pins the lookup key to a Q-id with an example. This implicitly separates it from wikidata_search (query-based), though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Q-id phrasing implies 'use this when you already have an entity ID,' but there is no explicit when/when-not or pointer to wikidata_search for name-based lookup. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikidata_searchB
Search Wikidata for entities (people, places, concepts) by label.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 5, max 20). | |
| query | Yes | Search term. | |
| language | No | Language code (default: en). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden, and it discloses almost nothing: no mention of read-only nature, rate limits, result ranking, pagination, or whether it hits a public API. It only adds that entities span people/places/concepts, which is thin for a zero-annotation 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?
A single, front-loaded sentence with no filler. It could be slightly richer without becoming verbose, but it is efficient and wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-annotation, no-output-schema tool, the description is too sparse. It says nothing about return shape, count/limit behavior interpretation, or error/permission context that an agent would need to call confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 only restates that search is 'by label' (the query param), adding no syntax, matching behavior, or format 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 ('Search') and resource ('Wikidata entities') with an explicit scope (people, places, concepts) and the search key (label). This clearly distinguishes it from siblings like wikidata_get_entity (fetch by ID) and wikipedia_search (different corpus).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 a lookup-by-label use case but does not explicitly say when to use this versus wikidata_get_entity or wikipedia_search, nor does it mention any exclusions. Usage is inferable from the corpus and 'by label' phrasing, but no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipedia_pageB
Get the full plain-text Wikipedia article for a title. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Wikipedia language code (default en) | |
| title | Yes | Exact page title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the output format ('plain-text') and that no API key is required, which is real behavioral context. However, it says nothing about truncation, very large articles, redirect handling, or behavior on a nonexistent title.
Agents need to know what a tool does to the 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, front-loaded with the core operation, with no filler. Efficient, though the second sentence is a minor accessory note rather than substantive 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-param read tool with no output schema, the description covers the essentials (what it returns, no auth). It stops short of the size/limit and error-handling behavior an agent might need when calling it against arbitrary titles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 no syntax or format details beyond what 'title' already conveys, and the 'lang' parameter is entirely unmentioned. 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 (Get) and resource (full plain-text Wikipedia article) scoped by title. The word 'full' implicitly distinguishes it from the sibling wikipedia_summary, but no sibling is named explicitly, keeping it 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?
The only guidance is 'No key needed,' which is an access note rather than a when-to-use directive. It never explains when to pick this over wikipedia_summary or wikipedia_search, leaving the agent to infer the choice from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipedia_searchBRead-onlyIdempotent
Search Wikipedia article titles. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Wikipedia language code (default en) | |
| limit | No | Results to return (max 50, default 10) | |
| query | Yes | What to search for |
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 but limited context: no API key is required. 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?
Two short sentences, front-loaded with the core action and no wasted wording. The authentication note is brief and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with full schema coverage and annotations, the description is usable but sparse. It does not explain routing against related Wikipedia tools or what kind of result data 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?
Schema description coverage is 100%, so query, lang, and limit are already documented in the schema. The description clarifies that the query targets article titles, which adds modest semantic value but does not compensate 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 specific verb and resource: search Wikipedia article titles. It distinguishes title lookup from the sibling content tools (wikipedia_page, wikipedia_summary) implicitly through 'article titles', 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?
There is no guidance on when to use this versus wikipedia_summary or wikipedia_page. 'No key needed' is authentication information, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipedia_summaryARead-onlyIdempotent
Get a short Wikipedia summary for a page title. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Wikipedia language code (default en) | |
| title | Yes | Exact page title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, openWorld, and non-destructive, so the safety profile is set. The description still adds real value with 'No key needed' (auth requirement) and 'short' (output is truncated), but says nothing about behavior for missing/disambiguation pages or language fallback.
Agents need to know what a tool does to the 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, front-loading the operation and then the notable constraint (no API key). 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 simple read tool with full annotations and 100% schema coverage, most needs are met. However, it omits the sibling differentiation (summary vs full page vs search) and any note about missing-page behavior, which are the gaps an agent would care about.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 language and title are already documented in the schema. The description merely restates 'page title' and does not mention the lang parameter or clarify title-exactness beyond what the schema says, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (Wikipedia summary), plus the input it needs (page title). It does not differentiate from the sibling wikipedia_page (full article) or wikipedia_search, leaving the agent to infer that 'summary' is the shorter variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'summary' implies you use it when you want a brief synopsis rather than the full page, but the description never says when to prefer wikipedia_page or wikipedia_search instead. Routing between the three Wikipedia tools is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiktionary_lookupARead-onlyIdempotent
Look up a word definition in Wiktionary (multi-language).
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | Word to look up | |
| language | No | Language code (default en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful detail that the lookup is multi-language, but it does not add further behavioral context such as rate limits, fallback behavior, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no redundant or filler text. Every part of the sentence contributes to identifying the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 fully documented parameters and clear annotations, the description is largely sufficient. It could say more about expected output or language behavior, but no major 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 coverage is 100%, so both the word and language parameters are already documented in the schema. The description's "multi-language" phrase lightly reinforces the language parameter, but it does not add syntax or format guidance 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 word definition in Wiktionary," and adds the scope "multi-language." It is clear what the tool does, but it does not explicitly distinguish itself from similar siblings such as dictionary_lookup or dictionary_lookup_language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for word-definition lookups and notes that Wiktionary is the source, but it gives no explicit when-to-use guidance, exclusions, or alternative tools to prefer for different dictionary or language needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
willyweather_forecastCRead-onlyIdempotent
Get weather forecast from WillyWeather for an Australian location.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| api_key | No | ||
| location_id | Yes | WillyWeather location ID |
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 provider and Australian-scope context, but does not mention API-key requirements, rate limits, forecast horizon, default days, units, or return 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 a single front-loaded sentence with no wasted words. It is efficient, though arguably too sparse given the three-parameter schema and low description coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, low schema coverage, and no output schema, the description leaves significant gaps: it does not explain the days parameter, API-key handling, units, or what the forecast response contains. An agent can identify the tool's purpose but lacks enough context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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%, with just location_id documented as 'WillyWeather location ID'. The description reinforces that the location is Australian, but it does not clarify the 'days' parameter (range, default, forecast horizon) or the 'api_key' parameter (whether required, optional, or where to obtain 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 states a specific verb and resource ('Get weather forecast') and identifies the provider and geographic scope ('WillyWeather for an Australian location'). It is clear what the tool does, but it does not explicitly distinguish itself from nearby siblings such as willyweather_surf, willyweather_tide, or the generic weather_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of prerequisites such as an API key, and no exclusions. The only usage signal is the implied Australian-location scope, which is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
willyweather_surfC
Get surf report from WillyWeather.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| api_key | No | ||
| location_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear full burden. 'Get surf report' implies a read operation, but there is no mention of authentication requirements (api_key parameter), rate limits, or error behaviors. The description is too sparse to convey behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it sacrifices informativeness for brevity. It is not overly verbose, but the lack of structure and essential details makes it less effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity (3 parameters, no output schema, no annotations), the description is highly incomplete. It does not explain how to use the tool, what the response looks like, or any operational details. The agent would have insufficient context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 3 parameters with no descriptions (0% schema coverage). The description does not add any meaning about what location_id, days, or api_key represent. It fails to compensate for the missing schema descriptions, leaving the agent without essential 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 'Get surf report from WillyWeather' clearly states the verb 'Get', the resource 'surf report', and the source 'WillyWeather'. It implicitly distinguishes from sibling tools like willyweather_forecast and willyweather_tide, as it focuses specifically on surf reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It does not mention that for general forecasts or tides, other tools (willyweather_forecast, willyweather_tide) should be used. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
willyweather_tideC
Get tide times from WillyWeather.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| api_key | No | ||
| location_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only indicates a read operation ('Get tide times') but does not disclose any behavioral traits such as data freshness, pagination, or side effects. For a simple fetch, minimal transparency is acceptable but still lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one phrase), which is concise, but it does not earn its place with valuable information. It is under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description is incomplete for an agent to use correctly. It provides only the basic purpose, missing essential details about parameters and expected output.
Complex tools with many parameters or behaviors need more documentation. 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 three parameters (location_id, days, api_key) with zero description coverage. The description adds no meaning beyond 'tide times,' leaving the agent to guess the purpose of each parameter. It fails to compensate for the lack of 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 verb 'Get' and resource 'tide times' from a specific source 'WillyWeather'. However, it does not differentiate from sibling tools like willyweather_forecast or willyweather_surf, which seems like a closely related 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 provides no guidance on when to use this tool versus alternatives, nor any prerequisites or context. It solely states the action without any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_accountsCRead-onlyIdempotent
Get Wise accounts for a profile.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| profile_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. Beyond that the description adds only the profile scoping; it says nothing about the api_key parameter's role, whether the key is per-call or ambient, or what the account objects contain, which matters for a tool flagged openWorld.
Agents need to know what a tool does to the 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 short sentence with no filler, which is good, but it is so terse that conciseness shades into under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and parameter documentation is absent, so the description is the only place an agent could learn what an account record looks like or how api_key is supplied. Neither is addressed, leaving real gaps 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 0% and the description only implies the profile_id requirement through the phrase 'for a profile'. The api_key parameter is completely unexplained in both schema and description, leaving an agent to guess its purpose, so this does not compensate for the coverage 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?
States a specific verb and resource ('Get Wise accounts') scoped to a profile, so an agent knows exactly what is returned. It does not explicitly contrast with siblings like wise_profile or wise_exchange_rates, but the resource noun is distinctive enough that confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no prerequisites, and no mention of alternatives such as wise_profile, which an agent could easily pick by mistake when it wants profile details rather than the account list under a profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_create_quoteC
Create a Wise money transfer quote.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| profile_id | No | ||
| sourceAmount | No | ||
| targetAmount | No | ||
| sourceCurrency | Yes | ||
| targetCurrency | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states 'Create', implying a write operation, but lacks details on authentication, rate limits, side effects, or what constitutes a successful quote creation.
Agents need to know what a tool does to the world before calling 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 concise sentence, but it sacrifices necessary detail. It is not verbose but falls short of being informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 parameters, no schema descriptions, no output schema, and no annotations, the description is severely incomplete. It does not guide the agent on how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no explanation for any of the 6 parameters. For instance, the difference between sourceAmount and targetAmount is unclear, and profile_id and api_key are not described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and the resource ('a Wise money transfer quote'), which is distinct from sibling tools like wise_exchange_rates, wise_accounts, and wise_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?
No guidance on when to use this tool versus alternatives (e.g., wise_exchange_rates for rates, wise_profile for profile info). No prerequisites or contextual advice provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_exchange_ratesCRead-onlyIdempotent
Get exchange rates from Wise.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| target | No | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds nothing beyond that: it omits the api_key/auth requirement, whether these are live or cached rates, and what the response contains — all things the description should carry.
Agents need to know what a tool does to the 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 short sentence is front-loaded and waste-free, but its brevity comes from under-specification rather than efficiency; it says nothing an agent could act on beyond the namespace.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, auth-gated external API call with no output schema and no parameter documentation, the description leaves out currency-code format, the api_key requirement, and the return shape. Not enough for an agent to call it correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all 3 parameters. The description never explains that source/target are currency codes (ISO 4217?), whether omitting them yields all rates or an error, or that api_key authenticates against Wise. With zero parameters required, this ambiguity is material and undefined anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource ('Get exchange rates') and the provider ('from Wise'), but it is essentially a restatement of the tool name wise_exchange_rates. It does not distinguish the tool from the many sibling exchange-rate tools (frankfurter_latest, exchangerate_latest, er_latest_rates, forex_latest, vatcomply_rates) nor say whether a pair or a full rate table is 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?
No guidance on when to prefer this over the numerous alternative FX tools, and no prerequisites or exclusions. An agent has no basis for choosing it over frankfurter_latest or forex_latest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_profileBRead-onlyIdempotent
Get the authenticated Wise user profile.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description's only additional contribution is the word 'authenticated', implying it resolves credentials from the connection rather than parameters. It says nothing about what profile fields come back or any rate-limit/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though its brevity reflects under-specification rather than tight editing of richer 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 tool with no output schema, the agent still does not know what the profile response contains (name, email, locale, IDs) or how it relates to wise_accounts. Annotations cover safety, but the return-value gap is unaddressed since no output schema exists to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single optional api_key parameter, so the description carries the burden and does not address it at all. It never says whether api_key overrides the configured credential or is required in some deployments, leaving an agent to guess at an authentication-affecting 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?
States a specific verb and resource: 'Get the authenticated Wise user profile.' An agent can tell this is a read of the current user's own profile. However, it does not distinguish itself from the nearby siblings wise_accounts or wise_exchange_rates, which also read Wise account-level data, so the boundary is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no mention of wise_accounts as the alternative for balance/account data. The only implicit signal is the word 'authenticated', which suggests it uses configured credentials rather than a user identifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_customersCRead-onlyIdempotent
List WooCommerce customers.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| role | No | ||
| No | |||
| order | No | ||
| search | No | ||
| orderby | No | ||
| per_page | No | ||
| store_url | Yes | ||
| consumer_key | Yes | ||
| consumer_secret | Yes |
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 merely restates that this is a list operation and adds no context about pagination, filtering behavior, authentication requirements, rate limits, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words, but it is severely under-specified for a 10-parameter authenticated tool. This is terseness rather than appropriately sized conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter WooCommerce customer endpoint with no output schema and no parameter descriptions, one sentence is inadequate. The agent is missing essential information about filtering, pagination, and authentication 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?
There are 10 parameters with 0% schema description coverage, and the description mentions none of them. It says nothing about pagination, role filtering, email lookup, search, ordering, per_page, or the required store_url/consumer_key/consumer_secret credentials, so it does not compensate for the schema 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?
States a specific verb ('List') and resource ('WooCommerce customers'), so the basic operation is clear. However, it gives no differentiation from sibling customer-listing tools such as shopify_customers, square_customers, or quickbooks_customers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, prerequisites, or alternatives. An agent must infer from the name alone that this is the WooCommerce-specific customer list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_ordersC
List, get, or create WooCommerce orders.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Order ID for action='get' | |
| page | No | ||
| after | No | ISO 8601 date for orders after this date | |
| order | No | Order object for action='create' | |
| action | No | list, get, or create (default: list) | |
| before | No | ||
| status | No | pending, processing, completed, refunded, etc. | |
| customer | No | Filter by customer ID | |
| per_page | No | ||
| store_url | Yes | ||
| consumer_key | Yes | ||
| consumer_secret | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects and operational constraints. It only states the actions without explaining that 'create' modifies data or any authentication requirements beyond schema fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 6 words, but overly terse for a complex tool with 12 parameters and 3 actions. Lacks structure; no separation of concerns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Severely incomplete given 12 parameters, nested objects (order), no output schema, and no annotations. Fails to explain return format, error handling, pagination, or creation requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds no value beyond the input schema. Schema coverage is 50%, and parameters like store_url, consumer_key are unexplained. The action enum is defined in schema but not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 works with WooCommerce orders and the three actions (list, get, create). It distinguishes WooCommerce orders from sibling tools like woo_customers by resource type, though no differentiation from order tools of other platforms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use this tool versus alternatives like woo_products or shopify_orders. Missing recommendations for action selection or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_productsCRead-onlyIdempotent
List or get WooCommerce products.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Product ID for action='get' | |
| page | No | ||
| order | No | ||
| action | No | list or get (default: list) | |
| search | No | ||
| status | No | publish, draft, pending, private | |
| orderby | No | ||
| category | No | ||
| per_page | No | ||
| store_url | Yes | WooCommerce store URL (e.g. https://mystore.com) | |
| consumer_key | Yes | WooCommerce consumer key (ck_...) | |
| consumer_secret | Yes | WooCommerce consumer secret (cs_...) |
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 clear. The description adds nothing beyond restating the resource and verbs—no mention of pagination, filtering behavior, authentication requirements, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it is underspecified rather than efficient. Brevity here comes at the cost of necessary operational detail, so it does not fully earn 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 12 parameters, 50% schema coverage, no output schema, and no annotations explaining operational behavior, the description leaves too much unspecified. It should at least clarify the list/get duality, common filters, and 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 only 50%, and the description provides no parameter information at all. Critical filters like search, category, orderby, per_page, page, and order are undocumented in both schema and description, so an agent cannot infer their 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 provides a clear verb ('List or get') and resource ('WooCommerce products'), so an agent knows exactly what the tool operates on. However, it does not differentiate this from sibling tools like woo_orders or woo_customers, leaving ambiguity about 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 only says 'List or get' and gives no guidance on when to choose list versus get, when to use it over related tools, or what prerequisites exist. The action parameter is documented in the schema, but the description adds no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
word_countBRead-onlyIdempotent
Count words, characters, sentences, and estimate reading time.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to analyze. |
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 multiple derived metrics (including a reading-time estimate) are produced, but does not say what rate that estimate assumes, how empty or non-ASCII input is handled, or whether the call can fail.
Agents need to know what a tool does to the 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 listing the computed metrics with zero filler. Nothing redundant and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial single-input tool with full schema coverage and clear annotations, the description is adequate. With no output schema, however, it only partially conveys the return shape — it lists the metrics but not their keys, units, or whether reading time is in seconds or minutes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage, so the schema carries the parameter burden and a baseline of 3 applies. The description adds no format constraints or size limits 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?
Names a specific verb (count) and the exact metrics returned: words, characters, sentences, plus a reading-time estimate. The purpose is unmistakable. It does not, however, distinguish itself from overlapping siblings such as text_analyse, readability_score, or markdown_stats, which likely compute similar text 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?
There is no statement of when to use this versus the many other text-analysis siblings, no exclusions, and no prerequisites. The agent must infer from the name alone that this is the right pick for simple counts as opposed to readability scoring or frequency analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wordfreq_analyseC
Analyse word frequencies in text, returning counts and top words.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Return only the top N words (default all). | |
| text | Yes | Text to analyse. | |
| case_sensitive | No | Case-sensitive counting (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state whether counting happens on tokens/whitespace, whether stop-word removal applies, how ties are resolved, or what the response shape looks like. The mention of 'top words' hints at sorting, but the default behavior remains opaque.
Agents need to know what a tool does to the 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 efficient sentence with the verb and outcome front-loaded. It is adequately sized, though 'returning counts and top words' slightly overlaps the parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description should do more to describe return structure and counting semantics. It covers the high-level purpose but leaves the agent without enough behavioral context to call the tool confidently, especially given the near-duplicate sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 top, text, and case_sensitive including defaults. The description adds essentially nothing beyond 'returning counts and top words', which is baseline-level 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?
States a specific verb ('Analyse') plus resource ('word frequencies in text') and names what it returns ('counts and top words'). It distinguishes itself from siblings like word_count and frequency_analyse by narrowing to word frequency, though the near-identical sibling frequency_analyse is not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. The presence of a very similar sibling (frequency_analyse) makes this omission meaningful – the agent has no stated basis for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wordpress_get_postC
Get a single WordPress post by id.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Post id | |
| site_url | Yes | WordPress site URL | |
| username | Yes | WordPress username | |
| app_password | Yes | WordPress application password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read but does not disclose required authentication (app_password visible in schema, not described), whether unpublished posts are returned, or what the response contains.
Agents need to know what a tool does to the 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 efficient sentence with the lookup key front-loaded. No waste, though it is arguably terse to the point of under-specification rather than truly 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 simple single-resource getter with a fully documented schema and no output schema, the description is minimally adequate. It omits auth context and return-shape expectations that could help, but 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 coverage is 100%, so the schema fully documents all four parameters including site_url, username, and app_password. The description only restates the 'by id' intent, adding nothing beyond the schema — 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?
States a specific verb (Get) and resource (a single WordPress post) plus the key lookup key (id). This clearly distinguishes it from the sibling wordpress_list_posts, 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?
No when-to-use guidance or alternatives are offered. An agent can infer that this retrieves one post versus listing many, but the description never states that or points to wordpress_list_posts for the other case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wordpress_list_pagesCRead-onlyIdempotent
List WordPress pages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Pages to return (max 100, default 10) | |
| search | No | Search term | |
| site_url | Yes | WordPress site URL | |
| username | Yes | WordPress username | |
| app_password | Yes | WordPress application password |
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 fully covered elsewhere. The description adds nothing beyond that — no mention of pagination behavior, default page size, result ordering, or what happens when search matches nothing.
Agents need to know what a tool does to the 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 with no filler or redundancy. It is efficient, though the economy comes at the cost of the details captured in the other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should describe the return shape (list of page objects, fields available) and pagination semantics; it does neither. For a tool requiring site URL plus credentials, a note about authentication/scope would also be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 (including limit, search, and the three auth fields) are already documented in the schema. The description contributes no additional parameter meaning, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List WordPress pages'), which is enough to distinguish it from siblings like wordpress_list_posts and wordpress_get_post. However, it offers no scope detail (all pages vs. filtered), so differentiation rests entirely on the word 'pages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use this versus wordpress_get_post, wordpress_list_posts, or any other listing tool. It doesn't mention that authentication is required or that results can be narrowed via search/limit, leaving the agent to infer everything from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wordpress_list_postsBRead-onlyIdempotent
List WordPress posts, optionally by search term.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Posts to return (max 100, default 10) | |
| search | No | Search term | |
| status | No | Filter by status (publish, draft, ...) | |
| site_url | Yes | WordPress site URL | |
| username | Yes | WordPress username | |
| app_password | Yes | WordPress application password |
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 elsewhere. The description adds only that the search filter is optional; it says nothing about pagination limits, auth failure behavior, or result ordering 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?
A single well-formed sentence with the resource front-loaded and the optional filter trailing. No wasted words, though it is arguably under-informative rather than optimally sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 100% schema coverage and complete annotations, the definition is minimally sufficient to invoke the tool. However, for a 6-parameter authenticated tool with no output schema, it omits pagination behavior and result shape, leaving gaps an agent may need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 limit, search, status, and all three auth parameters documented inline. The description restates the 'search term' parameter but adds no syntax, matching behavior, or default semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List WordPress posts') that an agent can distinguish from wordpress_get_post and, by implication, wordpress_list_pages. It does not explicitly name or contrast with those siblings, 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 phrase 'optionally by search term' implies the main usage variant (browse vs. filtered search), but there is no explicit when-to-use, when-not-to-use, or routing to wordpress_get_post for single-post retrieval. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_listList staged files (Large-PR Room)B
List the files currently staged in a workspace, with byte sizes and the retention horizon.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | The workspace id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that results include byte sizes and a retention horizon, and 'staged' implies a non-destructive read of transient content, but it says nothing about permissions, ordering, or size 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?
A single front-loaded sentence with no filler; every clause (scope, payload fields) 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 tool with no output schema, the description covers scope and the returned fields (sizes, retention horizon), which is what an agent needs. It stops short of ordering or pagination details, 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?
Only one parameter (workspace_id) and schema coverage is 100%, so the schema already documents it fully. The phrase 'in a workspace' restates the schema's meaning without adding syntax or format detail, matching 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?
States a specific verb (List) and resource (files currently staged in a workspace) and even sketches the payload: byte sizes and retention horizon. It is clearly the read-side counterpart to workspace_push/workspace_put, though it never names those siblings explicitly, which is what 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?
There is no when-to-use guidance, no prerequisites, and no mention of the push/put siblings. The agent must infer the read-only inspection role from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_pushPush staged files to git by reference (Large-PR Room)A
Assemble every file staged in the workspace and write them to a branch via the GitHub Git Data API (blobs, tree, commit, ref). Any file size. Creates the branch off base_branch (or the default branch) when it does not exist. Staged rows are kept after the push (retention), never deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | GitHub repo name. | |
| owner | Yes | GitHub repo owner. | |
| branch | Yes | Target branch to write the files to. | |
| message | No | Commit message. | |
| base_branch | No | Branch to create from when the target does not exist. | |
| workspace_id | Yes | The id returned by workspace_put. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses the underlying mechanism (Git Data API blobs/tree/commit/ref), the 'Any file size' capability, the branch auto-creation fallback, and crucially the retention side-effect ('Staged rows are kept after the push (retention), never deleted'). It omits auth/permission requirements and error behavior, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences, each carrying distinct information (mechanism, capacity, branch logic, retention), with the core action front-loaded. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers mechanism, branch creation, and the retention side-effect that an agent most needs to know. It does not describe the return/response or required permissions, leaving a modest gap but a usable definition overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description adds meaning beyond the schema by explaining base_branch's fallback semantics ('Creates the branch off base_branch (or the default branch) when it does not exist') and tying workspace_id to prior staging plus post-push retention.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Assemble... write them to a branch') and resource ('files staged in the workspace', 'GitHub Git Data API'), so the agent knows this pushes staged files to git. It does not, however, name or distinguish itself from the closest siblings (workspace_put, workspace_list), so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'files staged in the workspace' tells the agent staging (workspace_put) must precede this, and the base_branch wording explains the create-if-absent case. There is no explicit when-to-use / when-not-to-use guidance or named alternative, so it stops at implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_putStage a file chunk (Large-PR Room)A
Append one chunk of a file into the server-side File Workspace. Use this to push files too big to emit in one response: call it repeatedly with small chunks of the same file (and other files), then call workspace_push once. Omit workspace_id on the very first chunk to get a fresh id back, then reuse that id for every chunk and every file in the push.
| Name | Required | Description | Default |
|---|---|---|---|
| seq | No | Optional explicit chunk order. Defaults to append order. | |
| path | Yes | Repo-relative file path this chunk belongs to. | |
| content | Yes | One chunk of the file's UTF-8 content. | |
| workspace_id | No | Omit on the first chunk to receive a fresh id; reuse it for all chunks and files in one push. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the safety profile and it mostly does: it is a server-side staged write, additive by default (append order), and explicitly deferred until workspace_push. It does not state whether chunks can be overwritten/deleted, whether staging has size or lifetime limits, or whether an abandoned workspace is garbage-collected.
Agents need to know what a tool does to the 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 densely packed sentences that front-load the action and then the multi-call usage pattern. Tight and waste-free, though the second sentence embeds three separate rules (chunk repeatedly, push once, id lifecycle) in one breath.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param mutation tool with no annotations and no output schema, the description covers the essential lifecycle: chunk repeatedly, then push once, and how the id propagates. What is missing is error/limit behavior (chunk size bounds, what happens on out-of-order seq) that an agent would need to call it robustly.
Complex tools with many parameters or behaviors need more documentation. Simple 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 every parameter already carries a description, so the baseline is 3. The description reinforces the workspace_id lifecycle (omit to get a fresh id, reuse for every chunk and file) but adds no syntax or format detail beyond the schema for seq, path, or content.
Input schemas describe structure but not intent. Descriptions should explain 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 (append) and resource (one chunk of a file into the server-side File Workspace), and positions itself in a named workflow alongside workspace_push. An agent can tell it apart from its siblings workspace_push and workspace_list without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('files too big to emit in one response'), the exact repetition pattern ('call it repeatedly with small chunks ... then call workspace_push once'), and the ordering rule for workspace_id. Nothing about when/when-not to use it 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_countryB
Get country info from the World Bank. Pass a code (US, GB) or omit for all.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ISO 3166-1 alpha-2 or alpha-3 code (default all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It doesn't state any behavioral traits beyond the code/omit behavior, but for a simple read-only lookup that is largely acceptable. However, it adds minimal beyond the schema, landing it at 2.
Agents need to know what a tool does to the 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 efficient sentence with no filler, front-loaded with the action. Slightly terse, missing potential clarifying detail, but 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?
A simple 1-parameter, zero-required tool with full schema coverage. The description is adequate for its simplicity, but it could mention output characteristics or distinguish from similar country siblings. No output schema exists, so some return expectations could be useful.
Complex tools with many parameters or behaviors need more documentation. 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 'code' parameter with ISO 3166-1 alpha-2 or alpha-3 format and its default. With 100% schema coverage, baseline is 3; the description adds an example ('US, GB') and 'omit for all' but no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (country info) from a named source (World Bank). It doesn't differentiate itself from siblings like country_info_detail, country_by_code, or country_all, but the verb+resource are 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 phrase 'omit for all' implies the default/fallback behavior, which hints at usage context, but there is no explicit when-to-use versus alternatives guidance despite many country-related siblings (country_by_code, country_info_detail, country_all).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldbank_indicatorC
Get economic/development indicator data from the World Bank.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Year range (e.g. 2015:2023, default last 8 years) | |
| country | No | Country code (default US) | |
| indicator | Yes | Indicator ID (e.g. NY.GDP.MKTP.CD for GDP, SP.POP.TOTL for population) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only data fetch but doesn't state rate limits, authentication needs, default behavior when country/date are omitted, or what happens if an indicator ID is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clear sentence with zero waste. However, it is too terse to be fully useful, and there is no front-loaded payload of constraints or routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param data-fetch tool with no annotations and no output schema, the description leaves out when to use it vs worldbank_country, whether output covers time series, and formatting of indicator IDs. Schema covers params but the description does little to complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 docs for date ('2015:2023, default last 8 years'), country ('default US'), and indicator examples. The description adds no param details and duplicates the indicator concept, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('economic/development indicator data from the World Bank'), so the purpose is clear. It doesn't distinguish from the sibling worldbank_country, which likely also reaches World Bank data, leaving some ambiguity about 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?
No when-to-use guidance, no prerequisites, no alternatives named. The sibling worldbank_country is the natural counterpart for country metadata, but the description doesn't say whether to call this tool for country lookups or how to combine them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldtime_by_ipARead-onlyIdempotent
Get current time based on IP address geolocation.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address (omit for your own IP) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so safety is covered. The description adds that the result is derived from IP geolocation, which hints at imprecision for VPN/proxy users, but it does not state that caveat or what happens when geolocation fails.
Agents need to know what a tool does to the 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 front-loaded sentence with no wasted words. It is appropriately sized, though it is almost too terse to carry any usage or behavioral signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with full schema coverage and clear annotations, the description is nearly sufficient. The gaps are minor: no mention of accuracy limits or fallback behavior when IP cannot be resolved.
Complex tools with many parameters or behaviors need more documentation. Simple 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 already documents that omitting ip uses your own IP. The description adds no syntax, format, or default behavior beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource (get current time) plus the distinguishing mechanism (IP geolocation), which separates it from worldtime_by_timezone. However, it never names that sibling or states the contrast explicitly, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: geolocation-based time is useful when the caller's location is unknown or the IP is the source of truth. There is no explicit when-to-use/when-not or pointer to worldtime_by_timezone / datetime_current_time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldtime_by_timezoneBRead-onlyIdempotent
Get current time for a specific timezone.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | Yes | IANA timezone, e.g. 'America/New_York', 'Europe/London' |
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 fully covered. The description adds no behavior beyond the core purpose (no auth needs, rate limits, or return-shape hints), so it does not enrich the annotation-provided 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?
A single front-loaded sentence with zero waste; there is nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read tool the annotations and full-coverage schema carry most of the load, but with no output schema the description could usefully state what is returned (e.g., offset, DST status, formatted time). As written it leaves return semantics 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 single parameter has 100% schema coverage with an IANA example, so the schema does the work. The description adds no syntax or formatting detail beyond what the schema already specifies, making 3 the correct 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?
Specific verb ('Get') plus resource ('current time') and scope ('for a specific timezone') make the function unambiguous. However, it does not differentiate itself from close siblings like time_api_current_by_zone, worldtime_by_ip, or datetime_current_time, so an agent must infer which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus the many other timezone/time tools in the catalog. No prerequisites, 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.
worldtime_list_timezonesARead-onlyIdempotent
List all available IANA timezones.
| 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, so the safety profile is covered. The description adds only that the listing is complete ('all available'), without mentioning return format, pagination, or rate limits; acceptable for a simple list tool but not especially informative.
Agents need to know what a tool does to the 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 with no wasted words. It states the operation and scope directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-parameter, read-only listing tool with annotations covering safety, the description is largely complete. It could mention that the result is a list of IANA timezone identifiers, but the purpose is 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?
The tool has zero parameters, so there is no parameter semantics gap. Baseline 4 applies for a no-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 uses a specific verb and resource: 'List all available IANA timezones.' It clearly identifies a complete enumeration of timezone identifiers, which is distinguishable from worldtime_by_timezone, which resolves a time for a given timezone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 explicit guidance on when to use this tool versus alternatives such as worldtime_by_timezone or time_api_timezones. An agent can infer that it is for discovering timezone names, but this is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_accountsCRead-onlyIdempotent
Get chart of accounts from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| tenant_id | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not mention the required authentication or tenant scoping despite access_token and tenant_id being parameters, and says nothing about pagination or result 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?
One short sentence, front-loaded and free of waste. It is slightly too terse given the presence of three parameters that need explanation, but it is not 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?
With three undocumented parameters, no output schema, and an authenticated open-world API, the description omits operational essentials such as which credentials are needed and whether the returned list is filtered by tenant. It is under-specified for a tool of this shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does not. The 'type' parameter is ambiguous (account class? account type?); the description doesn't say it filters, nor what values it accepts. The auth/tenant parameters go entirely unmentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 chart of accounts from Xero.' An agent can understand what data is returned without opening the schema. It gains no differentiation from siblings, though the resource name is distinct enough in practice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus sibling tools like xero_invoices or xero_contacts, no prerequisites, and no exclusions. The agent is left to infer that this is the accounts-listing call for the Xero integration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_bank_transactionsCRead-onlyIdempotent
Get bank transactions from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| tenant_id | No | ||
| access_token | No | ||
| bank_account_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds nothing beyond that: no pagination behavior, no default date range, no note on whether bank_account_id is required to get meaningful 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?
A single front-loaded sentence with no filler, but its brevity comes from omission rather than efficiency — nothing about parameters or scope is displaced elsewhere since there is no schema coverage or 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 five-parameter, fully undocumented, zero-required-field tool with no output schema, the description should clarify which parameters to supply and what a call returns. It leaves the agent guessing about mandatory auth context and how to get a non-empty result set.
Complex tools with many parameters or behaviors need more documentation. 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 five parameters have 0% schema description coverage and no required fields are declared, so the description must carry the burden of explaining them. It says nothing about date_from/date_to format or timezone, what tenant_id or access_token represent, or how bank_account_id narrows results.
Input schemas describe structure but not intent. Descriptions should explain 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 bank transactions from Xero'), which the resource noun alone distinguishes from sibling xero_* tools like xero_invoices or xero_payments. It is clear but offers no explicit differentiation or scope statement (all transactions vs. a single account).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of prerequisites such as tenant_id/access_token, and no indication of how it relates to alternatives like xero_reports or plaid_transactions. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_contactsCRead-onlyIdempotent
Get contacts from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| tenant_id | No | ||
| is_customer | No | ||
| is_supplier | No | ||
| access_token | No |
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 nothing beyond that — no mention of auth requirements, tenant scoping, result limits, or pagination, despite openWorldHint signaling external variability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no waste, but it is under-specified rather than concise; the brevity is a symptom of missing content, not of disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Five undocumented parameters, no output schema, and no behavioral notes for an open-world authenticated API. An agent would have to guess whether to pass filters and how to authenticate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, and the description says nothing about them. Meaningful filters like search, is_customer and is_supplier — the difference between a broad dump and a targeted lookup — go entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get contacts from Xero" names a resource (contacts) and implicitly distinguishes it from xero_invoices/xero_accounts siblings, but the verb "Get" is ambiguous — it could mean list-all or fetch-one, and no scope is 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?
There is no guidance on when to use this versus the other Xero tools, no mention of prerequisites (tenant_id, access_token), and no note on whether filtering is expected or optional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_invoicesCRead-onlyIdempotent
Get invoices from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | DRAFT, SUBMITTED, AUTHORISED, etc. | |
| date_to | No | ||
| date_from | No | ||
| tenant_id | No | ||
| contact_id | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that—no mention of pagination, default result size, ordering, or what happens when filters are omitted—so the description contributes no behavioral context of its own.
Agents need to know what a tool does to the 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 with no filler, but its brevity reflects under-specification rather than efficiency. Nothing needs trimming; something needs adding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 read tool with no output schema and sparse schema descriptions, the definition is incomplete: it never explains filter semantics, pagination, result volume, or the tenant/auth requirement implied by tenant_id and access_token. An agent can guess, but cannot call it confidently without opening the schema and still guessing at 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 coverage is only 17%: only 'status' has a description, while date_from, date_to, tenant_id, contact_id and access_token are undocumented. The description says nothing about how these filters combine, whether they are optional, or what the default listing behavior is, leaving five parameters unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource (get invoices) scoped to Xero, so an agent knows it retrieves invoice data from the Xero integration. It does not distinguish itself from relatives like xero_payments or xero_quotes, and it doesn't clarify whether this is a list-all or a single-invoice fetch, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the many other invoice-related siblings (stripe_invoices, quickbooks_invoices, paypal_invoices, xero_payments), nor on prerequisites such as tenant/auth context. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_organisationC
Get organisation details from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant_id | No | ||
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Get' but does not disclose any behavioral traits such as read-only nature, authentication requirements, rate limits, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded. However, it may be too minimal, lacking necessary details for higher scores.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and low complexity, the description is adequate for a simple retrieval tool but does not specify output contents or permissions needed. It meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not explain any parameters. The two parameters (access_token, tenant_id) are left entirely to the schema, providing no added 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 'Get organisation details from Xero,' which is a specific verb+resource combination. It distinguishes from sibling tools like xero_accounts, xero_contacts, etc., which operate on different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 alternatives. It lacks any 'when not to use' or context about prerequisites, which is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_paymentsCRead-onlyIdempotent
Get payments from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| date_to | No | ||
| date_from | No | ||
| tenant_id | No | ||
| access_token | No |
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. However, the description adds no behavioral context such as pagination, authentication scope, tenant requirements, or expected return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it is under-specified rather than appropriately sized for a five-parameter integration tool. Brevity here reflects missing detail rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five undocumented parameters, no output schema, and no sibling differentiation, the description is not complete enough for an agent to invoke it reliably. Essential details about status values, date formats, tenant scoping, and authentication are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has five parameters with 0% description coverage, including status, date_from, date_to, tenant_id, and access_token. The description does not explain any of them, so it fails to compensate for the undocumented 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 clear verb and resource: get payments from Xero. It is understandable on its own, but it does not distinguish this tool from sibling Xero tools such as xero_invoices or xero_bank_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of filtering goals, and no prerequisites or exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_quotesCRead-onlyIdempotent
Get quotes from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| tenant_id | No | ||
| contact_id | No | ||
| access_token | No |
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 nothing beyond that: no pagination behavior, no result ordering, no note about tenant scoping or rate limits. For an open-world API call, the description could have contributed useful behavioral context but doesn't.
Agents need to know what a tool does to the 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 sentence is technically efficient, but here the brevity is under-specification rather than conciseness. The sentence is front-loaded but omits nearly all 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?
A four-parameter, open-world, authenticated API tool with no output schema and no parameter documentation cannot be called correctly from this description. Neither the authentication requirement nor the filter semantics nor the response shape is 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 0% for 4 parameters, so the description carries the full burden and completely fails. It never explains what 'status' values are valid, why 'tenant_id' is needed, how 'contact_id' filters quotes, or that 'access_token' is an auth credential.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource 'Get quotes from Xero' is identifiable, and the resource (quotes) is distinct from sibling resources like xero_invoices or xero_payments. However, it doesn't clarify whether this lists all quotes, retrieves a single quote, or filters them, and it never differentiates itself from the other Xero tools in any concrete way.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 xero_invoices or other Xero siblings, no mention of prerequisites (tenant/access token), and no indication of what the optional filters do. An agent has to infer everything from the parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xero_reportsC
Get financial reports from Xero.
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | No | ||
| from_date | No | ||
| tenant_id | No | ||
| report_type | Yes | BalanceSheet, ProfitAndLoss, TrialBalance | |
| access_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only implies read-only access but omits details on authentication requirements, rate limits, error handling for invalid report types, or that dates might be 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 a single, concise sentence that front-loads the core purpose. However, it could include brief additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain required authentication, date format expectations, or how report_type values map to actual reports.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only 20% (only 'report_type' has a description). The description adds no new parameter info, leaving the purpose of 'from_date', 'to_date', 'access_token', and 'tenant_id' unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Get'), resource ('financial reports'), and source ('Xero'). It effectively distinguishes this tool from sibling Xero tools (e.g., xero_accounts, xero_invoices) which handle different data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other Xero tools or when not to use it. For instance, it does not mention that report_type must be one of the specific options listed in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xkcd_comicB
Get a specific xkcd comic by number.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Comic number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and says almost nothing. It implies a read-only fetch, but gives no information about error behavior for invalid numbers, ranges, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler. Every word contributes to identifying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-parameter read tool with a fully documented schema and no output schema, the description is sufficient to invoke it correctly. It could note behavior for out-of-range numbers, but that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single documented parameter, so the schema already covers the semantics. The phrase 'by number' confirms the identifier is a comic number but adds no syntax or valid-range 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 (Get) and resource (xkcd comic) with the discriminator 'by number', which separates it from xkcd_latest and xkcd_random siblings. Clear purpose, though it doesn't 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?
No when-to-use or when-not-to-use guidance. The agent must infer from the name that this is for a known comic number versus xkcd_latest or xkcd_random. No prerequisites or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xkcd_latestARead-onlyIdempotent
Get the latest xkcd comic.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a read-only, idempotent, non-destructive, open-world operation, so safety is covered. The description adds little beyond the annotations and does not mention return shape, rate limits, or whether 'latest' may change over time, but it also 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 a single, front-loaded sentence with no wasted words. It states the operation and scope immediately, which is appropriate for a simple zero-parameter 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 read-only comic retrieval tool with rich annotations and no parameters, the description is nearly sufficient. The main remaining gap is that there is no output schema and the description does not state what the returned comic object contains, but the core operation 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?
This tool has zero parameters, so there is nothing for the description to document beyond the operation itself. The baseline for a parameterless tool is 4, and the description does not introduce confusion or undocumented 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 states a clear verb and resource: 'Get the latest xkcd comic.' It is more specific than a bare name and communicates that this returns the newest comic rather than a specific or random one. However, it does not explicitly distinguish the tool from siblings like xkcd_comic or xkcd_random.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'latest' implies when this tool is appropriate, but there is no explicit guidance such as 'use xkcd_comic when you need a specific issue' or 'use xkcd_random for a random comic.' The usage is inferable from the name and description, but alternatives are not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xkcd_randomBRead-onlyIdempotent
Get a random xkcd comic.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 safety profile is covered by structured data. The description adds only the notion of randomness, saying nothing about return shape or whether successive calls yield different comics. With annotations carrying the main burden, this is adequate but thin.
Agents need to know what a tool does to the 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 short sentence, front-loaded and free of padding. For a zero-parameter tool there is nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple and annotated, but with no output schema the description does not indicate what a 'comic' response contains (title, image URL, alt text, number). An agent can select it but knows little about the expected 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 takes zero parameters, so there is no parameter semantics to explain; the baseline for a zero-param tool is 4. The empty schema is fully consistent with the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get') and resource ('random xkcd comic'), and the 'random' qualifier separates it functionally from xkcd_latest and xkcd_comic. It does not explicitly name those siblings as alternatives, 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?
There is no guidance on when to choose this over xkcd_latest or xkcd_comic, and no note about whether the result can be re-requested identically or will vary. The single sentence gives no usage context beyond the obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xor_basisB
Compute a linear basis over GF(2) (XOR basis) for a set of integers.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of non-negative integers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the operation is over GF(2), but says nothing about the returned representation (list of basis vectors? rank?), determinism, or canonical form, so an agent cannot predict the output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the core operation is stated immediately and nothing 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?
For a one-parameter pure-function tool this is minimally adequate, but with no output schema the description should explain what the computed basis looks like (e.g., a reduced basis array and/or its rank), which it omits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'values' parameter ('Array of non-negative integers'), so the schema already documents the input. The description only restates 'a set of integers' and adds no boundary details (e.g., value range limits), making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Compute') and resource ('a linear basis over GF(2) (XOR basis) for a set of integers'), which is precise enough that an agent knows exactly what mathematical operation this performs. It does not, however, differentiate itself from adjacent linear-algebra siblings like gaussian_elimination, matrix_rank, or linear_solve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this tool versus alternatives, nor any prerequisites or constraints (e.g., integer width limits, whether the basis is reduced/canonical). The agent must infer the use case (XOR/linear-basis problems) entirely from the name and one sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xpass_aggregated_verdictB
Return one XPass conductor verdict for a target PR/change at a specific commit SHA. Selected PASS receipts must name the same head SHA; stale, unscoped, missing, or blocker receipts cannot produce a green verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| now | No | Alias for generated_at. | |
| body | No | Optional body text used for check selection. | |
| tags | No | Optional tags used for check selection. | |
| files | No | Alias for changed_files. | |
| title | No | Optional PR/change title used for check selection. | |
| target | Yes | Target change to inspect. target.sha or target.head_sha is required for anti-stale proof binding. | |
| context | No | Optional extra context used for check selection. | |
| results | No | Map form of pass_results keyed by check name. | |
| summary | No | Optional summary text used for check selection. | |
| ownedFiles | No | Alias for owned_files. | |
| description | No | Optional PR/change description used for check selection. | |
| owned_files | No | Owned file paths for check selection. | |
| changedFiles | No | Alias for changed_files. | |
| generated_at | No | Optional deterministic timestamp for tests or replay. | |
| pass_results | No | Underlying Pass receipts or summarized results. Green results must include target_sha/head_sha matching target.sha. | |
| changed_files | No | Changed file paths for check selection. | |
| force_council | No | Alias for require_council. | |
| enabled_checks | No | Optional suite restriction. When supplied, XPass only gates the selected checks that are enabled here. | |
| require_council | No | Force the Crews Council recommendation on this XPass receipt. | |
| selected_checks | No | Optional explicit XPass product checks to require for this verdict. | |
| available_checks | No | Optional worker availability list. Selected checks outside this list are NOT RUN and cannot make the verdict green. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It discloses key validation logic ('stale, unscoped, missing, or blocker receipts cannot produce a green verdict') and proof binding to head SHA, but omits auth needs, side effects, rate limits, and what a non-green verdict looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, followed by a constraint. No wasted words, though slightly dense with jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 21 parameters, nested objects, and no output schema, the description should ideally describe the return value and more of the parameter interactions. It covers the anti-stale requirement but leaves output format and most parameter semantics to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 21 parameters. The description adds minimal parameter meaning beyond what is in the schema, only hinting at target SHA and receipt head SHA matching.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and resource ('one XPass conductor verdict') with scope ('for a target PR/change at a specific commit SHA'). It distinguishes from individual pass tools by implying aggregation, but does not name a specific sibling tool for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when an aggregated conductor verdict is needed from PASS receipts, but does not state when to use it versus calling individual pass tools or list/get run tools. No explicit when-not or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yelp_autocompleteC
Autocomplete a Yelp business search.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| api_key | No | ||
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the basic action, with no annotations available. It does not disclose any behavioral traits such as rate limits, authentication requirements, or what the returned data includes (e.g., list of suggestions). The api_key parameter is not mentioned, even though it is in the schema. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence), but it sacrifices essential information. While brevity is good, this is under-specification. It should include parameter details or usage context to be valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity of 4 parameters (including an api_key) and no output schema or annotations, the description is grossly incomplete. It fails to clarify the role of latitude/longitude, whether api_key is required, or what the autocomplete response contains. A complete description would at least mention these aspects.
Complex tools with many parameters or behaviors need more documentation. 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 4 parameters with 0% description coverage. The description provides no explanation for any of the parameters (text, latitude, longitude, api_key). The agent has no guidance on what each parameter means or how to use them, which is a critical 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 clearly states the action ('Autocomplete') and resource ('a Yelp business search'). It is specific enough to distinguish from sibling tools like yelp_search_businesses, which searches for businesses, while this provides autocomplete suggestions. However, it lacks any details about the scope or output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention when to use autocomplete vs. search, nor does it provide any context about prerequisites or typical use cases. The description simply states what it does without any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yelp_get_businessBRead-onlyIdempotent
Get details for a Yelp business by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| business_id | Yes |
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 fully covered structurally. The description adds nothing beyond that — no note on rate limits, auth requirements, or what happens with an invalid ID.
Agents need to know what a tool does to the 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 with zero waste. It is arguably too terse given the coverage gaps, but as raw structure it is efficient and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey what 'details' actually contains, and it does not — an agent cannot tell whether it returns hours, address, ratings, or photos. For a lookup tool with undocumented api_key and no return-value insight, this is thin.
Complex tools with many parameters or behaviors need more documentation. Simple 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 is the only source of parameter meaning; it clarifies that business_id is a Yelp business identifier. However, the api_key parameter is completely unexplained in both the schema and the description, leaving a real 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?
States a specific verb (Get) and resource (details for a Yelp business) plus the lookup key (ID), which cleanly separates it from yelp_search_businesses and yelp_get_reviews. It does not explicitly name the sibling tools, 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?
The phrase 'by ID' implies this is a follow-up to a search that produced a business ID, but the description never states when to use this versus yelp_search_businesses or yelp_autocomplete. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yelp_get_reviewsCRead-onlyIdempotent
Get reviews for a Yelp business.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| business_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds nothing beyond that: no mention of pagination, result count, sort order, or that reviews may be sparse or empty for some businesses. With annotations carrying the safety profile, the low bar is met but nothing extra 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?
One sentence with no wasted words, but the brevity is under-specification rather than efficiency. There is no front-loaded scope, constraints, or alternative routing 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?
There is no output schema, so the description should say what a review result looks like (ratings, text, count, pagination), and it does not. For a two-parameter tool with zero schema documentation, this leaves an agent guessing at both input provenance and output shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and fails: api_key (an authentication parameter) is completely unexplained, and business_id is only implied by 'for a Yelp business' with no note on format or provenance. A high-coverage schema does not exist here 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 a specific verb and resource (get reviews for a Yelp business), which is clear enough for an agent to distinguish it from yelp_search_businesses. However, it never contrasts itself with yelp_get_business, the closest sibling, so the boundary between fetching business details and fetching its reviews is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 yelp_search_businesses or yelp_get_business, and no prerequisites are stated. An agent is not told where business_id comes from (e.g., that it must first be obtained via yelp_search_businesses).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yelp_search_businessesCRead-onlyIdempotent
Search for businesses on Yelp.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | ||
| limit | No | ||
| api_key | No | ||
| latitude | No | ||
| location | No | ||
| longitude | No | ||
| categories | No |
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 nothing about rate limits, result ordering, pagination, or what kind of business data is returned, so it misses the opportunity to supplement structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and waste-free, but it is under-specified rather than effectively concise. Brevity here does not compensate for missing operational 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 search tool with seven undocumented parameters, no output schema, and no explanation of search behavior or result format, the description is far too thin. An agent cannot reliably invoke it without guessing parameter 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?
The schema has seven parameters with 0% description coverage, including term, location, latitude/longitude, categories, and api_key. The description mentions none of them, so an agent cannot tell how to formulate a search or which parameter combinations are valid.
Input schemas describe structure but not intent. Descriptions should explain 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 verb and resource: searching for businesses on Yelp. It does not distinguish this tool from siblings like yelp_get_business, yelp_autocomplete, or yelp_search_events, but the core action 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?
There is no guidance on when to use this search tool versus yelp_autocomplete (query suggestions) or yelp_get_business (lookup by ID). The description leaves all 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.
yelp_search_eventsCRead-onlyIdempotent
Search for events on Yelp.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| location | No | ||
| categories | No | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds nothing beyond them — no mention of what the Yelp API returns, authentication expectations for api_key, rate limits, or whether start_date is an epoch timestamp. For an external API tool it is thin.
Agents need to know what a tool does to the 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 short sentence is efficient but under-specified rather than concise; it spends its only words restating the tool name instead of adding usable 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?
With no output schema, no annotations about return shape, no required params and four undocumented params, an agent cannot confidently construct a call. The description leaves essentially all invocation-relevant details 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?
Four parameters with 0% schema description coverage and no parameter explanation in the description. Notably start_date is typed as a number while the others are strings, and nothing anywhere clarifies the expected format (epoch seconds? millis?) or how categories is encoded — a real invocation hazard.
Input schemas describe structure but not intent. Descriptions should explain 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 (events) scoped to Yelp, which implicitly separates it from yelp_search_businesses and yelp_get_reviews. It stops short of explicitly naming what distinguishes it from other event-search siblings like tm_search_events or seatgeek_search_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus yelp_search_businesses, yelp_autocomplete, or the several other event search tools in the sibling list. The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yesno_randomARead-onlyIdempotent
Get a random yes/no answer with an animated GIF.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force a specific answer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnly, non-destructive, openWorld), so the description adds the one thing structured fields don't: the response includes an animated GIF, which matters since there is no output schema. Minor tension: 'random' implies each call differs, while idempotentHint=true suggests otherwise, though that is about side effects rather than output variance.
Agents need to know what a tool does to the 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 with zero filler; the core action comes first and the output detail follows. Nothing could be removed 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?
For a zero-required-parameter, no-output-schema tool, the description covers what it does and what it returns (a GIF), which is the main gap such tools usually have. It stops short of describing response fields or whether the GIF URL accompanies the answer.
Complex tools with many parameters or behaviors need more documentation. 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 parameter has 100% schema coverage including an enum and the note 'Force a specific answer', so the baseline is 3. The description adds nothing about `force` (e.g., that it overrides randomness), leaving the schema to do all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a random yes/no answer') plus the distinctive output form ('with an animated GIF'), so it is clearly separable from siblings like random_flip_coin, random_number, or random_pick_from_list. An agent knows exactly what this returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and never mentions alternatives in a sibling set crowded with similar randomizers (random_flip_coin, random_pick_from_list, random_roll_dice). The intended use (casual decision-making) is only incidental to the phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_captionsC
List available caption tracks for a YouTube video.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| video_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states 'list available caption tracks' without explaining response format, authentication requirements (api_key is a parameter but not explained), or any 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 concise sentence, which is efficient but omits valuable context. It could be improved with a structured format including parameter hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and no annotations, the description is insufficient. It does not clarify what a 'caption track' is, what the response contains, or how to use the api_key, leaving gaps for 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?
Schema coverage is 0% and the description provides no information about the two parameters (api_key, video_id), leaving the agent without 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 verb 'List', the resource 'available caption tracks', and the scope 'for a YouTube video', distinguishing it from other YouTube tools like get_video 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?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. The description does not clarify that 'list' means metadata only, not the actual captions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channelBRead-onlyIdempotent
Get metadata and statistics for a YouTube channel.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Channel handle without @ (alternative to channel_id) | |
| api_key | Yes | ||
| channel_id | No |
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 the useful detail that the payload includes both metadata and statistics, but says nothing about the mandatory api_key, rate limits, or failure modes (e.g. unknown handle).
Agents need to know what a tool does to the 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 with zero filler. It is efficient, though for a tool with an undocumented required credential parameter the terseness edges into under-specification rather than ideal concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple, annotations cover safety and there is no output schema, so the description doesn't need to explain return values. Still, it omits the required api_key and any hint about what 'statistics' contains or what happens on an invalid identifier, leaving meaningful gaps for an agent composing 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 coverage is only 33% – api_key and channel_id have no descriptions at all, and the description does not compensate by explaining that api_key is required or that handle and channel_id are alternatives. The one useful hint (handle is an alternative to channel_id) lives in the schema, not the description, so the description adds essentially no 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 a specific verb ('Get') and resource ('metadata and statistics for a YouTube channel'), which is unambiguous and distinct from the video/playlist siblings. It stops short of explicitly contrasting itself with youtube_search or youtube_get_video, so it lands at 4 rather than 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?
Usage is only implied: an agent infers you call this when you want channel-level info. There is no statement of when to prefer this over youtube_search, and no guidance on choosing handle vs channel_id despite the schema offering both. 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.
youtube_get_videoBRead-onlyIdempotent
Get metadata, statistics, and content details for a YouTube video.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| video_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is fully covered before reading the description. The description adds a light behavioral signal by enumerating the categories of returned data (metadata, statistics, content details), but says nothing about what happens with an unknown/deleted/private video or quota/rate behavior for a live external API.
Agents need to know what a tool does to the 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 front-loaded sentence with no filler or redundancy. It is efficient, though the brevity comes partly at the cost of the missing detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema and fully undocumented params, the description should specify the video_id format and what the returned payload contains. It gestures at return content ('statistics, content details') but leaves the caller to guess field names and id conventions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for both parameters and provides nothing. It doesn't state whether video_id accepts a bare 11-character id or a full URL, and never explains that api_key is a caller-supplied YouTube Data API credential rather than an internal identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: retrieves metadata, statistics and content details for a single YouTube video. This distinguishes a detail lookup from list/search-shaped siblings like youtube_search, but the description never names those siblings explicitly, so the differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. It doesn't say to call this after youtube_search resolves a video id, nor does it distinguish it from youtube_get_captions or youtube_get_channel, leaving the agent to infer the workflow from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_list_playlist_itemsCRead-onlyIdempotent
List videos in a YouTube playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| page_token | No | ||
| max_results | No | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds nothing beyond that: it doesn't mention pagination via page_token, result limits, rate limits, or that the playlist must be public/unlisted-accessible.
Agents need to know what a tool does to the 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 with no filler, which is appropriate for a simple read tool. It is under-specified rather than bloated, so conciseness itself is not the problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameter descriptions, the description should carry more burden: it should at least explain page_token/max_results pagination behavior and what a returned item looks like. As written, an agent can call the tool but cannot page reliably or predict the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all four parameters (api_key, playlist_id, page_token, max_results) are undocumented. The description only vaguely implies playlist_id and says nothing about pagination or result-size parameters that materially affect calls.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List videos in a YouTube playlist'), which clearly separates it from youtube_list_playlists (lists playlists) and youtube_get_video (single video). It's clear, but adds no scope detail such as ordering or what fields come back.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus youtube_search, youtube_list_playlists, or youtube_get_video, nor any mention of prerequisites (e.g., needing a valid playlist ID or API key). The agent must infer all routing 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.
youtube_list_playlistsCRead-onlyIdempotent
List playlists belonging to a YouTube channel.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| channel_id | Yes | ||
| page_token | No | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds nothing beyond purpose—it does not mention pagination via page_token, rate limits, API key requirements, or result ordering—so it contributes very little 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 single sentence is front-loaded and free of waste, with the core action and scope stated immediately. Its brevity is efficient, though it leans toward under-specification rather than crisp completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 paginated list operation with four undocumented parameters and no output schema. The agent cannot learn from the description how authentication, paging, or result limits work, which are necessary to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters. The description only implies channel_id by referencing a channel; it says nothing about api_key, page_token, or max_results, so it fails to compensate for the undocumented 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 sentence names a specific verb (List) and resource (playlists) scoped to a YouTube channel, which is clear on its own. It implicitly distinguishes from youtube_list_playlist_items, but never names that sibling or any other, so it falls 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 guidance on when to use this instead of youtube_list_playlist_items, youtube_get_channel, or youtube_search, and no prerequisites or exclusions are stated. The agent must infer the use case purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_searchBRead-onlyIdempotent
Search YouTube for videos, channels, or playlists.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | video, channel, or playlist (default: video) | |
| order | No | relevance, date, rating, viewCount, title | |
| query | Yes | ||
| api_key | Yes | ||
| channel_id | No | ||
| page_token | No | ||
| max_results | No | ||
| region_code | No | ||
| published_after | No | RFC 3339 datetime, e.g. 2024-01-01T00:00:00Z |
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 fully covered by structured data. The description adds only the set of searchable resource types, and says nothing about quota consumption, API key requirements, or that paging via page_token is needed to go beyond a single result page.
Agents need to know what a tool does to the 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 with no filler — every word earns its place. It is however under-sized for a 9-parameter search tool, bordering on under-specification rather than true economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters, 6 undocumented by schema, no output schema, and pagination available via page_token, the description leaves an agent without enough information to call the tool correctly — it should at least mention required auth and how to page/size results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: query, api_key, channel_id, page_token, max_results, and region_code carry no schema descriptions at all. The description covers only the 'type' dimension (videos/channels/playlists) and leaves half a dozen parameters unexplained, so it fails to compensate for the coverage 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?
States a specific verb and resource ('Search YouTube for videos, channels, or playlists'), which is clear enough for an agent to understand the operation. It does not, however, distinguish itself from siblings like youtube_get_video, youtube_get_channel, or youtube_list_playlists, so the boundary between searching and fetching by ID is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'search' implies keyword-driven discovery, but the description never states when to use this versus youtube_get_video (ID lookup) or youtube_list_playlists (enumeration). No prerequisites, no mention of the required YouTube API key, no guidance on pagination or result caps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
z_algorithmB
Compute the Z-array for a string, or find pattern matches using the Z-algorithm in linear time.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input text | |
| pattern | No | Optional pattern to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the algorithm's time complexity (linear), which is helpful, but it doesn't disclose crucial behavioral details: whether it returns the Z-array or match positions when a pattern is provided, the format of the output, or any error conditions. For a tool with two distinct modes, this gap is significant.
Agents need to know what a tool does to the 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 efficiently communicates the tool's core functionality and performance characteristic. 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?
Without annotations or an output schema, the description should explain what the tool returns in each mode. It doesn't state whether the output is the Z-array, an array of match indices, or a boolean. For a tool with a dual purpose, this lack of return value clarity makes it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple 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 describes both parameters. The description doesn't add meaning beyond the schema; it merely restates that the tool operates on a string and optionally a pattern. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Compute the Z-array for a string, or find pattern matches using the Z-algorithm in linear time.' It clearly distinguishes the tool's two functions and notes the linear-time property. Compared to algorithmic siblings like z_function or kmp_search, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need a Z-array or pattern matching), but it doesn't specify when to choose it over alternatives, nor does it clarify the exact conditions for using the optional pattern parameter. There's no explicit 'use this instead of X' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_add_commentC
Add a public or internal comment to a Zendesk ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text | |
| Yes | Agent email address | ||
| public | No | Public reply (default true) or internal note (false) | |
| api_token | Yes | Zendesk API token | |
| subdomain | Yes | Zendesk subdomain | |
| ticket_id | Yes | Ticket id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does little: it does not state that a public reply notifies the requester while an internal note does not, nor whether the agent must authenticate, nor what happens on an invalid ticket id. It adds one visibility-related fact (public or internal) but no mutation side effects 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?
A single front-loaded sentence with zero filler; the action target is stated first and nothing 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?
For a credential-bearing mutation tool with no annotations and no output schema, the description omits too much: no side-effect disclosure, no auth framing, no error behavior. The schema covers parameters, but the behavioral context an agent needs to invoke this safely 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 all six parameters documented in the schema, so per the rubric the baseline is 3. The description's mention of 'public or internal' echoes the schema's own public parameter description and adds no syntax or format detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Add a ... comment to a Zendesk ticket'), making the action unambiguous. It is obviously distinct from its read-only siblings (zendesk_get_ticket, zendesk_list_tickets, zendesk_search), but it never names or contrasts them 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?
There is no when-to-use guidance, no when-not-to-use guidance, and no mention of alternatives or prerequisites (e.g., that credentials/ticket_id must already be valid). The public/internal distinction exists only as a schema default, not as decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_get_ticketBRead-onlyIdempotent
Get a single Zendesk ticket by id.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Agent email address | ||
| api_token | Yes | Zendesk API token | |
| subdomain | Yes | Zendesk subdomain | |
| ticket_id | Yes | Ticket id |
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 essentially no behavioral context beyond those structured hints, such as auth expectations, not-found behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is appropriately terse for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 getter with fully described parameters, rich annotations, and no output schema, the definition is largely complete enough to invoke. The main missing piece is routing guidance versus search/list 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 all four parameters are already documented. The description only reinforces that ticket_id identifies the ticket; it adds no syntax, format, or credential 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 verb and resource: get a single Zendesk ticket by id. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as zendesk_search or zendesk_list_tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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" implies the tool should be used when a ticket id is already known, but it gives no explicit when-to-use guidance, exclusions, or named alternatives for searching or listing tickets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_list_ticketsBRead-onlyIdempotent
List recent Zendesk tickets (signals when any are still new).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Agent email address | ||
| limit | No | Tickets to return (max 100, default 25) | |
| sort_by | No | Sort field (e.g. created_at, updated_at) | |
| api_token | Yes | Zendesk API token | |
| subdomain | Yes | Zendesk subdomain |
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 only the ambiguous parenthetical "signals when any are still new", which hints at some status output but doesn't say what signal, in what field, or what counts as "new".
Agents need to know what a tool does to the 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 short sentence with the resource front-loaded and zero padding. It is efficient, though the vague parenthetical is the one phrase that doesn't fully earn 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 5-parameter tool requiring subdomain, email and API token, the description says nothing about authentication expectations, pagination, or what the returned list looks like. The schema covers parameters, but with no output schema the description should have done more to describe the return payload.
Complex tools with many parameters or behaviors need more documentation. Simple 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 limit, sort_by and the three credential fields are already documented in the schema. The description adds no syntax, defaults, or credential-acquisition detail beyond that, 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?
States a specific verb and resource ("List recent Zendesk tickets") with a recency scope, which distinguishes it from an unconstrained search. However, it never names the obvious siblings (zendesk_search, zendesk_get_ticket) that an agent would weigh it against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use or when-not-to-use guidance; the agent must infer from the word "recent" that this is a quick overview rather than a filtered query. Nothing tells the caller to prefer zendesk_search for filters or zendesk_get_ticket for a specific ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_searchARead-onlyIdempotent
Search Zendesk with the query DSL (e.g. 'type:ticket status:open priority:urgent').
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Agent email address | ||
| query | Yes | Zendesk search query | |
| api_token | Yes | Zendesk API token | |
| subdomain | Yes | Zendesk subdomain (e.g. mycompany) |
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 the DSL syntax which is useful, but says nothing about auth mechanism, rate limits, pagination, or result shape 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?
A single tight sentence with the actionable DSL example front-and-center and zero 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?
Annotations carry the safety profile, schema documents all params, and no output schema exists to explain. The description plus example is largely sufficient for correct invocation, with only deeper DSL coverage and result behavior left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple 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 genuine meaning for the query parameter by showing DSL syntax the schema only calls 'Zendesk search query'. The example materially helps construct a valid 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?
Clear verb+resource: 'Search Zendesk' with a concrete DSL example ('type:ticket status:open priority:urgent'). It distinguishes search from sibling list/get_ticket actions implicitly, though it never names them to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The DSL example implies you use this for filtered/query-based lookups, but there's no explicit when-to-use vs zendesk_list_tickets or zendesk_get_ticket, and no exclusions or preconditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zen_quote_randomARead-onlyIdempotent
Get a random inspirational quote from Zen Quotes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered without help from the description. The description adds nothing beyond that — no note on whether the same quote can repeat, no rate-limit or reliability context. Note also that idempotentHint=true sits awkwardly with a 'random' endpoint, though that inconsistency originates in the annotation rather than the text.
Agents need to know what a tool does to the 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 short sentence with the resource and the key qualifier ('random') front-loaded. No filler, 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 zero-argument, read-only convenience tool with full annotation coverage, this is nearly complete. The one small gap is that there is no output schema, so the description could have mentioned the shape of the result (quote text and author) 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 tool takes zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. Nothing in the description misleads about 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?
States a specific verb ('Get') and resource ('a random inspirational quote from Zen Quotes'), so the agent knows exactly what comes back. It does not distinguish itself from the sibling tools zen_quote_today and zen_quotes, though the word 'random' implicitly separates it from a daily quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'random' suggests it is the right pick when any quote will do, versus zen_quote_today for a fixed daily quote. There is no explicit when-to-use or when-not-to-use statement naming those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zen_quotesARead-onlyIdempotent
Get a batch of inspirational quotes from Zen Quotes (returns up to 20).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds useful context by disclosing the source and the batch size cap of 20, but does not say whether successive calls return fresh random quotes (consistent with idempotentHint) or what fields each quote contains.
Agents need to know what a tool does to the 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 with zero filler; the return cap is appended where it is most useful and nothing is repeated from annotations 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?
For a no-parameter fetch with full annotation coverage and no output schema, the description gives the essentials: source, content type, and batch size. It falls slightly short on return shape (per-quote fields, randomness across calls), though the absence of an output schema makes that 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 tool takes zero parameters, so the baseline is 4; there is nothing about parameters that the description needs to compensate 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?
States a specific verb ('Get') and resource ('inspirational quotes from Zen Quotes') plus a concrete return quantity ('up to 20'), so the agent knows this is a batch quote fetch. It does not name or contrast with the near-identical siblings zen_quote_random and zen_quote_today, leaving the batch-vs-single distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a batch of ... quotes' implicitly signals this tool for multi-quote needs rather than a single random quote, which hints at when to prefer it over zen_quote_random/zen_quote_today. However, no explicit when-to-use or when-not-to-use guidance or alternative routing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zen_quote_todayARead-onlyIdempotent
Get today's quote of the day from Zen Quotes.
| 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 fully covered by structured data. The description adds only that the quote is the 'quote of the day,' without stating whether it changes daily, what fields it returns, or any rate-limit/caching 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?
One short sentence with the key qualifier ('today's') front-loaded. 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 zero-argument tool with rich annotations and no output schema, the definition is near-sufficient. The only minor gap is that it doesn't hint at the shape of the returned quote (author/text), which matters slightly since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. 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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No param-related omissions are possible.
Input schemas describe structure but not intent. Descriptions should explain 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 concrete verb ('Get') and a specific resource ('today's quote of the day'), so the agent knows exactly what it retrieves. The sibling names zen_quote_random and zen_quotes make the today-vs-random distinction inferable from the word 'today', though the description never names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name and the phrase 'today's quote' – an agent can infer this is the deterministic daily endpoint vs zen_quote_random. No explicit when-to-use or when-not framing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
z_functionC
Compute Z-function of a string with optional pattern matching.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input string to compute Z-function for | |
| pattern | No | Optional pattern to search for in text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't say what the Z-function output looks like, whether pattern matching returns an index list or something else, edge cases (empty string), or performance characteristics. It only restates the 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?
A single short sentence with no filler, front-loaded with the core action and mention of the optional pattern. 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?
With no output schema, no annotations, and only a two-parameter tool, the description should describe the return value (Z-array vs. pattern match positions) and edge cases. It does not, leaving the agent unable to predict output shape or interpret the pattern parameter's effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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. The description hints that 'pattern' enables pattern matching, adding a little semantic value beyond the schema's 'Optional pattern to search for in text', but does not specify how the result differs when pattern is provided. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Compute) and resource (Z-function of a string), and mentions an optional pattern-matching behavior. It is somewhat differentiated from sibling z_algorithm and prefix_function by naming the Z-function explicitly, though it does not call out those siblings directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives like z_algorithm, kmp_search, or rabin_karp_search, nor when the optional pattern should be supplied. The description implies a context (string matching) but provides no explicit when-to-use or when-not-to-use rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zip_by_cityBRead-onlyIdempotent
Look up zip/postal codes for a city and state.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name | |
| state | Yes | State abbreviation (e.g. CA, NY) | |
| country | No | Country code (default: us) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world. The description adds nothing beyond that — no note on whether results are one code or many, whether partial matches are returned, or what the default country behavior yields. Adequate given annotation coverage, but no added 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?
One short, front-loaded sentence with no waste. It is however so terse that it leaves room unused rather than being optimally structured 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 3-param lookup with full schema coverage and annotations, this is minimally sufficient. Missing niceties include whether multiple codes may return and how the optional country interacts with the state abbreviation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 includes the useful 'State abbreviation (e.g. CA, NY)' and country default. The description restates city/state without adding format rules or clarifying the country parameter's effect. Baseline 3 applies since the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Look up zip/postal codes') with an explicit scope ('for a city and state'). It's clearly distinguishable from plausible siblings like zip_lookup (reverse direction) or auspost_get_postcode, though the description doesn't name any of 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 'city and state' phrasing implies the forward direction (place → codes) rather than the reverse, which is the main usage discriminator against zip_lookup. But there's no explicit statement of when to use this vs. postcode_lookup or zip_lookup, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zip_lookupCRead-onlyIdempotent
Look up location info for a zip/postal code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Zip or postal code | |
| country | No | Country code (default: us). Supports us, gb, au, ca, de, fr, etc. |
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 needs no repeating. The description adds nothing beyond the one-line purpose: it does not say what 'location info' contains (city/state/lat-long?), whether lookups are case-insensitive, or what happens on an unknown code or unsupported country.
Agents need to know what a tool does to the 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-formed sentence with no filler, and the core action is front-loaded. It is arguably too terse rather than too verbose, but nothing in it 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 only two parameters and an output-schema-less response, the description should at minimum characterize what 'location info' returns and how country defaulting behaves. The schema covers the inputs, but the agent cannot predict the response shape or error behavior from this sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'code' and 'country' (including the default 'us' and supported country list) are fully documented in the schema. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('look up') and resource ('location info for a zip/postal code'), which is clear on its own. However, the sibling list contains near-identical tools such as postcode_lookup, zip_by_city, and auspost_get_postcode, and the description never distinguishes this tool from 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 offers no when-to-use guidance, no exclusions, and no mention of the obvious alternative (zip_by_city reverses the direction; postcode_lookup overlaps directly). The agent must infer routing from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zscore_calculateBRead-onlyIdempotent
Calculate z-score, cumulative probability, and percentile for a value given mean and standard deviation.
| Name | Required | Description | Default |
|---|---|---|---|
| mean | Yes | Population mean. | |
| value | Yes | The observed value. | |
| stddev | Yes | Population standard deviation (positive). |
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 usefully enumerates the three returned quantities (helpful given no output schema) but omits the key behavioral assumption — that cumulative probability and percentile presume a normal distribution — which materially affects interpretation of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the operation, the outputs, and the inputs with zero filler. Nothing is buried or 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?
For a small pure-math tool with full schema coverage and safety annotations, the description is nearly sufficient, and it compensates for the absent output schema by naming the return values. The missing normality assumption and any note on what a percentile return means are the only notable 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 description coverage is 100%, so all three parameters (value, mean, stddev) are already documented including that stddev must be positive. The description's 'given mean and standard deviation' merely restates the schema and adds no format, range, or edge-case detail beyond 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?
Specific verb (Calculate) plus the exact set of outputs (z-score, cumulative probability, percentile) and the required inputs, so the operation is unambiguous. It does not, however, distinguish itself from overlapping siblings such as normal_distribution or percentile_calc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 / when-not-to-use guidance and no mention of alternatives, despite siblings like normal_distribution, percentile_calc, and descriptive_stats occupying adjacent territory. The agent must infer that this tool takes summary statistics rather than a data array.
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.
956 tool updates
v0.1.11- Added
ackermann - Added
acnh_bugs - Added
acnh_fish - Added
acnh_villagers - Added
acronym_generate - Added
advice_by_id - Added
advice_random - Added
advice_search - Added
affirmation_random - Added
agify_age - Added
aho_corasick_search - Added
air_quality_current - Added
air_quality_forecast - Added
amiibo_by_series - Added
amiibo_search - Added
amiibo_types - Added
angle_convert - Added
animechan_random - Added
animechan_search - Added
aoe2_civilization - Added
aoe2_civilizations - Added
aoe2_technologies - Added
aoe2_unit - Added
aoe2_units - Added
archive_metadata - Added
archive_search - Added
area_calculate - Added
artic_get_artwork - Added
artic_search_artworks - Added
arxiv_search - Added
aspect_ratio - Added
astar_path - Added
atbash_process - Added
autopilot_record_event - Added
autopilot_zero_touch_metrics - Added
avatar_url - Added
avl_tree - Added
baby_giant_step - Added
bacon_ipsum - Added
base_convert - Added
base64_decode - Added
base64_encode - Added
bellman_ford - Added
berlekamp_massey - Added
bezier_clip - Added
bezier_curve - Added
bfs_search - Added
bgpview_asn - Added
bgpview_asn_prefixes - Added
bgpview_ip - Added
bible_random - Added
bible_verse - Added
binomial_probability - Added
bipartite_check - Added
bit_count - Added
bitbucket_get_repo - Added
bitbucket_list_pull_requests - Added
bitbucket_list_repos - Added
bitmask_ops - Added
bitwise_calc - Added
bloom_filter - Added
booth_rotation - Added
bored_by_participants - Added
bored_by_type - Added
bored_random - Added
braille_convert - Added
brain_dump - Added
breaking_bad_quote - Added
brevo_get_account - Added
brevo_list_campaigns - Added
brevo_list_contacts - Added
brewery_get - Added
brewery_list - Added
brewery_random - Added
brewery_search - Added
bucket_sort - Added
burrows_wheeler - Added
calcom_list_bookings - Added
calcom_list_event_types - Added
calcom_me - Added
camelsnake_convert - Added
carbon_intensity_current - Added
carbon_intensity_forecast - Added
carbon_intensity_generation - Added
cartesian_tree - Added
cat_api_breeds - Added
cat_api_random_image - Added
cat_breeds - Added
cat_fact - Added
cat_facts - Added
cataas_list_tags - Added
cataas_random_cat - Added
catalan_calc - Added
catmull_rom - Added
centroid_decomposition - Added
char_frequency - Added
charcodes_convert - Added
cheapshark_deals - Added
cheapshark_stores - Added
check_inbox - Added
chinese_remainder - Added
chinese_remainder_theorem - Added
chromatic_number - Added
chuck_categories - Added
chuck_random - Added
chuck_search - Added
cidr_calculate - Added
circl_cve_lookup - Added
circl_cve_recent - Added
citybikes_network - Added
citybikes_networks - Added
claim_lane - Added
clear_human_action - Added
climate_normals - Added
cloudinary_get_usage - Added
cloudinary_list_resources - Added
cocktail_by_ingredient - Added
cocktail_categories - Added
cocktail_filter_by_category - Added
cocktail_filter_by_ingredient - Added
cocktail_get_by_id - Added
cocktail_ingredient_info - Added
cocktail_random - Added
cocktail_search - Added
coda_list_docs - Added
coda_list_rows - Added
coda_list_tables - Added
coin_change - Added
coincap_asset_detail - Added
coincap_assets - Added
coincap_rates - Added
coinlore_coin - Added
coinlore_global - Added
coinlore_tickers - Added
coinpaprika_coin - Added
coinpaprika_global - Added
coinpaprika_ticker - Added
collatz_sequence - Added
color_blend - Changed
color_convert4 fields changed- added
Input schema / properties / color / descriptionAdded value: +"The color value, e.g. #ff0000 or rgb(255,0,0)" - added
Input schema / properties / from / descriptionAdded value: +"Source format: hex, rgb, hsl, hsv, or cmyk" - removed
Input schema / properties / toRemoved value: -{ - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "color", - "from", - "to" -]New value: +[ + "color", + "from" +]
- Added
color_hex_convert - Added
color_name_lookup - Added
color_name_random - Added
colormind_generate_palette - Added
colormind_list_models - Added
colr_random_palette - Added
combination_calc - Added
commonsensepass_check - Added
commonsensepass_rules - Added
complex_calc - Added
compliancepass_report_json - Added
compliancepass_report_md - Added
compliancepass_run - Added
compliancepass_status - Added
confluence_get_page - Added
confluence_list_spaces - Added
confluence_search - Added
contentful_get_entry - Added
contentful_list_assets - Added
contentful_list_content_types - Added
contentful_list_entries - Added
continued_fraction - Added
convex_hull - Added
convex_hull_3d - Added
convolution - Changed
copypass_run6 fields changed- changed
Input schema / properties / copy_text / descriptionPrevious value: -"The AI-generated copy to review."New value: +"The AI-generated copy to review. Optional when copyroom_source_packet is provided; exact-copy verification compares this text byte-for-byte against the packet." - added
Input schema / properties / copyroom_output_pointerAdded value: +{ + "description": "Pointer to the intended output artifact for the CopyRoom receipt.", + "type": "string" +} - added
Input schema / properties / copyroom_requiredAdded value: +{ + "description": "Set true when exact fidelity matters. Missing copyroom_source_packet returns COPYROOM_MISSING instead of a run with a null receipt.", + "type": "boolean" +} - added
Input schema / properties / copyroom_source_packetAdded value: +{ + "additionalProperties": false, + "description": "Exact source packet for CopyRoom fidelity work. Use this instead of retyping source text when code, prompts, labels, tables, documents, or user-provided text must stay exact.", + "properties": { + "encoding": { + "description": "CopyRoom v1 encoding. Defaults to utf8.", + "enum": [ + "utf8" + ], + "type": "string" + }, + "newline_policy": { + "description": "CopyRoom v1 newline policy. Defaults to preserve.", + "enum": [ + "preserve" + ], + "type": "string" + }, + "source_id": { + "description": "Stable source identifier.", + "type": "string" + }, + "source_pointer": { + "description": "Pointer to the CopyRoom/source location.", + "type": "string" + }, + "text": { + "description": "Exact source text to copy or verify.", + "type": "string" + } + }, + "required": [ + "source_id", + "source_pointer", + "text" + ], + "type": "object" +} - changed
Input schema / properties / profile / descriptionPrevious value: -"Reserved for later evaluator depth. Defaults to smoke."New value: +"Review depth label for this scoped run. Defaults to smoke." - changed
Input schema / requiredPrevious value: -[ - "copy_text" -]New value: +[]
- Added
corporate_bs_phrase - Added
correlation_calc - Added
cosinesim_compare - Added
countdown_calc - Added
counting_sort - Added
country_by_ip - Added
country_flag_url - Added
country_info_detail - Added
covid_country - Added
covid_global - Added
covid_vaccine - Added
crates_get - Added
crates_search - Added
crc32_calculate - Added
create_expressroom_draft - Changed
create_todo1 field changed- added
Input schema / properties / due_atAdded value: +{ + "description": "Optional due date in ISO format. A date-only value like 2026-06-15 means due by the end of that day.", + "type": "string" +}
- Added
crontab_explain - Added
cross_product - Added
crossref_get_work - Added
crossref_search_works - Added
csv_parse - Added
currency_api_list - Added
currency_api_rates - Added
dadjoke_by_id - Added
dadjoke_random - Added
dadjoke_search - Added
damerau_distance - Added
datamuse_suggestions - Added
datamuse_words - Added
dblp_search_authors - Added
dblp_search_publications - Added
de_bruijn - Added
deck_draw - Added
deck_new - Added
deck_shuffle - Added
derangement_calc - Added
descriptive_stats - Added
dfs_search - Added
diceware_passphrase - Added
dictionary_lookup - Added
dictionary_lookup_language - Added
diff_text - Added
digimon_all - Added
digimon_by_level - Added
digimon_by_name - Added
digit_dp - Added
dijkstra_path - Added
dinic_max_flow - Changed
discord_channels2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "guild_id" -]New value: +[ + "guild_id" +]
- Changed
discord_members2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "guild_id" -]New value: +[ + "guild_id" +]
- Changed
discord_react2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "channel_id", - "message_id", - "emoji" -]New value: +[ + "channel_id", + "message_id", + "emoji" +]
- Changed
discord_read2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "channel_id" -]New value: +[ + "channel_id" +]
- Changed
discord_search2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "guild_id" -]New value: +[ + "guild_id" +]
- Changed
discord_send2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "channel_id", - "content" -]New value: +[ + "channel_id", + "content" +]
- Changed
discord_thread2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "channel_id", - "name" -]New value: +[ + "channel_id", + "name" +]
- Added
disney_all_characters - Added
disney_character_search - Added
dnd_get_class - Added
dnd_get_monster - Added
dnd_get_spell - Added
dnd_list_classes - Added
dnd_list_monsters - Added
dnd_list_spells - Added
do_account - Added
do_list_apps - Added
do_list_databases - Added
do_list_droplets - Added
dog_api_breeds - Added
dog_api_random_image - Added
dog_breed_image - Added
dog_breed_list - Added
dog_fact_random - Added
dog_list_breeds - Added
dog_random_image - Added
dohdns_resolve - Added
domainsdb_search - Added
domainsdb_tlds - Added
dot_product - Added
drive_read - Added
drive_search - Added
dropbox_get_account - Added
dropbox_list_folder - Added
dropbox_read_file - Added
dropbox_search - Added
dummy_image_url - Added
dummyjson_products - Added
dummyjson_quotes - Added
dummyjson_random_quote - Added
dummyjson_search_products - Added
duval_factorize - Added
edit_distance - Added
edmonds_karp - Added
eertree - Added
emoji_lookup - Added
emojihub_by_category - Added
emojihub_random - Added
entropy_calculate - Added
epoch_convert - Added
epoch_now - Added
er_latest_rates - Added
euler_path - Added
euler_totient - Added
euler_tour - Added
europeana_record - Added
europeana_search - Changed
eventbrite_create_event9 fields changed- added
Input schema / properties / currency / descriptionAdded value: +"ISO currency code, e.g. USD" - added
Input schema / properties / end_utc / descriptionAdded value: +"End time in UTC, e.g. 2026-07-01T21:00:00Z" - added
Input schema / properties / name / descriptionAdded value: +"Event name/title" - added
Input schema / properties / organization_idAdded value: +{ + "description": "Eventbrite organization id that will own the event", + "type": "string" +} - removed
Input schema / properties / organizer_idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / start_utc / descriptionAdded value: +"Start time in UTC, e.g. 2026-07-01T19:00:00Z" - added
Input schema / properties / timezone / descriptionAdded value: +"IANA timezone, e.g. America/New_York" - added
Input schema / properties / venue_idAdded value: +{ + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "name", - "start_utc", - "end_utc", - "timezone" -]New value: +[ + "name", + "organization_id", + "start_utc", + "end_utc", + "timezone", + "currency" +]
- Added
evil_insult_random - Added
excuser_random - Added
exponential_growth - Added
extended_gcd - Added
faker_companies - Added
faker_persons - Added
faker_texts - Added
fakestore_categories - Added
fakestore_product - Added
fakestore_products - Added
fenwick_2d - Added
fenwick_range - Added
fenwick_tree - Added
fft_transform - Added
fibonacci_sequence - Added
fidelitycopy_copy - Added
fidelitypass_verify_copy - Changed
figma_get_comments1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "file_key" -]New value: +[ + "file_key" +]
- Changed
figma_get_components1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "file_key" -]New value: +[ + "file_key" +]
- Changed
figma_get_file1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "file_key" -]New value: +[ + "file_key" +]
- Changed
figma_get_images1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "file_key", - "node_ids" -]New value: +[ + "file_key", + "node_ids" +]
- Changed
figma_get_node1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "file_key", - "node_id" -]New value: +[ + "file_key", + "node_id" +]
- Changed
figma_get_team_projects1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "team_id" -]New value: +[ + "team_id" +]
- Changed
figma_post_comment1 field changed- changed
Input schema / requiredPrevious value: -[ - "personal_access_token", - "file_key", - "message" -]New value: +[ + "file_key", + "message" +]
- Added
file_sync_list - Added
file_sync_prune - Added
file_sync_pull - Added
file_sync_put - Added
final_space_characters - Added
final_space_episodes - Added
fishwatch_species - Added
fishwatch_species_detail - Added
flood_forecast - Added
flowpass_disagreement_queue - Added
flowpass_quarantine - Added
flowpass_record - Added
flowpass_register_pack - Added
flowpass_report - Added
flowpass_run - Added
flowpass_status - Added
floyd_warshall - Added
foodish_by_category - Added
foodish_random - Added
frankfurter_convert - Added
frankfurter_currencies - Added
frankfurter_historical - Added
frankfurter_latest - Added
freetogame_detail - Added
freetogame_list - Added
frequency_analyse - Added
fruityvice_all - Added
fruityvice_by_name - Added
fun_translate - Added
gabow_scc - Added
game_of_life_step - Added
gaussian_elimination - Added
gbif_occurrences - Added
gbif_search_species - Added
gbif_species_detail - Added
gcd_calculate - Added
gcd_lcm_calc - Added
genderize_name - Added
genderize_predict - Added
geojs_lookup - Added
geometric_series - Added
geopass_run - Added
geopass_status - Added
ghibli_films - Added
ghibli_people - Added
ghost_list_pages - Added
ghost_list_posts - Added
ghost_list_tags - Added
giphy_random - Added
giphy_search - Added
giphy_trending - Added
gitea_action - Changed
github_action28 fields changed- changed
Input schema / properties / access_token / descriptionPrevious value: -"GitHub personal access token (PAT). Public data works without a token."New value: +"GitHub personal access token (PAT). Saved UnClick GitHub login is used when this is omitted." - changed
Input schema / properties / action / descriptionPrevious value: -"Action: search_repos, get_repo, list_issues, create_issue, list_prs, get_user, list_gists, search_code."New value: +"Action: search_repos, get_repo, list_issues, create_issue, list_prs, get_user, list_gists, search_code, create_branch, push_files, create_pull_request, comment_issue_or_pr, merge_pull_request, close_pull_request, list_checks." - changed
Input schema / properties / action / enumPrevious value: -[ - "search_repos", - "get_repo", - "list_issues", - "create_issue", - "list_prs", - "get_user", - "list_gists", - "search_code" -]New value: +[ + "search_repos", + "get_repo", + "list_issues", + "create_issue", + "list_prs", + "get_user", + "list_gists", + "search_code", + "create_branch", + "push_files", + "create_pull_request", + "comment_issue_or_pr", + "merge_pull_request", + "close_pull_request", + "list_checks" +] - added
Input schema / properties / api_keyAdded value: +{ + "description": "GitHub token fallback. Saved UnClick GitHub login is preferred when omitted.", + "type": "string" +} - added
Input schema / properties / baseAdded value: +{ + "description": "Pull request base branch.", + "type": "string" +} - added
Input schema / properties / base_branchAdded value: +{ + "description": "Base branch for create_branch, push_files branch creation, or pull requests.", + "type": "string" +} - changed
Input schema / properties / body / descriptionPrevious value: -"Issue body text (for create_issue)."New value: +"Issue, pull request, or comment body text." - added
Input schema / properties / branchAdded value: +{ + "description": "Target branch for branch creation, file pushes, pull requests, or checks.", + "type": "string" +} - added
Input schema / properties / check_nameAdded value: +{ + "description": "Filter list_checks by check name.", + "type": "string" +} - added
Input schema / properties / commentAdded value: +{ + "description": "Comment body fallback for comment_issue_or_pr.", + "type": "string" +} - added
Input schema / properties / commit_messageAdded value: +{ + "description": "Merge commit message.", + "type": "string" +} - added
Input schema / properties / commit_titleAdded value: +{ + "description": "Merge commit title.", + "type": "string" +} - added
Input schema / properties / deletionsAdded value: +{ + "description": "File paths to delete during push_files.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / draftAdded value: +{ + "description": "Create a draft pull request.", + "type": "boolean" +} - added
Input schema / properties / expected_head_shaAdded value: +{ + "description": "Optional safety check: fail if the branch head has moved.", + "type": "string" +} - added
Input schema / properties / filesAdded value: +{ + "description": "Files for push_files: { path, content, encoding? } entries.", + "items": { + "additionalProperties": false, + "properties": { + "content": { + "type": "string" + }, + "encoding": { + "enum": [ + "utf-8", + "base64" + ], + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path", + "content" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / forceAdded value: +{ + "description": "Force-update the branch ref during push_files. Defaults to false.", + "type": "boolean" +} - added
Input schema / properties / headAdded value: +{ + "description": "Pull request head branch.", + "type": "string" +} - added
Input schema / properties / issue_numberAdded value: +{ + "description": "Issue number for comment_issue_or_pr.", + "type": "number" +} - added
Input schema / properties / maintainer_can_modifyAdded value: +{ + "description": "Allow maintainers to modify the pull request branch. Defaults to true.", + "type": "boolean" +} - added
Input schema / properties / merge_methodAdded value: +{ + "description": "Merge method: merge, squash, or rebase. Defaults to squash.", + "type": "string" +} - added
Input schema / properties / messageAdded value: +{ + "description": "Commit message for push_files.", + "type": "string" +} - added
Input schema / properties / new_branchAdded value: +{ + "description": "New branch name for create_branch.", + "type": "string" +} - added
Input schema / properties / numberAdded value: +{ + "description": "Issue or pull request number fallback.", + "type": "number" +} - added
Input schema / properties / pull_numberAdded value: +{ + "description": "Pull request number for comment_issue_or_pr or merge_pull_request.", + "type": "number" +} - added
Input schema / properties / refAdded value: +{ + "description": "Commit SHA, branch, or tag for list_checks.", + "type": "string" +} - added
Input schema / properties / statusAdded value: +{ + "description": "Filter list_checks by status.", + "type": "string" +} - changed
Input schema / properties / title / descriptionPrevious value: -"Issue title (for create_issue)."New value: +"Issue or pull request title."
- Added
github_emojis - Added
gmail_read - Added
gmail_search - Added
gmail_send - Added
goertzel - Added
graph_analyze - Added
graph_coloring - Added
graph_condensation - Added
gray_code - Changed
gumroad_get_product3 fields changed- added
Input schema / properties / access_tokenAdded value: +{ + "description": "Gumroad access token", + "type": "string" +} - removed
Input schema / properties / api_keyRemoved value: -{ - "description": "Gumroad access token", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "api_key", - "product_id" -]New value: +[ + "access_token", + "product_id" +]
- Changed
gumroad_get_sale3 fields changed- added
Input schema / properties / access_tokenAdded value: +{ + "description": "Gumroad access token", + "type": "string" +} - removed
Input schema / properties / api_keyRemoved value: -{ - "description": "Gumroad access token", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "api_key", - "sale_id" -]New value: +[ + "access_token", + "sale_id" +]
- Changed
gumroad_list_products3 fields changed- added
Input schema / properties / access_tokenAdded value: +{ + "description": "Gumroad access token", + "type": "string" +} - removed
Input schema / properties / api_keyRemoved value: -{ - "description": "Gumroad access token", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "api_key" -]New value: +[ + "access_token" +]
- Changed
gumroad_list_sales3 fields changed- added
Input schema / properties / access_tokenAdded value: +{ + "description": "Gumroad access token", + "type": "string" +} - removed
Input schema / properties / api_keyRemoved value: -{ - "description": "Gumroad access token", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "api_key" -]New value: +[ + "access_token" +]
- Changed
gumroad_list_subscribers3 fields changed- added
Input schema / properties / access_tokenAdded value: +{ + "description": "Gumroad access token", + "type": "string" +} - removed
Input schema / properties / api_keyRemoved value: -{ - "description": "Gumroad access token", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "api_key", - "product_id" -]New value: +[ + "access_token", + "product_id" +]
- Added
gutenberg_book - Added
gutenberg_search - Added
gutendex_book - Added
gutendex_search - Added
haar_wavelet - Added
hamming_distance - Added
harmonic_series - Added
hash_compare - Added
hash_generate - Added
heap_sort - Added
heavy_light_decomposition - Added
hero_all - Added
hero_get_by_id - Added
hero_powerstats - Changed
higgsfield_generate_image5 fields changed- changed
Input schema / properties / api_key / descriptionPrevious value: -"Higgsfield API key"New value: +"Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available." - added
Input schema / properties / aspect_ratioAdded value: +{ + "description": "e.g. 16:9, 4:3, 1:1, 9:16", + "type": "string" +} - added
Input schema / properties / modelAdded value: +{ + "description": "Optional Higgsfield model id, e.g. nano_banana_pro", + "type": "string" +} - added
Input schema / properties / resolutionAdded value: +{ + "description": "Optional Higgsfield resolution, e.g. 1k, 2k, or 4k", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "api_key", - "prompt" -]New value: +[ + "prompt" +]
- Changed
higgsfield_generate_video3 fields changed- changed
Input schema / properties / api_key / descriptionPrevious value: -"Higgsfield API key"New value: +"Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available." - added
Input schema / properties / modelAdded value: +{ + "description": "Optional Higgsfield model id when using the MCP account path", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "api_key", - "prompt" -]New value: +[ + "prompt" +]
- Changed
higgsfield_get_status2 fields changed- changed
Input schema / properties / api_key / descriptionPrevious value: -"Higgsfield API key"New value: +"Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available." - changed
Input schema / requiredPrevious value: -[ - "api_key", - "generation_id" -]New value: +[ + "generation_id" +]
- Changed
higgsfield_get_styles5 fields changed- added
Input schema / properties / actionAdded value: +{ + "description": "MCP model explorer action (default search)", + "type": "string" +} - changed
Input schema / properties / api_key / descriptionPrevious value: -"Higgsfield API key"New value: +"Optional Higgsfield Cloud API key for this call. Omit it to use the connected Higgsfield MCP account login when available." - added
Input schema / properties / queryAdded value: +{ + "description": "Optional model/style search text", + "type": "string" +} - added
Input schema / properties / typeAdded value: +{ + "description": "Model type to explore, e.g. image or video (default image)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "api_key" -]New value: +[]
- Added
histogram_create - Added
historical_weather - Added
holidays_by_country - Added
holidays_countries - Added
holidays_long_weekends - Added
holidays_next - Added
hopcroft_karp - Added
hp_all_characters - Added
hp_by_house - Added
hp_staff - Added
hp_students - Added
html_strip - Added
http_cat_image - Added
http_dog_image - Added
httpbin_get - Added
httpbin_headers - Added
httpbin_ip - Added
httpbin_user_agent - Added
httpbin_uuid - Added
hubspot_create_contact - Added
hubspot_get_contact - Added
hubspot_list_companies - Added
hubspot_list_contacts - Added
hubspot_list_deals - Added
hubspot_search_contacts - Added
huffman_code - Added
hungarian_assign - Added
hypothesis_test - Added
iban_validate - Added
iceandfire_books - Added
iceandfire_characters - Added
iceandfire_houses - Added
imgflip_get_memes - Added
intercom_get_conversation - Added
intercom_list_contacts - Added
intercom_list_conversations - Added
intercom_search_contacts - Added
interpolate_calc - Added
interval_merge - Added
ip_address_lookup - Added
ip_validate - Added
ipify_get_ip - Added
ipinfo_lookup - Added
is_even - Added
iss_astronauts - Added
iss_flyover - Added
iss_location - Added
iss_pass_times - Added
iss_position - Added
isup_check - Added
itis_get_full_record - Added
itis_search_by_name - Added
jaccard_similarity - Added
jikan_get_anime - Added
jikan_get_character - Added
jikan_search_anime - Added
jikan_search_manga - Added
jikan_top_anime - Added
jira_add_comment - Added
jira_create_issue - Added
jira_get_issue - Added
jira_list_projects - Added
jira_search_issues - Added
jisho_search - Added
jobsmith_check - Added
jobsmith_rules - Added
joke_categories - Added
joke_random - Added
josephus - Added
jp_get_post - Added
jp_list_comments - Added
jp_list_posts - Added
jp_list_users - Added
json_format - Added
json_prettify - Added
jwt_decode - Added
kanye_quote - Added
keychain_recheck - Added
klaviyo_list_lists - Added
klaviyo_list_metrics - Added
klaviyo_list_profiles - Added
klaviyo_list_segments - Added
kmeans_cluster - Added
kmp_automaton - Added
kmp_search - Added
knapsack_solve - Added
kosaraju_scc - Added
languagetool_check - Added
languagetool_languages - Added
legalpass_edit_item - Changed
legalpass_run4 fields changed- added
Input schema / properties / fixture_textAdded value: +{ + "description": "Public text to check deterministically for dogfood or local proof", + "type": "string" +} - added
Input schema / properties / target_shaAdded value: +{ + "description": "Optional commit or target evidence SHA to bind the LegalPass receipt to a specific target version", + "type": "string" +} - added
Input schema / properties / target_urlAdded value: +{ + "description": "URL target shortcut for TestPass-style callers", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "target" -]
- Added
legalpass_save_pack - Added
legalpass_status - Added
lehmer_code - Added
libretranslate_detect - Added
libretranslate_languages - Added
libretranslate_translate - Changed
line_broadcast1 field changed- changed
Input schema / requiredPrevious value: -[ - "channel_access_token", - "message" -]New value: +[ + "message" +]
- Changed
line_get_group_summary1 field changed- changed
Input schema / requiredPrevious value: -[ - "channel_access_token", - "group_id" -]New value: +[ + "group_id" +]
- Changed
line_get_profile1 field changed- changed
Input schema / requiredPrevious value: -[ - "channel_access_token", - "user_id" -]New value: +[ + "user_id" +]
- Changed
line_reply_message1 field changed- changed
Input schema / requiredPrevious value: -[ - "channel_access_token", - "reply_token" -]New value: +[ + "reply_token" +]
- Changed
line_send_flex_message1 field changed- changed
Input schema / requiredPrevious value: -[ - "channel_access_token", - "to", - "alt_text", - "contents" -]New value: +[ + "to", + "alt_text", + "contents" +]
- Changed
line_send_message1 field changed- changed
Input schema / requiredPrevious value: -[ - "channel_access_token", - "to", - "message" -]New value: +[ + "to", + "message" +]
- Added
linear_solve - Added
link_cut_tree - Added
list_brain_dumps - Changed
list_comments3 fields changed- added
Input schema / properties / orderAdded value: +{ + "default": "oldest", + "description": "'oldest' is the door's own page order and the only order a forward cursor (since) uses, so polling never skips a row. 'newest' is a tail read: the most recent comments first, without since.", + "enum": [ + "oldest", + "newest" + ], + "type": "string" +} - added
Input schema / properties / sinceAdded value: +{ + "description": "ISO 8601 timestamp, inclusive at the door's microsecond precision. Comments created at or after this instant are returned; pass since_id to drop the one you already hold at that instant. Use the created_at of the newest comment you have read.", + "type": "string" +} - added
Input schema / properties / since_idAdded value: +{ + "description": "The id of the comment you already hold at the 'since' instant. Dropped from the answer so the boundary never repeats. Needs 'since'.", + "type": "string" +}
- Added
list_expressroom_drafts - Added
list_lanes - Added
list_room_watches - Added
log_base - Added
long_weekends - Added
longest_common_prefix - Added
longest_increasing_subsequence - Added
lorem_generate - Added
lorem_name_generate - Added
lotr_books - Added
lotr_characters - Added
lotr_quotes - Added
lowest_common_ancestor - Added
lru_simulate - Added
lucas_theorem - Added
luhn_validate - Added
lyrics_get - Added
mailroom_accounts - Added
mailroom_attachment - Added
mailroom_forward - Added
mailroom_mark_read - Added
mailroom_move - Added
mailroom_read - Added
mailroom_search - Added
mailroom_send - Added
makeup_search - Added
manacher_palindrome - Added
marine_forecast - Added
mark_inbox_read - Added
markdown_stats - Added
markdown_to_html - Added
markdowntable_convert - Added
markov_generate - Added
matrix_chain_order - Added
matrix_decomp - Added
matrix_exponentiation - Added
matrix_inverse - Added
matrix_operate - Added
matrix_rank - Added
max_independent_set - Added
mc_server_status - Added
memegen_create - Added
memegen_templates - Added
met_departments - Added
met_object - Added
met_search - Added
metaphone_encode - Added
mhw_monsters - Added
mhw_weapons - Added
midpoint_calc - Added
miller_rabin_test - Added
min_cost_max_flow - Added
min_vertex_cover - Added
miro_get_board - Added
miro_list_boards - Added
miro_list_items - Added
modular_arithmetic - Added
moebius_function - Added
monte_carlo_estimate - Added
morse_convert - Added
mos_algorithm - Added
mst_find - Added
mtg_get_card - Added
mtg_search_cards - Added
mtg_sets - Added
multiavatar_generate - Added
mymemory_translate - Added
nationalize_name - Added
nationalize_predict - Added
nato_convert - Added
nba_games - Added
nba_players - Added
nba_teams - Added
necklace_count - Added
netlify_get_deploy - Added
netlify_get_site - Added
netlify_list_deploys - Added
netlify_list_sites - Added
newton_math - Added
ngram_extract - Added
nhtsa_decode_vin - Added
nhtsa_recalls - Added
nobel_laureates - Added
nobel_prizes - Added
nominatim_reverse - Added
nominatim_search - Added
normal_distribution - Added
npm_add_dist_tag - Added
npm_dist_tags - Added
npm_downloads - Added
npm_get_package - Added
npm_search - Added
npm_whoami - Added
nth_root - Added
ntt - Changed
nudgeonly_receipt_bridge2 fields changed- added
Input schema / properties / owner_last_seen_atAdded value: +{ + "description": "Optional ISO timestamp for the current owner's last real check-in. Past TTL is treated as an expired ownership lease.", + "type": "string" +} - added
Input schema / properties / owner_silent_minutesAdded value: +{ + "description": "Optional owner silence age in minutes. Past TTL is treated as an expired ownership lease.", + "type": "number" +}
- Added
number_base_convert - Added
numerical_diff - Added
numerical_integrate - Added
obsidian_list_notes - Added
obsidian_read_note - Added
obsidian_save_note - Added
obsidian_search_notes - Added
obsidian_vault_status - Added
ode_solve - Added
oeis_search - Added
official_joke_by_type - Added
official_joke_random - Added
official_joke_ten - Added
onedrive_list - Added
onedrive_read - Added
onedrive_search - Added
open_elevation_lookup - Changed
openai_generate_image1 field changed- removed
Input schema / properties / response_formatRemoved value: -{ - "description": "url or b64_json (default: url)", - "enum": [ - "url", - "b64_json" - ], - "type": "string" -}
- Added
openalex_get_work - Added
openalex_search_authors - Added
openalex_search_works - Added
openchargemap_search - Added
opendota_hero_stats - Added
opendota_heroes - Added
opendota_pro_matches - Added
openfda_adverse_events - Added
openfda_drug_search - Added
openfda_recall_search - Added
openfigi_mapping - Added
openfigi_search - Added
opensky_flights - Added
opensky_states - Added
page_rank - Added
palindrome_check - Added
partition_count - Added
pascaltri_generate - Added
password_generate - Added
percentage_calc - Added
percentile_calc - Added
permutation_calc - Added
persistent_array - Added
phonetic_spell - Added
pi_approx - Added
picsum_get - Added
picsum_list - Added
picsum_random_url - Added
pig_latin_convert - Added
pipedrive_list_deals - Added
pipedrive_list_organizations - Added
pipedrive_list_persons - Added
pipedrive_search_deals - Added
placebear_image - Added
placehold_image - Added
placeholder_image - Added
placekitten_image - Added
poetry_random - Added
poetry_search_by_author - Added
poetry_search_by_title - Added
poisson_probability - Added
poke_get_ability - Added
poke_get_generation - Added
poke_get_pokemon - Added
poke_get_type - Added
poke_search_pokemon - Added
pokemon_tcg_search_cards - Added
pokemon_tcg_sets - Added
pollard_rho - Added
polygon_calculate - Added
polynomial_ops - Changed
post_message2 fields changed- changed
Input schema / properties / recipients / descriptionPrevious value: -"List of agents this message is aimed at. Use either current lane emojis (e.g. ['🧭', '🔍']) OR agent_ids (e.g. ['claude-code-builder-seat']). Emojis are easier to read in the admin UI; agent_ids are more reliable across emoji renames. Default ['all'] means everyone reads it but nobody is specifically tagged."New value: +"List of agents this message is aimed at. USE agent_ids (e.g. ['claude-code-builder-seat']) - read_messages lists the agent_id of every seat. An agent_id names exactly one seat; an emoji does not. Emojis are shared and recycled (one has been worn by 31 seats at once), so emoji-addressed mail goes to everyone wearing it and is NOT counted as any one seat's direct mail. Emoji addressing still delivers, for compatibility, and is unambiguous only while a single seat wears it. A recipient that matches no seat is refused rather than silently dropped. Default ['all'] means everyone reads it but nobody is specifically tagged." - added
Input schema / properties / suppress_noop_heartbeatAdded value: +{ + "description": "Optional heartbeat-only guard. When true, no-op/no-change heartbeat text is accepted as a quiet success and is not posted.", + "type": "boolean" +}
- Added
post_room_update - Added
postcode_lookup - Added
postcode_random - Added
posthog_list_feature_flags - Added
posthog_list_insights - Added
posthog_list_persons - Added
posthog_query - Added
power_iteration - Added
power_set - Added
prefix_function - Added
pressure_convert - Added
prime_check - Added
prime_factor - Added
promote_expressroom_draft - Added
proportion_solve - Changed
ptv_departures7 fields changed- added
Input schema / properties / direction_idAdded value: +{ + "type": "number" +} - added
Input schema / properties / include_cancelledAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / look_backwardsAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / max_results / descriptionAdded value: +"Defaults to 5, maximum 20." - changed
Input schema / properties / route_type / descriptionPrevious value: -"0=train,1=tram,2=bus,3=vline,4=night"New value: +"0=train, 1=tram, 2=bus, 3=vline, 4=night. Defaults to train." - added
Input schema / properties / stop_id / descriptionAdded value: +"PTV stop ID. Optional when a saved UnClick Memory default exists." - removed
Input schema / requiredRemoved value: -[ - "route_type", - "stop_id" -]
- Added
pubchem_properties - Added
pubchem_search - Added
publicapis_categories - Added
publicapis_random - Added
publicapis_search - Added
punkapi_get_beer - Added
punkapi_random_beer - Added
punkapi_search_beers - Added
pypi_get_package - Added
pypi_get_version - Added
qc_learnings - Added
qrserver_generate - Added
quadratic_solve - Added
quote_by_author - Added
quote_list_authors - Added
quote_list_tags - Added
quote_random - Added
quote_search - Added
quran_surah - Added
quran_verse - Added
rabin_karp_search - Added
radix_sort - Added
railfence_process - Added
raise_human_action - Added
ram_get_character - Added
ram_get_episode - Added
ram_get_location - Added
ram_search_characters - Added
ram_search_episodes - Added
random_duck_image - Added
random_duck_list - Added
random_fox_image - Added
random_taco - Added
random_user - Added
ratio_simplify - Added
rb_tree_sim - Added
rdap_domain - Added
rdap_ip - Added
readability_score - Changed
reddit_comment1 field changed- changed
Input schema / requiredPrevious value: -[ - "access_token", - "parent_id", - "text" -]New value: +[ + "parent_id", + "text" +]
- Changed
reddit_post1 field changed- changed
Input schema / requiredPrevious value: -[ - "access_token", - "subreddit", - "title", - "kind" -]New value: +[ + "subreddit", + "title", + "kind" +]
- Changed
reddit_read2 fields changed- added
Input schema / properties / access_token / descriptionAdded value: +"Optional Reddit OAuth bearer token" - changed
Input schema / requiredPrevious value: -[ - "access_token", - "subreddit" -]New value: +[ + "subreddit" +]
- Changed
reddit_search9 fields changed- added
Input schema / properties / access_token / descriptionAdded value: +"Optional Reddit OAuth bearer token" - added
Input schema / properties / afterAdded value: +{ + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"Results to return" - added
Input schema / properties / q / descriptionAdded value: +"Search query alias" - added
Input schema / properties / queryAdded value: +{ + "description": "Search query", + "type": "string" +} - added
Input schema / properties / sort / descriptionAdded value: +"relevance, hot, top, new, or comments" - added
Input schema / properties / subreddit / descriptionAdded value: +"Limit to a subreddit" - added
Input schema / properties / tAdded value: +{ + "description": "hour, day, week, month, year, all", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "access_token", - "q" -]New value: +[]
- Changed
reddit_subscribe3 fields changed- added
Input schema / properties / sr / descriptionAdded value: +"Subreddit name alias" - added
Input schema / properties / subredditAdded value: +{ + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "access_token", - "sr", - "action" -]New value: +[ + "action" +]
- Added
reddit_thread - Changed
reddit_user5 fields changed- added
Input schema / properties / access_token / descriptionAdded value: +"Optional Reddit OAuth bearer token" - added
Input schema / properties / include_commentsAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / include_postsAdded value: +{ + "type": "boolean" +} - removed
Input schema / properties / typeRemoved value: -{ - "description": "overview, submitted, comments", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "access_token", - "username" -]New value: +[ + "username" +]
- Changed
reddit_vote1 field changed- changed
Input schema / requiredPrevious value: -[ - "access_token", - "id", - "dir" -]New value: +[ + "id", + "dir" +]
- Added
regex_test - Added
regression_fit - Added
release_claim - Added
release_lane - Added
reqres_get_user - Added
reqres_list_resources - Added
reqres_list_users - Added
reservoir_sample - Added
reverse_text - Added
ripe_asn_neighbours - Added
ripe_network_info - Added
rl_encode - Added
rle_encode_decode - Added
rmq_sparse - Added
robohash_url - Added
roman_convert - Added
root_find - Added
rot13_convert - Added
runlength_process - Added
running_stats - Changed
save_session1 field changed- added
Input schema / properties / factsAdded value: +{ + "description": "Atomic durable facts learned this session (max 20). One clause each; skip transient status. Each lands as a normal memory fact via the write gate, linked to this session.", + "items": { + "additionalProperties": false, + "properties": { + "kind": { + "description": "Temporal bucket for the fact", + "enum": [ + "current", + "historical", + "future", + "preference", + "timeless" + ], + "type": "string" + }, + "text": { + "description": "One atomic, durable fact", + "type": "string" + } + }, + "required": [ + "text" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" +}
- Added
securitypass_disclosure_status - Added
securitypass_finding_detail - Added
securitypass_register_pack - Added
securitypass_report - Added
securitypass_run - Added
securitypass_status - Added
securitypass_verify_scope - Added
segment_intersection - Added
segment_tree - Added
semver_compare - Added
semver_parse - Changed
seopass_run2 fields changed- added
Input schema / properties / target_shaAdded value: +{ + "description": "Optional PR or commit SHA for receipt staleness checks", + "type": "string" +} - changed
Input schema / properties / url / descriptionPrevious value: -"Target URL for a one-off SEOPass plan"New value: +"Target URL for a one-off SEOPass read-only run"
- Changed
seopass_status1 field changed- changed
Input schema / properties / run_id / descriptionPrevious value: -"The SEOPass run id returned by a future seopass_run execution path"New value: +"The SEOPass run id returned by seopass_run"
- Added
setops_calculate - Added
shell_sort - Added
shibe_random_image - Changed
shopify_collections1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain" -]New value: +[]
- Changed
shopify_customers1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain" -]New value: +[]
- Changed
shopify_fulfillments1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain", - "order_id" -]New value: +[ + "order_id" +]
- Changed
shopify_inventory1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain" -]New value: +[]
- Changed
shopify_orders1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain" -]New value: +[]
- Changed
shopify_products1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain" -]New value: +[]
- Changed
shopify_shop1 field changed- changed
Input schema / requiredPrevious value: -[ - "shop_domain" -]New value: +[]
- Added
shortcut_get_story - Added
shortcut_list_epics - Added
shortcut_list_projects - Added
shortcut_search_stories - Added
shunting_yard - Added
sieve_of_eratosthenes - Added
sigmoid_calculate - Added
simplex_solve - Added
skip_list_sim - Changed
slack_action2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Slack bot token (xoxb-...). Optional when Slack is connected in UnClick or SLACK_BOT_TOKEN is set." - changed
Input schema / requiredPrevious value: -[ - "action", - "bot_token" -]New value: +[ + "action" +]
- Added
slope_intercept - Added
sloppass_run - Added
solarsystem_bodies - Added
solarsystem_body - Added
sort_lines - Added
sos_dp - Added
soundex_encode - Added
spaceflight_articles - Added
spaceflight_blogs - Added
spaceflight_reports - Added
spacex_latest_launch - Added
spacex_launches - Added
spacex_rockets - Added
sparse_table - Added
spline_interpolate - Added
sportsdb_leagues - Added
sportsdb_search_player - Added
sportsdb_search_team - Added
sportsdb_team_events - Added
stackexchange_question - Added
stackexchange_search - Added
standard_form - Added
stapi_search_character - Added
stapi_search_species - Added
stapi_search_starship - Added
statistics_calc - Added
stern_brocot_tree - Added
stirling_numbers - Added
string_case - Added
string_distance - Added
string_lcs - Added
suffix_array_build - Added
suffix_automaton - Added
suffix_tree - Added
sunrise_sunset_times - Added
supabase_apply_migration - Added
supabase_execute_sql - Added
supabase_get_project - Added
supabase_list_organizations - Added
supabase_list_projects - Added
swapi_get_person - Added
swapi_get_planet - Added
swapi_get_starship - Added
swapi_search_people - Added
swapi_search_planets - Added
swapi_search_starships - Changed
tab_race7 fields changed- added
Input schema / properties / jurisdictionAdded value: +{ + "description": "State jurisdiction, e.g. VIC (default), NSW.", + "type": "string" +} - added
Input schema / properties / meeting_dateAdded value: +{ + "description": "Meeting date, YYYY-MM-DD", + "type": "string" +} - added
Input schema / properties / meeting_nameAdded value: +{ + "description": "Meeting name, e.g. Flemington", + "type": "string" +} - removed
Input schema / properties / race_idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / race_numberAdded value: +{ + "description": "Race number within the meeting", + "type": "string" +} - added
Input schema / properties / race_typeAdded value: +{ + "description": "R (thoroughbred), G (greyhound), or H (harness). Default R.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "race_id" -]New value: +[ + "meeting_date", + "meeting_name", + "race_number" +]
- Added
tarjan_scc - Added
tarot_all_cards - Added
tarot_draw - Added
tarot_search - Added
taylor_expand - Changed
telegram_get_updates2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token" -]New value: +[]
- Changed
telegram_manage_chat2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "chat_id", - "action" -]New value: +[ + "chat_id", + "action" +]
- Changed
telegram_read2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token" -]New value: +[]
- Changed
telegram_search2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "chat_id", - "query" -]New value: +[ + "chat_id", + "query" +]
- Changed
telegram_send2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "chat_id", - "text" -]New value: +[ + "chat_id", + "text" +]
- Changed
telegram_send_media2 fields changed- added
Input schema / properties / bot_token / descriptionAdded value: +"Bot token. Optional when connected in UnClick or the documented env var is set." - changed
Input schema / requiredPrevious value: -[ - "bot_token", - "chat_id", - "media_type", - "media_url" -]New value: +[ + "chat_id", + "media_type", + "media_url" +]
- Added
temperature_convert - Added
ternary_search - Changed
testpass_edit_item3 fields changed- changed
Input schema / properties / notes / descriptionPrevious value: -"Optional reviewer notes"New value: +"Required reviewer note explaining the manual verdict edit" - changed
Input schema / properties / verdict / enumPrevious value: -[ - "pass", - "fail", - "na" -]New value: +[ + "pass", + "fail", + "na", + "other" +] - changed
Input schema / requiredPrevious value: -[ - "run_id", - "item_id", - "verdict" -]New value: +[ + "run_id", + "item_id", + "verdict", + "notes" +]
- Added
testpass_evidence - Added
testpass_fix_list - Added
testpass_list_packs - Changed
testpass_run1 field changed- changed
Input schema / properties / task_id / descriptionPrevious value: -"Client-generated idempotency key (UUIDv5 from thread_id + prompt_hash + time_bucket recommended). Required for safe retry. If omitted, the server creates a fresh row and you lose retry safety; sending the same task_id twice returns the original run_id with was_duplicate=true instead of creating a duplicate."New value: +"Client-generated idempotency key. The API requires UUID format; non-UUID values are deterministically converted to a stable UUIDv5-shaped id, so any string is safe and retries stay idempotent. Required for safe retry. If omitted, the server creates a fresh row and you lose retry safety; sending the same task_id twice returns the original run_id with was_duplicate=true instead of creating a duplicate."
- Added
text_readability - Added
text_slugify - Added
text_wrap - Added
tfidf_calculate - Added
thecolorapi_id - Added
thecolorapi_scheme - Added
time_api_current_by_zone - Added
time_api_timezones - Added
timezone_info - Added
todoist_complete_task - Added
todoist_create_task - Added
todoist_list_projects - Added
todoist_list_tasks - Added
tokencount_estimate - Added
topo_count - Added
topo_sort - Added
treap_sim - Added
triage_brain_dump - Added
triangle_solve - Added
trie_ops - Added
triviadb_categories - Added
triviadb_questions - Added
tsp_solve - Added
tvmaze_schedule - Added
tvmaze_search - Added
tvmaze_show - Changed
twitch_channel_info3 fields changed- removed
Input schema / properties / broadcaster_idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / channelAdded value: +{ + "description": "Twitch channel login name, e.g. 'shroud'", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "broadcaster_id" -]New value: +[ + "channel" +]
- Changed
twitch_schedule3 fields changed- removed
Input schema / properties / broadcaster_idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / channelAdded value: +{ + "description": "Twitch channel login name, e.g. 'shroud'", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "broadcaster_id" -]New value: +[ + "channel" +]
- Added
two_sat - Added
typeform_get_form - Added
typeform_get_responses - Added
typeform_list_forms - Added
uk_police_crimes - Added
uk_police_forces - Added
unclick_workspace_list - Added
unclick_workspace_read - Added
unclick_workspace_write - Added
union_find - Added
universities_search - Added
unsplash_get_photo - Added
unsplash_random_photo - Added
unsplash_search_photos - Added
upc_lookup - Added
upc_search - Added
update_lane - Changed
update_todo1 field changed- added
Input schema / properties / due_atAdded value: +{ + "description": "Optional due date in ISO format. A date-only value like 2026-06-15 means due by the end of that day. Pass empty string to clear.", + "type": "string" +}
- Added
uptimerobot_get_account - Added
uptimerobot_get_monitors - Added
urban_define - Added
urban_random - Added
url_decode - Added
url_encode - Added
urlhaus_lookup_url - Added
urlhaus_recent - Added
useless_fact_random - Added
useless_fact_today - Changed
usgs_earthquakes_by_region13 fields changed- removed
Input schema / properties / endtimeRemoved value: -{ - "type": "string" -} - added
Input schema / properties / latAdded value: +{ + "description": "Centre latitude", + "type": "number" +} - added
Input schema / properties / limitAdded value: +{ + "description": "Max results (default 20, max 500)", + "type": "number" +} - added
Input schema / properties / lonAdded value: +{ + "description": "Centre longitude", + "type": "number" +} - removed
Input schema / properties / maxlatitudeRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / maxlongitudeRemoved value: -{ - "type": "number" -} - added
Input schema / properties / min_magnitudeAdded value: +{ + "description": "Minimum magnitude", + "type": "number" +} - removed
Input schema / properties / minlatitudeRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / minlongitudeRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / minmagnitudeRemoved value: -{ - "type": "number" -} - added
Input schema / properties / radiusAdded value: +{ + "description": "Search radius in km (default 500)", + "type": "number" +} - removed
Input schema / properties / starttimeRemoved value: -{ - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "minlatitude", - "maxlatitude", - "minlongitude", - "maxlongitude" -]New value: +[ + "lat", + "lon" +]
- Added
uuid_generate - Changed
uxpass_run1 field changed- added
Input schema / properties / target_shaAdded value: +{ + "description": "Optional PR or commit SHA for receipt staleness checks.", + "type": "string" +}
- Added
variance_calc - Added
vatcomply_countries - Added
vatcomply_rates - Changed
vercel_create_deployment6 fields changed- added
Input schema / properties / deploymentIdAdded value: +{ + "description": "Alias for deployment_id.", + "type": "string" +} - added
Input schema / properties / forceNewAdded value: +{ + "description": "Alias for force_new.", + "type": "boolean" +} - added
Input schema / properties / gitRefAdded value: +{ + "description": "Alias for git_ref.", + "type": "string" +} - added
Input schema / properties / projectIdAdded value: +{ + "description": "Alias for project_id.", + "type": "string" +} - changed
Input schema / properties / target / descriptionPrevious value: -"'production' (default) or 'preview'."New value: +"Use 'preview'. 'production' is refused and must use the canonical delivery rail." - added
Input schema / properties / teamIdAdded value: +{ + "description": "Alias for team_id.", + "type": "string" +}
- Changed
vercel_create_env4 fields changed- added
Input schema / properties / gitBranchAdded value: +{ + "description": "Alias for git_branch.", + "type": "string" +} - added
Input schema / properties / projectIdAdded value: +{ + "description": "Alias for project_id.", + "type": "string" +} - added
Input schema / properties / teamIdAdded value: +{ + "description": "Alias for team_id.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "project_id", - "key", - "value" -]New value: +[ + "key", + "value" +]
- Changed
vercel_delete_env4 fields changed- added
Input schema / properties / envIdAdded value: +{ + "description": "Alias for env_id.", + "type": "string" +} - added
Input schema / properties / projectIdAdded value: +{ + "description": "Alias for project_id.", + "type": "string" +} - added
Input schema / properties / teamIdAdded value: +{ + "description": "Alias for team_id.", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "project_id", - "env_id" -]
- Changed
vercel_get_deployment1 field changed- added
Input schema / properties / teamIdAdded value: +{ + "type": "string" +}
- Changed
vercel_get_domain2 fields changed- added
Input schema / properties / teamIdAdded value: +{ + "description": "Alias for team_id.", + "type": "string" +} - added
Input schema / properties / team_idAdded value: +{ + "type": "string" +}
- Changed
vercel_get_env2 fields changed- changed
Input schema / properties / projectId / descriptionPrevious value: -"Legacy alias for project_id."New value: +"Alias for project_id." - added
Input schema / properties / teamIdAdded value: +{ + "description": "Alias for team_id.", + "type": "string" +}
- Changed
vercel_list_deployments1 field changed- added
Input schema / properties / teamIdAdded value: +{ + "type": "string" +}
- Changed
vercel_list_projects1 field changed- added
Input schema / properties / teamIdAdded value: +{ + "type": "string" +}
- Added
vigenere_process - Added
watch_room_todo - Added
wavelength_convert - Added
wavelet_tree - Added
wayback_check - Added
webflow_get_site - Added
webflow_list_collections - Added
webflow_list_items - Added
webflow_list_sites - Added
weighted_mean - Added
wger_categories - Added
wger_exercises - Added
wger_muscles - Added
wikidata_get_entity - Added
wikidata_search - Added
wikipedia_page - Added
wikipedia_search - Added
wikipedia_summary - Added
wiktionary_lookup - Added
word_count - Added
wordfreq_analyse - Added
wordpress_get_post - Added
wordpress_list_pages - Added
wordpress_list_posts - Added
workspace_list - Added
workspace_push - Added
workspace_put - Added
worldbank_country - Added
worldbank_indicator - Added
worldtime_by_ip - Added
worldtime_by_timezone - Added
worldtime_list_timezones - Added
xkcd_comic - Added
xkcd_latest - Added
xkcd_random - Added
xor_basis - Added
xpass_aggregated_verdict - Added
yesno_random - Added
z_algorithm - Added
z_function - Added
zen_quote_random - Added
zen_quote_today - Added
zen_quotes - Added
zendesk_add_comment - Added
zendesk_get_ticket - Added
zendesk_list_tickets - Added
zendesk_search - Added
zip_by_city - Added
zip_lookup - Added
zscore_calculate
237 tool updates
v0.1.9- Added
algolia_browse_index - Added
algolia_get_object - Added
algolia_list_indices - Added
algolia_search - Added
anthropic_create_message - Added
anthropic_list_models - Added
assemblyai_get_paragraphs - Added
assemblyai_get_sentences - Added
assemblyai_get_transcript - Added
assemblyai_list_transcripts - Added
assemblyai_summarize - Added
assemblyai_transcribe - Added
circleci_get_pipeline - Added
circleci_get_workflow - Added
circleci_list_jobs - Added
circleci_list_pipelines - Added
circleci_list_workflows - Added
circleci_trigger_pipeline - Added
ck_add_subscriber - Added
ck_list_forms - Added
ck_list_sequences - Added
ck_list_subscribers - Added
ck_list_tags - Added
ck_tag_subscriber - Added
cohere_chat - Added
cohere_classify - Added
cohere_embed - Added
cohere_generate - Added
cohere_list_models - Added
cohere_rerank - Added
copypass_run - Added
copypass_status - Added
create_asana_task - Added
create_monday_item - Added
create_pinterest_pin - Added
datadog_create_monitor - Added
datadog_get_monitor - Added
datadog_list_dashboards - Added
datadog_list_events - Added
datadog_list_monitors - Added
datadog_query_metrics - Added
deepl_get_usage - Added
deepl_list_languages - Added
deepl_translate_document - Added
deepl_translate_text - Added
elevenlabs_get_history - Added
elevenlabs_get_models - Added
elevenlabs_get_voice - Added
elevenlabs_list_voices - Added
elevenlabs_text_to_speech - Added
exchangerate_codes - Added
exchangerate_convert - Added
exchangerate_historical - Added
exchangerate_latest - Added
fly_create_machine - Added
fly_get_app - Added
fly_list_apps - Added
fly_list_machines - Added
fly_list_volumes - Added
get_asana_task - Added
get_calendly_event - Added
get_calendly_user - Added
get_monday_board - Added
get_pinterest_board - Added
get_pinterest_user - Added
get_run - Added
get_steam_achievements - Added
get_steam_app_details - Added
get_steam_owned_games - Added
get_steam_player_summaries - Added
get_tiktok_user - Added
get_tiktok_video - Added
groq_chat_completion - Added
groq_list_models - Added
gumroad_get_product - Added
gumroad_get_sale - Added
gumroad_list_products - Added
gumroad_list_sales - Added
gumroad_list_subscribers - Added
igdb_get_company - Added
igdb_get_game - Added
igdb_list_genres - Added
igdb_list_platforms - Added
igdb_search_games - Added
igniteonly_api - Added
igniteonly_policy - Added
igniteonly_receipt_consumer - Added
kling_generate_video - Added
kling_get_task - Added
legalpass_run - Added
legalpass_verdict - Added
list_asana_projects - Added
list_asana_tasks - Added
list_asana_workspaces - Added
list_calendly_event_types - Added
list_calendly_events - Added
list_calendly_invitees - Added
list_monday_boards - Added
list_monday_items - Added
list_pinterest_boards - Added
list_pinterest_pins - Added
list_runs - Added
list_tiktok_videos - Added
ls_get_order - Added
ls_list_customers - Added
ls_list_orders - Added
ls_list_products - Added
ls_list_stores - Added
ls_list_subscriptions - Added
mailchimp_add_member - Added
mailchimp_create_campaign - Added
mailchimp_get_campaign - Added
mailchimp_list_audiences - Added
mailchimp_list_campaigns - Added
mailchimp_list_members - Added
mailchimp_search_members - Added
mapbox_geocode_forward - Added
mapbox_geocode_reverse - Added
mapbox_get_directions - Added
mapbox_get_static_map - Added
mapbox_list_tilesets - Added
mistral_chat_completion - Added
mistral_create_embedding - Added
mistral_list_models - Added
mixpanel_export_data - Added
mixpanel_get_events - Added
mixpanel_get_funnels - Added
mixpanel_get_retention - Added
mixpanel_track_event - Added
neon_create_branch - Added
neon_execute_sql - Added
neon_get_project - Added
neon_list_branches - Added
neon_list_databases - Added
neon_list_projects - Added
nudgeonly_api - Added
nudgeonly_policy - Added
nudgeonly_receipt_bridge - Added
openai_chat_completion - Added
openai_create_embedding - Added
openai_create_transcription - Added
openai_generate_image - Added
openai_list_models - Added
pagerduty_acknowledge_incident - Added
pagerduty_create_incident - Added
pagerduty_get_incident - Added
pagerduty_list_incidents - Added
pagerduty_list_oncalls - Added
pagerduty_list_services - Added
pagerduty_resolve_incident - Added
perplexity_chat_completion - Added
pinecone_delete_vectors - Added
pinecone_describe_index - Added
pinecone_list_indexes - Added
pinecone_query_vectors - Added
pinecone_upsert_vectors - Added
postmark_get_delivery_stats - Added
postmark_get_template - Added
postmark_list_templates - Added
postmark_search_messages - Added
postmark_send_batch - Added
postmark_send_email - Added
pushonly_api - Added
pushonly_policy - Added
pushonly_wake_pusher - Added
render_get_service - Added
render_list_deploys - Added
render_list_env_vars - Added
render_list_services - Added
render_set_env_var - Added
render_trigger_deploy - Added
replicate_cancel_prediction - Added
replicate_create_prediction - Added
replicate_get_model - Added
replicate_get_prediction - Added
replicate_list_models - Added
replicate_list_predictions - Added
search_asana_tasks - Added
search_monday_items - Added
search_pinterest_pins - Added
search_steam_store - Added
segment_get_source - Added
segment_identify_user - Added
segment_list_destinations - Added
segment_list_sources - Added
segment_track_event - Added
sendgrid_add_contact - Added
sendgrid_get_stats - Added
sendgrid_get_template - Added
sendgrid_list_contacts - Added
sendgrid_list_templates - Added
sendgrid_send_email - Added
seopass_lighthouse_plan - Added
seopass_register_pack - Added
seopass_run - Added
seopass_status - Added
speedrun_get_game - Added
speedrun_get_leaderboard - Added
speedrun_get_user - Added
speedrun_list_runs - Added
speedrun_search_games - Added
stability_image_to_image - Added
stability_list_engines - Added
stability_text_to_image - Added
stability_upscale - Added
start_crew_run - Added
testpass_edit_item - Added
testpass_report_html - Added
testpass_report_json - Added
testpass_report_md - Added
testpass_run - Added
testpass_save_pack - Added
testpass_status - Added
togetherai_chat_completion - Added
togetherai_completion - Added
togetherai_create_embedding - Added
togetherai_list_models - Added
turso_create_database - Added
turso_execute_sql - Added
turso_get_database - Added
turso_list_databases - Added
turso_list_groups - Added
update_asana_task - Added
update_monday_item - Added
upstash_kafka_list_topics - Added
upstash_kafka_produce - Added
upstash_redis_del - Added
upstash_redis_get - Added
upstash_redis_incr - Added
upstash_redis_list_keys - Added
upstash_redis_set - Added
uxpass_register_pack - Added
uxpass_report_html - Added
uxpass_report_json - Added
uxpass_report_md - Added
uxpass_run - Added
uxpass_status
237 tool updates
- Removed
algolia_browse_index - Removed
algolia_get_object - Removed
algolia_list_indices - Removed
algolia_search - Removed
anthropic_create_message - Removed
anthropic_list_models - Removed
assemblyai_get_paragraphs - Removed
assemblyai_get_sentences - Removed
assemblyai_get_transcript - Removed
assemblyai_list_transcripts - Removed
assemblyai_summarize - Removed
assemblyai_transcribe - Removed
circleci_get_pipeline - Removed
circleci_get_workflow - Removed
circleci_list_jobs - Removed
circleci_list_pipelines - Removed
circleci_list_workflows - Removed
circleci_trigger_pipeline - Removed
ck_add_subscriber - Removed
ck_list_forms - Removed
ck_list_sequences - Removed
ck_list_subscribers - Removed
ck_list_tags - Removed
ck_tag_subscriber - Removed
cohere_chat - Removed
cohere_classify - Removed
cohere_embed - Removed
cohere_generate - Removed
cohere_list_models - Removed
cohere_rerank - Removed
copypass_run - Removed
copypass_status - Removed
create_asana_task - Removed
create_monday_item - Removed
create_pinterest_pin - Removed
datadog_create_monitor - Removed
datadog_get_monitor - Removed
datadog_list_dashboards - Removed
datadog_list_events - Removed
datadog_list_monitors - Removed
datadog_query_metrics - Removed
deepl_get_usage - Removed
deepl_list_languages - Removed
deepl_translate_document - Removed
deepl_translate_text - Removed
elevenlabs_get_history - Removed
elevenlabs_get_models - Removed
elevenlabs_get_voice - Removed
elevenlabs_list_voices - Removed
elevenlabs_text_to_speech - Removed
exchangerate_codes - Removed
exchangerate_convert - Removed
exchangerate_historical - Removed
exchangerate_latest - Removed
fly_create_machine - Removed
fly_get_app - Removed
fly_list_apps - Removed
fly_list_machines - Removed
fly_list_volumes - Removed
get_asana_task - Removed
get_calendly_event - Removed
get_calendly_user - Removed
get_monday_board - Removed
get_pinterest_board - Removed
get_pinterest_user - Removed
get_run - Removed
get_steam_achievements - Removed
get_steam_app_details - Removed
get_steam_owned_games - Removed
get_steam_player_summaries - Removed
get_tiktok_user - Removed
get_tiktok_video - Removed
groq_chat_completion - Removed
groq_list_models - Removed
gumroad_get_product - Removed
gumroad_get_sale - Removed
gumroad_list_products - Removed
gumroad_list_sales - Removed
gumroad_list_subscribers - Removed
igdb_get_company - Removed
igdb_get_game - Removed
igdb_list_genres - Removed
igdb_list_platforms - Removed
igdb_search_games - Removed
igniteonly_api - Removed
igniteonly_policy - Removed
igniteonly_receipt_consumer - Removed
kling_generate_video - Removed
kling_get_task - Removed
legalpass_run - Removed
legalpass_verdict - Removed
list_asana_projects - Removed
list_asana_tasks - Removed
list_asana_workspaces - Removed
list_calendly_event_types - Removed
list_calendly_events - Removed
list_calendly_invitees - Removed
list_monday_boards - Removed
list_monday_items - Removed
list_pinterest_boards - Removed
list_pinterest_pins - Removed
list_runs - Removed
list_tiktok_videos - Removed
ls_get_order - Removed
ls_list_customers - Removed
ls_list_orders - Removed
ls_list_products - Removed
ls_list_stores - Removed
ls_list_subscriptions - Removed
mailchimp_add_member - Removed
mailchimp_create_campaign - Removed
mailchimp_get_campaign - Removed
mailchimp_list_audiences - Removed
mailchimp_list_campaigns - Removed
mailchimp_list_members - Removed
mailchimp_search_members - Removed
mapbox_geocode_forward - Removed
mapbox_geocode_reverse - Removed
mapbox_get_directions - Removed
mapbox_get_static_map - Removed
mapbox_list_tilesets - Removed
mistral_chat_completion - Removed
mistral_create_embedding - Removed
mistral_list_models - Removed
mixpanel_export_data - Removed
mixpanel_get_events - Removed
mixpanel_get_funnels - Removed
mixpanel_get_retention - Removed
mixpanel_track_event - Removed
neon_create_branch - Removed
neon_execute_sql - Removed
neon_get_project - Removed
neon_list_branches - Removed
neon_list_databases - Removed
neon_list_projects - Removed
nudgeonly_api - Removed
nudgeonly_policy - Removed
nudgeonly_receipt_bridge - Removed
openai_chat_completion - Removed
openai_create_embedding - Removed
openai_create_transcription - Removed
openai_generate_image - Removed
openai_list_models - Removed
pagerduty_acknowledge_incident - Removed
pagerduty_create_incident - Removed
pagerduty_get_incident - Removed
pagerduty_list_incidents - Removed
pagerduty_list_oncalls - Removed
pagerduty_list_services - Removed
pagerduty_resolve_incident - Removed
perplexity_chat_completion - Removed
pinecone_delete_vectors - Removed
pinecone_describe_index - Removed
pinecone_list_indexes - Removed
pinecone_query_vectors - Removed
pinecone_upsert_vectors - Removed
postmark_get_delivery_stats - Removed
postmark_get_template - Removed
postmark_list_templates - Removed
postmark_search_messages - Removed
postmark_send_batch - Removed
postmark_send_email - Removed
pushonly_api - Removed
pushonly_policy - Removed
pushonly_wake_pusher - Removed
render_get_service - Removed
render_list_deploys - Removed
render_list_env_vars - Removed
render_list_services - Removed
render_set_env_var - Removed
render_trigger_deploy - Removed
replicate_cancel_prediction - Removed
replicate_create_prediction - Removed
replicate_get_model - Removed
replicate_get_prediction - Removed
replicate_list_models - Removed
replicate_list_predictions - Removed
search_asana_tasks - Removed
search_monday_items - Removed
search_pinterest_pins - Removed
search_steam_store - Removed
segment_get_source - Removed
segment_identify_user - Removed
segment_list_destinations - Removed
segment_list_sources - Removed
segment_track_event - Removed
sendgrid_add_contact - Removed
sendgrid_get_stats - Removed
sendgrid_get_template - Removed
sendgrid_list_contacts - Removed
sendgrid_list_templates - Removed
sendgrid_send_email - Removed
seopass_lighthouse_plan - Removed
seopass_register_pack - Removed
seopass_run - Removed
seopass_status - Removed
speedrun_get_game - Removed
speedrun_get_leaderboard - Removed
speedrun_get_user - Removed
speedrun_list_runs - Removed
speedrun_search_games - Removed
stability_image_to_image - Removed
stability_list_engines - Removed
stability_text_to_image - Removed
stability_upscale - Removed
start_crew_run - Removed
testpass_edit_item - Removed
testpass_report_html - Removed
testpass_report_json - Removed
testpass_report_md - Removed
testpass_run - Removed
testpass_save_pack - Removed
testpass_status - Removed
togetherai_chat_completion - Removed
togetherai_completion - Removed
togetherai_create_embedding - Removed
togetherai_list_models - Removed
turso_create_database - Removed
turso_execute_sql - Removed
turso_get_database - Removed
turso_list_databases - Removed
turso_list_groups - Removed
update_asana_task - Removed
update_monday_item - Removed
upstash_kafka_list_topics - Removed
upstash_kafka_produce - Removed
upstash_redis_del - Removed
upstash_redis_get - Removed
upstash_redis_incr - Removed
upstash_redis_list_keys - Removed
upstash_redis_set - Removed
uxpass_register_pack - Removed
uxpass_report_html - Removed
uxpass_report_json - Removed
uxpass_report_md - Removed
uxpass_run - Removed
uxpass_status
813 tool updates
v0.1.5- Added
abn_lookup - Added
abn_search - Added
abuseipdb_blacklist - Added
abuseipdb_check_ip - Added
abuseipdb_report_ip - Added
ack_handoff - Added
airtable_action - Added
algolia_browse_index - Added
algolia_get_object - Added
algolia_list_indices - Added
algolia_search - Added
amazon_browse - Added
amazon_product - Added
amazon_search - Added
amazon_variations - Added
amber_current_price - Added
amber_forecast - Added
amber_sites - Added
anthropic_create_message - Added
anthropic_list_models - Added
assemblyai_get_paragraphs - Added
assemblyai_get_sentences - Added
assemblyai_get_transcript - Added
assemblyai_list_transcripts - Added
assemblyai_summarize - Added
assemblyai_transcribe - Added
auspost_delivery_times - Added
auspost_get_postcode - Added
auspost_track_parcel - Added
bandsintown_artist - Added
bandsintown_events - Added
bandsintown_recommended - Added
bgg_game_details - Added
bgg_game_reviews - Added
bgg_search - Added
bgg_top_games - Added
bgg_user_collection - Added
bluesky_action - Added
brickset_get_set - Added
brickset_search - Added
bs_club - Added
bs_player - Added
bungie_get_manifest - Added
bungie_get_profile - Added
bungie_search_entities - Added
bungie_search_player - Added
calc_bmi - Added
calc_compound_interest - Added
calc_currency_estimate - Added
calc_mortgage - Added
calc_tip - Added
carbon_electricity_emissions - Added
carbon_flight_emissions - Added
carbon_vehicle_emissions - Added
check_signals - Added
chess_leaderboards - Added
chess_player - Added
chess_player_games - Added
chess_player_stats - Added
chess_puzzles_random - Added
circleci_get_pipeline - Added
circleci_get_workflow - Added
circleci_list_jobs - Added
circleci_list_pipelines - Added
circleci_list_workflows - Added
circleci_trigger_pipeline - Added
ck_add_subscriber - Added
ck_list_forms - Added
ck_list_sequences - Added
ck_list_subscribers - Added
ck_list_tags - Added
ck_tag_subscriber - Added
clickup_action - Added
clockify_action - Added
cmc_global_metrics - Added
cmc_info - Added
cmc_listings - Added
cmc_quotes - Added
cmc_trending - Added
coc_clan - Added
coc_clan_members - Added
coc_player - Added
cohere_chat - Added
cohere_classify - Added
cohere_embed - Added
cohere_generate - Added
cohere_list_models - Added
cohere_rerank - Added
color_contrast_ratio - Added
color_convert - Added
color_info - Added
color_mix - Added
color_palette - Added
comment_on - Added
commonsensepass_protocol - Added
complete_todo - Added
convert_area - Added
convert_data_storage - Added
convert_length - Added
convert_speed - Added
convert_temperature - Added
convert_volume - Added
convert_weight - Added
copypass_run - Added
copypass_status - Added
country_all - Added
country_by_code - Added
country_by_currency - Added
country_by_language - Added
country_by_name - Added
country_by_region - Added
cr_player - Added
cr_top_players - Added
create_asana_task - Added
create_idea - Added
create_monday_item - Added
create_pinterest_pin - Added
create_todo - Added
crypto_coin - Added
crypto_coin_history - Added
crypto_daily - Added
crypto_price - Added
crypto_search - Added
crypto_top_coins - Added
crypto_trending - Added
csuite_analyze - Added
datadog_create_monitor - Added
datadog_get_monitor - Added
datadog_list_dashboards - Added
datadog_list_events - Added
datadog_list_monitors - Added
datadog_query_metrics - Added
datetime_add_to_date - Added
datetime_business_days - Added
datetime_convert_timezone - Added
datetime_current_time - Added
datetime_date_diff - Added
datetime_format_date - Added
datetime_week_number - Added
deepl_get_usage - Added
deepl_list_languages - Added
deepl_translate_document - Added
deepl_translate_text - Added
deezer_chart - Added
deezer_get_album - Added
deezer_get_artist - Added
deezer_get_track - Added
deezer_search - Added
deezer_search_playlist - Added
delete_todo - Added
discogs_get_artist - Added
discogs_get_label - Added
discogs_get_release - Added
discogs_marketplace_stats - Added
discogs_search_artists - Added
discogs_search_releases - Added
discord_channels - Added
discord_members - Added
discord_react - Added
discord_read - Added
discord_search - Added
discord_send - Added
discord_thread - Added
domain_get_property - Added
domain_search_listings - Added
domain_suburb_stats - Added
drop_todo - Added
ebay_get_categories - Added
ebay_get_item - Added
ebay_get_item_by_legacy_id - Added
ebay_search - Added
ebird_notable_observations - Added
ebird_recent_observations - Added
ebird_species_info - Added
elevenlabs_get_history - Added
elevenlabs_get_models - Added
elevenlabs_get_voice - Added
elevenlabs_list_voices - Added
elevenlabs_text_to_speech - Added
email_delete - Added
email_get - Added
email_mark_read - Added
email_read_inbox - Added
email_search - Added
email_send - Added
espn_mlb_scores - Added
espn_nba_scores - Added
espn_news - Added
espn_nfl_scores - Added
espn_nhl_scores - Added
espn_soccer_scores - Added
espn_team_info - Added
esports_get_match - Added
esports_matches - Added
esports_players - Added
esports_teams - Added
esports_tournaments - Added
etsy_get_listing - Added
etsy_get_shop - Added
etsy_get_shop_listings - Added
etsy_search_listings - Added
etsy_search_shops - Added
eventbrite_create_event - Added
eventbrite_get_attendees - Added
eventbrite_get_event - Added
eventbrite_get_venue - Added
eventbrite_list_categories - Added
eventbrite_search_events - Added
exchangerate_codes - Added
exchangerate_convert - Added
exchangerate_historical - Added
exchangerate_latest - Added
f1_car_data - Added
f1_drivers - Added
f1_laps - Added
f1_pit_stops - Added
f1_positions - Added
f1_sessions - Added
f1_team_radio - Added
f1_weather - Added
feedly_action - Added
figma_get_comments - Added
figma_get_components - Added
figma_get_file - Added
figma_get_images - Added
figma_get_node - Added
figma_get_team_projects - Added
figma_post_comment - Added
find_nearest_toilets - Added
fly_create_machine - Added
fly_get_app - Added
fly_list_apps - Added
fly_list_machines - Added
fly_list_volumes - Added
food_by_category - Added
food_get_product - Added
food_search - Added
forex_convert - Added
forex_currencies - Added
forex_historical - Added
forex_latest - Added
forex_rate - Added
foursquare_autocomplete - Added
foursquare_get_photos - Added
foursquare_get_place - Added
foursquare_get_tips - Added
foursquare_search_places - Added
fpl_bootstrap - Added
fpl_fixtures - Added
fpl_gameweek - Added
fpl_leagues_classic - Added
fpl_manager - Added
fpl_my_team - Added
fpl_player - Added
gdelt_geo_events - Added
gdelt_news_search - Added
gdelt_tone_analysis - Added
gdelt_trending - Added
genius_artist_songs - Added
genius_get_artist - Added
genius_get_song - Added
genius_search - Added
get_asana_task - Added
get_calendly_event - Added
get_calendly_user - Added
get_cve_detail - Added
get_monday_board - Added
get_pinterest_board - Added
get_pinterest_user - Added
get_recent_cves - Added
get_run - Added
get_steam_achievements - Added
get_steam_app_details - Added
get_steam_owned_games - Added
get_steam_player_summaries - Added
get_tiktok_user - Added
get_tiktok_video - Added
get_toilet_details - Added
get_trademark_details - Added
github_action - Added
gitlab_action - Added
groq_chat_completion - Added
groq_list_models - Added
guardian_get_article - Added
guardian_get_edition - Added
guardian_get_sections - Added
guardian_get_tags - Added
guardian_search_articles - Added
gumroad_get_product - Added
gumroad_get_sale - Added
gumroad_list_products - Added
gumroad_list_sales - Added
gumroad_list_subscribers - Added
heartbeat_protocol - Added
heygen_create_avatar_video - Added
heygen_get_video_status - Added
heygen_list_avatars - Added
heygen_list_voices - Added
hibp_all_breaches - Added
hibp_check_account - Added
hibp_check_password - Added
higgsfield_generate_image - Added
higgsfield_generate_video - Added
higgsfield_get_status - Added
higgsfield_get_styles - Added
hn_ask_hn - Added
hn_best_stories - Added
hn_item - Added
hn_new_stories - Added
hn_show_hn - Added
hn_top_stories - Added
hn_user - Added
hunter_domain_info - Added
hunter_find_email - Added
hunter_verify_email - Added
igdb_get_company - Added
igdb_get_game - Added
igdb_list_genres - Added
igdb_list_platforms - Added
igdb_search_games - Added
igniteonly_api - Added
igniteonly_policy - Added
igniteonly_receipt_consumer - Added
instapaper_action - Added
invalidate_fact - Added
ip_batch - Added
ip_lookup - Added
keychain_connect - Added
keychain_disconnect - Added
keychain_list_platforms - Added
keychain_secure_connect - Added
keychain_status - Added
kling_generate_video - Added
kling_get_task - Added
lastfm_album_info - Added
lastfm_artist_info - Added
lastfm_chart_top_artists - Added
lastfm_chart_top_tracks - Added
lastfm_search_artists - Added
lastfm_similar_artists - Added
lastfm_top_tracks - Added
legalpass_run - Added
legalpass_verdict - Added
lego_get_set - Added
lego_search_parts - Added
lego_search_sets - Added
lego_set_parts - Added
lego_themes - Added
lichess_puzzle_daily - Added
lichess_top_players - Added
lichess_tournament - Added
lichess_user - Added
lichess_user_games - Added
line_broadcast - Added
line_get_group_summary - Added
line_get_profile - Added
line_reply_message - Added
line_send_flex_message - Added
line_send_message - Added
linear_action - Added
list_actionable_todos - Added
list_asana_projects - Added
list_asana_tasks - Added
list_asana_workspaces - Added
list_calendly_event_types - Added
list_calendly_events - Added
list_calendly_invitees - Added
list_comments - Added
list_ideas - Added
list_monday_boards - Added
list_monday_items - Added
list_pinterest_boards - Added
list_pinterest_pins - Added
list_runs - Added
list_tiktok_videos - Added
list_todos - Added
load_memory - Added
lott_jackpots - Added
lott_results - Added
ls_get_order - Added
ls_list_customers - Added
ls_list_orders - Added
ls_list_products - Added
ls_list_stores - Added
ls_list_subscriptions - Added
mailchimp_add_member - Added
mailchimp_create_campaign - Added
mailchimp_get_campaign - Added
mailchimp_list_audiences - Added
mailchimp_list_campaigns - Added
mailchimp_list_members - Added
mailchimp_search_members - Added
mapbox_geocode_forward - Added
mapbox_geocode_reverse - Added
mapbox_get_directions - Added
mapbox_get_static_map - Added
mapbox_list_tilesets - Added
mastodon_action - Added
mb_get_artist - Added
mb_get_release - Added
mb_search_artists - Added
mb_search_recordings - Added
mb_search_releases - Added
meal_categories - Added
meal_filter_by_area - Added
meal_filter_by_category - Added
meal_filter_by_ingredient - Added
meal_get_by_id - Added
meal_random - Added
meal_search - Added
mistral_chat_completion - Added
mistral_create_embedding - Added
mistral_list_models - Added
mixpanel_export_data - Added
mixpanel_get_events - Added
mixpanel_get_funnels - Added
mixpanel_get_retention - Added
mixpanel_track_event - Added
monica_action - Added
nasa_apod - Added
nasa_asteroids - Added
nasa_earth_imagery - Added
nasa_epic - Added
nasa_mars_photos - Added
neon_create_branch - Added
neon_execute_sql - Added
neon_get_project - Added
neon_list_branches - Added
neon_list_databases - Added
neon_list_projects - Added
news_get_sources - Added
news_search - Added
news_top_headlines - Added
notion_action - Added
nudgeonly_api - Added
nudgeonly_policy - Added
nudgeonly_receipt_bridge - Added
number_fact - Added
number_random - Added
omdb_by_id - Added
omdb_by_title - Added
omdb_search - Added
openai_chat_completion - Added
openai_create_embedding - Added
openai_create_transcription - Added
openai_generate_image - Added
openai_list_models - Added
openaq_air_quality - Added
openaq_countries - Added
openaq_measurements - Added
openlibrary_author_works - Added
openlibrary_get_author - Added
openlibrary_get_book - Added
openlibrary_get_edition - Added
openlibrary_search - Added
openlibrary_trending - Added
pagerduty_acknowledge_incident - Added
pagerduty_create_incident - Added
pagerduty_get_incident - Added
pagerduty_list_incidents - Added
pagerduty_list_oncalls - Added
pagerduty_list_services - Added
pagerduty_resolve_incident - Added
paypal_invoices - Added
paypal_orders - Added
perplexity_chat_completion - Added
pika_generate_video - Added
pika_get_generation - Added
pika_list_styles - Added
pinecone_delete_vectors - Added
pinecone_describe_index - Added
pinecone_list_indexes - Added
pinecone_query_vectors - Added
pinecone_upsert_vectors - Added
plaid_accounts - Added
plaid_balances - Added
plaid_identity - Added
plaid_link_token_create - Added
plaid_transactions - Added
podcast_by_feed_url - Added
podcast_get_episodes - Added
podcast_recent_episodes - Added
podcast_search - Added
podcast_search_episodes - Added
podcast_trending - Added
post_message - Added
postman_action - Added
postmark_get_delivery_stats - Added
postmark_get_template - Added
postmark_list_templates - Added
postmark_search_messages - Added
postmark_send_batch - Added
postmark_send_email - Added
promote_idea_to_todo - Added
ptv_departures - Added
ptv_disruptions - Added
ptv_route_directions - Added
ptv_search - Added
ptv_stops_on_route - Added
pushonly_api - Added
pushonly_policy - Added
pushonly_wake_pusher - Added
pushover_cancel_emergency - Added
pushover_get_receipt - Added
pushover_list_sounds - Added
pushover_send_notification - Added
pushover_validate_user - Added
qc_check_api - Added
qc_copy_audit - Added
qc_run_checklist - Added
quickbooks_customers - Added
quickbooks_invoices - Added
quickbooks_items - Added
quickbooks_payments - Added
radio_by_country - Added
radio_by_tag - Added
radio_countries - Added
radio_search - Added
radio_top_clicked - Added
radio_top_voted - Added
raindrop_action - Added
random_flip_coin - Added
random_lorem_ipsum - Added
random_number - Added
random_pick_from_list - Added
random_roll_dice - Added
random_shuffle_list - Added
random_string - Added
random_uuid - Added
rawg_game_screenshots - Added
rawg_get_game - Added
rawg_list_genres - Added
rawg_list_platforms - Added
rawg_search_games - Added
rawg_upcoming_games - Added
read_messages - Added
read_orchestrator_context - Added
readwise_action - Added
reddit_comment - Added
reddit_post - Added
reddit_read - Added
reddit_search - Added
reddit_subscribe - Added
reddit_user - Added
reddit_vote - Added
refresh_taxonomy_snapshots - Added
render_get_service - Added
render_list_deploys - Added
render_list_env_vars - Added
render_list_services - Added
render_set_env_var - Added
render_trigger_deploy - Added
replicate_cancel_prediction - Added
replicate_create_prediction - Added
replicate_get_model - Added
replicate_get_prediction - Added
replicate_list_models - Added
replicate_list_predictions - Added
resend_get_email - Added
resend_list_domains - Added
resend_send_email - Added
riot_get_match - Added
riot_match_history - Added
riot_ranked - Added
riot_summoner - Added
riot_valorant_account - Added
runway_generate_video - Added
runway_get_task - Added
runway_list_models - Added
save_conversation_turn - Added
save_fact - Added
save_identity - Added
save_session - Added
search_asana_tasks - Added
search_cve - Added
search_memory - Added
search_monday_items - Added
search_patents - Added
search_pinterest_pins - Added
search_steam_store - Added
search_trademarks - Added
search_typed_links - Added
seatgeek_get_event - Added
seatgeek_get_performer - Added
seatgeek_get_venue - Added
seatgeek_search_events - Added
seatgeek_search_performers - Added
seatgeek_search_venues - Added
segment_get_source - Added
segment_identify_user - Added
segment_list_destinations - Added
segment_list_sources - Added
segment_track_event - Added
sendgrid_add_contact - Added
sendgrid_get_stats - Added
sendgrid_get_template - Added
sendgrid_list_contacts - Added
sendgrid_list_templates - Added
sendgrid_send_email - Added
sendle_create_order - Added
sendle_get_quote - Added
sendle_track_parcel - Added
sentry_action - Added
seopass_lighthouse_plan - Added
seopass_register_pack - Added
seopass_run - Added
seopass_status - Added
set_my_emoji - Added
set_my_status - Added
setlistfm_artist_setlists - Added
setlistfm_get_setlist - Added
setlistfm_search_artist - Added
setlistfm_search_setlists - Added
shodan_host_info - Added
shodan_search - Added
shodan_stats - Added
shopify_collections - Added
shopify_customers - Added
shopify_fulfillments - Added
shopify_inventory - Added
shopify_orders - Added
shopify_products - Added
shopify_shop - Added
slack_action - Added
sleeper_league - Added
sleeper_league_matchups - Added
sleeper_league_rosters - Added
sleeper_nfl_state - Added
sleeper_players - Added
sleeper_trending_players - Added
speedrun_get_game - Added
speedrun_get_leaderboard - Added
speedrun_get_user - Added
speedrun_list_runs - Added
speedrun_search_games - Added
splitwise_action - Added
spotify_get_album - Added
spotify_get_artist - Added
spotify_get_audio_features - Added
spotify_get_playlist - Added
spotify_get_recommendations - Added
spotify_get_track - Added
spotify_search - Added
square_catalog_list - Added
square_catalog_search - Added
square_customers - Added
square_payments - Added
stability_image_to_image - Added
stability_list_engines - Added
stability_text_to_image - Added
stability_upscale - Added
start_crew_run - Added
stock_daily - Added
stock_intraday - Added
stock_quote - Added
stock_search - Added
stripe_charges - Added
stripe_customers - Added
stripe_invoices - Added
stripe_prices - Added
stripe_products - Added
stripe_subscriptions - Added
tab_meetings - Added
tab_race - Added
tab_sports_markets - Added
telegram_get_updates - Added
telegram_manage_chat - Added
telegram_read - Added
telegram_search - Added
telegram_send - Added
telegram_send_media - Added
testpass_edit_item - Added
testpass_report_html - Added
testpass_report_json - Added
testpass_report_md - Added
testpass_run - Added
testpass_save_pack - Added
testpass_status - Added
text_analyse - Added
text_count_occurrences - Added
text_extract_emails - Added
text_extract_phone_numbers - Added
text_extract_urls - Added
text_transform - Added
text_truncate - Added
tm_get_event - Added
tm_get_venue - Added
tm_search_attractions - Added
tm_search_events - Added
tm_search_venues - Added
tmdb_movie - Added
tmdb_now_playing - Added
tmdb_popular_tv - Added
tmdb_search_movies - Added
tmdb_search_tv - Added
tmdb_trending - Added
tmdb_tv - Added
tmdb_upcoming - Added
togetherai_chat_completion - Added
togetherai_completion - Added
togetherai_create_embedding - Added
togetherai_list_models - Added
toggl_create_time_entry - Added
toggl_projects - Added
toggl_summary - Added
toggl_time_entries - Added
tomorrow_forecast - Added
tomorrow_history - Added
tomorrow_realtime - Added
trello_action - Added
trivia_categories - Added
trivia_questions - Added
trove_get_work - Added
trove_newspaper_article - Added
trove_search - Added
turso_create_database - Added
turso_execute_sql - Added
turso_get_database - Added
turso_list_databases - Added
turso_list_groups - Added
twilio_check_verify - Added
twilio_get_message - Added
twilio_list_calls - Added
twilio_list_messages - Added
twilio_make_call - Added
twilio_send_sms - Added
twilio_send_verify - Added
twitch_channel_info - Added
twitch_get_clips - Added
twitch_get_stream - Added
twitch_schedule - Added
twitch_search_games - Added
twitch_search_streams - Added
twitch_top_games - Added
untappd_beer_activities - Added
untappd_get_beer - Added
untappd_get_brewery - Added
untappd_search_beer - Added
untappd_search_brewery - Added
update_asana_task - Added
update_idea - Added
update_monday_item - Added
update_todo - Added
upstash_kafka_list_topics - Added
upstash_kafka_produce - Added
upstash_redis_del - Added
upstash_redis_get - Added
upstash_redis_incr - Added
upstash_redis_list_keys - Added
upstash_redis_set - Added
urlscan_get_result - Added
urlscan_scan - Added
urlscan_search - Added
usgs_earthquake_detail - Added
usgs_earthquakes_by_region - Added
usgs_recent_earthquakes - Added
uxpass_register_pack - Added
uxpass_report_html - Added
uxpass_report_json - Added
uxpass_report_md - Added
uxpass_run - Added
uxpass_status - Added
vault_action - Added
vercel_create_deployment - Added
vercel_create_env - Added
vercel_delete_env - Added
vercel_get_deployment - Added
vercel_get_domain - Added
vercel_get_env - Added
vercel_list_deployments - Added
vercel_list_projects - Added
virustotal_scan_domain - Added
virustotal_scan_ip - Added
virustotal_scan_url - Added
virustotal_url_report - Added
vote_on_idea - Added
weather_current - Added
weather_forecast - Added
weather_hourly - Added
whatsapp_get_media - Added
whatsapp_send_media - Added
whatsapp_send_template - Added
whatsapp_send_text - Added
whatsapp_upload_media - Added
willyweather_forecast - Added
willyweather_surf - Added
willyweather_tide - Added
wise_accounts - Added
wise_create_quote - Added
wise_exchange_rates - Added
wise_profile - Added
woo_customers - Added
woo_orders - Added
woo_products - Added
xero_accounts - Added
xero_bank_transactions - Added
xero_contacts - Added
xero_invoices - Added
xero_organisation - Added
xero_payments - Added
xero_quotes - Added
xero_reports - Added
yelp_autocomplete - Added
yelp_get_business - Added
yelp_get_reviews - Added
yelp_search_businesses - Added
yelp_search_events - Added
youtube_get_captions - Added
youtube_get_channel - Added
youtube_get_video - Added
youtube_list_playlist_items - Added
youtube_list_playlists - Added
youtube_search
9 tool updates
v0.1.1- Removed
add_fact - Removed
get_startup_context - Removed
search_memory - Removed
set_business_context - Removed
unclick_browse - Removed
unclick_call - Removed
unclick_search - Removed
unclick_tool_info - Removed
write_session_summary
9 tool updates
v0.1.0- First observed
add_fact - First observed
get_startup_context - First observed
search_memory - First observed
set_business_context - First observed
unclick_browse - First observed
unclick_call - First observed
unclick_search - First observed
unclick_tool_info - First observed
write_session_summary
TDQS
Scored across 1689 tools
The set contains hundreds of near-duplicate tools across competing providers: crypto prices via CoinGecko, Coinlore, CoinCap, CoinMarketCap, Coinpaprika, plus repeated utility pairs like convert_temperature/temperature_convert, base_convert/number_base_convert, gcd_calculate/gcd_lcm_calc, cat_fact/cat_facts, cat_breeds/cat_api_breeds, json_format/json_prettify, statistics_calc/descriptive_stats, text_readability/readability_score. Categories like weather, quotes, jokes, IP geolocation, and exchange rates each have 3-6 overlapping tools an agent cannot reliably choose between. At 1689 tools, an agent has no realistic path to picking the right one.
Many tools follow a provider_prefix_verb convention (tmdb_search_movies, jira_get_issue), but the naming is broadly inconsistent: verb-first without provider (list_calendly_events, get_steam_app_details, create_monday_item), noun-only (is_even, do_account, heartbeat_protocol), and opaque catch-all multiplexers with action parameters (slack_action, notion_action, mastodon_action). Fetch verb varies between get/read/fetch/lookup for identical operations.
1689 tools is an extreme mismatch for any coherent server purpose; even a large aggregator should namespace into separate servers. The count reflects unbounded accretion of integrations rather than a scoped surface, and a large fraction of the tools duplicate each other's function.
Coverage is extraordinarily broad—read paths exist for most public APIs and many SaaS platforms—so few obvious holes remain at the resource-coverage level. However, write/mutation coverage is thin and uneven (many integrations are list/get only: Stripe invoices, Xero, Klaviyo, Brickset), and there are dead ends like the retired fishwatch_species tools and legacy UXPass/FlowPass runners, so lifecycle completeness is inconsistent per domain.
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn open-source MCP server for macOS and Windows that provides native desktop control via Accessibility APIs, OCR, and Chrome CDP. It enables AI agents to interact with applications, manage browser sessions, and automate workflows with high-speed native UI actions.35 npm15AGPL 3.0

agentify-desktopofficial
AlicenseNot gradedqualityDmaintenanceMCP server that enables AI tools to control local browser sessions for ChatGPT, Claude, and other AI services, supporting querying, navigation, file uploads, and artifact management.42 npm572Mozilla Public 2.0- AlicenseNot gradedqualityBmaintenanceMCP server for driving any Windows app through five layers including OCR, UI Automation, and direct OS operations. Enables AI agents to control Windows desktop and OS cursor-free, even on background/locked windows.119 npm3MIT
- AlicenseAqualityCmaintenanceMCP server providing browser automation for AI agents, enabling actions like clicking and typing, structured data extraction, content validation, multi-step task execution, and memory enrichment from web pages.8487 npmMIT