mu
Server Details
News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.9/5 across 113 of 113 tools scored. Lowest: 2.9/5.
Every tool is prefixed with a clear domain (e.g., apps_, blog_, transit_), and the suffix identifies a distinct action or resource. Overlapping tools like archive_search and news_search are explicitly differentiated in their descriptions.
All tools consistently use a domain_prefix_suffix pattern, but the suffix is sometimes a verb (create, list, search) and sometimes a noun (inbox, status, address). This minor mixing prevents a perfect score but remains predictable and readable.
With 113 tools, the count is far beyond the typical well-scoped range, even for a broad personal assistant. While each tool is distinct and serves a purpose, the sheer number is overwhelming and could be better organized into separate domain-specific servers.
Each domain has near-complete lifecycle coverage, including CRUD and search where relevant, with only minor gaps such as missing apps_delete or events_update. The wide range of covered domains itself demonstrates strong completeness for a general assistant.
Available Tools
118 toolsapps_buildBuild appsAInspect
Build a small app from a description, save it, and return its details and URL. An app is a single page — a tracker, a checklist, a counter — that keeps its own store and runs in the browser
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Description of the app to build, e.g. 'an expense tracker', 'a packing checklist', 'a water intake counter' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no read-only or destructive hints in the annotations, the description carries the behavioral burden. It discloses that the tool saves the app, returns details and URL, and specifies the app is a single-page browser app with its own store, which gives useful 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?
The description is two sentences, front-loaded with the core action, and each sentence adds value. It is concise and structured effectively 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 tool with one well-documented parameter and no output schema, the description adequately covers what the tool does, what it saves, and what it returns. It could mention the app ID or persistence details, but it is sufficiently complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single 'prompt' parameter with 100% coverage, so the baseline is 3. The description adds context about app type (small, single-page) but does not add new 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 clearly states the tool builds a small app from a description, saves it, and returns details and URL. It distinguishes itself from read/run/search siblings by focusing on creation from a prompt, though it does not explicitly contrast with the sibling 'apps_create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 specifying the input is a description and the output is a saved single-page app, but it does not explicitly state when to prefer this tool over alternatives like apps_create or apps_edit. No exclusions or alternative tool guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apps_createCreate appsAInspect
Create an app — a small, self-contained HTML tool hosted here. Takes the HTML; apps_build writes it for you from a description
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | The app's HTML, inline CSS and JavaScript included, up to 256KB | |
| icon | No | An SVG icon | |
| name | Yes | App name, e.g. "Pomodoro Timer" | |
| slug | No | URL-friendly id, e.g. pomodoro-timer. Derived from the name if omitted | |
| tags | No | Comma-separated tags | |
| price | No | Credits charged per use, 0 for free, up to 1000 | |
| description | No | What the app does. Defaults to the name |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations contain only a title, so the description carries the full burden. It adds that apps are self-contained HTML tools and that the input is HTML, but does not disclose side effects, permissions, or the response format. For a create operation, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-constructed sentence that defines the tool, gives its purpose, and contrasts it with apps_build. Every clause earns its place, with no redundancy or extra fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given sparse annotations and no output schema, the description covers the core purpose and usage distinction effectively. It lacks details about permissions or return values, but the schema covers all parameters. For a straightforward create tool, this 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?
The schema has 100% descriptive coverage for all 7 parameters, so the description does not need to repeat them. The mention of HTML aligns with the required html parameter but adds no new semantic detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create an app') and provides a definition of the resource ('a small, self-contained HTML tool hosted here'). It explicitly contrasts with apps_build, which writes from a description, making the tool's purpose unmistakable and distinct from its primary 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 sentence 'Takes the HTML; apps_build writes it for you from a description' gives an explicit decision rule: use this tool when you have HTML, and use apps_build when you have a description. This directly addresses when to choose this tool over a key alternative, which is excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apps_editEdit appsAInspect
Edit an app you own — its name, description, tags, icon, HTML or price. Fields left out keep their value
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | New HTML, up to 256KB. Left alone if omitted | |
| icon | No | New SVG icon. Left alone if omitted | |
| name | No | New name. Left alone if omitted | |
| slug | Yes | The app's URL slug, e.g. pomodoro-timer | |
| tags | No | New comma-separated tags. Left alone if omitted | |
| price | No | Credits charged per use, 0 for free, up to 1000 | |
| description | No | New description. Left alone if omitted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations containing only the title, the description adds crucial transparency by stating 'Fields left out keep their value', revealing partial-update semantics. This is a key behavioral trait that the agent needs to know 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, focused sentence that front-loads the core action and ownership requirement, then lists the editable fields, and ends with the critical merge behavior. 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 an edit tool with 7 parameters, no output schema, and minimal annotations, the description covers the essential behavior (partial update) and scope (owned apps). Minor gaps remain about error handling or required permissions, but it is complete enough for a straightforward 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 coverage is 100%, so the baseline is 3. The description lists the fields but does not add meaning beyond the schema's per-parameter descriptions like 'New name. Left alone 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 verb 'Edit' and the resource 'an app you own', and enumerates the editable fields (name, description, tags, icon, HTML, price). This specific wording distinguishes it from siblings like apps_create, apps_read, and apps_fork.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear context (must own the app) but does not explicitly mention when not to use or direct to alternatives such as apps_create for new apps. The 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.
apps_embedEmbed appsAInspect
Get the HTML that puts an app on another page — an iframe tag pointing at the app, which runs there sandboxed the same way it runs here. Apps that charge cannot be embedded, and an app that calls mu. only reaches this instance from a page on it
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The app's URL slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only a title annotation, the description carries the behavioral burden and does so well by explaining the return value, sandboxed execution, payment restrictions, and a cross-origin caveat. It does not cover every edge case, such as errors or access requirements, but provides meaningful behavior 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 compact and front-loaded with the key purpose. The second sentence contains a slightly awkward phrase, but every part contributes useful constraint 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 tool with no output schema, the description explains what is returned, how the embedded app runs, and important exclusions. It is mostly complete, though the cross-instance behavior could be clearer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 'slug' parameter is already documented as 'The app's URL slug'. The description adds little parameter-specific meaning, but the schema is sufficient on its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 HTML (an iframe tag) for embedding an app on another page. This clearly distinguishes the tool from sibling app operations like apps_build, apps_read, or apps_test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: obtain embeddable HTML for an app. It also gives a when-not condition by noting that paid apps cannot be embedded, though it does not explicitly name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apps_forkFork appsAInspect
Fork an app into your own account, to change independently of the original
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug of the app to fork | |
| new_slug | No | Slug for the copy. Generated from the original if omitted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond title, the description carries the transparency burden. It implies that the original app remains unaffected ('change independently of the original') and that the copy lives in the user's account. However, it doesn't disclose permission requirements, side effects on the original, or the return behavior, leaving 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, direct sentence with no filler. It front-loads the action ('Fork an app') and immediately explains the purpose ('to change independently of the original'), making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but the description omits some context critical for a mutation tool: whether the fork requires read access to the original, what the function returns (e.g., the new app or slug), and any implications for the original app. Given no output schema, the description should fill these gaps, but it only partially 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 100% for both parameters (slug and new_slug), so the description doesn't need to add much. The description adds no extra meaning about the parameters, but the baseline of 3 is appropriate since the schema already provides full 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 ('fork') and resource ('app'), and clarifies the purpose: to create an independent copy in the user's own account. This clearly distinguishes it from sibling tools like apps_create (create from scratch) and apps_edit (modify existing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when you want to fork an app into your own account to modify it independently of the original. However, it doesn't explicitly mention when not to use it or name alternative tools for related tasks (e.g., apps_edit, apps_create), 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.
apps_readRead appsARead-onlyIdempotentInspect
Read the details of one app by its slug
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The app's URL slug, e.g. pomodoro-timer |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds no additional behavioral context such as error handling, authentication, or edge cases. For a simple read operation, this is adequate, but the description does not go beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the verb and resource. It contains no filler words and gets straight to the point, earning top marks for conciseness and 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?
This is a simple tool with one parameter and fully covered schema. There is no output schema, but the description 'read the details' sufficiently implies the return value. Given the low complexity and clear annotations, the description is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the slug parameter with an example, so schema coverage is 100%. The description mentions 'by its slug' but does not add additional meaning beyond the schema. Since the schema provides complete parameter details, the description meets the baseline without needing 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 'Read the details of one app by its slug', using a specific verb 'read' and a specific resource 'details of one app'. It effectively distinguishes itself from sibling tools like apps_search (which searches for apps) and apps_run (which runs apps), 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 implies usage: if you have a slug and need details of one app, use this tool. However, it does not explicitly mention alternatives like apps_search or conditions under which this tool should not be used. This is implied guidance rather than explicit when-to-use/when-not-to-use, matching a mid-range score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apps_searchSearch appsARead-onlyIdempotentInspect
Search the apps directory for small, useful tools, by name, description or tag
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter to apps carrying this tag | |
| query | No | Search query — name, description or tag |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds a bit about the nature of results ('small, useful tools') and searchable fields, but doesn't explain return format, pagination, or whether results are IDs or full objects. This is beyond what annotations provide, but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. It conveys purpose and search 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?
Given the simple two-param structure, good annotations, and clear purpose, the description is mostly complete. It lacks return-value details, but the tool's function is self-evident from the description and schema. Could be slightly more detailed on 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?
Param schemas already describe both 'tag' (filter) and 'query' (search by name/description/tag) at 100% coverage. The description only mirrors this information without adding new syntax or behavior details, so no additional value is provided 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 ('Search'), a specific resource ('the apps directory'), and the search dimensions (name, description, tag). It distinguishes from sibling tools like apps_read or apps_build by indicating it finds apps, not operates on 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 clear context (use when you need to find an app in the directory) but doesn't explicitly name alternatives or exclusions. However, the search-focused language makes the appropriate use case obvious relative to the sibling action tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apps_testTest appsAInspect
Test an app by checking its HTML and running its mu.api calls server-side, so an author finds out what is broken without opening it
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The app's URL slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations providing behavioral hints (readOnlyHint, destructiveHint) beyond the title, the description carries the full burden. It discloses that the tool checks HTML and runs mu.api calls server-side, implying a diagnostic operation without directly opening the app. This is meaningful behavioral detail, though it does not explicitly state whether the operation is side-effect-free or mention 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 that efficiently conveys what the tool does, how it does it, and why it is useful. There is no redundant or filler language—every part adds value. It is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter (fully documented in the schema), no annotations, and no output schema, the description is fairly complete. It explains the action, method, and purpose, which is sufficient for an agent to understand and invoke the tool. However, it does not describe the return value or what a successful/failed test looks like, which would be helpful 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 already provides 100% coverage for the single 'slug' parameter with a clear description ('The app's URL slug'). The tool description adds no additional meaning about the parameter—it does not explain slug format, where to find it, or any constraints beyond the schema. Therefore, the description does not enhance the schema's 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 tool's purpose: 'Test an app by checking its HTML and running its mu.api calls server-side.' It uses a specific verb ('Test') and resource ('app'), and explains the mechanism (checking HTML, running mu.api calls) and the intended outcome (finding what is broken). This distinguishes it from sibling tools like apps_read or apps_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 gives a clear context for when to use the tool: 'so an author finds out what is broken without opening it.' However, it does not explicitly mention when not to use it or provide alternative tools. There is no direct comparison with siblings such as apps_run or apps_read, so the usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_listBrowse archiveARead-onlyIdempotentInspect
With a kind, the most recent entries of it. Without one, what kinds are archived and how much of each
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | One kind: news, video, market, blog, prayer. Omit for a summary of what is here | |
| limit | No | Max entries (default 20, max 100) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the tool's safety is known. The description adds valuable behavioral context beyond annotations: specifying that with a kind it returns the most recent entries, and without a kind it returns a summary of what kinds are archived and their counts. This clarifies the dual 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 exceptionally concise, using two short sentences to convey the two distinct behaviors. Every word serves a purpose, with no fluff 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?
Given the tool's simplicity (2 optional parameters, no output schema), the description covers the essential behavior. However, it does not mention how the 'limit' parameter interacts with the listing mode, nor does it describe the return format or potential edge cases. Still, it provides sufficient context for correct invocation in common 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 description coverage is 100%, both parameters are fully described in the schema. The description restates the effect of omitting 'kind' (provides summary), which is already in the schema's parameter description. No additional semantic details about the parameters are added 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 tool's dual function: with a 'kind' it lists recent entries, without it provides a summary of archived kinds with counts. It specifies the valid kinds (news, video, market, blog, prayer). This distinguishes it from the sibling 'archive_search', which likely performs searches rather than listing recent entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 tells when to use each mode (with or without a kind), but it does not provide explicit guidance on when to use this tool versus alternatives like 'archive_search' or other list tools among many siblings. No exclusions or warnings are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_searchSearch archiveARead-onlyIdempotentInspect
Search everything this instance has collected, across news, video, markets and posts at once. Use it when the question crosses a service, or when you do not know which service would hold the answer; news_search is narrower and better when you know it is news
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Narrow to one kind: news, video, market, blog, prayer. Omit to search everything | |
| limit | No | Max results (default 20, max 100) | |
| query | Yes | What to look for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, repeatable query. The description adds useful behavioral context: it searches across multiple content types simultaneously, and filtering via 'kind' narrows to one type. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and scope, second provides usage guidance. Efficient and front-loaded with the most important information. Could trim a few words ('at once' is redundant with 'everything'), but overall 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?
The tool is a cross-service search with good annotations and full schema coverage, and no output schema so agent must infer return format. The description clearly explains the tool's breadth and filtering, which is sufficient for a simple read operation. A small gap: it doesn't mention that omitting 'kind' searches all types, though the schema 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 coverage is 100%, so the baseline is 3. The description adds minimal parameter enrichment beyond the schema – it mentions narrowing by 'kind' but does not elaborate on the parameter format or constraints beyond the schema's existing descriptions. The description doesn't hurt but doesn't significantly augment 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 immediately clarifies the tool's scope: 'Search everything this instance has collected, across news, video, markets and posts at once.' It specifies verb ('search') and broad resource ('everything collected'), clearly differentiating from siblings like news_search and news_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?
Explicitly states when to use ('when the question crosses a service, or when you do not know which service would hold the answer') and when not to ('news_search is narrower and better when you know it is news'). This provides clear decision criteria versus direct sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blog_createCreate blogAInspect
Publish a post to the caller's blog. For anything meant to be read later by other people — notes, write-ups, announcements. For a private note to yourself, prefer files or memory
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Comma-separated tags | |
| title | No | Post title. One is generated from the body if omitted | |
| content | Yes | The post body, at least 50 characters | |
| private | No | True to keep it to yourself |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no read-only/destructive hints, so the description carries the full burden. It does disclose that the post becomes public-facing ('read later by other people') and that it's on the caller's blog, but it does not mention permissions, reversibility, or what response the agent can expect after publishing.
Agents need to know what a tool does to the world 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 first, and the second sentence adds valuable usage contrast. 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?
The tool is a simple create action with a fully described schema, but there is no output schema. The description covers purpose, audience, and alternatives, yet it does not mention the shape or existence of a return value, which an agent might need to confirm the post was created.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 meaning beyond the schema parameters—it only provides general context about content types ('notes, write-ups, announcements'), which is marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Publish') and resource ('caller's blog'), making the action unambiguous. It clearly distinguishes from sibling blog tools like blog_read, blog_update, and blog_delete by framing this as a write/create 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?
Explicitly states when to use: 'anything meant to be read later by other people'. It also gives a concrete alternative for the opposite case: 'For a private note to yourself, prefer files or memory', which is strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blog_deleteDelete blogADestructiveInspect
Delete one of the caller's own blog posts, by id or title. Refuses posts written by anyone else, and refuses an ambiguous title rather than guessing. Irreversible, so confirm with the user first
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The post's id, as given by blog_list | |
| title | No | The post's title, or enough of it to be unambiguous. An ambiguous title is refused rather than guessed — deleting the wrong post is not recoverable |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint=true. The description adds substantial behavioral details: ownership restriction, refusal behaviors for other people's posts and ambiguous titles, irreversibility, and the need for user confirmation. This goes far beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each packed with essential information: the action, the constraints, and the irreversibility. No redundancy or filler, and the main verb appears 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?
The description covers all critical aspects for a deletion tool: ownership, identification methods, ambiguity handling, irreversibility, and user confirmation. Despite no output schema, the tool's behavior and prerequisites are fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both 'id' and 'title', including the ambiguity refusal for title. The description's phrase 'by id or title' merely restates the schema without adding new parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Delete one of the caller's own blog posts, by id or title', which is a specific verb, resource, and scope. It clearly distinguishes this from sibling blog tools like blog_create, blog_read, and blog_update by focusing on deletion and ownership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-not conditions: 'Refuses posts written by anyone else' and 'refuses an ambiguous title rather than guessing'. It also advises user confirmation due to irreversibility, giving clear guidance on safe usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blog_listBrowse blogARead-onlyIdempotentInspect
Read recent blog posts — titles, snippets and ids
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional max number of posts (default all recent) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds that it returns recent posts with titles, snippets, and ids, which is useful context beyond annotations. It does not describe ordering or pagination, but for a simple read-only list this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence front-loaded with the primary action and result. No wasted words or 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?
The tool is simple (one optional param, read-only, no output schema). The description states the return contents (titles, snippets, ids), which is the key missing information without an output schema. It does not explain whether all recent posts are returned by default, but the schema description covers that. Overall, it is complete for a basic listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'limit' completely with the description 'Optional max number of posts (default all recent)', so the description adds no additional parameter clarity. Baseline of 3 applies given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'recent blog posts', and specifies the returned fields 'titles, snippets and ids'. It distinguishes from blog_read by implying a plural listing, but does not explicitly contrast it with blog_read or blog_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use blog_list vs alternatives like blog_read or blog_search. The context of recent posts is implied but no exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blog_readRead blogARead-onlyIdempotentInspect
Read one blog post in full, by id or by title. Use after blog_list has found a candidate and the summary is not enough
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The post's id, as given by blog_list | |
| title | No | The post's title, or enough of it to be unambiguous — use this when you have a name rather than an id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so no additional safety disclosure is needed. The description adds that the tool returns the full post content (not just a summary), which is useful behavioral context. It does not mention error handling or precedence when both id and title are provided, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with a terse second clause for usage guidance. Every word earns its place—no fluff, clear verb-first 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 two well-documented parameters and read-only/idempotent annotations, the description covers the workflow (after blog_list), the selection method (id or title), and the output nature (full post). It leaves no critical gap 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 coverage is 100% with both parameters (id and title) fully described. The description only echoes 'by id or by title', adding no new meaning beyond the schema. Per the baseline for high schema coverage, 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 'Read' and resource 'one blog post' with scope 'in full', and specifies lookup by id or title. It distinguishes from siblings like blog_list (which gives summaries) and blog_update/delete by focusing on full-content 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?
Explicitly says 'Use after blog_list has found a candidate and the summary is not enough', defining when to use the tool and implicitly when not to (if summary suffices). It names the alternative workflow, making the decision criterion clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blog_updateUpdate blogAInspect
Edit one of the caller's own posts. Fields left out keep their current value
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The post's id, as given by blog_list | |
| tags | No | New comma-separated tags. Left alone if omitted | |
| title | No | New title. Left alone if omitted | |
| content | No | New body, at least 50 characters. Left alone if omitted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no read-only/destructive hints, so the description carries the burden. It discloses the partial-update behavior ('Fields left out keep their current value'), which is valuable. Yet it does not cover permission failures, reversibility, or response format, leaving a moderate transparency 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 short clauses deliver maximum information per word. The main purpose is front-loaded, and there is absolutely no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with four well-described parameters and no output schema, the description plus schema covers the essential usage. It lacks an explicit mention of return values, but that is a minor omission given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3. The description adds meaning by explaining the PATCH-like semantics for omitted fields, which clarifies how the optional parameters behave collectively. This goes beyond the schema's individual 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 uses a specific verb ('Edit') with a specific resource ('the caller's own posts'), clearly distinguishing it from sibling tools like blog_create, blog_delete, blog_list, and blog_read. The ownership scoping is a strong 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?
It establishes a clear context: editing only the caller's own posts, which implicitly suggests this is not for viewing, creating, deleting, or editing others' posts. However, it doesn't explicitly name alternative tools or provide exclusionary guidance, 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.
browser_readRead browserARead-onlyIdempotentInspect
Open a page in a real browser and read it after its JavaScript has run. Use it when web_fetch comes back empty or with only a nav bar, which is what a page that builds itself in the browser looks like to a plain fetch. web_fetch is free and is the right first try; this costs, because it runs a browser
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page to open | |
| wait | No | Optional CSS selector to wait for before reading, for content that arrives late |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds meaningful context: it runs a real browser, executes JavaScript, and incurs cost. It does not describe the return format, but for a read tool with safety hints that is a minor omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff: the core action comes first, the deciding condition is second, and the cost trade-off is third. Every sentence contributes useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with coverage annotations, the description covers purpose, usage policy, and key behavior. The only notable gap is the absence of any description of what the returned content looks like, since there is no output schema, but this is not severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension 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 fully documented. The description adds the contextual meaning of JS execution but does not add detail beyond what the schema provides, matching 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 begins with a specific verb and resource: 'Open a page in a real browser and read it after its JavaScript has run.' It clearly distinguishes browser_read from sibling web_fetch by highlighting JS rendering, and the name/title gap is resolved by 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?
Explicitly tells the agent when to use this tool: when web_fetch returns empty or nav-bar-only content. It also gives the decision rule 'web_fetch is free and is the right first try; this costs,' which directly chooses between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_shotShot browserAInspect
Photograph a page and get back a URL for the picture. What it looks like, rather than what it says — a chart, a layout, a page whose content is an image. Ask for full to capture past the first screenful
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page to photograph | |
| full | No | Capture the whole page rather than one screenful | |
| wait | No | Optional CSS selector to wait for before the shot |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations containing only a title, the description carries the full disclosure burden — and it does useful work: it reveals the output is a URL (not image data), that the default is a single screenful, and that 'full' extends capture past the first screenful. The 'photograph' metaphor also implies a non-mutating snapshot. It doesn't mention auth, rate limits, or failure behavior, 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?
The core action and return type are front-loaded in the first sentence, and the subsequent clauses each earn their place (selection semantics, full-page behavior). The middle examples could be tightened, but overall it is appropriately sized 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 small read-only tool with no output schema, the description covers the essential selection criterion, the return-type convention, and the screenful-vs-full behavior. The 'wait' parameter's job remains conveyed by the schema alone, and edge cases (unrenderable pages, timeout) are minor gaps; nothing confusing 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 each parameter already has a clear description, so the baseline of 3 applies. The description only paraphrases 'full' ('capture past the first screenful'), adding no genuinely new meaning for 'url' or 'wait'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Photograph a page') and a concrete result ('get back a URL for the picture'). 'What it looks like, rather than what it says' clearly distinguishes it from text-reading siblings like browser_read, so an agent can select the right tool without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear visual use-cases (chart, layout, page whose content is an image) and the 'rather than what it says' formulation implies text extraction is not the job of this tool. It never explicitly names the alternative (browser_read) or states a when-not-to-use rule, so context is clear but routing is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat_messagesMessages chatBInspect
Read the recent conversation in a discussion room
| Name | Required | Description | Default |
|---|---|---|---|
| room | No | Room id, as returned by Rooms |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide a title, so the description carries the full burden. It states 'Read' implying a non-mutating operation, but fails to disclose return format, pagination, whether messages are marked as read, or behavior with invalid room IDs. The term 'recent' is vague without 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, direct sentence starting with the action verb. Every word is informative, with no filler or redundant 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?
The tool has one parameter, no output schema, and minimal annotations. The description explains the action and target but leaves key details unspecified, such as what a 'recent conversation' contains or how the response is structured. For a simple read tool, this is adequate but not 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?
The input schema already provides a complete description for the 'room' parameter ('Room id, as returned by Rooms'), covering 100% of parameters. The tool description adds no additional information about parameter usage or syntax, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Read' with a specific resource ('recent conversation in a discussion room'), making the tool's function clear. However, it doesn't explicitly differentiate from sibling tools like chat or chat_rooms, relying on the verb to imply read-only vs. sending/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?
The description provides no guidance on when to use this tool versus alternatives like chat or chat_rooms. It offers no context about prerequisites, such as needing a room ID from chat_rooms first, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat_roomsRooms chatAInspect
List discussion rooms that currently have activity
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many rooms to return (default 20) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a behavioral filter ('currently have activity') beyond the schema, but does not define what constitutes activity or disclose any limitations. With no readOnlyHint annotation, the 'List' verb alone suggests read-only behavior, but the description does not elaborate on output format, auth requirements, 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 containing only the core function and scope, with no redundant wording. It is front-loaded and 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?
The tool is simple, but the description omits details about what a 'room' includes, how activity is determined, and the return value structure (no output schema). It covers the basic function but leaves ambiguity about the exact 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 input schema fully documents the single 'limit' parameter (including its default), and the description adds no parameter-specific information. Per the baseline rule, with high schema coverage, this scores 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 the specific verb 'List' with the resource 'discussion rooms' and the scope 'currently have activity', making it clear that this returns active chat rooms. This distinguishes it from siblings like chat_messages or chat, which deal with messages or direct messaging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when you want active discussion rooms) but does not explicitly state alternatives or exclusions. Since there is no comparison to other list tools, 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.
chat_sendSend chatAInspect
Say something in a discussion room, as the caller. Use chat_rooms to find the room id
| Name | Required | Description | Default |
|---|---|---|---|
| room | Yes | Room id, as returned by chat_rooms | |
| content | Yes | What to say |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide only a title, so the description carries the burden of behavioral disclosure. The phrase 'as the caller' adds useful context about attribution, but the description does not mention side effects (e.g., message appearing in chat_messages), permissions needed, or error behavior. It is adequate for a straightforward send action but lacks deeper 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 short sentences that immediately get to the point: what the tool does and how to find the required room ID. There is no fluff or redundant information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple send-message tool with a complete schema and no output schema, the description covers the essential context: what it does, who it's as, and how to obtain the room ID. It could mention the return value or confirmation, but given the tool's simplicity and the clear schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage, describing both 'room' and 'content' clearly. The description's note to 'Use chat_rooms to find the room id' reinforces the schema but adds no new meaning beyond what the schema provides. The description adds minimal value in explaining 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 tool's purpose: 'Say something in a discussion room, as the caller.' This specifies the action (send/say), the resource (discussion room), and the perspective (as the caller). It also distinguishes itself from sibling tools like chat_rooms by directing users to that tool for finding room 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?
The description explicitly tells users to use chat_rooms to find the room id, which is a clear alternative/helper tool. It implies when to use this tool (when the user wants to speak in a room) but doesn't explicitly mention when not to use it or other alternatives like chat_messages. This is sufficient for a simple send operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_addAdd contactsAInspect
Save someone to the address book. Adding a name already there updates it rather than making a second card
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The person's name, e.g. "Sarah Chen" | |
| note | No | Anything worth remembering about them | |
| No | Their email address | ||
| phone | No | Their phone number |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The key behavioral trait—upserting existing names instead of creating duplicates—is disclosed, which is valuable beyond the sparse annotations (title only). It does not mention side effects like overwriting fields, but the most important nuance is 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 short sentences with no filler. Every word contributes to explaining purpose 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 contact-creation tool, the description explains the operation and the key behavioral nuance. It doesn't describe return values or error cases, but given the absence of an output schema and the simplicity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning to the 'name' parameter by explaining that it serves as the deduplication key, which is useful context not present 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?
Description uses specific verb 'Save' and identifies the resource 'address book', clearly distinguishing from sibling tools like contacts_find, contacts_list, and contacts_delete. It also clarifies the add/update behavior, 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?
The description makes the use case clear—saving someone to the address book—and the upsert caveat implies when to use it (adding a new person or updating an existing one). It does not explicitly name alternative tools or exclusion criteria, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_deleteDelete contactsADestructiveInspect
Remove someone from the address book
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The contact's id, from contacts_find or contacts_list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is covered. However, the description adds no extra behavioral context such as irreversibility, cascading effects, or error behavior. It does not contradict the annotation, but adds minimal value beyond 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?
The description is a single short sentence that is front-loaded and contains no redundant information. It is highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, annotations, and detailed schema. However, the description does not explain the return value or behavior on invalid/missing ids, which is notable since there is no output schema. Overall adequate but with 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 coverage is 100% with the parameter description 'The contact's id, from contacts_find or contacts_list'. The description itself adds no parameter 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 'Remove someone from the address book' clearly states the tool's action and target resource. It distinguishes from sibling tools like contacts_add, contacts_find, and contacts_list, which are non-destructive or search-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 (like obtaining the id via contacts_find/contacts_list), that deletion is permanent, or any exclusions. The only usage hint appears 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.
contacts_findFind contactsARead-onlyIdempotentInspect
Look someone up in the address book by name, part of a name, or address. Use this before sending mail to a person named rather than addressed
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A name, part of a name, or an address |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds the search semantics (by name/address) but largely repeats the schema's parameter description. It does not disclose return format, result limits, or behavior on no match, though these are less critical given simple read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence immediately states the action and target, and the second sentence adds a concrete use case. 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 a simple read-only lookup with one parameter and clear annotations. The description covers what and when, which is sufficient for the low complexity. However, without an output schema, it does not describe what the tool returns (e.g., a list of contacts or a single match), leaving some 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 schema already describes the query parameter as 'A name, part of a name, or an address.' The description restates the same information without adding extra meaning or examples, so it provides no additional value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look someone up') and clearly identifies the resource ('address book') and the search criteria (name, part of a name, or address). It distinguishes itself from sibling tools like contacts_list and contacts_add/delete by focusing on lookup rather than enumeration or modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use this before sending mail to a person named rather than addressed.' This tells the agent when to invoke the tool. However, it does not explicitly name alternative tools or state when not to use it, so while the context is clear, it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_listBrowse contactsARead-onlyIdempotentInspect
List everyone in the caller's address book
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and idempotentHint annotations covering safety, the description adds valuable context that the operation lists all contacts in the caller's own address book, implying a comprehensive read. It does not contradict annotations and provides enough behavioral clarity for a simple 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?
The description is a single, concise sentence with no wasted words. It is front-loaded with the verb and clearly states the 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, parameterless list tool, the description is complete. With no output schema required and annotations covering safety, it fully explains what the tool does. The sentence provides all necessary context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (vacuously). The baseline for zero parameters is 4, and the description adds no parameter information because none exists. This 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 'List everyone in the caller's address book' uses a specific verb ('List') and resource ('address book'), and clearly differentiates from sibling tools like contacts_add, contacts_delete, and contacts_find by indicating a full listing rather than a targeted search or mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use (browsing all contacts in the caller's address book), but does not explicitly mention alternatives or when not to use it. The lack of parameters and mention of 'everyone' imply a broad listing, but no direct comparison to contacts_find is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_deleteDelete docsADestructiveInspect
Delete one of your documents, by id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Document id, from docs_list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint=true already signals the destructive nature. The description adds the nuance that only 'your documents' can be deleted, which is useful context. However, it does not elaborate on irreversibility or post-deletion effects beyond what the annotation 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, front-loaded sentence that is concise and to the point. Every word contributes to the meaning—'delete' is the action, 'your documents' defines scope, and 'by id' specifies the identifier. No waste 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 delete operation with one parameter and a destructiveHint annotation, the description is adequately complete. It clearly identifies the resource and method, and the schema supplies the id source. No need to explain return values or additional side effects given the simplicity and existing 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?
The input schema already provides a complete description for the id parameter ('Document id, from docs_list') with 100% coverage. The description's 'by id' adds no additional semantic value beyond what the 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 clearly states the tool's purpose: 'Delete one of your documents, by id' - it contains a specific verb (delete), resource (documents), scope (one of your documents), and the method (by id). It is distinct from sibling tools like docs_list, docs_read, and docs_write.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 deleting a specific document owned by the user, with the id obtained from docs_list (as noted in the schema). However, it does not explicitly mention when to use this tool versus alternatives, nor does it provide exclusions or 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.
docs_listBrowse docsARead-onlyIdempotentInspect
List your documents, most recently changed first, with an optional search over titles and bodies. Use this to find an id
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum documents to return (default 50) | |
| query | No | Optional text to match against titles and bodies |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly and idempotent hints, so the description adds behavioral value by specifying sort order ('most recently changed first') and search scope ('over titles and 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?
Two concise sentences, front-loaded with the action and result, and no unnecessary 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?
The description covers ordering, search, and use case, with parameters well-documented in the schema. Slight gap: it doesn't explicitly state that the returned list includes document ids, though it implies them via 'find an 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 covers 100% of the parameters with descriptions. The description's phrase 'search over titles and bodies' merely restates the schema's query description, adding no new 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 it lists documents, sorted by most recent change, with optional search. It effectively distinguishes from sibling tools like docs_read or docs_write by focusing on browsing to find an 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?
Explicitly tells the agent to use this to find an id, which is a clear use case. It doesn't explicitly mention alternatives or when not to use it, but the context is sufficient for simple selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_readRead docsARead-onlyIdempotentInspect
Read one of your documents in full, by id or by exact title
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Document id, from docs_list | |
| title | No | Exact title, if you do not have the id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it's a safe, side-effect-free read. The description adds 'in full' to clarify return scope, but does not disclose potential size limits, pagination, or whether missing parameters cause errors. This is acceptable given the simple read nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, no filler. It provides exactly the necessary information in a clear, scannable format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should 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 description covers purpose, identification, and safety (via annotations). The main gap is not stating that exactly one of id/title must be provided, given the schema allows both to be absent. Still, overall it is complete enough for a competent 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%: both 'id' and 'title' have clear descriptions. The description echoes 'by id or exact title' but does not clarify that at least one is needed (the schema marks both optional). This ambiguity is a missed opportunity to add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('your documents') with clear scoping ('in full'), which distinguishes it from docs_list, docs_write, and other document tools. The identification method ('by id or by exact title') adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool to read a full document when you have an id or exact title. It does not explicitly mention alternatives (e.g., docs_list to find an id) or exclusions, but the context is clear enough for an agent with sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_writeWrite docsAInspect
Write a document — a title and a markdown body. Pass an id to replace one you already have. Private unless you set public. For something long enough to re-read; for a short thing to remember, use notes
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Existing document id to replace. Omit to create a new one | |
| title | Yes | The document's title | |
| public | No | Readable by anyone when true. Private by default | |
| content | Yes | The document's body, as markdown |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond title, the description carries the burden. It discloses privacy default ('Private unless you set public') and replacement behavior via id. It does not mention authentication, errors, or side effects, but the key behaviors 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?
The description is two sentences, front-loaded with the main action, and every clause adds value (purpose, replacement, privacy, alternative). No fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 4-parameter schema with full descriptions, no output schema, and minimal annotations, the description sufficiently covers purpose, usage, and behavioral traits. It is complete for a write tool, including a clear alternative to notes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 fully described. The description repeats what the schema already states (title, markdown body, id for replace, public privacy). It adds no new parameter-level 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 clearly states the tool writes a document (title + markdown body) and explicitly distinguishes it from notes for short reminders. The verb 'Write' and resource 'document' are direct and specific, setting it apart from all 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 gives explicit guidance: use for long re-readable content, use notes for short things. It also explains the id parameter for replacing existing documents, which clarifies when to use this tool vs creating fresh.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
events_createCreate eventsAInspect
Schedule a reminder or event at a given time; optionally repeating, and optionally running a prompt through the agent when it fires
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional extra detail | |
| when | Yes | When to fire, RFC3339 with timezone offset, e.g. 2026-07-22T15:00:00+01:00 | |
| title | Yes | What to be reminded about, e.g. 'Call the dentist' | |
| prompt | No | Optional instruction to run through the agent when it fires, e.g. "brief me on today's news". The answer is mailed to you | |
| repeat | No | How often it recurs: hourly, daily, weekly or monthly. Omit for once | |
| minutes | No | How long it lasts in minutes (default 30) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title with no readOnlyHint or destructiveHint, so the description carries the burden. It does disclose that the tool schedules events and can run prompts, which are meaningful behavioral traits. However, it omits details about the response/return value, error scenarios, or any side effects like emailing answers (only 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, clear sentence with no filler. It is front-loaded and covers the core action plus key optional features 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 six parameters and no output schema, the description conveys the main purpose and options but leaves out what the tool returns upon success, how scheduling persistence is handled, or any required preconditions. It is adequate but not fully complete for a more complex creation 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 parameters are already well-described. The description adds minimal extra meaning beyond what the schema provides (e.g., 'running a prompt through the agent' mirrors the schema's prompt description). Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Schedule a reminder or event') and differentiates it from sibling tools like events_list or events_delete by focusing on creation. It also mentions optional recurring behavior and prompt execution, which distinguishes it further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 verb 'schedule' and the resource 'reminder or event', but there is no explicit guidance on when to choose this over alternatives, nor any exclusions or prerequisites. No mention of other event tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
events_deleteDelete eventsBDestructiveInspect
Cancel an event by id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The event's id, as given by events_list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true, so the agent knows this is a destructive operation. The description adds the core action of 'cancel' but does not clarify whether this is a hard delete or a reversible change, nor does it mention consequences like irreversibility. It does not contradict the annotations, but it adds minimal 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 with no wasted words. It is front-loaded with the verb and resource. It is appropriately sized for a simple tool, though it could have included more usage 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 destructive tool with no output schema, the description is minimal. It does not cover return values, error conditions, or prerequisites, and it does not distinguish this tool from the sibling 'events_free'. Given the simplicity of one parameter, some of these gaps are acceptable, but the lack of differentiation and behavioral consequences makes the description 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%, and the schema fully documents the 'id' parameter as 'The event's id, as given by events_list'. The description only repeats 'by id' without adding additional meaning, so it provides no value beyond the schema. Baseline 3 is appropriate due to full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cancel an event by id' clearly states a specific action (cancel) on a specific resource (event) with a specific identifier (id). It is not a tautology and is understandable, though it does not explicitly distinguish itself from the sibling tool 'events_free', which could also imply cancellation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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. There is no mention of exclusions, prerequisites, or a comparison with similar tools like events_free or events_create. The context signal of sibling tools is present, but the description itself provides no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
events_freeFind free timeARead-onlyIdempotentInspect
Find when the caller has nothing booked — open slots of a given length, within working hours
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of the window, RFC3339. Defaults to a week after from | |
| from | No | Start of the window to search, RFC3339, e.g. 2026-08-03T00:00:00+01:00. Defaults to now | |
| day_end | No | Latest hour of the day to offer, 0-23 (default 18) | |
| minutes | No | How long a slot you need, in minutes (default 30) | |
| day_start | No | Earliest hour of the day to offer, 0-23 (default 9) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is safe. The description adds behavioral context about working-hours constraints and slot length, which is useful beyond the annotations. No contradiction detected.
Agents need to know what a tool does to the world before calling it. Descriptions 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 captures the tool's purpose and key constraints with 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?
For a read-only query tool with good annotations and full parameter schema, the description sufficiently covers the core behavior. It does not explain the return format, but this is arguably inferable from the tool's purpose and the absence of an output schema is not a major gap 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 parameters are fully described in the schema. The description mentions 'given length' and 'working hours', which map to existing parameters but add little new meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Find' and identifies the resource as 'when the caller has nothing booked', with clarifying constraints ('open slots of a given length, within working hours'). This clearly distinguishes it from event creation/deletion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (to find free time slots), but it does not explicitly mention alternatives or when not to use it. Sibling tools like events_list exist, but no direct comparison is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
events_listBrowse eventsARead-onlyIdempotentInspect
List the caller's upcoming events and reminders, each with its id
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds value by specifying that it returns 'each with its id' and is scoped to 'caller's upcoming events'. This goes beyond the annotations, though it omits details like sorting or whether reminders and events are combined 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?
The description is a single sentence that front-loads the action ('List') and resource ('caller's upcoming events and reminders') with no wasted words. Every phrase adds relevant 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, the description provides a hint by mentioning 'each with its id', and the annotations cover safety. Still, a bit more detail about the output structure (e.g., whether reminders are separate) would make it fully complete. Overall, it is sufficient for a simple read-only 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 tool has zero parameters, so the schema is trivially 100% covered. Per the rubric, a 0-parameter tool gets a baseline of 4. The description does not need to add parameter semantics, and it doesn't distract from 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 uses the specific verb 'List' and clearly identifies the resource as 'the caller's upcoming events and reminders', with the detail 'each with its id'. This distinguishes it from sibling tools like events_create or events_delete, which are clearly mutation 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 gives clear context that this tool lists the caller's own upcoming events and reminders, which implies its specific use case. However, it does not explicitly mention when not to use it or list alternatives, though the sibling names make the distinction obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files_deleteDelete filesADestructiveInspect
Delete a file you own
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The file's id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, so the destructive nature is known. The description adds the ownership requirement, which is a useful behavioral constraint. However, it does not disclose permanence (e.g., whether deletion is reversible or cascades to shares) or any permission nuances beyond ownership.
Agents need to know what a tool does to the world before calling it. Descriptions 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 is front-loaded with the action ('Delete') and resource ('file'), containing no redundancy or 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?
The tool is simple: one parameter, no output schema, and destructive annotation. The description, combined with schema and annotations, provides sufficient context for basic usage. It lacks details on return values or error conditions, but for a straightforward delete operation, the context 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% (the 'id' parameter is described as 'The file's id'), so the baseline is 3. The description adds semantic value by restricting the id to files the user owns, which goes beyond the schema's generic 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 'Delete a file you own' uses a specific verb ('Delete') and resource ('file'), with the qualifier 'you own' distinguishing this from other file operations like files_get, files_list, files_put, and files_share. It clearly states the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied usage context: delete a file you own. However, it does not explicitly mention when to use this tool versus alternatives, nor does it provide exclusion criteria (e.g., cannot delete shared files). The ownership qualifier is a constraint, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files_getRead filesARead-onlyIdempotentInspect
Read a stored file back by its id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The file's id, as returned by files_put or files_list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds no additional behavioral details (e.g., error handling, file type, size limits), which is acceptable for a simple read with annotations. 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?
One sentence, immediately clear, no filler. It is appropriately front-loaded with the 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 single-parameter, read-only, idempotent tool with full schema coverage and no output schema, the description is sufficient to understand what it does and how to invoke it. No additional 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?
The input schema has 100% coverage, describing the 'id' parameter thoroughly (returned by files_put or files_list). The tool description only repeats 'by its id,' adding no new 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 uses a specific verb ('Read') and resource ('stored file') with scope ('by its id'), clearly distinguishing from siblings like files_list, files_put, files_delete, and files_share. The title 'Read files' reinforces the 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?
The description implies a clear usage scenario: retrieving a specific file when you have its id. It does not explicitly contrast with alternatives (e.g., when to use files_list instead), but the 'by its id' qualifier provides enough context. The schema description further states the id comes from files_put or files_list, which is a helpful pointer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files_listBrowse filesARead-onlyIdempotentInspect
List the caller's stored files, newest first
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful context by specifying that only the caller's files are listed and that results are sorted newest-first. This clarifies scope and ordering, which are not disclosed by the annotations. It does not mention pagination or return format, but for a simple read-only list, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and resource. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description provides a clear scope and ordering, which is largely complete. It could optionally disclose what fields are included in the returned file list, but for a simple browsing tool, this is a minor omission and the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), so the baseline score is 4. The description adds no parameter-specific details because there are none to describe, but it does specify the scope ('caller's stored files') and order ('newest first'), which adds meaning beyond the trivial 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 clearly states a specific action ('List') on a specific resource ('the caller's stored files') with an ordering constraint ('newest first'). This distinguishes it from sibling tools like files_get, files_put, and files_delete, 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 implies its usage: to browse the caller's files. However, it does not explicitly state when to use it over alternatives or when not to use it. Since there is no files_search sibling and it is the only list tool, the use case is fairly obvious, but explicit alternatives are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files_putStore filesAInspect
Store a file and get a URL for it — a report, a CSV, a transcript
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | File name including its extension, e.g. "report.csv" | |
| type | No | Optional content type, e.g. "text/csv". Guessed from the name when omitted | |
| content | Yes | The file's contents — plain text, or base64 when encoding is "base64" | |
| encoding | No | "base64" for binary files; omit for text |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses only the basic behavior (storing a file and returning a URL). Since no annotations beyond the title are provided, it does not disclose potential behavioral traits such as error handling, overwrite semantics, access permissions, size limits, or whether the file is publicly accessible. This is a significant gap for a mutation 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 a single, front-loaded sentence that delivers the core purpose and one key detail (URL return) without extraneous information. The examples are compact and add value without bloat, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple store operation: it explains the return value (URL) and the schema covers parameters. However, there is no output schema, and the description omits any discussion of edge cases, error conditions, or operational constraints (e.g., file name collisions, binary encoding implications), which leaves the tool only partially complete 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 the schema fully documents all four parameters (name, type, content, encoding). The description adds no additional semantic meaning beyond what the schema already provides, though it does reinforce the intended use case. This aligns with the baseline score 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 clearly states a specific action (store a file), the resource (files), and the key outcome (get a URL). It includes concrete examples (report, CSV, transcript) that illustrate typical use cases, and it is easily distinguishable from sibling tools like files_delete, files_get, files_list, and files_share.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 ('Store a file and get a URL'), making it clear when to use it for uploading files. However, it does not provide explicit guidance on when to choose this over alternatives or mention any exclusions, prerequisites, or scenarios where another tool (e.g., files_share) 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.
flights_airportAirport flightsAInspect
Report what is happening at an airport right now: what is on the ground, what is on approach and what is climbing out. Live positions, not the timetable, so it says nothing about scheduled or delayed departures
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | An airport code or name, e.g. 'LHR', 'EGLL' or 'Heathrow' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no readOnlyHint or destructiveHint annotations, the description takes on the burden of disclosure. It clarifies the live nature of the data and explicitly excludes schedule/delay information, which is important behavioral context. It does not mention data sources or update frequency, but the core behavioral trait is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, no fluff. The second sentence adds a key exclusion without extra 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 single-parameter tool with no output schema, the description is largely complete: it states what is reported, what is excluded, and the parameter is fully documented. However, it could hint at the response format (e.g., list of flights), so minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the 'code' parameter with examples, so 100% coverage. The description does not add additional parameter semantics beyond reinforcing that it is an airport.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and identifies the resource ('what is happening at an airport right now'), further detailing the categories (on ground, approach, climbing out). It distinguishes itself from sibling tools like flights_track by explicitly stating it is live positions, not the timetable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use context ('want to know what is happening at an airport right now') and an explicit when-not ('says nothing about scheduled or delayed departures'), which helps the agent choose this over flights_track or timetable tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flights_overheadOverhead flightsAInspect
List the aircraft flying near a location right now, nearest first, with altitude, speed, heading and distance. Live positions broadcast by the aircraft themselves, not a schedule
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional latitude, if the location is already known | |
| lon | No | Optional longitude, if the location is already known | |
| near | No | Where to look: a place name, or an airport name or code, e.g. 'Camden, London' or 'LHR' | |
| radius | No | Optional radius in nautical miles (default 30, maximum 250) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do not include safety hints (readOnly/destructive), so the description carries the burden. It discloses that positions are live broadcasts, not schedules, which is useful, but does not cover potential rate limits, no-data cases, or other behavioral 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 a single, efficient sentence that front-loads the core purpose ('List the aircraft') then details output. Every phrase earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description lists the key return fields (altitude, speed, heading, distance). It is sufficiently complete for a simple list tool, though it could clarify input requirements (e.g., that lat/lon or near 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 coverage is 100% and each parameter already has a meaningful description. The tool description adds little beyond the schema (e.g., mentioning 'nearest first' and 'radius in nautical miles' which are also in schema), so it 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?
The description uses a specific verb ('List') and identifies the resource ('aircraft flying near a location') with concrete output fields (altitude, speed, heading, distance). It clearly distinguishes from sibling tools like flights_track (tracking a specific flight) by emphasizing 'near a location' and 'nearest first'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context (live broadcasts, not schedule) but does not explicitly state when to use this tool versus alternatives like flights_track or flights_airport. No exclusions or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flights_trackTrack flightsAInspect
Find where an aircraft is right now by flight number ('BA117'), radio callsign ('BAW117') or registration ('G-ZBKL'). Only sees aeroplanes that are airborne and in range of a receiver — not finding one does not mean the flight was cancelled
| Name | Required | Description | Default |
|---|---|---|---|
| flight | Yes | A flight number ('BA117'), a radio callsign ('BAW117'), or an aircraft registration ('G-ZBKL') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnly or destructive hints in annotations, the description carries the full burden. It discloses a key limitation: 'Only sees aeroplanes that are airborne and in range of a receiver — not finding one does not mean the flight was cancelled.' This is valuable behavioral context that goes 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 two sentences, front-loaded with the core action, and includes every necessary detail without waste. Each sentence earns its place: the first states what it does, the second clarifies limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description provides adequate context: input types, current location, and a key limitation. It does not detail the exact return format, but for a tool like this, the essentials are covered. Sibling tools are not mentioned, but the description stands alone sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple 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 already fully covers the single 'flight' parameter with the same examples ('BA117', 'BAW117', 'G-ZBKL'). The description repeats this information without adding new semantics, so it adds no value beyond the schema. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find where an aircraft is right now' with specific input types (flight number, callsign, registration). This distinguishes it from sibling tools like flights_airport and flights_overhead, which are likely about airport information and overhead 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 clear context on what identifiers to use (flight number, callsign, registration) but does not explicitly mention when to use this tool versus alternatives like flights_airport or flights_overhead. The usage is implied rather than explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_hygieneHygiene foodAInspect
Food hygiene ratings for UK businesses, from the Food Standards Agency inspections. Takes a business name, a town or postcode, or a lat/lon to look around
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional: look around this point instead | |
| lon | No | Optional: look around this point instead | |
| name | No | Business name, e.g. 'Nandos' | |
| limit | No | How many to return, default 10, max 30 | |
| where | No | Town, street or postcode to narrow it to |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations beyond title, so the description must convey behavior. It states the data source and scope (UK, FSA) and that it is a lookup, but does not explicitly confirm it is read-only or mention any side effects, rate limits, 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?
Two sentences: the first immediately states purpose, the second summarizes search modes. No unnecessary words, front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple lookup with no output schema or annotations. The description covers purpose and parameters sufficiently, but does not specify the return format or any caveats about data availability, which would be helpful for a UK-specific source.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. 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 individual parameter descriptions, and the description adds high-level guidance on how to combine them (name vs. location, lat/lon for surrounding area). This goes beyond the schema by clarifying the intended search modes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 food hygiene ratings for UK businesses from Food Standards Agency inspections, which is specific to hygiene rather than generic food search. This distinguishes it from siblings like food_search and food_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 specifying acceptable inputs (business name, town/postcode, lat/lon), but does not explicitly mention when to use it over alternatives or provide exclusions. The context is clear but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_productProduct foodAInspect
Look up a packaged food by its barcode — name, brand, ingredients, allergens, nutrition per 100g, Nutri-Score and how processed it is
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes | The barcode, 6 to 14 digits, e.g. 5000168034928 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no safety annotations, so the description carries the burden. 'Look up' clearly indicates a read-only operation, and the list of returned fields (nutrition, Nutri-Score, processing) provides useful behavioral context 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 a single, well-structured sentence that front-loads the purpose and then enumerates the useful data fields. Every word earns its place with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup without an output schema, the description adequately covers what the tool returns. It could mention error handling for invalid barcodes, but that is not essential 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?
The schema already documents the barcode parameter with format and example, so description adds little beyond restating 'by its barcode'. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Look up' and clearly identifies the resource: a packaged food by barcode. It also lists the specific data returned, which distinguishes it from food_search and food_hygiene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 primary use case: when you have a barcode for a packaged food product. It does not explicitly mention alternatives or exclusions, but the context is clear given the sibling tools like food_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_searchSearch foodARead-onlyIdempotentInspect
Find packaged foods by name or brand, with the barcode of each so one can then be looked up in full
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return, default 10, max 25 | |
| query | Yes | Product or brand name, e.g. 'hobnobs' or 'oat milk' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, lowering the burden. The description still adds value by disclosing that results include barcodes and that the search is limited to packaged foods, which goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys purpose, scope, output, and downstream usage 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 low-complexity search tool with complete schema and safety annotations, the description covers purpose, output (barcodes), and the follow-up workflow. It lacks an explicit alternative tool name and edge-case details, but these are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with query and limit both documented (including defaults/examples). The description's 'by name or brand' only restates the query parameter's meaning and adds no new syntactic or format 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 uses the specific verb 'Find' and the resource 'packaged foods', scoped by name or brand. It also distinguishes itself from the sibling food_product tool by explicitly noting that results include barcodes for later full 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 clearly implies a search-then-lookup workflow ('so one can then be looked up in full'), which points toward the food_product sibling. However, it does not explicitly name the alternative tool or state when not to use this one, 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.
hazards_alertsAlerts hazardsAInspect
Current disasters worldwide from GDACS — cyclones, floods, volcanoes, wildfires and earthquakes — with an alert level of green, orange or red. Pass lat/lon to ask about somewhere in particular
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional: only alerts near this point | |
| lon | No | Optional: only alerts near this point | |
| level | No | Lowest level to include: green, orange or red — default green (everything) | |
| within_km | No | Optional: how near, in kilometres, default 1000 when lat/lon given |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, leaving the description to carry the full burden. The description implies a read-only query by stating 'current disasters worldwide' and does not claim any side effects, but it does not explicitly state read-only behavior, data freshness, or pagination. It adds the GDACS source and alert levels but no deeper 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 one dense sentence that front-loads the core purpose (current disasters from GDACS) and immediately lists disaster types and alert levels, followed by a usage instruction. Every word contributes meaning; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four optional parameters and no output schema, so the description should clarify what the response contains. It explains the data source, types, alert levels, and location filtering, but it does not describe the response shape, pagination, or whether results are sorted by severity. This is a clear gap for a no-output-schema tool, though the basics for invocation 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?
Input schema covers 100% of parameters, so baseline is 3. The description adds the context that lat/lon are for asking about a specific location, which aligns with the schema, but it does not provide additional syntax, defaults, or examples beyond what the schema already states. No extra parameter semantics are needed given 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 clearly states the tool lists current disasters from GDACS, enumerating specific disaster types (cyclones, floods, volcanoes, wildfires, earthquakes) and alert levels (green, orange, red). This distinguishes it from the sibling hazards_quakes, which is earthquake-specific, and establishes a clear verb + 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?
"Pass lat/lon to ask about somewhere in particular" provides explicit usage context for location-based filtering. However, it does not explicitly mention when not to use the tool or alternative tools like hazards_quakes for earthquake-only queries, so it lacks exclusions but has clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hazards_floodsFloods hazardsAInspect
Flood warnings and alerts in force in England, most severe first, from the Environment Agency. The one hazard here that is a forecast rather than a record — a warning says flooding is expected, which is something you can act on. Optionally near a point. England only, and the answer says so
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional: only warnings near this point | |
| lon | No | Optional: only warnings near this point | |
| severe | No | Only warnings and severe warnings — leave out the be-prepared alerts | |
| within_km | No | Optional: how near, in kilometres, default 30 when a point is given |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include a title, so the description must convey behavioral traits. It states the data source, ordering, geographic scope, and the distinction between forecast and record. However, it doesn't mention rate limits, authentication, or what the response structure looks like. The description adds useful context but isn't 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?
Description is relatively concise, but the second sentence is a bit rambling with the 'forecast vs record' nuance. Front-loaded with the key info: 'Flood warnings and alerts in force'. No extraneous marketing. Overall, 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 simple list tool with no output schema, the description provides key context: data source (Environment Agency), scope (England only), ordering (most severe first), and the semantic nuance of forecast vs record. It doesn't mention pagination, limits, or data format, but for a flood warnings tool, this 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 covers all 4 parameters with descriptions 100%. The description adds context by mentioning 'optionally near a point' and 'most severe first' (ordering), and clarifies that 'severe' filters. However, it doesn't explain the exact interaction (e.g., if within_km only applies when lat/lon given). Since schema already has descriptions, the description's added value is moderate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 provides flood warnings and alerts in force in England, sourced from the Environment Agency, and sorted by severity. It distinguishes itself from sibling tools like hazards_alerts and hazards_quakes by specifying the hazard type (flood) and geographic scope (England only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is for current flood warnings, mentions the England-only scope, and notes optional proximity filtering. However, it does not explicitly contrast with other hazard tools (e.g., hazards_alerts) to clarify when to prefer this one, though the name and content make it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hazards_quakesQuakes hazardsAInspect
Recent earthquakes worldwide from the USGS, with magnitude, place and how long ago. Pass lat/lon to ask about somewhere in particular, min for a magnitude floor, and period for hour, day, week or month
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional: only events near this point | |
| lon | No | Optional: only events near this point | |
| min | No | Smallest magnitude to include, default 2.5 | |
| period | No | hour, day, week or month — default day | |
| within_km | No | Optional: how near, in kilometres, default 500 when lat/lon given |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only title), so the description carries the burden for behavioral disclosure. It reveals the data source (USGS), the nature of the output (recent, with magnitude and location), and parameter behaviors. However, it does not explicitly state that the operation is read-only or note any limitations like rate limits or pagination, relying on the context of a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and then briefly explains parameter usage. Every phrase earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with 5 optional parameters and no output schema, the description adequately covers the main aspects: what data is returned (magnitude, place, how long ago), the data source (USGS), and how to customize the query. It lacks only minor details like default values, which are already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minor clarification by calling min a 'magnitude floor' and summarizing how lat/lon and period are used, but it largely restates the schema descriptions without adding significant new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'Recent earthquakes worldwide from the USGS, with magnitude, place and how long ago', giving a specific verb, resource, and scope. It is easily distinguishable from sibling tools like hazards_alerts, which deal with different hazard 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?
The description offers parameter guidance ('Pass lat/lon to ask about somewhere in particular, min for a magnitude floor, and period for hour, day, week or month'), but does not explicitly state when to use this tool versus alternatives or provide exclusions. Usage is implied rather than clearly framed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
images_generateGenerate imagesAInspect
Generate an image from a text prompt and return its URL
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | What the image should depict |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (only a title), so the description carries the full burden. It discloses the primary action and return, but omits any behavioral context such as side effects (image storage), rate limits, content policies, or whether the URL is ephemeral. This is a significant gap for a tool that generates 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 sentence with no wasted words. It efficiently captures the input, action, and 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 one-parameter tool without an output schema, the description is adequate, covering input and return type. It could add more detail on image format or URL stability, but this is not critical 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 coverage is 100% and the sole parameter `prompt` is described as 'What the image should depict'. The description reinforces 'text prompt' but adds no new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('generate'), resource ('an image'), and output ('return its URL'), clearly distinguishing it from siblings like images_search. It is unambiguous and directly tied 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?
No explicit guidance on when to use this tool versus alternatives (e.g., images_search). The generation-vs-search nuance is implied by the verb and sibling context, but not stated. A direct mention of when to choose generation over search would improve it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
images_searchSearch imagesARead-onlyIdempotentInspect
Search the public image library by description and get URLs to reuse. Cheaper than generating: look here first
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| query | Yes | What the image should show, in words |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that the library is public and that URLs are returned for reuse, but it doesn't disclose pagination behavior or rate limits. It's adequate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and every word earns its place. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter search tool with read-only annotations and no output schema, the description covers purpose, usage guidance, and return concept (URLs). It is complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, with clear descriptions for 'query' and 'limit'. The description's 'by description' aligns with the query parameter, adding no additional param 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: 'Search the public image library by description and get URLs to reuse.' It clearly distinguishes from sibling tools like images_generate by specifying it searches rather than generates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'Cheaper than generating: look here first' gives clear context for when to use this tool over images_generate. It implies an alternative and provides a directive, though it doesn't enumerate all when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mail_inboxRead mailARead-onlyIdempotentInspect
List the account's most recent messages — read my mail, check my inbox
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages (default 10) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds only the 'most recent' ordering, which is minimal extra behavioral context. It doesn't discuss pagination, auth, or response format, but given the simple read-only nature, it's 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 one sentence and directly states the function. The phrase 'read my mail, check my inbox' is somewhat redundant but adds natural-language clarity without bloating the 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 tool with one optional parameter and no output schema, the description provides sufficient information. It doesn't need to explain return values since none are documented, and the annotations cover side effects. The only minor gap is the lack of explicit guidance on when to choose this over mail_search, but that's covered by the usage dimension.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameter (limit) with a full description ('Max messages default 10'), so schema coverage is 100%. The tool description itself adds no additional parameter semantics, which aligns with 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 ('list') and identifies the resource ('the account's most recent messages'), clearly distinguishing it from sibling tools like mail_search and mail_send. It unambiguously conveys a 'read inbox' 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 implies the tool is for reading recent messages but does not explicitly state when to use it versus mail_search or mail_send, nor does it mention any exclusions or alternatives. That makes it 'implied usage' but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mail_infoInfo mailBInspect
How to reach the caller here: the handle, the email address if this instance has a mail domain, and whether mail from outside can arrive at all. Pass a tag for a separate one (you+tag) — give that out, then read only its messages with mail_inbox(tag)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | A label for this handle, e.g. "research" or "receipts". Omit for the plain one |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the burden for behavioral disclosure. It implies that passing a tag creates a separate 'you+tag' address, but never explicitly states whether this is a mutation or if there are other side effects. It also doesn't confirm whether the untagged call 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 dense, two-sentence block with a colon and em dash, making it less scannable. It packs a lot of information, but could be better structured by separating the info-return part from the tag-workflow part.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one optional parameter and no output schema. The description covers the returned data (handle, email address, external mail availability) and the tag workflow, but 'How to reach the caller here' is ambiguous about the context, and no output format 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?
The schema only describes tag as 'A label for this handle', but the description adds meaning by explaining the you+tag pattern and how the resulting address is used with mail_inbox(tag). This goes beyond the schema description and clarifies the purpose of the optional 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 lists what the tool provides: the handle, email address (if mail domain exists), and external mail deliverability. This distinguishes it from siblings like mail_inbox or mail_send, though the phrasing 'How to reach the caller here' is somewhat awkward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 workflow hint by suggesting 'Pass a tag for a separate one... then read only its messages with mail_inbox(tag)', which implies when to use a tag and directs to an alternative for reading. However, it lacks explicit 'when to use' / 'when not to use' guidance relative to other mail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mail_searchSearch mailBRead-onlyIdempotentInspect
Search the account's mail and return matching messages
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| query | No | What to look for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds that the search is scoped to 'the account's mail' and returns matching messages, which is useful but does not disclose pagination, sorting, rate limits, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that is front-loaded with the action verb and delivers the core purpose without any wasted words. It is perfectly scoped 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 tool with two optional parameters, read-only annotations, and no output schema, the description adequately conveys the core functionality. While it omits details on return format or result limits, the simple shape makes it 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 100% with descriptions for both 'limit' and 'query'. The description's phrase 'matching messages' loosely references query semantics but adds no new information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search the account's mail') and the outcome ('return matching messages'). It distinguishes the tool's search function from sibling tools like mail_inbox, though not explicitly, making the purpose easy 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?
No guidance is provided on when to use this tool versus alternatives such as mail_inbox or mail_send. There are no mentions of exclusions, prerequisites, or typical use cases, leaving the selection decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mail_sendSend mailADestructiveInspect
Write to somebody, as you. A username reaches them on this instance and is free; a full email address leaves over SMTP under this instance's domain, so a reply comes back to your inbox, and is charged. Resolve a name with contacts_find first. Mail that leaves needs MAIL_DOMAIN configured on the instance
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient: a username on this instance, or a full email address. Resolve a name with contacts_find first | |
| body | Yes | Message body, plain text | |
| subject | Yes | Message subject |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the destructiveHint annotation: email is sent as the user, external mail goes over SMTP under the instance's domain, replies return to the user's inbox, and there is a cost implication. It does not mention irreversibility or failure behavior, but the annotation already signals side effects and the description enriches that sufficiently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences with the primary action front-loaded. Every sentence adds distinct information: core action, recipient behavior, prerequisite/configuration requirement. No filler or redundant schema repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple send tool with three required parameters and an output schema absent, the description covers the action, recipient distinctions, cost implications, identity context, reply behavior, and configuration prerequisite. It is complete enough for an agent to select and invoke it correctly without additional clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters, so this is a good baseline. The description adds extra semantic detail beyond the schema, especially for 'to', explaining that usernames are free and full addresses are charged and leave via SMTP. It also reinforces contacts_find resolution, which the schema mentions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Write to somebody, as you.' It distinguishes sending mail from reading/searching mail by clarifying the two recipient forms (internal username vs external email over SMTP) and is clearly differentiated from mail_inbox, mail_info, and mail_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?
It gives explicit usage context: internal usernames are free, external addresses are charged, and recipients should be resolved with contacts_find first. It also states a required condition ('MAIL_DOMAIN configured on the instance') for external sending, which helps decide when to use the tool and what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maps_areaArea mapsAInspect
Every tile covering a bounding box at a zoom level, as URLs, row by row from the north-west, and how many are already held. What to ask for when you want the map around a place rather than one numbered tile
| Name | Required | Description | Default |
|---|---|---|---|
| east | No | Eastern edge, in degrees longitude | |
| west | No | Western edge | |
| zoom | No | Zoom level, 0 to 20 | |
| north | No | Northern edge, in degrees latitude | |
| south | No | Southern edge | |
| style | No | road, outdoor or light |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral annotations exist, so the description carries the transparency burden. It does disclose important behavior: the tool returns tile URLs, uses a north-west row order, and reports how many tiles are already held. It does not discuss rate limits, side effects in detail, or error conditions, but the read-oriented output is well 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?
Two sentences with no filler. The first sentence delivers the return shape and ordering, and the second states when to select this tool. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description reliably explains what the agent will get: URLs, row order, and a count of already-held tiles. Parameter responsibilities fall naturally into the schema, and the main gap is that the single-tile sibling alternative is implied rather than explicitly named.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 6 parameters with 100% coverage, so the baseline is 3. The description adds the bounding-box framing but does not materially improve parameter understanding beyond what 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?
The description states a concrete result: all tile URLs covering a bounding box at a zoom level, ordered row by row from the north-west, plus a count of how many tiles are already held. This is specific enough to distinguish maps_area from single-tile and other map-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear condition: use this when you want the map around a place rather than one numbered tile. It does not explicitly name the sibling maps_tile, but the excluded alternative is clear from the phrase 'one numbered tile' and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maps_tileTile mapsAInspect
The URL for one map tile, by zoom, column and row. Styles: road, outdoor (rights of way and contours), light (a quiet basemap to draw on). Free. Britain only
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Tile column at that zoom | |
| y | No | Tile row at that zoom | |
| z | No | Zoom level, 0 to 20 | |
| style | No | road, outdoor or light — outdoor has rights of way and contours |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide almost no behavioral metadata, so the description carries that burden. It discloses that the result is a URL, that only Great Britain is covered, that the service is free, and what each style offers. It could also note output format or retrieval constraints, but what's disclosed is enough for a simple tile URL 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 extremely compact and front-loaded: it defines the output first, then enumerates style options, and closes with cost and geographic coverage. Every clause earns its place; there is no unnecessary 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?
The tool is simple enough that the description plus complete schema is mostly sufficient: it explains the return value, supported styles, price, and geographic scope. Minor gaps remain such as tile range semantics for x/y and lack of an explicit output format, but these are not material for this tool's basic 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 schema already documents x, y, z, and style at full coverage, so the description does not need to redefine them. It adds useful nuance for style by explaining outdoor's rights of way/contours and light's use as a quiet basemap, but it adds no extra meaning to the tile coordinates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States precisely that the tool returns a map tile URL determined by zoom, column, and row, with available styles enumerated. This clearly distinguishes it from broader map tools such as maps_area and other non-tile 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 conveys when to use it: when a single tile URL is needed at a chosen zoom/column/row and style. However, it never mentions sibling alternatives or conditions where another mapping tool should be preferred, so the routing is only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
markets_convertConvert marketsAInspect
Convert an amount from one currency to another — 250 GBP in JPY. Uses European Central Bank reference rates, and takes a past date back to 1999. Crypto converts at the live price through the dollar
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Currency or asset to convert to, as a code: JPY, USD, ETH… | |
| date | No | Optional: the rate on a past day, as 2020-01-03. Currencies only, back to 1999 | |
| from | Yes | Currency or asset to convert from, as a code: GBP, USD, EUR, BTC… | |
| amount | No | How much to convert. Default 1 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnly/destructive annotations, the description carries the burden and discloses key behaviors: ECB reference rates, historical dates back to 1999, and crypto pricing via USD. This is meaningful context beyond the title, though it omits potential failure modes or rate availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences; the first states purpose with an example, the second adds source, date range, and crypto behavior. No redundant words or repetition of 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?
For a simple conversion tool with four well-documented params and no output schema, the description covers purpose, rate source, date range, and crypto handling. It lacks only edge-case behavior like error handling or unsupported currencies, but overall is sufficient 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 already describes all four parameters, so baseline is 3. The description adds semantic value with the example and notes that date applies to currencies only and crypto converts through the dollar, which clarifies parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Convert an amount from one currency to another' and provides a concrete example (250 GBP in JPY), clearly identifying this as a currency/asset conversion tool. It distinguishes from sibling tools like markets_list by specifying conversion 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 implies use for currency/asset conversion with ECB reference rates and crypto live pricing, but does not explicitly state when not to use it or name alternative tools. The context is clear enough for an agent to select it over list-type market tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
markets_listBrowse marketsARead-onlyIdempotentInspect
Get live prices for cryptocurrencies, stocks, commodities (oil, gold, silver, copper and crops), futures and currencies
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | crypto (BTC, ETH, SOL…), stocks, commodities (OIL, GOLD, SILVER, COPPER, COFFEE, WHEAT, CORN, SOYBEANS, OATS), futures (the metals and oil alone) or currencies (EUR, GBP, JPY…). Default crypto |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds no additional behavioral details such as rate limits, response format, authentication, or pagination. It only extends the purpose with the asset class list, which is more about scope than behavior. Thus a 3 is appropriate given the low bar set by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that front-loads the main action ('Get live prices') and then lists the applicable categories. Every word contributes to the meaning, 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?
Given the tool's simplicity (one optional parameter, clear purpose, no output schema), the description fully covers its functionality. It states what the tool does and the scope of data. Annotations cover the read-only/idempotent aspects, and the schema details the parameter. The absence of output schema is acceptable because the verb 'get live prices' implies 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 schema fully describes the single 'category' parameter with examples, asset classes, and a default value, so schema coverage is 100%. The description's category list is redundant and less detailed than the schema's. Since the schema carries the burden, a baseline 3 is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 live prices for cryptocurrencies, stocks, commodities...' It uses a specific verb ('Get') and resource ('live prices'), and enumerates the asset classes covered. This distinguishes it from all sibling tools, none of which deal with 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?
The description implies when to use the tool: whenever market prices are needed across the listed asset classes. It does not explicitly name alternatives or exclusions, but no sibling tools overlap with this functionality, so the context is clear enough. Missing explicit 'when not to use' guidance keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_listBrowse newsARead-onlyIdempotentInspect
Read recent news headlines with short summaries, balanced across topics
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional max number of headlines (default 30) | |
| topic | No | Optional topic/category filter (e.g. tech, world, business) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, lowering the bar. The description adds behavioral context beyond these: 'recent' implies time-based filtering, 'short summaries' indicates return content, and 'balanced across topics' reveals a curation/algorithmic behavior. This adds value over the annotations, though it still doesn't cover ordering 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?
The description is a single sentence, front-loaded with the action and resource, and contains no filler. It conveys key information efficiently: what it reads, the time scope, the summary detail, and the topic balancing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should 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 optional parameters and strong annotations, the description is complete. It states what is returned (headlines with short summaries), the scope (recent, balanced across topics), and the schema covers parameters. No output schema exists, but the description covers the necessary 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?
The input schema already provides 100% coverage with descriptions for both 'limit' and 'topic'. The description does not add extra meaning beyond referring to 'recent' headlines, which doesn't directly clarify parameter usage. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' with a clear resource: 'recent news headlines with short summaries'. It also distinguishes from sibling tools like news_read and news_search by indicating this is for browsing a curated list rather than reading a single article or searching. The phrase 'balanced across topics' adds further 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 implies usage for browsing recent headlines but does not explicitly state when to use this tool instead of news_search or news_read. There are no exclusions or alternative suggestions. Context such as 'recent' and 'balanced across topics' provides some situational guidance, but it stops short of explicit guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_readRead newsARead-onlyIdempotentInspect
Read one news article in full by its id or URL
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Article id (from Headlines) or article URL |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description's 'read' and 'in full' reinforce a safe, side-effect-free operation. It adds minimal extra behavioral context beyond what annotations provide, 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?
The description is a single, information-dense sentence with no fluff, stating action, target, and identifier requirement in six words. Perfectly 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 single-parameter, read-only tool with no output schema, the description sufficiently covers the core behavior and input requirements. It stops short of detailing the return structure, but 'in full' implies comprehensive content, which is adequate for this simple tool, so 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 coverage is 100%; the schema already describes the id parameter as the article id or URL. The description repeats this without adding new parameter semantics, so it earns the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('read'), identifies the resource ('news article'), and scopes it to a single full article identified by id or URL. This clearly distinguishes it from news_list and news_search siblings, earning 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 that the tool requires an existing article identifier or URL, suggesting it should be used after searching or listing. However, it does not explicitly name alternatives or state when not to use it, so it falls at a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_searchSearch newsARead-onlyIdempotentInspect
Search indexed and live news for a topic
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms, e.g. latest AI news |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, covering safety and repeatability. The description adds minor context about 'indexed and live' sources but does not disclose pagination, result format, or other behavioral details. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the key verb and resource. It contains no wasted words and fully communicates 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?
Given the tool's simplicity (one parameter, no output schema), the description adequately conveys the core function and parameter intent. It could mention output expectations, but for a search tool this is sufficient in context with 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%, with the query parameter clearly described ('Search terms, e.g. latest AI news'). The description adds no additional meaning beyond the schema, so baseline score 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 searches news, specifying 'indexed and live' sources and 'for a topic', which distinguishes it from siblings like news_list (listing) and news_read (reading a specific article). The verb 'search' and resource 'news' are 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 description implies usage for topic-based news search but provides no explicit guidance on when to use it over alternatives such as news_list, web_search, or social_search. There are no exclusion conditions or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_addAdd notesAInspect
Write a note under a title, so it is there next conversation. Writing a title that exists rewrites that note
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | What the note says | |
| title | Yes | What the note is called, e.g. "location" or "project brief". Writing a title that exists rewrites that note |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only a minimal annotation (title), the description carries the behavioral disclosure burden. It honestly states that the note persists 'next conversation' and that writing an existing title rewrites that note. This surfaces the key mutation and idempotency traits. However, it does not mention return format, failure modes, or permissions, so a perfect score is not 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?
The description is exactly two short sentences. The first establishes the primary function and persistence; the second clarifies the overwrite rule. Every word contributes, with no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the essential behavior: creation, persistence, and overwrite-on-existing-title. It does not mention return values or error handling, but given the tool's simplicity and rich schema, the context is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the title parameter's description already contains the rewrite behavior. The main description adds only general context ('under a title', 'next conversation') without new parameter semantics. Since the schema handles parameter explanation, a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Write a note under a title'), clearly indicating the tool's core action. It also explains the overwrite behavior, which distinguishes it from sibling tools like notes_get, notes_list, and notes_delete by covering both creation and update via the same 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?
The description implies when to use the tool: to persist a note for future conversations and to overwrite an existing note by reusing a title. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select it over read/delete siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_deleteDelete notesADestructiveInspect
Delete one note by title
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The note to delete, as returned by notes_list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, and the description reinforces this with the verb 'Delete'. The description adds that exactly one note is deleted by title, but does not disclose error behavior or consequences beyond the destructive hint. It provides some value but not extensive 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 filler. It states the action and the required argument succinctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 delete tool with a destructive annotation and no output schema, the description, combined with the schema and annotation, provides sufficient information for an agent to select and invoke the tool. The only minor omission is error handling, but that is not critical for such a simple 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 full coverage for the only parameter, 'title', with a description indicating the value should come from notes_list. The tool description merely repeats 'by title' without adding syntax or format details, so the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Delete' with the resource 'one note' and the scope 'by title', which clearly distinguishes it from sibling note tools like notes_add, notes_get, and notes_list. This provides immediate clarity 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 sets clear context: to delete a single note, you must provide its title. The input schema further specifies that the title should come from notes_list, implying a recommended workflow. There is no explicit mention of alternatives, but the simplicity of the tool makes the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_getRead notesARead-onlyIdempotentInspect
Read one note by title. Use it when you know the title; notes_list when you do not
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The note's title, as given to notes_add |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description reinforces the read-only nature by saying 'Read'. The description adds the title-based scoping but doesn't detail error behavior or return format; however, given the simple nature of the tool and the safety annotations, this is sufficient. No contradiction is 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?
The description is two sentences long and entirely purposeful. It front-loads the action ('Read one note by title') and immediately provides usage context. No redundant or filler wording 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?
This is a simple tool with one required parameter, a schema that fully documents that parameter, and annotations declaring safety and idempotency. The description adds essential usage guidance and distinguishes from sibling tools. The absence of an output schema is acceptable for a read operation; a small omission is not specifying what happens if the title is not found, but overall the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single 'title' parameter, with a clear description: 'The note's title, as given to notes_add.' The description only repeats that the note is retrieved 'by title', adding no new semantic information beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Read one note by title', which is a specific verb ('Read') and resource ('note') with a clear identifier ('by title'). It also distinguishes itself from the sibling notes_list by specifying the condition when each 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?
The description explicitly provides usage guidance: 'Use it when you know the title; notes_list when you do not.' This clearly states when to use this tool versus an alternative, satisfying the dimension fully.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_listBrowse notesARead-onlyIdempotentInspect
List every note the caller has written, with its text
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to cover safety. It adds valuable context by specifying the caller scope and the inclusion of text, but it omits details like ordering, pagination, or return structure. With annotations covering the core safety profile, 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 concise sentence that front-loads the action and resource. Every word is informative, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description adequately covers the key aspects: what is listed and what is returned. It does not mention pagination or metadata fields, but given the low complexity and strong annotations, it is sufficiently complete. A slight gap is the lack of any guidance on alternatives, but that is not critical 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 the schema coverage is trivially 100%. The description adds meaning by clarifying that the operation is scoped to the caller's notes, which is not expressed in the empty schema. This meets the baseline of 4 for tools with no 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 the specific verb 'List' with a clear resource ('every note the caller has written') and includes the output content ('with its text'). This clearly distinguishes it from sibling tools like notes_get, which presumably retrieves a single note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 every note the caller has written' provides clear context for when to use this tool: when you need all notes authored by the caller. It does not explicitly exclude alternatives or name siblings, but the context is unambiguous enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_addressGet an email addressARead-onlyIdempotentInspect
Name the place at a latitude and longitude — the reverse of places_geocode. Use it whenever you have coordinates and need to say where that is
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, e.g. 51.5308 | |
| lon | Yes | Longitude, e.g. -0.1238 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds the behavioral context of being a reverse geocoding operation, which is a meaningful addition though it doesn't detail return format or edge cases. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, and the main action is front-loaded. Every word earns its place, making it highly concise and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool, the description covers purpose and usage relationship. It omits what the response looks like, but given the lack of an output schema and the tool's simplicity, this is a minor gap. A slightly richer description of the return value would push it to 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%, with each parameter having a description and example. The description only mirrors the schema's 'latitude and longitude' language without adding new semantic details, so it meets the baseline but doesn't 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's function ('Name the place at a latitude and longitude') and explicitly positions it as the reverse of places_geocode, distinguishing it from siblings. The verb 'name' is specific and the resource (coordinates) 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?
It provides explicit guidance on when to use the tool ('Use it whenever you have coordinates and need to say where that is') and names the alternative (places_geocode), making the usage context clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_elevationElevation placesAInspect
How high a place is above sea level, in metres and feet. Sampled from a 90-metre global elevation model, so a summit reads a little under its surveyed height
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional latitude, if the location is already known | |
| lon | No | Optional longitude, if the location is already known | |
| place | No | A place name or address, e.g. 'Denver' or 'Ben Nevis' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations providing only a title, the description carries the full burden of behavioral disclosure. It reveals the sampling model and the resulting underestimation for summits, which is valuable context. It does not mention error cases or response structure, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. The accuracy caveat is relevant 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 simple read-only tool with three optional parameters and no output schema, the description adequately covers the return value (elevation in metres and feet) and includes a meaningful caveat. It does not explain how parameters should be combined, but the simplicity of the tool makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters with 100% coverage. The description adds little beyond the schema, such as suggesting that lat/lon are alternatives to place or how they interact. The baseline of 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 clearly states the tool's function: reporting elevation above sea level in metres and feet. It distinguishes itself from sibling tools like places_search and places_geocode by focusing on elevation, though it lacks a direct verb such as 'Get' or 'Return'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 is provided about when to use this tool versus alternatives. The note about the 90-metre model is informative but does not frame use cases or exclusions. In a family of location tools, this description does not help the agent choose it over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_geocodeGeocode placesAInspect
Resolve a place name or address to coordinates
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | A place name or address to locate |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the full burden of behavioral disclosure. It states the core action (resolve to coordinates) but fails to mention whether it is a read-only operation, error behavior, return format, or any constraints. This is minimal disclosure for a tool without annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It is front-loaded with the key verb and resource, making it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should 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 conveys the essential purpose but lacks details on the coordinate format, failure modes, or return structure. It is adequate but leaves meaningful 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% and the address parameter is fully described in the schema. The description adds no additional semantics beyond what the schema already provides, essentially restating the purpose. 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 uses a specific verb ('Resolve') with a clear resource ('a place name or address') and output ('coordinates'). It distinguishes itself from sibling tools like places_search or places_nearby by indicating this tool converts textual location data into geographic coordinates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 need coordinates from a place name or address. However, it does not explicitly contrast with sibling tools like places_search or places_nearby, nor does it mention when not to use this tool. It offers only implied guidance, not 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.
places_nearbyFind nearby placesARead-onlyIdempotentInspect
List points of interest near a location. Each one says whether it is open right now where that is known, so "is anything open near me" is one call
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional latitude | |
| lon | No | Optional longitude | |
| near | No | Place to look around, e.g. 'Camden, London' (or give lat/lon) | |
| query | No | Optional keyword to filter by, e.g. 'cafe' | |
| radius | No | Optional radius in metres (default 1000) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds a genuinely useful behavioral trait: each result includes open-now status when known, and that 'one call' can answer the open-near-me question. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences convey the tool's primary function and a distinctive behavior with no wasted words. The key use case is front-loaded, and the sentence 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 read-only, idempotent tool with straightforward parameters, the description covers the essentials: location context, POI output, and openness detail. It does not mention response shape or pagination, but with no output schema and full parameter documentation, the remaining 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?
The schema descriptions cover 100% of the parameters, so the baseline is 3. The description adds little beyond that baseline; it confirms the nearby-location concept and open-status behavior but does not explain parameter relationships or default radius. This is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List') and resource ('points of interest near a location'), plus the distinctive open-status feature. It does not explicitly contrast itself against sibling tools like places_search, but its purpose is evident and it works well as a discovery 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 offers a helpful use case ('is anything open near me') but does not state when to prefer it over similar sibling tools such as places_search or places_geocode. No when-not-to-use guidance or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_searchSearch placesARead-onlyIdempotentInspect
Find places by name or category, optionally near a location. Each one says whether it is open right now where that is known, rather than raw opening-hours text to interpret
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional latitude, if the location is already known | |
| lon | No | Optional longitude, if the location is already known | |
| near | No | Optional place to search near, e.g. 'Shoreditch, London' or 'SF' | |
| query | Yes | What to look for, e.g. 'ramen', 'pharmacy', 'Blue Bottle Coffee' | |
| radius | No | Optional search radius in metres (default 2000) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior, so the description adds useful context by explaining that results indicate whether each place is currently open 'where known' rather than returning raw opening-hours text. This is meaningful behavioral information 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 short, front-loaded, and every sentence earns its place. The primary purpose comes first, and the second sentence adds valuable behavioral context 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 100% schema description coverage, the read-only annotations, and the tool's simple query-focused nature, the description provides enough context to invoke the tool correctly. It lacks an explicit comparison to places_nearby and does not describe the full return shape, but neither is necessary for basic correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented. The description only restates the 'optionally near a location' idea without adding deeper parameter semantics, so it neither significantly helps nor harms 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 what the tool does: find places by name or category, optionally near a location. It provides a specific verb and resource, and the open-status clarification helps set expectations, though it does not explicitly differentiate from sibling tools like places_nearby.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 mentioning searching by name or category with an optional location, but it does not explicitly say when to prefer this over related tools such as places_nearby or places_geocode. No alternatives or exclusions are named, leaving the differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prayer_qiblaQibla for prayerARead-onlyIdempotentInspect
Get the qibla — the compass bearing to face for Islamic prayer from a location
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the location | |
| lon | Yes | Longitude of the location |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds no additional behavioral context (e.g., return format, error conditions), but for a simple, read-only lookup this is acceptable. 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 one concise, front-loaded sentence: 'Get the qibla — the compass bearing to face for Islamic prayer from a location.' Every word adds value, 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?
The tool is simple: two numeric inputs, no output schema, and annotations cover the read-only/idempotent behavior. The description fully explains the core function and what it returns (a compass bearing). This is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes both parameters (lat and lon) with 'Latitude of the location' and 'Longitude of the location', giving 100% coverage. The description doesn't add extra parameter details (e.g., valid ranges), so it relies on the schema, which is adequate for a 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 tool's purpose: to get the qibla compass bearing for Islamic prayer from a given location. It uses a specific verb ('get') and identifies the resource (qibla bearing), distinguishing it from sibling prayer tools like prayer_times and prayer_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 description implies the use case (determining qibla direction) but provides no explicit guidance on when to use this tool vs. alternatives or any exclusions. It doesn't say 'Use this when you need the direction to Mecca' or mention alternatives like prayer_times, so it's only implicitly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prayer_reflectionPrayer times for prayerARead-onlyIdempotentInspect
Get today's Islamic reflection — a verse of the Quran with its surah, a saying of the Prophet, and a name of Allah
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, establishing a clear safety profile. The description adds context about the return contents (verse, saying, name of Allah) but does not elaborate on response format or potential variations, which is acceptable given the simple read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and efficiently lists the components. Every word adds value, and there is 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?
For a zero-parameter read tool with no output schema, the description clearly specifies what the tool returns. It could mention whether the reflection changes daily or how the output is structured, but given the tool's simplicity, the current description is sufficient for an agent to understand its 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?
The tool has zero parameters, so schema description coverage is effectively 100%. The description does not need to explain parameter semantics, and the baseline for zero-param tools 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 clearly states the tool retrieves 'today's Islamic reflection' and specifies its components (Quran verse, hadith, name of Allah). This distinguishes it from siblings like prayer_times or prayer_verse, which focus on different aspects of prayer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 obtaining a daily reflection but does not explicitly state when to choose it over siblings or provide exclusions. No alternative tools are mentioned, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prayer_sayingPrayer times for prayerBRead-onlyIdempotentInspect
Look up a hadith from Sahih al-Bukhari, optionally from a given book
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | Book number within Sahih al-Bukhari. Omit for a saying from any book |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the annotations (readOnlyHint and idempotentHint both indicate a safe lookup operation). It adds that the tool fetches a hadith from Sahih al-Bukhari, which gives source specificity. However, it does not disclose any further behavioral details such as what happens if the book doesn't exist, how results are returned, or whether the hadith is randomly selected.
Agents need to know what a tool does to the world before calling it. Descriptions 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 that front-loads the main purpose and includes the optional parameter behavior. 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?
For a simple lookup tool with only one optional parameter and no output schema, the description is mostly sufficient. However, it does not explicitly state what the return value is (e.g., the hadith text or reference), and the misleading title adds context confusion. A more complete description would mention the output format and clarify that it is a hadith lookup, not prayer 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?
The schema description covers 100% of the parameter (`book` is described as 'Book number within Sahih al-Bukhari. Omit for a saying from any book'). The description adds minimal extra parameter semantics beyond repeating 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 the tool's function: 'Look up a hadith from Sahih al-Bukhari, optionally from a given book.' This specifies a verb and resource. However, the title 'Prayer times for prayer' is misleading and contradicts the description, which reduces clarity and may confuse an agent. It is not well distinguished from sibling tools like prayer_search or prayer_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 description provides no guidance on when to use this tool versus alternatives. It does not mention when to omit the book parameter, when to use a specific book, or how this differs from other prayer-related search tools. There is no explicit context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prayer_searchSearch prayerARead-onlyIdempotentInspect
Search the Quran, the hadith and the names of Allah by meaning — ask a question in plain language rather than naming a reference
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A question in plain language, e.g. "what is said about patience" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate safety. It adds meaningful behavioral context by explaining the search is meaning-based and asks for plain-language input, but it does not detail result format, pagination, or limits. This is sufficient but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the resources being searched and immediately follows with the usage instruction. No filler words; 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 low-complexity tool with one fully documented parameter and safe annotations, the description is complete enough. It explains what is searched and how to formulate the query. Return format is not specified, but given the simple search nature and lack of output schema, this is an acceptable minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the query parameter with an example (100% coverage). The description adds extra semantic guidance with 'by meaning rather than naming a reference', which clarifies how to formulate the query beyond the schema's generic 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 verb 'search' and specifies the exact resources: Quran, hadith, and names of Allah. It further distinguishes the tool by emphasizing 'by meaning' and 'plain language' rather than referencing, which separates it from sibling tools like prayer_verse or general search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool: ask a question in plain language rather than naming a reference. It does not explicitly name alternative tools or when not to use it, but the guidance on query formulation is actionable and the sibling tool list helps differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prayer_timesPrayer times for prayerARead-onlyIdempotentInspect
Get today's Islamic prayer times (salah) for a location, and which prayer is next
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone of the location, e.g. Europe/London (defaults to UTC) | |
| lat | Yes | Latitude of the location | |
| lon | Yes | Longitude of the location | |
| method | No | Calculation convention: isna, mwl, egypt, karachi, gulf, diyanet, muis or jakim (defaults to isna) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds that results are for 'today' and includes the 'next' prayer, which is useful behavioral context, but it does not disclose other traits such as rate limits or the effect of calculation method 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?
A single concise sentence that front-loads the core purpose and includes an additional output detail ('which prayer is next') without unnecessary words. 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 read-only tool with comprehensive schema descriptions and safety annotations, the description sufficiently covers the tool's main function and output. However, the absence of an output schema and lack of detail about return format or calculation method limits 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?
The input schema fully describes all four parameters with 100% coverage, so the description does not need to add parameter details. It mentions 'location' but does not elaborate on the parameters beyond the schema, matching the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving today's Islamic prayer times for a given location and identifying the next prayer. The verb 'Get' is specific, and the resource is clearly defined, distinguishing it from sibling tools like prayer_qibla (direction) or prayer_verse (scripture).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 is provided about when to use this tool versus alternatives, but the purpose is clear enough that usage is implied. The description does not mention exclusions or alternative tools, leaving the agent to infer selection from the tool 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.
prayer_versePrayer times for prayerARead-onlyIdempotentInspect
Look up a chapter of the Quran, or one verse within it, by number. Use prayer_search to ask a question instead of naming a reference
| Name | Required | Description | Default |
|---|---|---|---|
| verse | No | Verse number within the chapter. Omit for the whole chapter | |
| chapter | Yes | Chapter (surah) number, 1-114 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe read operation. The description adds that it can return a whole chapter or a single verse depending on the optional verse parameter, but this is also implied by the schema. It does not add significant behavioral context beyond that, so a baseline score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences. The first sentence states the core functionality, and the second gives an explicit alternative. There is no wasted wording, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and read-only annotations, the description provides enough context for an agent to invoke the tool correctly. However, it does not mention the return format (e.g., the text of the verse/chapter), and there is no output schema to compensate. This is a minor gap, so a 4 is justified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'chapter' and 'verse' have descriptive text (e.g., 'Chapter (surah) number, 1-114' and 'Verse number within the chapter. Omit for the whole chapter'). The description does not add additional parameter semantics, but the baseline of 3 is correct because the schema fully covers the 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 the specific verb 'look up' and clearly states the resource: 'a chapter of the Quran, or one verse within it, by number.' It also distinguishes itself from sibling prayer_search by specifying the alternative use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (when naming a chapter/verse reference) and when to use an alternative: 'Use prayer_search to ask a question instead of naming a reference.' This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_conversationConversation recallAInspect
Read one whole conversation back by id, as recall_search and recall_list report it
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The conversation's id, as recall_search reports it | |
| limit | No | Max messages, most recent kept (default 50) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No safety annotations are provided; the description indicates a read operation which implies non-destructive behavior. It adds that it returns the whole conversation 'as recall_search and recall_list report it,' but doesn't disclose pagination, rate limits, or auth requirements. Neutral but limited.
Agents need to know what a tool does to the 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, 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?
Adequate for a simple retrieval tool: schema covers parameters, description references return format via sibling tools. Could mention limit behavior explicitly but schema covers 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?
Both parameters are fully described in schema (100% coverage), so the description adds little beyond stating the id-based retrieval. It doesn't clarify limit's interaction with 'whole conversation' beyond schema's default 50.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Read' and resource 'one whole conversation' with retrieval by id, and distinguishes from siblings by referencing recall_search and recall_list output format. This clearly identifies the tool's function relative to search/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?
Implies using id from recall_search/recall_list, giving contextual guidance. It doesn't explicitly state exclusions, but the distinction from search/list is evident from the phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_listBrowse recallARead-onlyIdempotentInspect
List the caller's conversations, most recently active first, with what each is about and where it happened
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max conversations (default 20) | |
| client | No | Only conversations on one client: web, mail, cli |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate safety. It adds behavioral context by specifying the sorting order ('most recently active first') and the return content (conversation summaries and locations), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the primary action and includes only essential details. 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 list tool with no output schema, the description fully explains what is returned (conversations with recency, topic, and location) and the filtering parameters are documented. No critical 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?
Input schema has 100% coverage for both parameters (limit and client), so the description doesn't need to explain them. The mention of 'most recently active first' adds minor context but doesn't carry the parameter burden. This aligns with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('the caller's conversations'), and adds specifics: ordering by most recent activity, and the information included (what each is about and where it happened). This distinguishes it from siblings like recall_search and recall_conversation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it lists the caller's conversations with recency ordering, which implies browsing recent activity. It doesn't explicitly mention when to prefer this over alternatives like recall_search, but the behavior is unambiguous enough that an agent can infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_searchSearch recallARead-onlyIdempotentInspect
Search everything the caller has said to an agent and been told, wherever they said it — the browser, email, or the command line. Use it when something was mentioned and you need to find where; notes_get is for a fact somebody wrote down on purpose
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 200) | |
| query | Yes | What to look for — a word or phrase that was said | |
| client | No | Narrow to where it was said: web, mail, cli. Omit for everywhere |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds valuable context about the scope of data (browser, email, CLI) and implies a comprehensive search across sources. It does not contradict annotations and provides useful 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?
The description is two sentences, front-loaded with the core purpose, followed by a usage guideline and alternative. No extraneous details, 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 3-parameter search tool with no output schema, the description covers the essential aspects: what it searches, when to use, and how it differs from an alternative. It doesn't describe return format, but that's implied for a search tool and not critical given the read-only nature. It adequately addresses complexity and 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% with each parameter (query, limit, client) having clear descriptions. The description reinforces the client parameter's meaning by naming the channels, but adds little beyond what the schema already specifies. Baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches 'everything the caller has said to an agent and been told' across multiple channels (browser, email, command line), which is a specific verb-resource pairing. It distinguishes from sibling notes_get by explicitly contrasting with a purposefully written fact, and also implicitly separates from recall_list and recall_conversation by focusing on recall of spoken/exchanged content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance: 'Use it when something was mentioned and you need to find where,' and names an alternative (notes_get) with a clear distinction. This helps the agent decide between search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routes_directionsDirections routesAInspect
The turn-by-turn route between two places, with the distance for each instruction. Use ETA instead when only the travel time is wanted — this asks the provider for more and costs more
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Where the journey ends, e.g. 'Heathrow Airport' | |
| from | No | Where the journey starts, e.g. 'King's Cross, London' (or give from_lat/from_lon) | |
| mode | No | How to travel: drive (default), walk, cycle or transit | |
| to_lat | No | Optional end latitude, if already known | |
| to_lon | No | Optional end longitude, if already known | |
| from_lat | No | Optional start latitude, if already known | |
| from_lon | No | Optional start longitude, if already known | |
| arrive_by | No | Be there by this time, as RFC3339. Cannot be combined with depart_at | |
| depart_at | No | When the journey starts, as RFC3339. Defaults to now |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations beyond title are provided, so the description carries the burden. It discloses that the tool is more resource-intensive and returns per-instruction distances. While it doesn't detail response structure, it adds meaningful behavioral context about cost and content beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary purpose and immediately followed by usage guidance. 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 tool with 9 parameters and no output schema, the description covers the core behavior and cost trade-off. It mentions the return includes directions with distances, which is essential, though the exact response structure is not fully specified. Schema handles parameter details 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 description coverage is 100%, with every parameter having a descriptive comment. The tool description adds no additional parameter semantics 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 clearly states the tool provides a turn-by-turn route between two places with distance for each instruction. This specific verb+resource description distinguishes it from the sibling tool routes_eta, which is explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: 'Use ETA instead when only the travel time is wanted' and explains the trade-off ('this asks the provider for more and costs more'). This clearly directs when to use this tool versus an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routes_etaTravel timeARead-onlyIdempotentInspect
How long it takes to travel between two places, by road rather than as the crow flies. Can be asked about a future departure, or told when you need to arrive and answer when to leave
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Where the journey ends, e.g. 'Heathrow Airport' | |
| from | No | Where the journey starts, e.g. 'King's Cross, London' (or give from_lat/from_lon) | |
| mode | No | How to travel: drive (default), walk, cycle or transit | |
| to_lat | No | Optional end latitude, if already known | |
| to_lon | No | Optional end longitude, if already known | |
| from_lat | No | Optional start latitude, if already known | |
| from_lon | No | Optional start longitude, if already known | |
| arrive_by | No | Be there by this time, as RFC3339. Answers when to leave. Cannot be combined with depart_at | |
| depart_at | No | When the journey starts, as RFC3339 (e.g. 2026-08-13T08:00:00Z). Defaults to now. Traffic and timetables are read for this time |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description adds meaningful context: it computes by road, and can handle future departure or arrival-time queries. It doesn't mention response format or potential limitations, but the existing annotations cover safety, so the bar is met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and concise. It avoids redundancy with schema details and earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters, no output schema, but good annotations. The description explains the core function and two common modes (depart at, arrive by), which are key for usage. Without an output schema, it implies the result is a duration, which is sufficient. Slight gaps like coordinate usage are covered in the schema, so overall it's 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?
Input schema covers all 9 parameters with descriptions (100% coverage). The main description adds general context ('by road', time-based queries) but doesn't provide additional per-parameter meaning beyond the schema. Baseline 3 is appropriate given 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 clearly states the tool calculates travel time between two places by road, distinguishing it from straight-line ('as the crow flies') distance. It also notes time-based queries (future departure or arrive-by), making the purpose specific. It doesn't explicitly differentiate from sibling tools like routes_directions, but provides enough 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?
The description provides some usage context—when to ask about future departure or arrive-by times—but does not explicitly state when to use this tool over alternatives. It implies it's for travel time rather than directions, but lacks direct exclusions or alternative tool names, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routes_nearestNearest routesAInspect
Given a starting point and several destinations, say which is quickest to reach and put them in order. Each destination is a separate routing lookup, so ask about the places you are actually choosing between rather than a long list
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | The places to compare, e.g. ['Heathrow', 'Gatwick', 'Stansted'] | |
| from | No | Where you are starting from, e.g. 'Shoreditch, London' (or give from_lat/from_lon) | |
| mode | No | How to travel: drive (default), walk, cycle or transit | |
| from_lat | No | Optional start latitude, if already known | |
| from_lon | No | Optional start longitude, if already known |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnly or destructive hints in annotations, the description carries the burden. It discloses that each destination triggers a separate lookup, which implies performance costs and influences parameter selection. This is valuable behavioral context beyond the schema. It does not mention return format or error cases, but the disclosed behavior is 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?
The description is a single, front-loaded sentence that immediately states purpose and then gives a practical caveat. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple tool with 5 well-documented parameters and no output schema, the description covers the core semantics and usage nuance. The phrase 'put them in order' implies the return structure. It lacks explicit mention of output format, but the tool's 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?
Schema coverage is 100%, so all parameters already have descriptions. The description adds semantic guidance for the 'to' parameter ('ask about the places you are actually choosing between') and reinforces the meaning of the multi-destination comparison. However, it does not add significant depth 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 the tool's function: 'Given a starting point and several destinations, say which is quickest to reach and put them in order.' This uses a specific verb ('say') and resource ('routes'), and the scope of comparing multiple destinations distinguishes it from sibling tools like routes_directions and routes_eta.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Each destination is a separate routing lookup, so ask about the places you are actually choosing between rather than a long list.' This tells the agent when to use the tool and warns against misuse, though it does not explicitly name alternative tools for point-to-point routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_listBrowse shellBRead-onlyIdempotentInspect
List a directory on your machine
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | The directory to list, under /work. Defaults to /work |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, so the description need not restate those. It adds minimal context ('on your machine') but does not disclose output format, whether hidden files are included, or any other behavioral nuances. Given the annotations cover the safety profile, a baseline score of 3 is appropriate; the description doesn't contradict annotations, but it doesn't enrich them 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?
The description is a single sentence with no extraneous words. It is front-loaded with the action and resource, making it immediately scannable. It earns its place 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?
For a simple listing tool, the description is functional but not fully complete. It doesn't specify what the output looks like (e.g., list of filenames, full details), and there is no output schema to compensate. The annotations cover safety, and the parameter is well-documented, but an agent might still be uncertain about the return format. This leaves a small but notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage: the dir parameter is described as 'The directory to list, under /work. Defaults to /work'. The tool description adds no extra meaning about parameters beyond what the schema already provides. Since schema coverage is high, the baseline of 3 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 'List a directory on your machine' uses a specific verb and resource, clearly indicating the action. It distinguishes itself from sibling tools like shell_read (reading file content) and shell_run (executing commands) by focusing on enumeration. However, it is terse and does not explicitly mention the restricted path scope (/work), which is only in the schema—so it's 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 tool versus alternatives such as shell_read or shell_run. The description implies a browse/list context, but it doesn't state exclusions or refer to siblings. An agent must infer that this is for directory enumeration, and there's no mention of when not to use it (e.g., for reading files).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_readRead shellARead-onlyIdempotentInspect
Read a file from your machine
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The file to read, under /work |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate these. The description adds the phrase 'from your machine' which is somewhat redundant given the schema's '/work' constraint. It does not add meaningful 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, clear sentence with no superfluous words. It is front-loaded with the core action and subject, making it maximally efficient for an agent 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 tool with one parameter, no output schema, and annotations covering safety, the description is complete. An agent can correctly invoke this tool using the information given, and nothing essential is missing given 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?
The schema description coverage is 100%, with the parameter clearly documented as 'The file to read, under /work.' The tool description does not add any additional meaning or constraints beyond what the schema already provides, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read a file from your machine' clearly states the verb (read), resource (file), and context (machine). It distinguishes from siblings like shell_write and shell_run by specifying a read operation. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives such as shell_list or shell_run. The intended use is implied by the name and description, but there is no statement of exclusions or alternatives, so the agent must 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.
shell_runRun shellAInspect
Run a shell command on your own machine and get back what it wrote. A real shell in a container: pipes, redirection and && all work, the working directory is /work and files there persist between calls. Use it to build, test, run scripts and move files about. A non-zero exit code comes back in the response rather than as an error, so read the output — a failing build is an answer
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Directory to run it in, under /work. Defaults to /work | |
| command | Yes | A shell command to run, e.g. 'go test ./... 2>&1 | tail -40' | |
| timeout | No | Seconds to allow, up to the instance's maximum. Defaults to 120 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond the title, the description carries full transparency burden. It discloses that it runs in a container, supports pipes/redirection/&&, working directory /work with persistence, and that non-zero exit codes are returned as data not errors. This is rich, accurate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action and environment, then use cases and exit-code behavior. No filler, every sentence contributes valuable information. Excellent 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 tool without output schema, it explains return behavior (what it wrote, non-zero exit code in response), environment constraints, and typical usage. It is complete enough for an agent to call it correctly without missing critical 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 coverage is 100% and each parameter already has a helpful description, including an example command. The description adds some context (working dir persistence), but the schema already documents dir and timeout defaults. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('run a shell command on your own machine') and resource, and distinguishes it from shell_list/read/write siblings. It also lists concrete use cases (build, test, run scripts, move files), so an agent can tell exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context on when to use it ('Use it to build, test, run scripts and move files about') and highlights the environment (container, /work). It does not explicitly mention when not to use it or point to alternatives, but the purpose is distinct enough from the shell_* siblings that the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_writeWrite shellAInspect
Put a file on your machine, creating any missing directories. Use this rather than shell redirection for anything with quotes or backticks in it, which is most source code
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Where to put it, under /work. Missing directories are created | |
| content | Yes | The whole file. This replaces what was there |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond the title, the description carries the burden of behavioral disclosure. It mentions that directories are created, but this is already stated in the input schema for the path parameter. The additional guidance about quotes/backticks is more of a usage tip than a behavioral trait. The overwriting behavior is also covered by the schema ('This replaces what was there'). Beyond these, no side effects, permissions, or other behavioral aspects are disclosed. This is adequate but not extensive, 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?
The description is exactly two sentences, with the primary purpose front-loaded and the usage tip as a separate second sentence. Every word serves a purpose—the first sentence states what it does, the second gives guidance on when to prefer it. There is no fluff or repetition of schema content, 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 simple file-writing tool with only two parameters, the description plus the schema (which already explains the parameters) is fully sufficient for an agent to understand how and when to use it. There is no output schema, but none is needed for a write operation. The description even adds a practical tip that addresses a common pitfall (quoting), making it contextually complete for the intended use 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 100% — both 'path' and 'content' have clear descriptions. The tool description does not add additional parameter semantics beyond what the schema already provides. It doesn't clarify formats, limits, or additional constraints beyond the schema's own explanations. Since the schema fully covers parameter meaning, the baseline of 3 stands; the description adds no extra value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific action: 'Put a file on your machine' with the added detail of creating missing directories. It also differentiates itself from shell redirection, which helps distinguish it from the common alternative. This is more specific than the tool name alone and clearly communicates the resource and 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 explicitly tells when to use this tool over shell redirection: 'for anything with quotes or backticks in it, which is most source code'. This is a concrete, actionable condition that guides the agent's tool selection. It names the alternative and the specific scenario, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sms_historyHistory smsAInspect
Read the texts this account has sent and received, newest first. Both directions, which is why it is not called an inbox
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many messages to return, newest first (default 50, max 200) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the burden. It indicates a read-only operation ('Read') and discloses ordering ('newest first') and scope ('both directions'). This is sufficient for a simple read tool, though it does not describe return format or side effects beyond being non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions 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 primary action ('Read') and includes only relevant details. Every word earns its place, with no fluff 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 tool with one parameter and no output schema, the description provides sufficient context about operation and ordering. It could mention what fields are returned, but this is a minor gap given the straightforward nature of reading SMS history.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This 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 'limit', which already explains its meaning and default/max. The description adds little beyond repeating 'newest first' that is already in the schema, 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 reads SMS texts (sent and received) with a specific verb ('Read') and resource ('texts'). It also distinguishes itself from an inbox by explicitly noting it covers both directions, which clarifies its scope and differentiates from similar messaging 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 when to use this tool: whenever you need the account's full message history, not just received messages. It provides context for why it differs from an inbox, but does not explicitly name alternative tools (e.g., sms_send) or state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sms_numberNumber smsCInspect
The number texts are sent from, which numbers are verified as yours, and how many messages are left today
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do not include readOnlyHint or destructiveHint. The description implies a read-only query but does not explicitly state that it has no side effects, how the data is sourced, or whether the quota is real-time. No behavioral context is added beyond the bare enumeration of 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 concise in length but poorly structured. It is a grammatically awkward fragment that lists items without a clear subject-verb beginning, reducing front-loading and readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what the tool returns. It lists three pieces of information but with ambiguous phrasing (e.g., 'The number texts are sent from') and does not specify the response format or whether these are separate fields or a combined result. The description is 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?
The tool has zero parameters and the schema is empty with 100% coverage, so the baseline is 4. The description does not need to explain parameters; it provides no additional parameter-related meaning but is not deficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys that the tool provides information about the sender number, verified numbers, and remaining message quota. This distinguishes it from sms_send, sms_verify, and sms_history. However, it lacks a clear imperative verb and reads as a fragment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 sibling tools. It does not state use cases, prerequisites, or exclusions, leaving the agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sms_sendSend smsADestructiveInspect
Text somebody, from this instance's number. Charged per 160-character segment, capped per day, and the recipient can stop it with STOP
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | The number to text, in international format, e.g. +447700900123. Use contacts_find to turn a name into one | |
| text | Yes | What to say. Charged per 160-character segment, so brevity is not only good manners |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses charging per 160-character segment, daily caps, and recipient STOP opt-out, which goes beyond the destructiveHint annotation by explaining the specific consequences.
Agents need to know what a tool does to the world 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 that front-load the primary action and then list key behavioral constraints without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter send operation with comprehensive schema descriptions, the description covers the key behavioral caveats (cost, cap, opt-out) and is adequate, though it doesn't mention related tools like sms_number for checking the instance 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 descriptions for both 'to' and 'text' are comprehensive, including format examples and contact lookup guidance. The tool description does not add additional parameter-specific 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 action ('Text somebody') with a specific source ('from this instance's number'), distinguishing it from sibling SMS tools like sms_history and sms_verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context about when to use it (sending a text) and important constraints (cost, daily cap), but doesn't explicitly name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sms_verifyVerify smsAInspect
Claim a number as your own, so texts arriving from it reach this account. Call it with just the number to have a code texted there, then again with the code
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | The code that was texted to that number. Omit to have one sent | |
| number | Yes | Your own number, in international format |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provide safety hints, so the description carries the full burden. It discloses that the tool claims ownership of a number and triggers sending a text message (side effect), and explains the consequence for incoming texts. It doesn't discuss reversibility or auth, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, and the second sentence compactly explains the procedure. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema, high schema coverage, and no output schema, the description adequately covers what the tool does and how to invoke it in both modes. It doesn't need to explain 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 provides 100% coverage with descriptions for both number and code. The description adds context about the two-step flow but doesn't materially add meaning beyond the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Claim' and identifies the resource (a number) and its purpose ('so texts arriving from it reach this account'). It clearly distinguishes from sibling tools like sms_send by focusing on verification/claiming rather than sending or 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?
It explicitly describes the two-step usage flow: call with just the number to receive a code, then call again with the code. This provides clear context on how to use the tool, though it doesn't name alternative tools or exclusion scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
social_searchSearch socialARead-onlyIdempotentInspect
Search public posts on this instance by keyword. This is the instance's own feed, not the wider internet — use web_search for that
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| query | Yes | What to look for in posts on this instance |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds that it searches only public posts on the instance, which is a useful scoping context but does not disclose additional behaviors like pagination, rate limits, or output format. This aligns with the calibration example where annotations lower the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose, the second provides a direct alternative for the wider internet. Every word earns its place, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only search tool, the description sufficiently covers scope (public posts on this instance), the alternative (web_search), and the basic purpose. No output schema is required, and the description is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with descriptions for query and limit. The description's 'by keyword' reinforces the query parameter but adds no new syntax, constraints, or format details beyond what the schema 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 clearly states 'Search public posts on this instance by keyword' with a specific verb and resource, and explicitly distinguishes it from web_search by noting the instance-local scope. This differentiates it from sibling tools like web_search or social_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit alternative: 'use web_search for that' for wider internet searches, and clearly indicates when this tool should be used (searching posts on this instance). This satisfies the when/when-not/alternatives criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stream_listBrowse streamCRead-onlyIdempotentInspect
Read what has happened here recently
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many entries to return (default 20, max 100) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds no new behavioral context. It doesn't mention ordering, time window, pagination behavior, or what 'recently' means, leaving the agent without useful 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 a single sentence with no wasted words, but it is too terse to be informative. Conciseness at the expense of necessary detail is under-specification, not good 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 the tool's simplicity (1 optional param, no output schema) and available annotations, the description still fails to explain what a stream is or what kind of events are shown. With many similar sibling tools, this lack of context 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% because the only parameter 'limit' is described in the schema. The description adds no parameter-specific details, so it neither compensates nor detracts; 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 'Read what has happened here recently' uses a verb and implies a stream, but 'here' is undefined and it doesn't clarify what type of stream or content is listed. It fails to distinguish this from numerous sibling list tools like news_list, social_list, or recall_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 stream_list versus alternatives. There are no exclusions, prerequisites, or context clues to help an agent choose this tool over other list or read tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_createCreate tasksAInspect
Add a task. Assign it to the agent and it can pick the task up itself
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Optional deadline, RFC3339 or 2006-01-02 15:04 | |
| title | Yes | What is to be done | |
| detail | No | Anything the doer needs to know: context, links, constraints | |
| assignee | No | me (default) or agent — assign to the agent and it can pick the task up |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title with no readOnly or destructive hints, so the description carries the behavioral disclosure burden. It states the mutation ('Add a task') and a notable consequence (agent-pickup when assigned), but doesn't mention other effects like permissions or visibility. The agent-pickup note is already in the schema, so the description adds modest extra 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?
Two short sentences, front-loaded with the primary action. No filler or repetition. The second sentence earns its place by highlighting a key feature, even though it's also captured in the schema. This is an appropriately sized description for a simple create 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 4-parameter create tool with 100% schema coverage and no output schema, the description plus schema provide sufficient context. It doesn't explain return values, but none are required here. The most non-obvious aspect, the agent-pickup behavior, is covered, making the description adequate without being over-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?
All 4 parameters have full descriptions in the schema (100% coverage), so the baseline is 3. The description's mention of assigning to the agent mirrors the assignee parameter but adds no new semantics beyond what the schema already provides. No additional parameter-level insight is offered in the 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?
The description begins with 'Add a task,' a specific verb on a clear resource, and the agent-assignment note directly ties to the tool's unique function. It distinguishes itself from sibling tools like tasks_update and tasks_delete by focusing on creation. The verb 'add' is unambiguous within the tasks 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?
The description implies use when creating a new task, but does not explicitly contrast with tasks_update or tasks_list. The note 'Assign it to the agent and it can pick the task up itself' gives a functional trigger for collaboration but stops short of explicit when-to-use/alternatives guidance. Usage is implied rather than explicitly scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_deleteDelete tasksBDestructiveInspect
Remove a task
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds no behavioral context such as permanence, side effects, or error behavior. The description simply restates the title without providing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded and easy to parse. While it adds little beyond the title, for a simple delete tool this brevity is not excessive. It could have included more context, but it is 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?
This is a minimal but viable description for a simple mutation tool. It fully specifies the action and resource, and the schema covers the required parameter. However, it lacks details about irreversibility or return behavior, which are not covered 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?
The schema already covers the single parameter 'id' with a description ('The task's id') at 100% coverage. The description adds no additional meaning about the parameter, 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 'Remove a task' uses a specific verb (remove) and identifies the resource (task), clearly distinguishing it from sibling tools like tasks_create, tasks_list, tasks_update. It leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention conditions, prerequisites, or exclusions, nor does it reference sibling tools such as tasks_update or tasks_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_listBrowse tasksARead-onlyIdempotentInspect
List the caller's tasks, open ones first; optionally filtered by state
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Optional filter: todo, doing or done |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so the description's burden is lower. The description adds useful behavioral details: default ordering ('open ones first') and the optional state filter, plus the scope ('caller's tasks'). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action ('List'), specifies the resource ('caller's tasks'), and includes the sort order and filter option. 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 list tool with one optional parameter and no output schema, the description provides all necessary contextual information: what is listed, whose tasks, ordering, and filter capability. The tool is simple enough that this description is 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 input schema has 100% coverage for the one parameter, with a clear description ('Optional filter: todo, doing or done'). The description's mention of 'filtered by state' does not add substantial meaning beyond the schema, 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 lists the caller's tasks with a specific ordering (open ones first) and optional state filtering. This distinguishes it from sibling tools like tasks_create, tasks_update, and tasks_next, 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?
The description clearly implies when to use this tool: to browse or list tasks. It does not explicitly mention alternatives or exclusions, but the context is unambiguous given the sibling tool names. Since there are no complex alternative scenarios, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_nextNext tasksBInspect
The next task assigned to the agent — what to work on now
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses almost no behavioral traits beyond its basic purpose. It does not state whether the tool is read-only, whether it mutates task state (e.g., marks as in-progress), or what the return value contains. Annotations provide no safety hints, so the description carries the full burden and fails to address side effects or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that gets straight to the point. It is front-loaded with the core concept and contains 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 no output schema and minimal annotations, the description is the only source of contextual information. It tells the agent what the tool returns (the next task) but omits critical details like whether the operation is safe, how results are structured, or any prerequisites. For a simple tool this might be tolerable, but the lack of behavioral disclosure 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?
The input schema has zero parameters, and the baseline for no parameters is 4. The description correctly avoids mentioning parameters, so no additional meaning is needed or 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 identifies the tool as returning 'the next task assigned to the agent', which distinguishes it from sibling tools like tasks_list (which lists all tasks) by focusing on a single actionable item. However, it doesn't explicitly contrast with alternatives or specify whether it returns one task or a set, so it's not 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?
There is no guidance on when to use this tool versus alternatives like tasks_list or tasks_get. The phrase 'what to work on now' implies a context, but the description does not state exclusions or compare with other task tools, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_updateUpdate tasksCInspect
Change a task: its state, or the result of doing it
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's id | |
| title | No | New title | |
| detail | No | New detail | |
| result | No | What came of it — the answer, the outcome, what was found | |
| status | No | todo, doing or done |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations lack readOnlyHint or destructiveHint, so the description must convey mutating behavior. It says 'Change a task,' which implies a write operation, but offers no details on permissions, partial update semantics, or side effects, providing minimal transparency 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 short sentence, front-loaded with 'Change a task.' It is concise, though the colon clause is somewhat vague; there is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and minimal annotations, the description is too sparse to fully understand the update behavior (e.g., whether fields are partially updated, required auth, return value). It does not compensate for the lack of structured 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% with each parameter described (id, title, detail, result, status). The description mentions 'state' and 'result' but adds no new meaning or usage syntax 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 uses the verb 'Change' with resource 'task', clearly indicating an update operation. It distinguishes from sibling tools (tasks_create, tasks_delete) by focusing on modifying an existing task, though it only mentions state and result, not title/detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives, no prerequisites, and no exclusions. It only states what it does, leaving 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.
text_classifyClassify textAInspect
Sort text into one of the labels you give, with a confidence. For routing, triage and moderation. Capped at 30,000 characters
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to sort | |
| labels | Yes | Comma-separated labels to choose between |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses some behavioral aspects: it returns a confidence and has a 30,000-character cap. Since there are no other annotations besides the title, the description carries the burden of transparency. It does not describe the return format in detail (e.g., how labels are returned, whether the label is a string or object) or error handling for over-length input, leaving some 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 exceptionally concise: two sentences that front-load the action, specify inputs, list use cases, and set a size limit. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple classification tool with no output schema, the description covers the key aspects: action, inputs, output (label with confidence), use cases, and a size limitation. It misses some details like output format and over-limit behavior, but these are relatively minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes both parameters (text and labels) with 100% coverage. The description adds minimal extra meaning, mainly reinforcing that labels are provided by the user. It does not enrich parameter understanding 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 the action (sort/classify), the resource (text), and the expected output (a label with confidence). It also names concrete use cases (routing, triage, moderation), which distinguishes it from sibling text tools like text_extract, text_summarise, and text_translate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (routing, triage, moderation), indicating when the tool is appropriate. It also mentions a character limit (30,000), which suggests a constraint. However, it does not explicitly mention when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_extractExtract textAInspect
Turn text into JSON matching a schema you give. Pass the fields you want as a JSON schema or a plain description; returns JSON only. Capped at 30,000 characters
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to read | |
| schema | Yes | A JSON schema, or a plain description of the fields wanted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond the title, the description carries the full burden. It usefully discloses 'returns JSON only' and the '30,000 characters' limit, but lacks details like error behavior or how malformed schemas are handled. It provides some behavioral context but is 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 three concise sentences that front-load the purpose, then explain the invocation pattern, and end with a key constraint. 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?
The tool has no output schema, but the description clarifies that the output is JSON only, which covers the return format. It also specifies the input mechanism and character limit. Minor gaps include lack of schema format examples or failure modes, but overall it is sufficiently complete for a 2-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 coverage is 100%, so the schema already documents both parameters. The description's mention of 'JSON schema or a plain description' duplicates the schema description without adding new semantic 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?
The description clearly states the tool's function: 'Turn text into JSON matching a schema you give.' This distinguishes it from sibling text tools like text_summarise and text_translate by specifying the structured extraction use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool ('Pass the fields you want as a JSON schema or a plain description') but does not explicitly state when to use it over alternatives or when not to use it. Usage context is implied but not contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_summariseSummarise textAInspect
Summarise text into a few sentences. Pass style=bullets for a list, or a sentence count. Capped at 30,000 characters
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to summarise | |
| lines | No | Optional: roughly how many sentences or bullets | |
| style | No | Optional: 'bullets' for a list, otherwise prose |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist beyond the title, so the description carries the full burden. It discloses a useful constraint (capped at 30,000 characters) and mentions style options, but doesn't describe behavior on exceeding the cap, output format details, or whether the operation is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the core purpose, and every clause adds value (function, style options, character limit). No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema and only 3 parameters, the description covers the main usage, customization options, and a key constraint. It doesn't explain error handling for over-limit input, but this is arguably out of scope for such a lightweight 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 each parameter already described. The description adds minor clarification (e.g., 'sentence count' maps to the 'lines' parameter), but most meaning is already conveyed by the schema, keeping the score at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Summarise text into a few sentences.' It distinguishes from sibling text tools like text_classify, text_extract, and text_translate by focusing specifically on summarization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context by explaining how to customize output via style=bullets or a sentence count. Doesn't explicitly exclude alternatives, but among the text-processing siblings, summarization is a distinct function, making the intended use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_translateTranslate textAInspect
Translate text into another language, preserving formatting. Capped at 30,000 characters
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target language, e.g. 'French' or 'ar' | |
| text | Yes | The text to translate |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only a title), so the description carries the burden of behavioral disclosure. It adds valuable context: the 30,000-character limit and the preservation of formatting. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that delivers the essential purpose and key constraints without any filler. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple tool with two parameters, the description covers the critical context: purpose, formatting behavior, and a size limit. It does not describe the return value, but that is likely obvious for a translation tool, so this is not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (text and to), with 100% coverage. The description itself adds no extra parameter-level semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Translate') and resource ('text'), and highlights formatting preservation. This distinguishes it from sibling tools like text_classify, text_extract, and text_summarise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 exclusions or prerequisites. It only states what the tool does, 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.
transit_arrivalsArrivals transitAInspect
What is due at a stop and when. Takes a stop name or an id. In London this is live from TfL — buses, tube, DLR, Overground and Elizabeth line. Elsewhere it is the published timetable, and says so
| Name | Required | Description | Default |
|---|---|---|---|
| stop | Yes | Stop name or id, e.g. 'Oxford Circus' or 940GZZLUOXC |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints, so the description carries the burden. It does disclose a notable behavior: outside London it shows the published timetable and 'says so' in the output. However, it does not explicitly state that this is a read-only operation or describe potential response format 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?
The description is two sentences, front-loaded with the core purpose. The second sentence adds important contextual detail about data freshness and geographic variation, with no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description covers the essential context: what it returns, input format, and source behavior. It could be slightly more explicit about output details (e.g., time range or format), but the low complexity makes this 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%, with the 'stop' parameter already described as 'Stop name or id, e.g. ...'. The description adds no additional meaning beyond the schema, 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 clearly states what the tool does: 'What is due at a stop and when.' It identifies the resource (a stop) and the output (arrivals/departures). While it doesn't explicitly distinguish from sibling tools like transit_nearby or transit_status, the purpose is specific enough to be understood.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 how to use it ('Takes a stop name or an id') and provides context about data sources (live in London, timetable elsewhere). However, it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transit_busesBuses transitAInspect
Where the buses actually are near a point right now — line, where each is heading and how far away, nearest first. England, from the Bus Open Data Service. This is position rather than prediction: it says what is moving, not when it reaches you
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude of the point to look around | |
| lon | No | Longitude of the point | |
| limit | No | How many to list, default 10 | |
| within_km | No | How far to look, in kilometres — default 2, most 25 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation set exposes only a title, so the description carries the full disclosure burden. It does this well: it reveals the data source (Bus Open Data Service, England), the real-time nature of the data, and — critically — the semantic caveat that this is live position, not a prediction, preventing misuse for arrival-time queries. Limitations like rate-limits or auth requirements are not covered, but they are minor for a read-only data 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?
Three tightly-constructed sentences, each earning its place: the front-loaded value proposition, the data-scope specifics, and the closing caveat. The opening is memorable and informative, and there's zero filler or repetition — an exemplar of concise technical exposition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no required parameters, no enums, and no nested objects, the description covers the essentials: what it lists, output ordering, geographical scope, data source, and the key semantic caveat. An explicit note about output structure would push it to a 5, but the description is largely complete 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 100%, with each of the four parameters well-documented in the schema (including useful defaults like 'default 2, most 25' for within_km). The description adds the output-ordering detail 'nearest first' but otherwise does not need to and does not try to repeat schema content. This is exactly the baseline-3 scenario: schema does the heavy lifting and the description is not penalized.
Input schemas describe structure but not intent. Descriptions should explain 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 phrase ('Where the buses actually are near a point right now') to convey list-real-time-positions with a specific scope (England, Bus Open Data Service). The 'position rather than prediction' clause distinguishes it from sibling transit data tools without naming them, and the mention of output fields (line, heading, distance) 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 gives clear when-to-use context ('near a point right now'), geographic scope (England), and a when-not-to crafting caveat ('position rather than prediction') that prevents agents from misusing it for ETA-style arrival predictions. However, no sibling tool is ever named explicitly as an alternative (e.g., transit_arrivals, transit_trains), so it falls just short of the 5 bar, which expects named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transit_feedsFeeds transitAInspect
Which published timetables this instance carries, and which others it could — with the size of each, so an operator can see what switching one on costs. Also names the feeds that look right but whose timetables have run out
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Optional two-letter code to narrow the list: GB, US, ES… |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include the title, so the description carries the burden of behavioral disclosure. It adds useful content context (feed sizes, expired-feeds detection) but does not explicitly state that this is a read-only operation, nor does it mention any side effects, auth requirements, or output format. This is typical for a list tool, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is an indirect 'Which...' clause rather than a crisp verb-first statement, making it heavier than needed. The second sentence is a fragment. The content is meaningful but the phrasing is awkward and not front-loaded, detracting from efficient comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the main purpose and includes notable details (sizes, expired feeds). However, the phrase 'look right but whose timetables have run out' is vague, and the return structure is only partially hinted at (size), leaving some uncertainty about the full response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a complete description for the only parameter ('country'), so the description adds no additional parameter details. Since schema coverage is 100%, the baseline of 3 applies; the description does not conflict or enhance the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (published timetables/transit feeds) and the core action (listing which are carried and which could be added), with an explicit mention of feed sizes. It distinguishes itself from transit_arrivals, transit_nearby, and transit_status by focusing on the feed catalog, but lacks a direct imperative verb like 'list' or 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case: 'so an operator can see what switching one on costs' and adds the nuance of expired timetables. However, it does not explicitly state when to use this tool over alternative transit tools or when not to use it, so it falls short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transit_nearbyFind nearby transitARead-onlyIdempotentInspect
Bus stops and stations near a point, nearest first, with the id each one is called by. London live from TfL; elsewhere from whichever published timetables this instance has loaded
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude | |
| lon | Yes | Longitude | |
| radius | No | Metres to search, default 400, max 2000 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds value beyond safety. It discloses behavioral traits such as nearest-first ordering, inclusion of the stop/station id, and the distinction between London live data and timetable-based data elsewhere. This is relevant for interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and every word adds value: nearest-first, id inclusion, and data source. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers essential context: what it returns (stops/stations and ids), ordering, and data source. There is no output schema, but the description is informative enough for basic invocation. Minor gaps exist around the full return structure, but overall 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 input schema already covers 100% of parameters with descriptions ('Latitude', 'Longitude', and radius with default/max). The description does not add significant semantic meaning to the parameters 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 clearly states the tool finds 'bus stops and stations near a point' and adds specific scope details: nearest-first ordering, the id each stop is called by, and data sources (London TfL vs published timetables). This distinguishes it from sibling tools like transit_arrivals or places_nearby, 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?
The description provides clear context on when the tool applies: for finding transit stops near a point, with geographic coverage specified. It does not explicitly name alternatives or exclusions, but the context is sufficient for an agent to decide this is the right tool for nearby transit searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transit_statusStatus transitAInspect
Which lines are delayed, part-suspended or closed right now, and why. London only
| Name | Required | Description | Default |
|---|---|---|---|
| modes | No | Optional: tube, dlr, overground, elizabeth-line, tram — comma separated |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No read-only or destructive annotations are provided, so the description carries the behavioral disclosure burden. It does state the output will include affected lines and reasons, but it does not disclose behavior when there are no disruptions, data freshness, or whether omitting 'modes' returns all lines or none.
Agents need to know what a tool does to the world before calling it. Descriptions 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 directly states the tool's purpose and scope. Every word contributes value, with no filler or redundant repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description adequately covers purpose, location, and result content. However, it leaves gaps about default behavior when 'modes' is omitted and the response format for a healthy/no-disruption state, which would be useful for an agent to fully understand 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 schema already describes the single 'modes' parameter fully, including accepted values (tube, dlr, overground, elizabeth-line, tram) and comma-separated format. With 100% schema coverage, the description adds no additional parameter-level meaning beyond the London-only scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 phrase ('Which lines are delayed... right now') and clearly identifies the resource as live transit disruption status in London. It distinguishes itself from sibling tools like transit_arrivals and transit_nearby by focusing on delays/suspensions/closures rather than arrivals or nearby stations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for current disruption status in London only. However, it does not explicitly mention alternative tools for other transit queries (e.g., arrivals) or say when not to use this tool, so usage guidance is mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transit_trainsTrains transitAInspect
The live departure or arrival board at a British station, by its three-letter code — KGX, MAN, EDB. Scheduled and expected time, platform, operator and where it is going, plus any disruption notice. From National Rail
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | How many services, 1 to 20, default 10 | |
| station | No | Three-letter station code — KGX, MAN, EDB | |
| arrivals | No | Show what is coming in rather than what is leaving |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints, so the description carries the full burden. It reveals the tool's read-only nature through phrases like “live departure or arrival board” and “From National Rail,” and further details returned fields: scheduled and expected time, platform, operator, destination, and disruption notices.
Agents need to know what a tool does to the world before calling 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: one defines the tool's core purpose, the second enumerates the key output fields. Every sentence adds value, and it is appropriately brief for a tool of this 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?
With no output schema, the description does a good job of explaining what results include: scheduled/expected times, platform, operator, destination, and disruption notices. It is sufficiently complete for a simple, well-parameterized lookup tool, though it omits edge cases like invalid station codes or default 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 already documents all three parameters with 100% description coverage, so the baseline is 3. The main description mostly reinforces station code and adds source context rather than new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a live departure or arrival board for British railway stations using a three-letter station code, with specific reference to National Rail. This distinguishes it from bus and other transit tools in the sibling list, such as transit_buses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes a use context: train departures/arrivals at a British National Rail station by three-letter code. It does not explicitly mention alternatives or exclusions like “use transit_buses for buses,” but the context is clear enough to guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_listBrowse videoARead-onlyIdempotentInspect
Read the latest videos from curated channels
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional max number of videos (default all recent) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds context about 'latest' and 'curated channels' but does not disclose ordering, pagination, or default behavior beyond what the schema already states for 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?
The description is a single, concise sentence that is front-loaded with the core action ('Read the latest videos') and adds relevant context ('from curated channels'). Every word contributes to 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 simple list tool with one optional parameter and strong annotations, the description provides sufficient context. It lacks explicit differentiation from video_search and return-format details, but the schema covers the parameter and annotations cover safety, making it mostly 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% for the only parameter (limit), so the schema fully documents it. The description does not add any additional 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 it reads/browses the latest videos from curated channels, using a specific verb and resource. It is distinct from video_search, though it does not explicitly name the sibling tool, so it lacks direct 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 implies the tool is for browsing recent videos from curated channels, which hints at when to use it (versus searching), but it does not explicitly state when to use it vs alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_searchSearch videoARead-onlyIdempotentInspect
Search videos from the channels this instance curates. A curated set rather than all of YouTube, so a miss means it is not followed here, not that it does not exist
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to search for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds meaningful context about the curated scope and clarifies that a miss means the video isn't in this set, which is valuable behavioral information beyond what annotations provide. No contradictions detected.
Agents need to know what a tool does to the world before calling 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 and front-loaded, with just two sentences. The first sentence states the core purpose, and the second adds a crucial caveat. Every phrase earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 single parameter and read-only annotations, the description covers the essential context: what it searches, the scope, and how to interpret results. No output schema exists, but the return behavior is implied. The description is complete for its 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?
The schema provides full coverage for the single 'query' parameter with the description 'What to search for.' The tool description does not add further parameter-specific semantics. Since schema coverage is 100%, 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 function: 'Search videos from the channels this instance curates.' It uses a specific verb ('Search'), identifies the resource ('videos'), and defines the scope ('curated channels'). It also distinguishes itself from a full YouTube search, which helps differentiate it from sibling search tools like web_search or video_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 provides context that this searches only curated channels, implying it is not appropriate for comprehensive YouTube searches. However, it does not explicitly state alternative tools or when to prefer this over siblings like video_list or web_search. The guidance is useful but implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_addressGet an email addressBRead-onlyIdempotentInspect
Your own address on Base, to receive USDC. Created the first time you ask. Funds sent on any other chain land at the same address there and cannot be reached from here
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Created the first time you ask,' which implies a write/side-effect operation. This directly contradicts the readOnlyHint annotation that declares the operation read-only. Per rubric, a contradiction yields a score of 1 and flags annotation_contradiction as 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?
The description is three concise sentences that front-load the core purpose, then add relevant caveats. There is no unnecessary wording, and the structure is easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and important warnings, but the contradiction with readOnlyHint makes the operation's side effects unclear. Since there is no output schema, the description should clarify the return format; 'Your own address' implies the return value, but the contradiction undermines 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 tool has zero parameters and an empty input schema, so there are no parameter descriptions needed. The description adds context about lazy creation, which is behavior rather than parameter semantics. Baseline 4 is appropriate for a zero-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 clearly states that the tool returns the user's own address on Base for receiving USDC, distinguishing it from sibling tools like wallet_balance and wallet_pay. The title 'Get an email address' is misleading, but the description itself is unambiguous about the resource and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the tool's purpose ('to receive USDC') and includes a caution about cross-chain funds being unreachable, effectively providing a when-not-to-use scenario. However, it does not mention alternative tools or explicitly compare with wallet_list or others, 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.
wallet_balanceCheck walletARead-onlyIdempotentInspect
What your wallet holds in USDC on Base. Says so plainly when the chain could not be reached, because that is not the same as holding nothing
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description discloses a key edge-case behavior: when the chain cannot be reached, the tool will explicitly say so rather than returning a zero balance, which is semantically different. This is valuable behavioral context that the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and reasonably concise. The first sentence front-loads the main purpose, while the second adds important behavioral nuance. It is slightly wordy ('Says so plainly...') but every phrase serves a purpose, so it earns a solid 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless read-only tool, the description is largely complete. It states what is checked and how an edge case (chain unreachable) is handled. It does not describe the exact return format, but with no output schema, a simple balance tool likely needs no further detail. The annotations cover safety, making this 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 has zero parameters, and the schema already reflects that (100% coverage). The description adds no parameter details because there are none to add. Baseline for 0 params is 4, and the description does not need to compensate for anything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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: checking what a wallet holds in USDC on Base. The resource and specific scope (USDC on Base) are precise, and the phrasing distinguishes it from sibling tools like wallet_pay (which sends) and wallet_list (which likely lists wallet accounts or transactions). The verb is implicit but 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 explicit guidance on when to use this tool versus alternatives. It does not mention wallet_pay or wallet_address or provide any exclusion criteria. The intended use case is implied by the purpose, but there is no direct comparison or contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_listBrowse walletARead-onlyIdempotentInspect
Which priced servers this wallet is allowed to pay, by name. Pass one of these names to wallet_pay
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds useful context that the tool returns names of allowed servers, enriching the understanding beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence states the purpose and usage. No filler words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless list tool, the description fully covers what it returns and how to use the result. No output schema exists, but the description sufficiently explains 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?
With zero parameters, the schema provides all needed information. The description's mention of 'by name' and 'pass one of these names' indirectly clarifies the expected output usage, but the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists priced servers this wallet can pay, using a specific verb ('browse') and resource ('wallet'). It differentiates from wallet_pay by noting the output names are inputs for that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance to pass one of the returned names to wallet_pay, indicating a clear follow-up action. It implies the tool should be used before wallet_pay to discover eligible servers, though it doesn't explicitly rule out alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_payPay walletAInspect
Call a tool on one of those servers and pay for it from your wallet if it asks. Nothing is spent when the tool is free. Every payment is capped per call and per day, so a server cannot name any price it likes
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments for that tool | |
| tool | Yes | The tool to call on that server, e.g. web_search | |
| server | No | Which server to call, by the name wallet_list gives. Defaults to this instance |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With minimal annotations, the description carries the full burden and does well: it discloses the payment behavior, free-tool handling, and per-call/per-day caps. It does not cover error cases or return values, but the core behavioral traits are transparently 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 three sentences, each providing distinct value: core action, free-tool clarification, and payment safety. 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?
The tool has no output schema, and the description does not mention what the tool returns (e.g., the result of the called tool) or error scenarios. It also relies on vague 'those servers' without explicitly linking to wallet_list, though the schema helps. Some gaps remain, but the payment model is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are already well documented. The description adds context about payment but does not add syntax or additional meaning beyond the schema, keeping it at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calls another tool and pays for it via wallet, with explicit details on free tools and payment caps. It distinguishes from sibling wallet tools (balance, list, address) by focusing on the payment aspect. Still, the phrase 'those servers' assumes prior context, 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?
The description gives clear context for when to use this tool: whenever a tool asks for payment, and reassures that free tools cost nothing. It does not explicitly mention alternatives or when not to use it, but the context is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_airAir weatherAInspect
Air quality at a location right now — AQI, PM2.5, PM10, ozone, nitrogen dioxide, UV index, and pollen where it is counted
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the location | |
| lon | Yes | Longitude of the location |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title with no readOnlyHint or destructiveHint, so the description carries the full burden. It notes a pollen caveat ('where it is counted') and lists measured parameters, but it does not disclose data source, update frequency, or any safety concerns. The read-only nature is implied but not explicitly 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, dense sentence with no filler. It front-loads the primary purpose ('Air quality at a location right now') and efficiently lists the included measurements and the pollen 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 two-parameter tool with no output schema, the description adequately summarizes what is returned (AQI, PM2.5, PM10, etc.). It covers the temporal scope and the pollen availability caveat. Missing units or response structure, but the description is sufficient for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both lat and lon described. The description adds 'at a location' but no further detail on coordinate ranges or formats. It does not explain how parameters map to the listed metrics, so value beyond the schema is 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 identifies the tool as providing current air quality data, listing specific metrics (AQI, PM2.5, PM10, etc.). It distinguishes from weather_forecast and weather_history through 'right now' and 'air quality' focus, though it lacks an explicit verb like 'get' or 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for current air quality queries but does not explicitly state when to prefer it over weather_forecast or weather_marine. No exclusions or alternative tool names are provided, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_forecastForecast weatherARead-onlyIdempotentInspect
Get the weather forecast for a location — current conditions, the days ahead, and today's sunrise, sunset and how much daylight is left, which is the fact that decides an afternoon outdoors
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the location | |
| lon | Yes | Longitude of the location |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only and idempotent behavior. The description adds useful behavioral detail by specifying the output categories (current conditions, days-ahead forecast, sunset, and daylight remaining). It does not mention potential quirks like timezone or unit assumptions, but for a read-only weather lookup this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that communicates the core purpose and key returned fields. The closing phrase 'which is the fact that decides an afternoon outdoors' is mildly redundant color but not excessive, so it remains tightened 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?
For a simple two-parameter read-only tool with no output schema, the description provides a reasonable outline of the response content: current conditions, daily forecast, and daylight-related values. It could complete timezone/units details, but these are minor for basic forecasting, and the schema plus annotations carry the safety and parameter 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 coverage is 100%, so the description does not need to explain lat/lon in depth. The schema entries are minimal (only 'Latitude of the location'), and the description adds nothing about valid ranges, formats, or coordinate precision, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a resource ('weather forecast for a location'), and enumerates what it returns: current conditions, days ahead, and daylight info. It does not explicitly name and distinguish sibling weather tools (e.g., weather_history, weather_air, weather_marine), but the scope is nonetheless concrete and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 primary use case: obtaining current and near-future weather plus the sunrise/sunset daylight detail, with a hint at an outdoor planning scenario. However, it offers no explicit exclusions or comparisons such as 'for past weather use weather_history' or 'for air quality use weather_air', leaving sibling differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_historyHistory weatherAInspect
What the weather actually was at a location between two dates — average high and low, total rainfall and the extremes. Records run a few days behind today
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Last day, as 2025-08-31 | |
| lat | Yes | Latitude of the location | |
| lon | Yes | Longitude of the location | |
| start | Yes | First day, as 2025-08-01 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations providing only a title, the description must carry the burden of behavioral disclosure. It does disclose the data lag ('run a few days behind today') and lists the data points returned, but it omits important behavioral details such as return format, units, timezone handling, or error conditions. This is a moderate disclosure for an otherwise opaque 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 purpose ('what the weather actually was'), specifies the inputs (location, date range), and lists outputs (average high/low, rainfall, extremes) with a note on data freshness. No words are wasted, and the dash structure improves readability 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 no output schema, the description does a good job of enumerating the key return data (average high/low, rainfall, extremes) and the temporal constraint (records lag). It could be more complete by specifying units or date formatting, but it provides enough context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented structurally. The description adds context by framing start/end as 'between two dates' and lat/lon as 'location', but it doesn't provide new per-parameter semantics beyond what the schema states. A baseline of 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 tool retrieves actual historical weather at a location between two dates—'what the weather actually was'—and specifies the metrics returned (average high/low, rainfall, extremes). This distinguishes it from sibling tools like weather_forecast, which predict future conditions, and weather_marine/air, which focus on different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'actually was' implies historical data vs. forecast, and 'Records run a few days behind today' gives a concrete usage constraint. It provides clear context for when to select this tool, though it does not explicitly name alternatives like weather_forecast 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.
weather_marineMarine weatherAInspect
Sea state at a coastal or offshore point — wave height, period and direction now and for the days ahead, with sea temperature
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of a coastal or offshore point | |
| lon | Yes | Longitude of a coastal or offshore point | |
| days | No | How many days ahead, 1 to 7 — default 3 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide only a title, so the description carries the transparency burden. It discloses that data includes 'now and for the days ahead', which conveys a forecast scope, and lists the provided metrics. However, it does not mention edge case behavior, data source, or any caveats, leaving some behavioral aspects undeclared. Since it is a read-only weather tool, the description is adequate but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence delivers all essential information—resource, location type, data types, and temporal scope—without any filler or redundancy. It is concise yet 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 (3 parameters, no output schema) and the description explains the returned data types and time range, which is sufficient for basic use. It could be more complete by specifying units (e.g., meters, seconds, degrees Celsius) or noting data limitations, but given the low complexity and full schema coverage, it offers a complete enough 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?
The input schema already covers all three parameters with descriptive text (lat/lon and days default 3), so the description adds no additional parameter clarification beyond repeating the time scope ('days ahead'). With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely identifies the tool's domain: 'Sea state at a coastal or offshore point' and enumerates the specific data (wave height, period, direction, sea temperature). This clearly distinguishes it from sibling weather tools like weather_forecast, weather_air, and weather_history, which cover general forecast, air quality, or historical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for marine/coastal conditions by specifying 'coastal or offshore point', but it does not explicitly state when to prefer this tool over alternatives or mention any exclusions. Usage context is embedded in the description but not formalized as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_fetchFetch webAInspect
Fetch a web page by URL and return its cleaned readable content, stripping ads, popups and navigation. Needs an account
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to fetch |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses meaningful behavioral traits beyond the sparse annotations: it returns cleaned content, strips ads/popups/navigation, and requires an account. It does not mention failure modes or edge cases, but for a simple fetch tool this is reasonable disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler, front-loading the primary action and immediately covering output behavior and a key prerequisite. 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?
Given the tool's low complexity, one fully documented parameter, and lack of output schema, the description sufficiently covers purpose, output nature, and auth requirement. It could mention web_search as the alternative for finding URLs, but that is not essential to basic 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 url parameter, so the schema already documents the parameter fully. The description repeats 'by URL' without adding format, protocol details, or usage nuances 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 fetches a web page by URL and returns cleaned readable content, which distinguishes it from sibling tools like web_search. It names the specific verb, resource, and transformation performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 specific URL to fetch, especially given the sibling web_search tool for finding pages, but it does not explicitly mention alternatives or state when not to use this tool. The account requirement adds context but no direct comparison to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchSearch webBRead-onlyIdempotentInspect
Search the web for current information and news
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional max number of results | |
| query | Yes | Search query |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, covering the safety profile. The description adds minimal behavioral context by noting 'current information and news', suggesting a focus on recent data. However, it does not disclose potential limitations such as result pagination, rate limits, or query syntax, which would be valuable beyond the annotations. Still, since annotations cover the core safety traits, 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 sentence, extremely concise and front-loaded. Every word contributes to the core purpose ('Search the web for current information and news'). It avoids redundancy and is easy to scan, though it could have used that space to add slightly more useful 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's simplicity (2 params, no output schema) and the presence of annotations, the description is thin but not severely under-specified. However, it lacks any mention of result format, pagination, or typical use cases. For a tool with no output schema, some indication of what the agent should expect (e.g., list of URLs, snippets) would improve completeness. The description is adequate for basic invocation but leaves gaps for a fully informed 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?
The input schema fully describes both parameters (query and limit) with specific descriptions, so the schema coverage is 100%. The tool description adds no additional meaning about parameter semantics, such as query formatting, limit constraints, or default behavior. With complete schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the web' with a direct verb and resource, making the tool's purpose unambiguous. However, it does not explicitly distinguish itself from sibling tools like news_search or images_search, though 'web' is generic enough to encompass them. It slightly differentiates by mentioning 'current information and news', which implies freshness, but it's not strongly distinguished from other search variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 only states what it does, without any context about appropriate scenarios, exclusions, or comparisons to sibling search tools. This leaves 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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceExposes news search and top headlines via GNews API, plus simulated email tools for sending and retrieving emails.

Ready APIsofficial
AlicenseNot gradedqualityCmaintenanceMCP tools for geo, email, phone, company, DNS, FX, equities, weather, tax, economics, and intelligence — streamable HTTP, one API key.MIT- AlicenseNot gradedqualityDmaintenanceProvides web browsing, multi-engine search, and news retrieval tools for local LLMs via the Model Context Protocol, optimized for low-token iterative access with outline-first browsing and selective drill-down.2MIT
- AlicenseAqualityCmaintenanceSearch 21 sources in one call — GitHub, npm, PyPI, arXiv, HN, X, Reddit, and more. No API keys to juggle, structured JSON back.21291MIT
Your Connectors
Sign in to create a connector for this server.
social_listBrowse socialARead the latest social posts from the network
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description's 'Read' aligns with these. The description adds the behavioral detail of returning 'latest' posts, but does not disclose other traits like pagination, ordering, or what 'network' means. It provides some value beyond annotations but is not rich in 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 front-loads the verb and resource. It contains no redundant phrases and effectively communicates the core 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 read-only tool with good annotations and a single optional parameter, the description is mostly complete. It could be slightly improved by noting that results are ordered by recency or limited to public posts, but the current description is adequate for an agent to understand the tool's 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?
The input schema fully describes the only parameter (limit) with a default behavior, so schema coverage is 100%. 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 clearly states the tool reads social posts, using the specific verb 'Read' and identifying the resource as 'social posts'. The word 'latest' adds a temporal scope that distinguishes it from social_search (searching) and stream_post (posting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 browsing recent posts but provides no explicit guidance on when to use this tool versus social_search or stream_list. No alternatives or exclusions are mentioned, so the agent must infer the appropriate 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.