Skip to main content
Glama

Server Details

News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
micro/mu
GitHub Stars
375
Server Listing
mu

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 3.9/5 across 113 of 113 tools scored. Lowest: 2.9/5.

Server CoherenceA
Disambiguation5/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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness4/5

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 tools
apps_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

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the app to build, e.g. 'an expense tracker', 'a packing checklist', 'a water intake counter'
Behavior4/5

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.

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and 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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesThe app's HTML, inline CSS and JavaScript included, up to 256KB
iconNoAn SVG icon
nameYesApp name, e.g. "Pomodoro Timer"
slugNoURL-friendly id, e.g. pomodoro-timer. Derived from the name if omitted
tagsNoComma-separated tags
priceNoCredits charged per use, 0 for free, up to 1000
descriptionNoWhat the app does. Defaults to the name
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoNew HTML, up to 256KB. Left alone if omitted
iconNoNew SVG icon. Left alone if omitted
nameNoNew name. Left alone if omitted
slugYesThe app's URL slug, e.g. pomodoro-timer
tagsNoNew comma-separated tags. Left alone if omitted
priceNoCredits charged per use, 0 for free, up to 1000
descriptionNoNew description. Left alone if omitted
Behavior4/5

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.

Conciseness5/5

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

The description is a single, focused sentence that front-loads the core action and 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.

Completeness4/5

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.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description lists the 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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe app's URL slug
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

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

Parameters3/5

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

Schema description coverage is 100%, so the single '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.

Purpose5/5

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

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

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesSlug of the app to fork
new_slugNoSlug for the copy. Generated from the original if omitted
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives clear context: use this tool 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 appsA
Read-onlyIdempotent
Inspect

Read the details of one app by its slug

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe app's URL slug, e.g. pomodoro-timer
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds 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.

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with 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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe app's URL slug
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool has only 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.

Parameters3/5

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

The input schema already provides 100% coverage for 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.

Purpose5/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines3/5

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

With a kind, the most recent entries of it. Without one, what kinds are archived and how much of each

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoOne kind: news, video, market, blog, prayer. Omit for a summary of what is here
limitNoMax entries (default 20, max 100)
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the 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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (2 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines3/5

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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoComma-separated tags
titleNoPost title. One is generated from the body if omitted
contentYesThe post body, at least 50 characters
privateNoTrue to keep it to yourself
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not 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.

Purpose5/5

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.

Usage Guidelines5/5

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 blogA
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoThe post's id, as given by blog_list
titleNoThe 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
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

Read recent blog posts — titles, snippets and ids

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional max number of posts (default all recent)
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoThe post's id, as given by blog_list
titleNoThe post's title, or enough of it to be unambiguous — use this when you have a name rather than an id
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe post's id, as given by blog_list
tagsNoNew comma-separated tags. Left alone if omitted
titleNoNew title. Left alone if omitted
contentNoNew body, at least 50 characters. Left alone if omitted
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe page to open
waitNoOptional CSS selector to wait for before reading, for content that arrives late
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already 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.

Purpose5/5

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

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

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe page to photograph
fullNoCapture the whole page rather than one screenful
waitNoOptional CSS selector to wait for before the shot
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
roomNoRoom id, as returned by Rooms
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many rooms to return (default 20)
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses the specific verb 'List' 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.

Usage Guidelines3/5

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

The description implies when to use this tool (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

ParametersJSON Schema
NameRequiredDescriptionDefault
roomYesRoom id, as returned by chat_rooms
contentYesWhat to say
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe person's name, e.g. "Sarah Chen"
noteNoAnything worth remembering about them
emailNoTheir email address
phoneNoTheir phone number
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds 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.

Purpose5/5

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.

Usage Guidelines4/5

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 contactsA
Destructive
Inspect

Remove someone from the address book

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe contact's id, from contacts_find or contacts_list
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

The tool is simple with 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA name, part of a name, or an address
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

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

Purpose5/5

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

The description uses a specific verb ('Look 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.

Usage Guidelines4/5

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

List everyone in the caller's address book

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

There are no parameters, and schema coverage is 100% (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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives clear context for 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 docsA
Destructive
Inspect

Delete one of your documents, by id

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDocument id, from docs_list
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines3/5

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

List your documents, most recently changed first, with an optional search over titles and bodies. Use this to find an id

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum documents to return (default 50)
queryNoOptional text to match against titles and bodies
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Explicitly tells the agent to use this 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 docsA
Read-onlyIdempotent
Inspect

Read one of your documents in full, by id or by exact title

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoDocument id, from docs_list
titleNoExact title, if you do not have the id
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives clear context: use this tool to 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

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoExisting document id to replace. Omit to create a new one
titleYesThe document's title
publicNoReadable by anyone when true. Private by default
contentYesThe document's body, as markdown
Behavior4/5

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.

Conciseness5/5

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

The description is two sentences, front-loaded with the main action, and 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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional extra detail
whenYesWhen to fire, RFC3339 with timezone offset, e.g. 2026-07-22T15:00:00+01:00
titleYesWhat to be reminded about, e.g. 'Call the dentist'
promptNoOptional instruction to run through the agent when it fires, e.g. "brief me on today's news". The answer is mailed to you
repeatNoHow often it recurs: hourly, daily, weekly or monthly. Omit for once
minutesNoHow long it lasts in minutes (default 30)
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines3/5

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 eventsB
Destructive
Inspect

Cancel an event by id

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe event's id, as given by events_list
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

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

Purpose4/5

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.

Usage Guidelines2/5

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

Find when the caller has nothing booked — open slots of a given length, within working hours

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd of the window, RFC3339. Defaults to a week after from
fromNoStart of the window to search, RFC3339, e.g. 2026-08-03T00:00:00+01:00. Defaults to now
day_endNoLatest hour of the day to offer, 0-23 (default 18)
minutesNoHow long a slot you need, in minutes (default 30)
day_startNoEarliest hour of the day to offer, 0-23 (default 9)
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the 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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives clear context for when to use the tool (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 eventsA
Read-onlyIdempotent
Inspect

List the caller's upcoming events and reminders, each with its id

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given no output schema, the description provides 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.

Parameters4/5

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.

Purpose5/5

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

The description uses the specific verb 'List' and 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.

Usage Guidelines4/5

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 filesA
Destructive
Inspect

Delete a file you own

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe file's id
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

Read a stored file back by its id

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe file's id, as returned by files_put or files_list
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds 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.

Conciseness5/5

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.

Completeness5/5

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

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

List the caller's stored files, newest first

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters4/5

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.

Purpose5/5

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

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

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFile name including its extension, e.g. "report.csv"
typeNoOptional content type, e.g. "text/csv". Guessed from the name when omitted
contentYesThe file's contents — plain text, or base64 when encoding is "base64"
encodingNo"base64" for binary files; omit for text
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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

The description is adequate for a simple 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all four parameters (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.

Purpose5/5

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

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

Usage Guidelines3/5

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.

files_shareShare filesAInspect

Make a file readable by anyone with its URL, or private again

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe file's id
publicYesTrue to let anyone with the URL read it, false to make it private again
Behavior2/5

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

Annotations provide only a title, so the description carries full burden. It describes the action ('make readable' or 'private again') but lacks behavioral context such as whether it requires permissions, whether old URLs stop working when made private, or any side effects. No annotation contradiction exists.

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

Conciseness5/5

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

A single sentence that is front-loaded with the action and outcome. No filler, concise, and perfectly sized for the tool's simplicity.

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

Completeness4/5

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

The tool is simple with only two parameters and no output schema. The description covers the core functionality and the schema provides parameter details. Some missing context (e.g., permissions, revocation of URLs) but for a straightforward toggle this is a minor gap.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description adds no extra meaning beyond the schema; it essentially restates the 'public' parameter's effect. 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.

Purpose5/5

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

The description clearly states a specific verb ('Make') and resource ('a file'), and specifies the outcome: readable by anyone via URL or private again. It distinguishes from sibling file tools like files_get, files_put, and files_delete by focusing on sharing state.

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

Usage Guidelines4/5

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

The description clearly implies the usage context: when you want to change a file's public accessibility. However, it does not explicitly mention alternatives or exclusions, such as 'use files_get to read instead' or 'requires ownership', but the context is sufficiently clear for a simple toggle.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesAn airport code or name, e.g. 'LHR', 'EGLL' or 'Heathrow'
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb ('Report') and 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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional latitude, if the location is already known
lonNoOptional longitude, if the location is already known
nearNoWhere to look: a place name, or an airport name or code, e.g. 'Camden, London' or 'LHR'
radiusNoOptional radius in nautical miles (default 30, maximum 250)
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Even without an output schema, the description lists the 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.

Parameters3/5

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

Schema coverage is 100% and each parameter already has a meaningful description. 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.

Purpose5/5

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

The description uses a specific verb ('List') and 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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
flightYesA flight number ('BA117'), a radio callsign ('BAW117'), or an aircraft registration ('G-ZBKL')
Behavior4/5

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.

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and 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.

Completeness4/5

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

For a simple one-parameter lookup with no output schema, the description provides 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional: look around this point instead
lonNoOptional: look around this point instead
nameNoBusiness name, e.g. 'Nandos'
limitNoHow many to return, default 10, max 30
whereNoTown, street or postcode to narrow it to
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
barcodeYesThe barcode, 6 to 14 digits, e.g. 5000168034928
Behavior4/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the 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.

Completeness4/5

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

For a simple one-parameter lookup 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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional: only alerts near this point
lonNoOptional: only alerts near this point
levelNoLowest level to include: green, orange or red — default green (everything)
within_kmNoOptional: how near, in kilometres, default 1000 when lat/lon given
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional: only warnings near this point
lonNoOptional: only warnings near this point
severeNoOnly warnings and severe warnings — leave out the be-prepared alerts
within_kmNoOptional: how near, in kilometres, default 30 when a point is given
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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

For a simple list tool with no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool provides 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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional: only events near this point
lonNoOptional: only events near this point
minNoSmallest magnitude to include, default 2.5
periodNohour, day, week or month — default day
within_kmNoOptional: how near, in kilometres, default 500 when lat/lon given
Behavior3/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose and then 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.

Completeness4/5

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

For a simple read-only query tool with 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.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesWhat the image should depict
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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

Schema coverage is 100% and the sole parameter `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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives (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.

mail_inboxRead mailA
Read-onlyIdempotent
Inspect

List the account's most recent messages — read my mail, check my inbox

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax messages (default 10)
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb ('list') and 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.

Usage Guidelines3/5

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

The description implies the tool is for 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)

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoA label for this handle, e.g. "research" or "receipts". Omit for the plain one
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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

The tool is simple with 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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_sendSend mailA
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient: a username on this instance, or a full email address. Resolve a name with contacts_find first
bodyYesMessage body, plain text
subjectYesMessage subject
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

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

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
eastNoEastern edge, in degrees longitude
westNoWestern edge
zoomNoZoom level, 0 to 20
northNoNorthern edge, in degrees latitude
southNoSouthern edge
styleNoroad, outdoor or light
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a tool with no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoTile column at that zoom
yNoTile row at that zoom
zNoZoom level, 0 to 20
styleNoroad, outdoor or light — outdoor has rights of way and contours
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesCurrency or asset to convert to, as a code: JPY, USD, ETH…
dateNoOptional: the rate on a past day, as 2020-01-03. Currencies only, back to 1999
fromYesCurrency or asset to convert from, as a code: GBP, USD, EUR, BTC…
amountNoHow much to convert. Default 1
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Get live prices for cryptocurrencies, stocks, commodities (oil, gold, silver, copper and crops), futures and currencies

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNocrypto (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
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is 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.

Conciseness5/5

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.

Completeness5/5

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

Given the tool's simplicity (one optional parameter, 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: 'Get 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.

Usage Guidelines4/5

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

The description implies when to use the tool: 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 newsA
Read-onlyIdempotent
Inspect

Read recent news headlines with short summaries, balanced across topics

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional max number of headlines (default 30)
topicNoOptional topic/category filter (e.g. tech, world, business)
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

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

Parameters3/5

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

The input schema already provides 100% coverage with descriptions for both '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.

Purpose5/5

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.

Usage Guidelines3/5

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

Read one news article in full by its id or URL

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesArticle id (from Headlines) or article URL
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a single-parameter, read-only tool with no output schema, the description 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.

Parameters3/5

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

Schema coverage is 100%; the schema already describes 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

notes_addAdd notesAInspect

Write a note under a title, so it is there next conversation. Writing a title that exists rewrites that note

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesWhat the note says
titleYesWhat the note is called, e.g. "location" or "project brief". Writing a title that exists rewrites that note
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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

The description implies when to use the tool: to 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 notesA
Destructive
Inspect

Delete one note by title

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe note to delete, as returned by notes_list
Behavior3/5

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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It states the action and the required argument succinctly.

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

Completeness5/5

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

For a one-parameter 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Read one note by title. Use it when you know the title; notes_list when you do not

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe note's title, as given to notes_add
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

The input schema has 100% coverage for the single '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.

Purpose5/5

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.

Usage Guidelines5/5

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

List every note the caller has written, with its text

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters4/5

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.

Purpose5/5

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

The description uses the specific verb 'List' 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.

Usage Guidelines4/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude, e.g. 51.5308
lonYesLongitude, e.g. -0.1238
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple two-parameter read-only tool, the description covers 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.

Parameters3/5

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

Schema coverage is 100%, with each parameter having a description 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.

Purpose5/5

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

The description clearly states the tool's function ('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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional latitude, if the location is already known
lonNoOptional longitude, if the location is already known
placeNoA place name or address, e.g. 'Denver' or 'Ben Nevis'
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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

The input schema already describes all three parameters with 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.

Purpose4/5

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

The description clearly states the tool's 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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoA place name or address to locate
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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

For a simple tool with one parameter 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage: when you need 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 placesA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOptional latitude
lonNoOptional longitude
nearNoPlace to look around, e.g. 'Camden, London' (or give lat/lon)
queryNoOptional keyword to filter by, e.g. 'cafe'
radiusNoOptional radius in metres (default 1000)
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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

For a read-only, idempotent tool with 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

prayer_qiblaQibla for prayerA
Read-onlyIdempotent
Inspect

Get the qibla — the compass bearing to face for Islamic prayer from a location

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the location
lonYesLongitude of the location
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: to 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.

Usage Guidelines3/5

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

The description implies the use case (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 prayerA
Read-onlyIdempotent
Inspect

Get today's Islamic reflection — a verse of the Quran with its surah, a saying of the Prophet, and a name of Allah

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action 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.

Completeness4/5

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

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

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool retrieves '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.

Usage Guidelines3/5

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

The description implies usage for obtaining 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 prayerB
Read-onlyIdempotent
Inspect

Look up a hadith from Sahih al-Bukhari, optionally from a given book

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNoBook number within Sahih al-Bukhari. Omit for a saying from any book
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

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

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention 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_timesPrayer times for prayerA
Read-onlyIdempotent
Inspect

Get today's Islamic prayer times (salah) for a location, and which prayer is next

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone of the location, e.g. Europe/London (defaults to UTC)
latYesLatitude of the location
lonYesLongitude of the location
methodNoCalculation convention: isna, mwl, egypt, karachi, gulf, diyanet, muis or jakim (defaults to isna)
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's function: 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.

Usage Guidelines3/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
verseNoVerse number within the chapter. Omit for the whole chapter
chapterYesChapter (surah) number, 1-114
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

The description explicitly states when to use this tool (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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe conversation's id, as recall_search reports it
limitNoMax messages, most recent kept (default 50)
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

List the caller's conversations, most recently active first, with what each is about and where it happened

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax conversations (default 20)
clientNoOnly conversations on one client: web, mail, cli
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the 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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary 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.

Completeness5/5

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

For a simple list tool with no output schema, the description 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.

Parameters3/5

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

Input schema has 100% coverage for both parameters (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.

Purpose5/5

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.

Usage Guidelines4/5

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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoWhere the journey ends, e.g. 'Heathrow Airport'
fromNoWhere the journey starts, e.g. 'King's Cross, London' (or give from_lat/from_lon)
modeNoHow to travel: drive (default), walk, cycle or transit
to_latNoOptional end latitude, if already known
to_lonNoOptional end longitude, if already known
from_latNoOptional start latitude, if already known
from_lonNoOptional start longitude, if already known
arrive_byNoBe there by this time, as RFC3339. Cannot be combined with depart_at
depart_atNoWhen the journey starts, as RFC3339. Defaults to now
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool provides 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.

Usage Guidelines5/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoWhere the journey ends, e.g. 'Heathrow Airport'
fromNoWhere the journey starts, e.g. 'King's Cross, London' (or give from_lat/from_lon)
modeNoHow to travel: drive (default), walk, cycle or transit
to_latNoOptional end latitude, if already known
to_lonNoOptional end longitude, if already known
from_latNoOptional start latitude, if already known
from_lonNoOptional start longitude, if already known
arrive_byNoBe there by this time, as RFC3339. Answers when to leave. Cannot be combined with depart_at
depart_atNoWhen the journey starts, as RFC3339 (e.g. 2026-08-13T08:00:00Z). Defaults to now. Traffic and timetables are read for this time
Behavior4/5

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.

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and 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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesThe places to compare, e.g. ['Heathrow', 'Gatwick', 'Stansted']
fromNoWhere you are starting from, e.g. 'Shoreditch, London' (or give from_lat/from_lon)
modeNoHow to travel: drive (default), walk, cycle or transit
from_latNoOptional start latitude, if already known
from_lonNoOptional start longitude, if already known
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's function: '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.

Usage Guidelines4/5

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

List a directory on your machine

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoThe directory to list, under /work. Defaults to /work
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as 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 shellA
Read-onlyIdempotent
Inspect

Read a file from your machine

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file to read, under /work
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoDirectory to run it in, under /work. Defaults to /work
commandYesA shell command to run, e.g. 'go test ./... 2>&1 | tail -40'
timeoutNoSeconds to allow, up to the instance's maximum. Defaults to 120
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema coverage is 100% and each parameter already has a 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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWhere to put it, under /work. Missing directories are created
contentYesThe whole file. This replaces what was there
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many messages to return, newest first (default 50, max 200)
Behavior4/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary 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.

Completeness4/5

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

For a simple tool with one parameter 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.

Parameters3/5

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

Schema description coverage is 100% for the single 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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description implies when to use 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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

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

Parameters4/5

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

The tool has zero parameters and the schema is empty 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus 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 smsA
Destructive
Inspect

Text somebody, from this instance's number. Charged per 160-character segment, capped per day, and the recipient can stop it with STOP

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesThe number to text, in international format, e.g. +447700900123. Use contacts_find to turn a name into one
textYesWhat to say. Charged per 160-character segment, so brevity is not only good manners
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe code that was texted to that number. Omit to have one sent
numberYesYour own number, in international format
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

Given the simple two-parameter schema, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_listBrowse socialA
Read-onlyIdempotent
Inspect

Read the latest social posts from the network

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional max number of posts (default all recent)
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

stream_listBrowse streamC
Read-onlyIdempotent
Inspect

Read what has happened here recently

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many entries to return (default 20, max 100)
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoOptional deadline, RFC3339 or 2006-01-02 15:04
titleYesWhat is to be done
detailNoAnything the doer needs to know: context, links, constraints
assigneeNome (default) or agent — assign to the agent and it can pick the task up
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 tasksB
Destructive
Inspect

Remove a task

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task's id
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention 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 tasksA
Read-onlyIdempotent
Inspect

List the caller's tasks, open ones first; optionally filtered by state

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOptional filter: todo, doing or done
Behavior4/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action ('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.

Completeness5/5

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

For a simple list tool with one optional parameter and no output schema, the description 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.

Parameters3/5

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

The input schema has 100% coverage for the 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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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

The description clearly implies when to use this tool: 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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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

With no output schema and 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.

Parameters4/5

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.

Purpose4/5

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

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task's id
titleNoNew title
detailNoNew detail
resultNoWhat came of it — the answer, the outcome, what was found
statusNotodo, doing or done
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema coverage is 100% with each parameter described (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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to sort
labelsYesComma-separated labels to choose between
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description provides explicit use cases (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

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to read
schemaYesA JSON schema, or a plain description of the fields wanted
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

The tool has no output schema, but the description 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.

Parameters3/5

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

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

Purpose5/5

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

The description clearly states the tool's function: '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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to summarise
linesNoOptional: roughly how many sentences or bullets
styleNoOptional: 'bullets' for a list, otherwise prose
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget language, e.g. 'French' or 'ar'
textYesThe text to translate
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

The input schema already provides clear descriptions for both parameters (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.

Purpose5/5

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

The description clearly states the tool's function 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor 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

ParametersJSON Schema
NameRequiredDescriptionDefault
stopYesStop name or id, e.g. 'Oxford Circus' or 940GZZLUOXC
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple single-parameter 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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states what the tool 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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude of the point to look around
lonNoLongitude of the point
limitNoHow many to list, default 10
within_kmNoHow far to look, in kilometres — default 2, most 25
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives clear when-to-use context ('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

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoOptional two-letter code to narrow the list: GB, US, ES…
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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

For a simple tool with one optional parameter and no output schema, the description 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
radiusNoMetres to search, default 400, max 2000
Behavior4/5

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.

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and every 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.

Completeness4/5

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

Given the tool's moderate complexity, 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool finds '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.

Usage Guidelines4/5

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

The description provides clear context on when 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

ParametersJSON Schema
NameRequiredDescriptionDefault
modesNoOptional: tube, dlr, overground, elizabeth-line, tram — comma separated
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

For a simple tool with one optional parameter and no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsNoHow many services, 1 to 20, default 10
stationNoThree-letter station code — KGX, MAN, EDB
arrivalsNoShow what is coming in rather than what is leaving
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Read the latest videos from curated channels

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional max number of videos (default all recent)
Behavior3/5

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.

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with 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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

The description implies the tool is for 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.

wallet_addressGet an email addressB
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior1/5

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.

Conciseness5/5

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.

Completeness3/5

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

The description covers the main purpose 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.

Parameters4/5

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

The tool has zero parameters and an empty input schema, so there 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.

Purpose4/5

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.

Usage Guidelines4/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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

The tool has zero parameters, and the schema 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.

Purpose5/5

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

The description clearly states the tool's function: 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.

Usage Guidelines2/5

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

Which priced servers this wallet is allowed to pay, by name. Pass one of these names to wallet_pay

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments for that tool
toolYesThe tool to call on that server, e.g. web_search
serverNoWhich server to call, by the name wallet_list gives. Defaults to this instance
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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

The tool has no output schema, and the description 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

The description gives clear context for when to use 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

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the location
lonYesLongitude of the location
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose4/5

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

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

Usage Guidelines3/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the location
lonYesLongitude of the location
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

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

Parameters3/5

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.

Purpose4/5

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

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

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesLast day, as 2025-08-31
latYesLatitude of the location
lonYesLongitude of the location
startYesFirst day, as 2025-08-01
Behavior3/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose ('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.

Completeness4/5

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

Given the tool has no output schema, the description 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.

Parameters3/5

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

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

Purpose5/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of a coastal or offshore point
lonYesLongitude of a coastal or offshore point
daysNoHow many days ahead, 1 to 7 — default 3
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to fetch
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's low complexity, 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool fetches a 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.

Usage Guidelines3/5

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

The description implies usage when you 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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Search 21 sources in one call — GitHub, npm, PyPI, arXiv, HN, X, Reddit, and more. No API keys to juggle, structured JSON back.
    21
    29
    1
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.