GoodBarber
Server Details
No-code app builder: manage your GoodBarber app, shop, community, bookings, content. MCP 2026-07-28.
- Status
- Healthy
- Uptime
- 98.1% over 60 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- goodbarber/goodbarber-skills
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- GoodBarber
TDQS
Scored across 68 tools
Namespacing (cms_, shop_, studio_, meta_) makes most tools clearly distinct, and resource+action naming separates them well. A few overlaps remain: cms_list_sections vs cms_list_cms_sections, shop_list_downloads vs shop_list_downloads_global, and four near-identical shop_list_promocodes_* variants could cause misselection.
Nearly all tools follow a consistent snake_case namespace_verb_noun pattern (cms_get_article, shop_list_orders, studio_read_file), which is highly readable. Minor deviations appear in studio where verbs mix (get_app_context, read_doc, search_in_files), but the overall pattern holds.
68 tools is far above the well-scoped range and includes many repetitive variants (eight paragraph getters, four promocode list variants, multiple download/pageview analytics tools). The CMS and shop surfaces could be consolidated substantially, making the set bloated for an agent to navigate.
CMS and shop tools are entirely read-only: no create, update, or delete operations for articles, events, products, orders, customers, or collections. Only the studio domain has a full lifecycle (open, read, edit, write, save, close), leaving significant gaps for content and commerce management.
Available Tools
68 toolscms_get_articleGet articleBRead-onlyIdempotentInspect
Retrieve one CMS article by article id after cms_list_articles discovery when needed. Guidance: Retrieve one CMS article by article id after cms_list_articles discovery when needed. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Article id returned by cms_list_articles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate that the operation is read-only, idempotent, and non-destructive, which lowers the burden on the description. However, the description does not mention what is returned, whether missing ids produce errors, or any other behavioral details, leaving some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description repeats the same sentence twice and includes an odd 'Guidance:' and '| context: id' fragment. This redundancy and inconsistent formatting hurt clarity and make the description less concise than it should be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter, the description combined with annotations covers the core purpose and parameter. It does not describe the output shape or error behavior, but these are less critical given the simple nature of the tool and the high schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'id' has 100% schema coverage and its description adds useful provenance by stating it is returned by cms_list_articles. This goes beyond the basic schema and clarifies where the id comes from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves one CMS article by article id, which is a specific verb and resource. It is distinguishable from sibling getters by the 'article' resource, though it does not explicitly contrast with getters for paragraphs or other CMS entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a usage hint ('after cms_list_articles discovery when needed'), but it does not clearly explain when not to use this tool or how it differs from related getters. The guidance is present but minimal and somewhat ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_article_paragraphGet article paragraphBRead-onlyIdempotentInspect
Read one paragraph. Guidance: Retrieve one article paragraph by paragraph id. | context: id, paragraph_id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Article id returned by cms_list_articles. | |
| paragraph_id | Yes | Paragraph id returned by cms_list_article_paragraphs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Read' and 'Retrieve', which aligns with the readOnlyHint, idempotentHint, and non-destructive annotations. It adds a small amount of context about how the paragraph is identified (by paragraph id) but does not describe error behavior or side effects, which are already covered by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but somewhat redundant: 'Read one paragraph' and 'Retrieve one paragraph by paragraph id' convey the same idea. The 'Guidance' and 'context' fragments add a slightly awkward structure, but the overall length is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with fully described parameters and annotations covering safety, the description is adequate. It does not explicitly explain the relationship between the article id and paragraph id, but the parameter descriptions make this clear enough. No output schema exists, so no details are missing there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full coverage of both parameters with clear descriptions ('Article id' and 'Paragraph id'). The tool description mentions 'by paragraph id' and references the context of id and paragraph_id, but adds little beyond what the schema already states. Since schema coverage is 100%, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('one paragraph'), and the tool name clarifies the article context. It is distinguishable from sibling tools like cms_get_article or cms_get_event_paragraph because it explicitly targets a paragraph, though it does not explicitly say 'article paragraph' in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives such as cms_list_article_paragraphs. There is no mention of conditions that would favor retrieval of a single paragraph over listing all paragraphs, leaving the agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_eventGet eventARead-onlyIdempotentInspect
Retrieve one CMS agenda event by event id after cms_list_events discovery when needed. Guidance: Retrieve one CMS agenda event by event id after cms_list_events discovery when needed. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Event id returned by cms_list_events. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, and non-destructive behavior. The description adds no extra behavioral detail such as error cases, return format, or side effects, so it provides only baseline transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but contains significant redundancy: 'Retrieve one CMS agenda event by event id after cms_list_events discovery when needed.' is repeated verbatim as 'Guidance:', followed by an unclear '| context: id' fragment. The repeated sentence does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-event retrieval tool, the description provides sufficient context: it identifies the resource, the required id, and the recommended discovery flow. It does not mention output shape or error behavior, but the absence of an output schema makes this acceptable for such a straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter schema is fully covered by the description in the schema itself, but the description adds helpful context by specifying that the id is returned by cms_list_events. This gives the agent a clear source for the parameter value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (retrieve), the resource (one CMS agenda event), and the key identifier (event id). It is immediately obvious what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance to use this tool after cms_list_events discovery and only when needed. It does not explicitly contrast with sibling tools like cms_get_event_paragraph, but the resource type is clear enough to avoid confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_event_paragraphGet event paragraphBRead-onlyIdempotentInspect
Read one paragraph. Guidance: Retrieve one agenda event paragraph by paragraph id. | context: id, paragraph_id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Event id returned by cms_list_events. | |
| paragraph_id | Yes | Paragraph id returned by cms_list_event_paragraphs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the annotations (readOnlyHint, idempotentHint, destructiveHint) and does not contradict them. However, it adds no extra transparency beyond the annotations, such as potential side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using only two short sentences, and is well-structured with a separate 'Guidance' line. It is easy to read and does not contain fluff, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and parameters, but it does not mention any output format, prerequisites, or related list tools (e.g., cms_list_event_paragraphs). Given that there is no output schema, the description could still benefit from a note about what is returned or when to use this after listing paragraphs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for both parameters ('Event id returned by cms_list_events' and 'Paragraph id returned by cms_list_event_paragraphs'), covering 100% of parameters. The tool description adds no additional semantic information beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'read' and identifies the resource as an 'event paragraph' with a specific identifier. It is distinct enough given the tool name includes 'event' and the description mentions 'agenda event paragraph.' However, it is terse and does not elaborate on what a paragraph is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a basic guidance line ('Retrieve one agenda event paragraph by paragraph id') but does not explicitly explain when to choose this over other paragraph getter tools (e.g., cms_get_article_paragraph). The distinction is implicit via the resource type, but no explicit selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_mapGet mapARead-onlyIdempotentInspect
Retrieve one CMS map item by map item id after cms_list_maps discovery when needed. Guidance: Retrieve one CMS map item by map item id after cms_list_maps discovery when needed. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Map item id returned by cms_list_maps. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior; the description only repeats retrieval semantics and adds no extra behavioral detail such as error or not-found behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains an exact duplicate under 'Guidance:' and a stray '| context: id' suffix, which makes it redundant and noisy despite being short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter getter, the description provides enough purpose and usage context, but the redundancy and lack of return/error detail keep it from being fully polished.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is fully described in the schema as an ID returned by cms_list_maps, so the description adds little beyond reinforcing the source of the ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves a single CMS map item by ID, distinguishing it from listing maps and map paragraphs. The verb 'Retrieve' and resource 'CMS map item' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames usage after cms_list_maps discovery, giving a clear when. It does not name alternative tools or state when not to use it, 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.
cms_get_map_paragraphGet map paragraphCRead-onlyIdempotentInspect
Read one paragraph. Guidance: Retrieve one map item paragraph by paragraph id. | context: id, paragraph_id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Map item id returned by cms_list_maps. | |
| paragraph_id | Yes | Paragraph id returned by cms_list_map_paragraphs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent hints, so the bar is lower. The description adds no further behavioral context—no mention of side effects, error cases, or data returned. It simply repeats the read intent without additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short sentences—with no redundant fluff. The 'Guidance' prefix is slightly odd but does not harm clarity. It is well-structured and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description still omits essential context: it does not explain the relationship between the two ids (map item id and paragraph id) or clarify that both are required. It also lacks any situational context, making it incomplete for an agent deciding to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because both parameters have descriptions in the input schema. The tool description itself does not add any semantic detail beyond listing 'id, paragraph_id', so it neither enhances nor detracts from the parameter meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and the resource ('one map paragraph'), which is specific enough to distinguish from other get_* tools. However, it only mentions 'paragraph id' without explicitly referencing the map id parameter, so it is not fully explicit about the required input combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like cms_list_map_paragraphs or cms_get_map. The 'Guidance' section merely restates the purpose rather than offering selection criteria or exclusions, leaving the agent without direction on tool choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_photoGet photoBRead-onlyIdempotentInspect
Retrieve one CMS photo gallery item by photo id after cms_list_photos discovery when needed. Guidance: Retrieve one CMS photo gallery item by photo id after cms_list_photos discovery when needed. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Photo item id returned by cms_list_photos. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which cover the safe read behavior. The description's 'Retrieve' aligns with these annotations but adds no extra behavioral context such as error handling or response format, so the bar is partially met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains significant redundancy: the main sentence and the 'Guidance' sentence are nearly identical, and the trailing '| context: id' appears to be a template artifact. This bloats the text and distracts from the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not need to explain return values. The parameter is well-covered and annotations handle safety. However, the ambiguous 'when needed' and lack of context about when to prefer this over list_photos leaves some gaps, though it is adequate for a simple get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'id' is described as 'Photo item id returned by cms_list_photos', which gives clear provenance and meaning. This adds value beyond the schema's type and requirement, though it could be more explicit about the id being the specific photo identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a single CMS photo gallery item by photo id, using the specific verb 'Retrieve' and identifying the resource. It also mentions discovery via cms_list_photos, which helps differentiate it from list and other get tools, though the wording is slightly indirect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a hint to use this after cms_list_photos discovery, but the guidance is vague ('when needed') and does not explicitly contrast with alternatives like list_photos or other get_* tools. There is a redundant 'Guidance' statement that adds little.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_soundGet soundARead-onlyIdempotentInspect
Retrieve one CMS sound item by sound id after cms_list_sounds discovery when needed. Guidance: Retrieve one CMS sound item by sound id after cms_list_sounds discovery when needed. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Sound item id returned by cms_list_sounds. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds no contradictions and the note about 'discovery' provides a small amount of behavioral context. Since annotations carry the main safety info, the description meets the lowered bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the core action in the first sentence and only one additional qualifying phrase. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter getter with no output schema, the description sufficiently covers what it does and where the id comes from. It could mention the return shape, but given the tool's simplicity and the provided annotations, it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'id' is described as 'Sound item id returned by cms_list_sounds', which adds a clear origin and validates the type and minimum. With full schema coverage, this extra context elevates it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and the resource ('one CMS sound item'), distinguishing it from other getters for different content types. It also notes a typical usage flow via 'after cms_list_sounds discovery', which adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides guidance on when to use the tool ('after cms_list_sounds discovery when needed'), which implies a sequential context. It doesn't explicitly name alternatives like 'use cms_list_sounds for multiple items', but the mention of discovery is a useful pointer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_sound_paragraphGet sound paragraphARead-onlyIdempotentInspect
Read one paragraph. Guidance: Retrieve one sound paragraph by paragraph id. | context: id, paragraph_id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Sound item id returned by cms_list_sounds. | |
| paragraph_id | Yes | Paragraph id returned by cms_list_sound_paragraphs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the behavioral profile. The description adds no further details about side effects or constraints, but it does not contradict the annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, but the 'Guidance' segment partially repeats the main sentence and the 'context' field is somewhat cryptic. Still, it remains compact without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the core retrieval action and parameter origins, but it omits any mention of output format, error behavior, or relationship to similar getter tools. Given the simplicity of a getter, this is acceptable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions for both parameters are meaningful ('Sound item id returned by cms_list_sounds' and 'Paragraph id returned by cms_list_sound_paragraphs'), providing context that links to list operations. The main description itself adds no extra parameter detail, but the high schema coverage warrants a score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read one paragraph' and 'Retrieve one sound paragraph by paragraph id', which unambiguously identifies the action (retrieve) and the resource (a single sound paragraph).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like cms_list_sound_paragraphs or cms_get_sound. The description only restates its function without clarifying conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_videoGet videoARead-onlyIdempotentInspect
Retrieve one CMS video item by video id after cms_list_videos discovery when needed. Guidance: Retrieve one CMS video item by video id after cms_list_videos discovery when needed. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Video item id returned by cms_list_videos. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description accurately reflects a read-only, idempotent retrieval operation. Annotations already declare readOnlyHint and idempotentHint, and the description adds no contradictory or misleading behavioral claims.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loads the core action. The repeated 'Guidance' sentence is slightly redundant, but it does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides enough context for a simple get-by-id operation and references the discovery tool. It does not specify the output shape, but that absence is acceptable for this tool type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, id, is well explained: it is a video item id returned by cms_list_videos. This gives the agent clear guidance on how to obtain a valid value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves one CMS video item by video id, with a specific verb and resource. It also distinguishes this from listing operations by referencing cms_list_videos for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using cms_list_videos first for discovery, which provides useful sequencing guidance. It does not explicitly contrast with related get/paragraph tools, but the intent is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_get_video_paragraphGet video paragraphARead-onlyIdempotentInspect
Read one paragraph. Guidance: Retrieve one video paragraph by paragraph id. | context: id, paragraph_id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Video item id returned by cms_list_videos. | |
| paragraph_id | Yes | Paragraph id returned by cms_list_video_paragraphs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description's 'Read' and 'Retrieve' align with these hints but add no further behavioral detail such as error handling or return format, which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single sentence plus a short guidance line. It contains no redundant information and is well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple get operation, and the description sufficiently explains what it does and how to invoke it. The lack of an output schema is not a major gap, though specifying that it returns a paragraph object could have added slight completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described referencing their source lists (cms_list_videos and cms_list_video_paragraphs). The description's mention of 'paragraph id' and the context list reinforces but does not add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retrieve one video paragraph by paragraph id.' It uses a specific verb ('retrieve') and resource ('video paragraph'), and distinguishes itself from sibling tools like cms_get_video and cms_list_video_paragraphs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides direct usage guidance: retrieve a single video paragraph given the paragraph id, with context on the required ids. It does not explicitly mention alternatives, but the specificity makes the appropriate use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_article_paragraphsList article paragraphsARead-onlyIdempotentInspect
List paragraphs. Guidance: List body paragraphs for one CMS article. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Article id returned by cms_list_articles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description needs no extra safety caveats. The description adds context that it lists body paragraphs for one article, but no additional side-effect info is needed given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only two short phrases. Every word adds value, and the guidance is separated clearly with a pipe separator. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description provides enough context for a simple read operation: it lists body paragraphs for a given article. The absence of output details is acceptable for a tool whose purpose is obvious from the name and parameter description, but a note on what each paragraph contains could slightly improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'id' has a schema description that fully explains its role: 'Article id returned by cms_list_articles.' Schema coverage is 100%, so the description does not need to add further detail. It correctly points to the source of the id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('paragraphs' for one CMS article), distinguishing it from other paragraph-listing tools like cms_list_event_paragraphs. The guidance reinforces the specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The guidance explicitly says 'for one CMS article', making the intended use clear. While it doesn't name alternatives, the tool name and sibling context make the choice obvious. It could benefit from saying 'use this when you need paragraphs belonging to a specific article' but that is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_articlesList articlesARead-onlyIdempotentInspect
List CMS articles, optionally filtered by category ids returned by cms_list_cms_sections, publication status, title search, pagination, article ids, and sorting. Guidance: List CMS articles, optionally filtered by category ids returned by cms_list_cms_sections or by publication status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional article ids to filter the list. Repeat this query parameter to pass multiple values. | |
| page | No | Page index. | |
| sort | No | Sort field for the article list. | |
| order | No | Sort order for the article list. | |
| search | No | Optional title search terms. Repeat this query parameter to pass multiple values. | |
| status | No | Optional publication status filter. Omit to list every non-deleted item in scope. | |
| category | No | Optional article category ids returned by cms_list_cms_sections. Repeat this query parameter to pass multiple values. Omit to list across all categories. | |
| per_page | No | Number of articles per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description does not add behavioral details beyond the annotations, but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, with no redundant information. It clearly lists the filter options without excessive detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a read-only list operation. It does not specify output structure, but that is not required for a list tool without an output schema. The guidance sentence is somewhat redundant but not harmful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all parameters. The tool description adds value by explaining that category ids come from cms_list_cms_sections, and clarifies the 'status' filter behavior. This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists CMS articles and mentions specific filters (category, status, title, pagination, ids, sorting). It is distinct from sibling list tools for other entity types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (listing articles) and references cms_list_cms_sections for category ids, providing context. It does not explicitly compare with alternatives but the entity-specific naming makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_cms_sectionsList CMS sectionsARead-onlyIdempotentInspect
List CMS content sections and categories for article, maps, video, photo, agenda, or sound types. Guidance: List CMS content sections for the current app by CMS content type. | context: type
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | CMS content type to discover. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the key behavioral traits (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description does not contradict them—'List' is consistent with read-only semantics. The description adds minor context (app-scoped, by content type) but no significant behavioral disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose, but the second sentence largely repeats the first ('List CMS content sections... by CMS content type' vs. the enum in sentence one), with only 'for the current app' as genuinely new information. The trailing '| context: type' fragment is also awkwardly formatted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only list tool with no output schema, the description conveys the core operation, but it leaves ambiguity around what 'sections and categories' separately mean and does not clarify how this tool relates to the nearly identical sibling cms_list_sections. These gaps prevent a higher completeness score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the 'type' parameter already described as 'CMS content type to discover' plus a full enum. The description reinforces the parameter role ('by CMS content type') but adds no new meaning, such as what each enum value returns or how the result differs by type, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('CMS content sections and categories'), and scopes it by content types (article, maps, video, photo, agenda, sound). This implicitly distinguishes it from the plain cms_list_sections sibling, though the distinction is not explicit and 'sections and categories' is slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The guidance sentence ('List CMS content sections for the current app by CMS content type') provides clear context on when to use the tool: when you need sections filtered by a specific content type, scoped to the current app. However, it does not explicitly state when not to use it or name alternatives like cms_list_sections or the per-type cms_list_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_event_paragraphsList event paragraphsCRead-onlyIdempotentInspect
List paragraphs. Guidance: List body paragraphs for one CMS agenda event. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Event id returned by cms_list_events. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds no further behavioral details such as ordering, pagination, empty results, or errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and mostly to the point, though 'List paragraphs.' and 'Guidance: List body paragraphs...' are somewhat redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient to identify the operation and required id, but it lacks any indication of the output shape, ordering, or result details, especially given no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the only parameter (id) with a clear source ('returned by cms_list_events'), so baseline applies. The description contributes no additional parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and guidance clearly identify the action (list) and resource (body paragraphs for one CMS agenda event). However, the first sentence 'List paragraphs.' is vague on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explain when to use this tool versus alternatives like cms_get_event_paragraph or other list paragraph tools, nor does it contrast with related event tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_eventsList eventsARead-onlyIdempotentInspect
List CMS agenda events, optionally filtered by category ids returned by cms_list_cms_sections, publication status, title search, pagination, event ids, and sorting. Guidance: List CMS agenda events, optionally filtered by category ids returned by cms_list_cms_sections or by publication status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional event ids to filter the list. Repeat this query parameter to pass multiple values. | |
| page | No | Page index. | |
| sort | No | Sort field for the event list. | |
| order | No | Sort order for the event list. | |
| search | No | Optional title search terms. Repeat this query parameter to pass multiple values. | |
| status | No | Optional publication status filter. Omit to list every non-deleted item in scope. | |
| category | No | Optional event category ids returned by cms_list_cms_sections. Repeat this query parameter to pass multiple values. Omit to list across all categories. | |
| per_page | No | Number of events per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds detail about default behavior (listing non-deleted items) and filtering options, but does not mention error cases or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and to the point, covering the main functionality and filters without extraneous detail. The guidance duplicates the description but does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description does not specify the response format (no output schema is provided), it adequately describes the input parameters and the operation's purpose. The lack of response details is a minor gap given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters have clear descriptions, including enum values and repetition behavior. The schema coverage is 100% and the descriptions add meaningful context beyond the basic type information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing CMS agenda events, with optional filters. It is a specific verb-resource pair that distinguishes it from other list tools for different entity types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for event listing but does not explicitly contrast with sibling list tools. The guidance repeats the description, providing no additional decision context, though the resource-specific naming makes the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_map_paragraphsList map paragraphsARead-onlyIdempotentInspect
List paragraphs. Guidance: List body paragraphs for one CMS map item. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Map item id returned by cms_list_maps. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to restate safety. It adds the map-item scoping but no further behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but redundant: 'List paragraphs.' repeats the guidance that follows. The pipe-delimited 'context: id' fragment is also cryptic and adds clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool, the description adequately states what is returned. It does not mention output format or ordering, but these are not critical for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'id' is already described in the schema as 'Map item id returned by cms_list_maps.' The description adds no additional parameter meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action ('List') and the resource ('body paragraphs for one CMS map item'), which distinguishes it from sibling paragraph-listing tools for articles, events, sounds, and videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when needing the body paragraphs of a specific map item. It does not explicitly mention alternatives or exclusions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_mapsList mapsARead-onlyIdempotentInspect
List CMS map (point of interest) items, optionally filtered by category ids returned by cms_list_cms_sections, publication status, title search, pagination, map item ids, and sorting. Guidance: List CMS map (point of interest) items, optionally filtered by category ids returned by cms_list_cms_sections or by p...
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional map item ids to filter the list. Repeat this query parameter to pass multiple values. | |
| page | No | Page index. | |
| sort | No | Sort field for the map list. | |
| order | No | Sort order for the map list. | |
| search | No | Optional title search terms. Repeat this query parameter to pass multiple values. | |
| status | No | Optional publication status filter. Omit to list every non-deleted item in scope. | |
| category | No | Optional map category ids returned by cms_list_cms_sections. Repeat this query parameter to pass multiple values. Omit to list across all categories. | |
| per_page | No | Number of map items per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and open-world behavior. The description adds little beyond restating filters; it does not describe default response behavior or pagination defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main sentence is concise, but the appended 'Guidance:' sentence is redundant and truncated mid-phrase. This duplication and incompleteness prevent the description from being well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could benefit from a brief note about return shape or defaults. The schema and annotations fill many gaps, but the truncated guidance leaves the description feeling incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so the baseline is 3. The description mostly restates filter names already present in the schema; only the reference to cms_list_cms_sections adds cross-tool context, but that is also in the category parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('List'), the resource ('CMS map (point of interest) items'), and the optional filtering dimensions. It clearly distinguishes this from single-item retrieval and paragraph listing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use the tool by describing optional filters (category, status, search, pagination, ids, sorting) and points to cms_list_cms_sections for category ids. It does not explicitly contrast with alternatives like cms_get_map, but the list-vs-get distinction is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_photosList photosARead-onlyIdempotentInspect
List CMS photo gallery items, optionally filtered by one photo gallery section, with optional status filter, title search, pagination, photo id filtering, and sorting. Guidance: List CMS photo gallery items, optionally filtered by one photo gallery section.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional photo item ids to filter the list. Repeat this query parameter to pass multiple values. | |
| page | No | Page index. | |
| sort | No | Sort field for the photo list. | |
| order | No | Sort order for the photo list. | |
| search | No | Optional title search terms. Repeat this query parameter to pass multiple values. | |
| status | No | Optional publication status filter. | |
| section | No | Optional photo gallery section id returned by cms_list_cms_sections. Omit to list across all galleries. | |
| per_page | No | Number of photos per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no behavioral details beyond listing the resource, such as rate limits, authorization requirements, or response format. It does not contradict annotations, but it also doesn't provide extra context, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains two sentences, but the second sentence is a near-verbatim repetition of the first part: 'Guidance: List CMS photo gallery items, optionally filtered by one photo gallery section.' This redundancy wastes space and could confuse the agent. A concise single sentence would suffice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers the action and main filters but does not explain the structure of returned photo items or how filters combine (e.g., AND vs OR). However, given that the sibling cms_get_photo likely describes a single photo object, and the parameters are well-documented, it is reasonably complete, though not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning every parameter has a description in the schema. The tool description lists the filter categories but adds no additional meaning beyond what the schema already provides. For instance, the schema already explains that 'section' is returned by cms_list_cms_sections. The description is redundant here, so a 3 is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'CMS photo gallery items', and enumerates the available filters (section, status, search, pagination, id, sorting). It is unambiguous and distinguishes from sibling list tools for other content types (e.g., cms_list_articles, cms_list_events) by naming the specific resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that this tool lists photo gallery items, which is appropriate when a list of photos is needed. It does not explicitly mention alternatives like cms_get_photo for single photo retrieval, but the context is clear. There is no explicit guidance on when not to use it, so a 4 is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_sectionsList sectionsARead-onlyIdempotentInspect
List the generic app section catalog by type, including content and non-content sections. Guidance: List app sections, including content and non-content sections, by section type. | context: type
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Section type to discover. Common values include article, photo, video, sound, maps, agenda, and commerce. Use commerce for eCommerce sections. Prefer cms_list_cms_sections for CMS-only article, photo, video, sound, maps, and agenda discovery. The generic section catalog can return any matching app section, including content and non-content sections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnly, idempotent, and non-destructive behavior, and the description's 'list' wording matches this. It does not add much behavioral detail beyond the annotations, but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise, but the appended 'Guidance: ... | context: type' is redundant and awkwardly repeats the same information. This hurts the overall structure and focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one parameter and no output schema, the description is mostly complete. It explains the scope, mentions content and non-content sections, and points to the more specific CMS section tool, giving enough context for an agent to select it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter schema already covers the 'type' parameter thoroughly with common values and the distinction from cms_list_cms_sections. The description only adds 'by section type', so it contributes little beyond the existing schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the generic app section catalog by type, including content and non-content sections. It also distinguishes itself from cms_list_cms_sections by using the word 'generic' and referencing CMS-only alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description and parameter guidance indicate when to use this tool versus cms_list_cms_sections, especially through the parameter description instructing to prefer cms_list_cms_sections for CMS-only sections. The main description could be more explicit but still gives useful direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_sound_paragraphsList sound paragraphsARead-onlyIdempotentInspect
List paragraphs. Guidance: List body paragraphs for one CMS sound item. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Sound item id returned by cms_list_sounds. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false) already indicate a safe read operation. The description's 'List' is consistent with these annotations and adds no further behavioral information, but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and to the point, containing only the essential verb and resource. Every word serves a purpose, and the format is clean and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema provided, the description does not explain return fields or pagination behavior. However, the purpose is clear enough for a simple list operation, and the sibling tools follow a similar pattern, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'id' is fully described in the schema as 'Sound item id returned by cms_list_sounds.' The tool description adds no additional meaning beyond this, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('List') and the resource ('body paragraphs for one CMS sound item'), and the title/name disambiguates from sibling paragraph-listing tools by specifying 'sound'. It also notes the 'id' context from cms_list_sounds, making the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., cms_get_sound_paragraph or cms_list_sounds). It implies the id must come from cms_list_sounds, but does not describe scenarios where this tool is preferred or not recommended.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_soundsList soundsARead-onlyIdempotentInspect
List CMS sound items, optionally filtered by category ids returned by cms_list_cms_sections, publication status, title search, pagination, sound ids, and sorting. Guidance: List CMS sound items, optionally filtered by category ids returned by cms_list_cms_sections or by publication status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional sound item ids to filter the list. Repeat this query parameter to pass multiple values. | |
| page | No | Page index. | |
| sort | No | Sort field for the sound list. | |
| order | No | Sort order for the sound list. | |
| search | No | Optional title search terms. Repeat this query parameter to pass multiple values. | |
| status | No | Optional publication status filter. Omit to list every non-deleted item in scope. | |
| category | No | Optional sound category ids returned by cms_list_cms_sections. Repeat this query parameter to pass multiple values. Omit to list across all categories. | |
| per_page | No | Number of sounds per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds transparency by clarifying default behavior (e.g., 'Omit to list every non-deleted item in scope' and 'Omit to list across all categories'), which goes beyond the annotations and helps set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, but it contains slight redundancy with the 'Guidance' line repeating the core filtering idea. It is still compact and front-loaded with the primary action, so minor redundancy does not detract much.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 8 optional parameters and no output schema, the description adequately covers all relevant aspects by naming each filter type and referencing the schema for details. It does not describe return format, but that is not required without an output schema, and the filter semantics are complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters with clear explanations for each (e.g., 'Optional sound category ids returned by cms_list_cms_sections'). The tool description does not add significant meaning beyond summarizing these filters, so it meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists CMS sound items, which is specific and unambiguous. It distinguishes from sibling tools like cms_list_videos or cms_get_sound by naming the resource type, and the reference to cms_list_cms_sections for category ids further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing sound items with optional filters, and the reference to category ids from cms_list_cms_sections provides a practical hint. However, it does not explicitly contrast with alternatives (e.g., when to use cms_get_sound vs. cms_list_sounds), though the context of sibling tools makes this largely inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_video_paragraphsList video paragraphsCRead-onlyIdempotentInspect
List paragraphs. Guidance: List body paragraphs for one CMS video item. | context: id
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Video item id returned by cms_list_videos. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context such as ordering, filtering, pagination, or what fields each paragraph contains. The 'context: id' note is unhelpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but poorly structured with a redundant 'Guidance:' prefix and a cryptic '| context: id' suffix. The phrase 'List paragraphs' is vague and not front-loaded with the specific scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description fails to describe what a paragraph contains or the structure of the returned list. It also omits any details about ordering or pagination, leaving an agent without enough information to anticipate the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the id parameter is well described as 'Video item id returned by cms_list_videos.' The description does not add any extra meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List body paragraphs for one CMS video item,' which specifies the verb (list), the resource (body paragraphs), and the scope (one video item). This is clear and not a tautology, though it does not explicitly contrast with sibling list tools like cms_list_article_paragraphs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as cms_get_video_paragraph or other cms_list_*_paragraphs tools. The cryptic 'context: id' offers no practical usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_list_videosList videosARead-onlyIdempotentInspect
List CMS video items, optionally filtered by category ids returned by cms_list_cms_sections, publication status, title search, pagination, video ids, and sorting. Guidance: List CMS video items, optionally filtered by category ids returned by cms_list_cms_sections or by publication status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional video item ids to filter the list. Repeat this query parameter to pass multiple values. | |
| page | No | Page index. | |
| sort | No | Sort field for the video list. | |
| order | No | Sort order for the video list. | |
| search | No | Optional title search terms. Repeat this query parameter to pass multiple values. | |
| status | No | Optional publication status filter. Omit to list every non-deleted item in scope. | |
| category | No | Optional video category ids returned by cms_list_cms_sections. Repeat this query parameter to pass multiple values. Omit to list across all categories. | |
| per_page | No | Number of videos per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds a meaningful behavioral detail by noting that omitting the status filter lists 'every non-deleted item in scope', which clarifies the default behavior. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences, but the second sentence (under 'Guidance:') repeats the first nearly verbatim, adding no new information. This redundancy makes it less concise than it could be, though it is still brief overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not state what the response format will be (e.g., array of video items, pagination metadata). It implies a list but leaves the return shape unspecified, which is a notable gap given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — every parameter (id, page, sort, order, search, status, category, per_page) has a description. The tool description adds no new parameter information beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'CMS video items', and it enumerates optional filters (category, status, search, etc.) that distinguish this from other list tools. The name and title align perfectly, and the reference to cms_list_cms_sections for category IDs adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use the tool: to list videos with optional filters, and it provides concrete guidance on the status filter ('Omit to list every non-deleted item in scope'). It does not explicitly contrast with cms_get_video or cms_list_video_paragraphs, but the resource and filters make the use case clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_get_tool_planGet tool planARead-onlyIdempotentInspect
Retrieve full guidance for one tool name, including the recommended discover/call/verify sequence and failure policy.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | Exact name of the MCP tool to retrieve guidance for, e.g. 'shop_create_product'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint, idempotentHint, destructiveHint) already cover safety traits. The description adds value by specifying the response content (guidance, sequence, failure policy), which goes beyond the annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no fluff. It front-loads the action and object, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter and no output schema, so the description sufficiently covers what it does and what it returns. No additional context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the parameter, but the example 'shop_create_product' adds concrete meaning and clarifies the expected format. This exceeds the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the object 'full guidance for one tool name', distinguishing it from sibling tools that perform domain operations. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns (discover/call/verify sequence and failure policy) but does not explicitly state when to use it versus alternatives. Since it is a meta-tool with no sibling guidance tools, the usage context is implicit but not clearly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_collectionGet collectionBRead-onlyIdempotentInspect
Returns the details of a specific collection. Guidance: Returns the details of a specific collection. | context: collection_id
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | Collection Unique ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and not destructive. The description is consistent with these, adding no further behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The second sentence is redundant and awkward, repeating the purpose and appending 'context: collection_id' without value. The first sentence alone would have been sufficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with one well-described parameter, the core functionality is covered. However, the redundant guidance adds noise and no additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides a clear description for collection_id ('Collection Unique ID.'), covering 100% of parameters. Description adds no extra semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Returns the details of a specific collection', identifying the verb and object. Distinguished from list_collections by the word 'specific'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool instead of alternatives like shop_list_collections. The 'Guidance' line merely restates the purpose without adding selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_customerGet customerBRead-onlyIdempotentInspect
Returns the details of a given customer of your shop app. Guidance: Returns the details of a given customer of your shop app. | context: customer_id
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Unique ID of the customer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds no extra behavioral context (e.g., side effects, errors, or scoping) but does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is redundant, repeating the same sentence under 'Guidance:' and appending '| context: customer_id'. This awkward structure detracts from conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one input and no output schema. The description states it returns 'details' but does not specify what details, which is somewhat vague; however, it is adequate for a basic get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full coverage of the single parameter customer_id with a clear description ('Unique ID of the customer'). The tool description adds no additional semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and a specific resource ('details of a given customer'), clearly distinguishing this tool from list tools such as shop_list_customers by using singular 'a given customer'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like shop_list_customers. It only implies the need for a customer_id, without stating conditions or comparing to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_loyaltyGet loyaltyBRead-onlyIdempotentInspect
Returns the loyalty points details of a user. Guidance: Returns the loyalty points details of a user. | context: user_id
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Unique ID of the user. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, non-destructive) already cover the behavioral profile, and the description adds no contradictory side effects or permissions requirements. It neither enhances nor undermines transparency, so a neutral 3 is appropriate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is concise, but the description contains redundant repetition ('Returns the loyalty points...' twice) and includes a misplaced 'Guidance:' and 'context: user_id' suffix that disrupts structure and adds noise without value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with a single parameter, the description sufficiently explains the operation and input. No output schema is present, but for such a straightforward retrieval, the provided information is complete enough for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, user_id, has a schema description ('Unique ID of the user') providing full coverage (100%). The description repeats 'context: user_id' but adds no additional semantic meaning beyond the schema, so the baseline score for full coverage is maintained at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Returns the loyalty points details of a user', which specifies the verb and resource. It distinguishes from shop_update_loyalty among siblings, but the duplicate phrasing and the odd 'Guidance:' and 'context: user_id' appendix create slight confusion, preventing a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage is to retrieve loyalty points for a user, but it does not explicitly state when to use it over other getter tools or any prerequisites. The context is self-evident, but no direct guidance or alternative contrast is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_orderGet orderARead-onlyIdempotentInspect
Returns the details of a given order. Guidance: Returns the details of a given order. | context: order_id
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Unique ID of the order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat this. The description provides no additional side-effect information, but none is required given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, but it contains a slight redundancy: 'Returns the details of a given order.' is repeated in the 'Guidance' clause. This does not harm clarity but could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple getter operation. There is no output schema, but the tool name and parameter indicate it returns order details, which is typical for such getters in this API family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes order_id as the unique ID of the order, and the description echoes that. Since the schema coverage is 100% and the description adds no extra semantic detail, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns details of a specific order identified by order_id. This distinguishes it from sibling tools like shop_list_orders, which list multiple orders, and other getters for different resources (products, customers, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a single order's details are needed by ID. While it doesn't explicitly contrast with alternatives such as shop_list_orders, the function name and parameter make the appropriate context obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_order_shippingGet order shippingARead-onlyIdempotentInspect
Retrieves status, shipping number and shipping url of a given order. Guidance: Retrieves status, shipping number and shipping url of a given order. | context: order_id
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Unique ID of the order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent, and the description adds no extra context about side effects, authentication, or rate limits. The operation is a simple read, so the annotation covers the main safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no redundancy or irrelevant detail, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although no output schema is provided, the description explicitly names the return fields (status, shipping number, shipping URL), which fully conveys what the tool returns. No additional context is necessary for this straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter order_id has full schema coverage and its description 'Unique ID of the order' is clear. Since schema coverage is 100%, the baseline applies and the description adds no further semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves status, shipping number, and shipping URL for an order, which is specific and distinguishes it from broader tools like shop_get_order or shop_update_order_shipping in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as shop_get_order or shop_update_order_shipping. The description lacks explicit context for selecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_paragraph_mediaGet paragraph mediaCRead-onlyIdempotentInspect
Returns the details of a given paragraph media. Guidance: Returns the details of a given paragraph media. | context: media_id, paragraph_id, product_id
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | Unique ID of the media. | |
| product_id | Yes | Unique ID of the product. | |
| paragraph_id | Yes | Unique ID of the paragraph. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation returning details, which aligns with the readOnlyHint and idempotentHint annotations. It does not add much behavioral detail beyond the annotations, but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but contains redundancy: the 'Guidance' line repeats the first sentence almost verbatim. The appended 'context' fragment feels bolted on and the overall structure is not clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description is reasonably complete in stating that it returns details for the identified media. However, it does not clarify what 'paragraph media' is or what the returned details contain, relying on context from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are covered by the schema with clear descriptions like 'Unique ID of the media' and similar. The tool description adds no extra semantic information beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns details of a paragraph media and identifies the key object. It is slightly generic and does not elaborate on what 'details' includes, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool instead of the many sibling get/list tools. The 'Guidance' text merely repeats the description, and the appended context line does not offer decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_productGet productBRead-onlyIdempotentInspect
Retrieves the details of a specific product. Guidance: Retrieves the details of a specific product. | context: product_id
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product Unique ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds no extra behavioral context, but it also does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description repeats the same phrase twice and includes an awkward stray 'Guidance: ... | context: product_id' fragment, which reduces clarity and wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID operation, the description is mostly sufficient. It would benefit from mentioning what kind of details are returned, but the lack of an output schema makes this less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already defines product_id as an integer with 'Product Unique ID.' The description adds no further semantic detail about the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieves') and the resource ('details of a specific product'), making the tool's purpose unmistakable even among many sibling getters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool instead of sibling tools like shop_get_variant, shop_get_collection, or shop_get_order. The description does not distinguish it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_promocodeGet promocodeARead-onlyIdempotentInspect
Returns the details of a given promocode of your shop app. Guidance: Returns the details of a given promocode of your shop app. | context: promocode_id
| Name | Required | Description | Default |
|---|---|---|---|
| promocode_id | Yes | Unique ID of the promocode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds no extra transparency about side effects, errors, or edge cases, so it meets the baseline given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, but it contains redundancy with the 'Guidance:' line repeating the same information. This minor repetition prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not mention what happens if the promocode does not exist, whether it returns a specific schema, or how it fits into the broader shop context. It is minimally complete but lacks helpful context that could guide an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter promocode_id has a clear description in the schema ('Unique ID of the promocode'), and the tool description reinforces its role. Since schema coverage is 100%, this is above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns details of a single promocode identified by its ID, making its purpose distinct from list and mutation tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single promocode by ID but does not explicitly guide when to prefer this over other promocode-related tools (e.g., shop_list_promocodes_*) or how it differs from them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_prospectGet prospectBRead-onlyIdempotentInspect
Returns the details of a given prospect of your shop app. Guidance: Returns the details of a given prospect of your shop app. | context: user_id
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Unique ID of the User. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that the operation is read-only, idempotent, non-destructive, and broadly accessible. The description adds no additional behavioral context such as possible error conditions or data scope, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description repeats the same statement twice: 'Returns the details of a given prospect of your shop app.' followed by 'Guidance: Returns the details of a given prospect of your shop app.' It also includes a confusing trailing fragment '| context: user_id,' making it less concise than it should be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID operation, the description is adequate, but it is vague about what 'details' are returned and there is no output schema to clarify the response structure. It does not fully cover expected return content or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, user_id, is already documented in the schema as 'Unique ID of the User.' The description does not add further meaning beyond referring to a 'given prospect,' so it provides no extra value beyond the existing schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns details of a specific prospect, using a specific verb and resource. It is distinct from sibling tools like shop_list_prospects and shop_get_customer because it targets a single prospect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as shop_list_prospects or other shop_get_* tools. It does not mention prerequisites, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_get_variantGet variantCRead-onlyIdempotentInspect
Return a list of all products. Guidance: Returns the details of a specific product variant. | context: product_id, variant_id
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Numeric id of the product the variant belongs to. | |
| variant_id | Yes | Numeric id of the variant to retrieve. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds no meaningful behavioral detail beyond the annotations, but it does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short but includes a misleading first sentence that should be removed. The remaining content is minimal but the contradictory sentence makes it poorly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete due to the contradictory first sentence and lacks any output expectations. Since there is no output schema, more context about what the tool returns would be valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for product_id and variant_id. The description adds no extra semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Return a list of all products,' which directly contradicts the tool's name and parameters, then partially corrects itself with 'Returns the details of a specific product variant.' The conflicting first sentence makes the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus sibling tools like shop_get_product or shop_list_products. The 'context' phrase is not actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_collectionsList collectionsARead-onlyIdempotentInspect
Returns a list of the collections of the shop. The results are paginated (20 collections displayed on each page by default). Guidance: Returns a list of the collections of the shop. The results are paginated (20 collections displayed on each page by de...
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| sort | No | Sorts the returned collections. Possible values:- `alpha`: ascending alphabetical order - `alpha_desc`: descending alphabetical order - `first_added`: ascending creation date order - `last_added`: descending creation date order | |
| keyword | No | Restricts the list of returned collections to the ones whose name contains the provided argument. To select instances whose name contains a word "A" **OR** a word "B", use the following syntax: `?keyword=A,B`. | |
| per_page | No | Number of collections displayed on each page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context by stating that results are paginated with a default of 20 per page, going slightly beyond the annotation-only information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains redundant and truncated content, repeating the same sentence under 'Guidance:' and cutting off mid-phrase. This harms clarity and does not earn each sentence's place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple list operation, all parameters are described, pagination behavior is mentioned, and annotations cover safety semantics. However, the truncated duplicate text and lack of any output shape details leave minor room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are documented in the schema with meaningful descriptions, including enum meanings and keyword syntax. The description itself does not add further parameter semantics beyond the schema, so baseline coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: 'Returns a list of the collections of the shop.' This clearly distinguishes it from single-collection retrieval and from sibling list tools for other resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides pagination details but gives no guidance on when to use this tool versus alternatives such as shop_get_collection or other shop_list_* tools. No explicit conditions or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_customersList customersBRead-onlyIdempotentInspect
Returns the list of customers of your shop app. Guidance: Returns the list of customers of your shop app.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| per_page | No | Number of customers displayed on each page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the key behavioral traits. The description adds no extra context about side effects, rate limits, or return details, but it does not contradict the annotations. Given the annotations are present, the bar is lower, and the description is neutral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but it contains redundancy: the first sentence and the second sentence starting with 'Guidance:' are essentially the same. This duplication wastes words without adding information. It could be condensed to a single sentence, which would be more efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description is adequate but not rich. It does not mention that the tool returns a list of customer objects, nor does it explain pagination behavior or ordering. Since there is no output schema, a bit more context about the expected return could be helpful, but the core function is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (page and per_page) have descriptions in the schema, so coverage is 100%. The descriptions are minimal but accurate: 'Page number.' and 'Number of customers displayed on each page.' The description does not add any extra detail such as defaults, minimums, or how pagination interacts with the result set, so it remains at the baseline for fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Returns the list of customers of your shop app.' This is a specific verb-resource pairing that distinguishes it from other list tools like shop_list_orders or shop_list_products. The tool name itself reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as shop_get_customer for a single customer, or shop_list_prospects for prospects. There is no mention of scenarios where listing customers is appropriate, nor any indication of pagination usage or filters beyond the basic parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_downloadsList downloadsCRead-onlyIdempotentInspect
Returns the history of downloads between specified timestamps and on specified platform. Guidance: Returns the history of downloads between specified timestamps and on specified platform.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (included) with format `%Y-%m-%d`. Defaults to yesterday. | |
| platform | No | Target platform. Defaults to "all". | |
| start_date | No | Start date (included) with format `%Y-%m-%d`. Defaults to one month ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) already establish that this is a safe read-only operation. The description adds minimal behavioral context, such as the fact that it returns a history and is filtered by date/platform. It does not contradict annotations and provides some context beyond them, but it does not disclose any additional traits like pagination or data volume. A score of 3 is appropriate given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but redundant: it repeats the identical sentence twice, once prefixed with 'Guidance:'. This adds no value and wastes the agent's attention. The first sentence is sufficient and front-loaded, but the duplication harms conciseness and structure. A score of 2 reflects this unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with fully documented optional parameters and comprehensive safety annotations, the description provides the core functionality. However, it lacks any guidance on usage context or edge cases (e.g., what 'downloads' specifically refers to, whether results are ordered). Given the low complexity and complete schema, the description is minimally adequate but not thorough. A score of 3 aligns with 'adequate but with clear gaps'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all three parameters (end_date, start_date, platform) with formats and defaults, achieving 100% coverage. The description essentially restates that downloads are filtered by timestamps and platform, adding no new information beyond what the schema provides. With full schema coverage, the baseline of 3 is correct; the description does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns download history filtered by timestamps and platform. It uses a specific verb ('Returns') and resource ('history of downloads'), which is distinct from the sibling 'shop_list_downloads_global' even though it doesn't explicitly name the sibling. The repetition of the same sentence does not detract from clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes 'shop_list_downloads_global', but the description does not mention it or any criteria for choosing one over the other. The description only restates the core function without contextualizing its scope relative to other download-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_downloads_globalList downloads globalBRead-onlyIdempotentInspect
Returns the total number of all time downloads on specified platform and the distribution of downloads across the platform's versions. Guidance: Returns the total number of all time downloads on specified platform and the distribution of downloads across the pla...
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Target platform. Defaults to "all". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only and idempotent annotations already establish safety; description adds functional behavior (returns totals and distribution) and optional platform filtering without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core description is concise but the trailing 'Guidance' sentence repeats the same content, adding redundancy without new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only aggregate tool with no output schema, the description gives enough context about what is returned and how platform filtering works, though it does not specify exact output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema fully describes the platform parameter with enum values and default; description adds little beyond stating the platform is used for filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns aggregate all-time download counts and version distribution for a specified platform, distinguishing it from the similarly named sibling shop_list_downloads by indicating global aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance about when to choose this tool over alternatives such as shop_list_downloads; the 'Guidance' text merely restates the description without adding decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_launchesList launchesBRead-onlyIdempotentInspect
Returns the history of launches between specified timestamps and on specified platform. Guidance: Returns the history of launches between specified timestamps and on specified platform.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (included) with format `%Y-%m-%d`. Defaults to yesterday. | |
| platform | No | Target platform. Defaults to "all". | |
| start_date | No | Start date (included) with format `%Y-%m-%d`. Defaults to one month ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) fully cover the operational safety profile, and the description's 'Returns' aligns with these. The description adds no contradictory information; it is a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is a single clear sentence, but the repetition of the same sentence under 'Guidance' is redundant and detracts from conciseness. It could be streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple list operation with optional filters, but it lacks contextual information about what 'launches' represents and does not clarify the distinction from 'unique launches' (sibling tool). No output schema is provided, but that is not a major gap for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (start_date, end_date, platform) has a meaningful description with format hints and enum values. The description does not add extra explanation beyond the schema, which is adequate given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a history of launches with optional filters for timestamps and platform. The verb 'Returns' and the resource 'history of launches' are specific, and the tool is distinguishable from the sibling shop_list_unique_launches by the absence of 'unique' in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives like shop_list_unique_launches. It does not state that this returns all launches or when the unique variant is more appropriate. The description only mentions the parameters, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_optionsList optionsARead-onlyIdempotentInspect
Returns a list of the options that belong to the specified shop catalog. The results are paginated (20 options displayed on each page by default). Guidance: Returns a list of the options that belong to the specified shop catalog. The results are paginated (20 options displa...
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| search | No | Restricts the list of returned options to the ones whose name contains the provided argument. | |
| per_page | No | Number of variant options displayed on each page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false) already indicate a safe read-only operation. The description adds useful pagination context, and there is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and direct, using two clear sentences with no unnecessary detail or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior and pagination, and parameters are well-documented. Although no output schema is provided, the simple list nature and clear parameter descriptions make the tool sufficiently understandable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (page, search, per_page) have meaningful descriptions, and schema coverage is 100%. The descriptions clearly convey their purpose and expected effects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a list of options belonging to the shop catalog, and mentions pagination. It is easily distinguishable from sibling list tools (e.g., shop_list_products, shop_list_collections) by name and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool over alternatives or provide conditions for selection. It is implied by the name and context, but lacks the explicit guidance seen in higher-scoring examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_ordersList ordersARead-onlyIdempotentInspect
Returns a list of the orders that belong to the specified shop. Only orders with a "PENDING", "FULFILLED", "DELIVERED" or "CANCELLED" status are listed and the results are paginated (20 orders displayed on each page by default). Guidance: Returns a list of the orders that belong to the specified shop. Only orders with a PENDING, FULFILLED, DELIVERED or C...
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| status | No | Restricts the list of returned orders to a certain status. To filter several statuses use the following syntax: `?status={STATUS1}&status={STATUS2}` | |
| per_page | No | Number of orders displayed on each page. | |
| creation_date_to | No | Restricts the list of returned orders to the ones created **before** (or on) the provided datetime. This parameter should use the following format `yyyy-mm-ddThh:MM` (year, month, day, 24-hour and minute) and be expressed in UTC time. | |
| delivery_date_to | No | Restricts the list of returned orders to the ones whose selected delivery slot lands **before** (or on) the provided datetime. This parameter should use the following format `yyyy-mm-ddThh:MM` (year, month, day, 24-hour and minute) and be expressed in UTC time. When this filter is applied, orders that do not have a selected delivery slot (shipped by transporter, for instance) will **not** be returned. Also, note that a delivery slot is said to land before a given datetime if its `slot_end` value comes before that datetime. | |
| creation_date_from | No | Restricts the list of returned orders to the ones created **after** (or on) the provided datetime. This parameter should use the following format `yyyy-mm-ddThh:MM` (year, month, day, 24-hour and minute) and be expressed in UTC time. | |
| delivery_date_from | No | Restricts the list of returned orders to the ones whose selected delivery slot lands **after** (or on) the provided datetime. This parameter should use the following format `yyyy-mm-ddThh:MM` (year, month, day, 24-hour and minute) and be expressed in UTC time. When this filter is applied, orders that do not have a selected delivery slot (shipped by transporter, for instance) will **not** be returned. Also, note that a delivery slot is said to land after a given datetime if its `slot_start` value is later than that datetime. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the annotations: it mentions pagination with a default of 20 orders per page, status filtering, and the exclusion of orders without delivery slots when date filters are applied. These are not captured in the readOnly/idempotent/destructive annotations, increasing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains a duplicated 'Guidance:' section that repeats the first sentence and is truncated ('...C...'). This redundancy and unfinished fragment makes the text less concise and structurally messy, detracting from its clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list-orders tool, the description covers the essential context: the resource type, pagination default, status constraints, and the behavior of date filters (including delivery-slot exclusion). It is not exhaustive (e.g., no output schema), but it provides sufficient operational context for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters thoroughly, so the baseline is 3. The description adds a small but useful clarification: the default page size (20) is not stated in the per_page parameter description, and the description reinforces the status filter behavior. This extra context raises the score slightly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb and resource: 'Returns a list of the orders that belong to the specified shop.' This directly differentiates it from sibling tools like shop_get_order (singular retrieval) and other shop_list_* tools, making the primary purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does and its filtering capabilities, but it does not explicitly say when to use it compared to alternatives such as shop_get_order or other list tools. An agent can infer usage from the purpose, but there is no direct comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_page_viewsList page viewsCRead-onlyIdempotentInspect
Returns the history of page views between specified timestamps and on specified platform. Guidance: Returns the history of page views between specified timestamps and on specified platform.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (included) with format `%Y-%m-%d`. Defaults to yesterday. | |
| platform | No | Target platform. Defaults to "all". | |
| start_date | No | Start date (included) with format `%Y-%m-%d`. Defaults to one month ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no new behavioral details beyond what the schema and annotations provide; it does not mention pagination, rate limits, or response format. It is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two nearly identical sentences, repeating the same information. This is redundant and wastes space; a single sentence would suffice. The duplication makes it less concise and poorly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks any mention of its relationship to shop_list_page_views_per_weekday, which is a likely alternative for aggregated weekday data. It also does not clarify the output format (e.g., individual events vs. counts per day), which is ambiguous. Given the annotations cover safety, the main missing context is the differentiation and output nature, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all three parameters, including formats, defaults, and the platform enum, giving 100% coverage. The description adds no additional parameter semantics or interaction details. With such high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: it returns the history of page views within a time range and platform. It is distinct from sibling shop_list_page_views_per_weekday by its name, but the description does not explicitly differentiate them. Overall the purpose is clear, though not as strong as it could be with an explicit alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus shop_list_page_views_per_weekday or other list tools. The description merely repeats the function without any usage context, exclusions, or alternative recommendations. This is a significant gap given the existence of a closely related sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_page_views_per_weekdayList page views per weekdayBRead-onlyIdempotentInspect
Returns the total number of page views across all platformsand between specified timestamps, grouped by day of the week. Guidance: Returns the total number of page views across all platforms and between specified timestamps, grouped by day of the w...
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (included) with format `%Y-%m-%d`. Defaults to yesterday. | |
| start_date | No | Start date (included) with format `%Y-%m-%d`. Defaults to one month ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, and the description adds relevant behavioral details: aggregation across all platforms, date filtering, and weekday grouping. It does not describe the output format, but the core side-effect profile is well covered by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a clear first sentence, but it then repeats the same content under 'Guidance:' and appears truncated mid-sentence. The duplication and typo reduce conciseness and make the description feel unfinished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only aggregation tool, the description explains the main behavior and date-range inputs, but it omits the expected output structure and does not guide the agent on when to choose this sibling over shop_list_page_views. The absent output schema increases the need for such detail, so the description is only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for both start_date and end_date, including format and defaults, so the parameter coverage is already strong. The description adds no further parameter-level detail, which is acceptable given the 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns total page views across all platforms within a date range, grouped by weekday, and the tool name reinforces this. Minor issues like the typo 'platformsand' and the truncated guidance do not obscure the core purpose, but it does not explicitly contrast with sibling shop_list_page_views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus alternatives such as shop_list_page_views or shop_list_session_times. It implies usage through the date-range parameters and weekday grouping, but it lacks direct guidance on selecting this tool over similar analytic list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_paragraphsList paragraphsARead-onlyIdempotentInspect
Returns a list of the description paragraphs of the specified product. The results are sorted by ascending paragraph position. Guidance: Returns a list of the description paragraphs of the specified product. The results are sorted by ascending paragraph... | context: product_id
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Unique ID of the Product |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds the sorting-by-position detail, which is useful, but does not elaborate on return format or potential edge cases. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using only two sentences to convey the purpose and ordering behavior. There is no redundant information, and the structure is direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple list operation, but it does not specify what fields are returned or whether pagination is involved. Given the lack of an output schema, this minor gap prevents a perfect score, but the core functionality is clearly conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a clear description for product_id (Unique ID of the Product), covering 100% of the parameters. The tool description does not add further parameter guidance, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Returns), the resource (description paragraphs), and the scope (of the specified product). It also mentions the sorting order, leaving no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives, such as shop_create_paragraph or shop_get_paragraph. However, the straightforward list operation is self-explanatory given the sibling context, but the lack of explicit guidance prevents a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_productsList productsARead-onlyIdempotentInspect
Returns a list of the products created in this shop. The results are paginated (20 products displayed on each page by default). Guidance: Returns a list of the products created in this shop. The results are paginated (20 products displayed on each page by...
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| status | No | Restricts the list of returned products to a certain publishing status. | |
| keyword | No | Restricts the list of returned products to the ones whose title, summary, description, tags, SKU or slug contains the provided argument. To select instances that contain a word "A" **OR** a word "B", use the following syntax: `?keyword=A,B`. | |
| per_page | No | Number of products displayed on each page. | |
| collection | No | Restricts the list of returned products to the ones that belong to the specified collection (an unique ID is expected). To filter instances that belong to a collection 1 **OR** a collection 2, use the following syntax: `?collection={ID1}&collection={ID2}` |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, and the description consistently indicates a read-only operation by stating it 'returns' a list. No side effects are mentioned, and no contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, but the same sentence about returning products and pagination appears twice, and a repeated 'Guidance:' line adds redundancy. This makes it less concise and structurally messy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides essential details (returns products, pagination default) and the schema covers filtering options. Though there is no output schema, a list operation typically returns product objects, which is implied. No critical information is missing for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all parameters (100% coverage), and the tool description adds a default page size (20 per page) that is not explicitly in the schema. This extra context slightly enhances understanding of pagination behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a list of products created in the shop. The verb 'Returns' and resource 'list of products' make the purpose unambiguous, and it naturally distinguishes from sibling tools like shop_create_product or shop_get_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions pagination and defaults but does not explicitly contrast with alternative list tools (e.g., shop_list_orders, shop_list_collections). It implicitly suggests usage when a product list is needed, but lacks explicit 'use when' or 'use instead of' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_promocodes_amountList promocodes amountBRead-onlyIdempotentInspect
List of promocodes based on order amount to be applied before order payment. Guidance: List of promocodes based on order amount to be applied before order payment.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to retrieve. Defaults to the first page when omitted. | |
| per_page | No | Number of promocodes returned per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to restate safety. It adds minimal behavioral context by indicating that results are based on order amount, but it does not mention pagination behavior or output shape; the annotations cover the main side-effect concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but the 'Guidance' line exactly repeats the description, adding no new information. This mild redundancy prevents a higher score, though the overall length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no output schema and two well-documented pagination parameters, the description is mostly adequate. However, the lack of differentiation from sibling promocode list tools and the ambiguous 'based on order amount' filter leave some contextual gaps for an agent choosing among alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides complete descriptions for both parameters (`page`, `per_page`), so the description adds little beyond the schema. The phrase 'based on order amount' hints at an implicit filter but is not connected to any parameter, leaving the exact filtering semantics unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('list') and resource ('promocodes'), and adds a specific qualifier ('based on order amount') that distinguishes it from sibling promocode-listing tools. However, it does not sharply contrast with alternatives like collections, product, or tags beyond the phrase 'order amount', which is somewhat implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus sibling promocode-listing tools. The description implies an amount-related filter but does not explain scenarios, prerequisites, or how it differs from shop_list_promocodes_collections, shop_list_promocodes_product, or shop_list_promocodes_tags.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_promocodes_collectionsList promocodes collectionsCRead-onlyIdempotentInspect
List of promocodes based on dedicated collections to be applied before order payment. Guidance: List of promocodes based on dedicated collections to be applied before order payment.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to retrieve. Defaults to the first page when omitted. | |
| per_page | No | Number of promocodes returned per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context (e.g., no mention of side effects, but there are none). It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is redundant, containing the same sentence twice. This is not concise and adds no value; the second sentence is an exact duplicate. It should have been a single, clear statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list tool, the description gives the basic purpose but omits any hint of return format or edge cases. Given the lack of an output schema, a bit more detail on what is returned would improve completeness, but it is adequate for a straightforward list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptive parameter names and per-parameter descriptions (page, per_page). The tool description adds no additional meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool lists promocodes based on dedicated collections, but the term 'dedicated collections' is vague and the repeated sentence adds no clarity. It does not explicitly say it returns a list, but the intent is understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling promocode listing tools (e.g., shop_list_promocodes_amount, shop_list_promocodes_product). The description does not differentiate the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_promocodes_productList promocodes productDRead-onlyIdempotentInspect
List of promocodes based on dedicated product to be applied before order payment. Guidance: List of promocodes based on dedicated product to be applied before order payment.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to retrieve. Defaults to the first page when omitted. | |
| per_page | No | Number of promocodes returned per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond the annotations. It repeats the purpose without mentioning side effects, read-only behavior, or any constraints. The annotations indicate readOnlyHint=true and destructiveHint=false, but the description itself provides no additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but repetitive, essentially stating the same phrase twice. It could be condensed to a single sentence without loss of information. The structure is acceptable but the redundancy detracts from conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks essential context such as what 'dedicated product' refers to, whether a product identifier is required (though absent from schema), and what the output format might be. There is no output schema, and the description does not compensate by explaining expected results or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema parameters (page, per_page) are clearly described as pagination controls, but the tool description mentions 'dedicated product' without any corresponding product parameter. This creates a mismatch between the described function and the actual input schema, leaving the agent uncertain how to specify the product.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List of promocodes based on dedicated product' but does not clarify what 'dedicated product' means or how it is specified. The verb 'list' and resource are present, but the scope is ambiguous, especially given sibling tools like shop_list_promocodes_amount and shop_list_promocodes_collections which differentiate by type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description repeats the same phrase twice without mentioning that this tool is specifically for product-based promocodes or how it differs from other promocode listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_promocodes_tagsList promocodes tagsBRead-onlyIdempotentInspect
List of promocodes based on dedicated tags to be applied before order payment. Guidance: List of promocodes based on dedicated tags to be applied before order payment.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to retrieve. Defaults to the first page when omitted. | |
| per_page | No | Number of promocodes returned per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is known. The description does not contradict these and adds no additional behavioral details beyond an ambiguous domain note about 'applied before order payment,' which is not clearly a tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, but it contains a redundant duplicate sentence (the 'Guidance:' line repeats the description). This redundancy wastes a little space but overall the structure is acceptable and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not mention what fields will be returned (e.g., promocode details, pagination info). For a list operation, this lack of output context leaves the agent uncertain about the response shape, making the description incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes both parameters ('page' as 1-based page number, 'per_page' as number per page) with full coverage, so the description does not need to add parameter meaning. Since coverage is 100%, the baseline score of 3 is appropriate, and the description adds no extra insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'List' and resource 'promocodes tags' are clear, and it distinguishes from sibling tools like shop_list_promocodes_amount and shop_list_promocodes_collections by focusing on tag-based promocodes. However, the phrase 'based on dedicated tags' is slightly ambiguous about whether it lists tags or promocodes filtered by tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing promocodes related to tags, but it does not explicitly state when to use this over alternatives (e.g., when you need promocodes filtered by tags rather than by amount or collection). It also includes a redundant second sentence ('Guidance:' that repeats the description), which adds no new usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_prospectsList prospectsBRead-onlyIdempotentInspect
Returns the list of prospects of your shop app. Guidance: Returns the list of prospects of your shop app.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| per_page | No | Number of prospects displayed on each page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds no further behavioral detail about pagination defaults, ordering, filtering, or result shape, so it only partially meets transparency expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but contains a redundant 'Guidance:' line that repeats the same sentence. It is front-loaded but could be more concise by removing duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description only says 'returns the list' without detailing pagination response, item fields, or any additional context needed to fully understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with basic descriptions. The description provides no additional semantic detail beyond the schema, so it stays at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns the list of prospects for the shop app, using a specific verb and resource. It is distinguishable from shop_get_prospect and other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool instead of alternatives such as shop_get_prospect or shop_list_customers. The description implies listing behavior but does not state conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_session_timesList session timesBRead-onlyIdempotentInspect
Returns the history of session times between specified timestamps and on specified platform. Guidance: Returns the history of session times between specified timestamps and on specified platform.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (included) with format `%Y-%m-%d`. Defaults to yesterday. | |
| start_date | No | Start date (included) with format `%Y-%m-%d`. Defaults to one month ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, which the description accurately reflects by stating it 'returns' data. The description does not add additional behavioral details (e.g., response size, error cases) but does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but is duplicated verbatim, creating unnecessary redundancy. It lacks structured usage notes or examples, though it is brief and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain what kind of data is returned (e.g., individual session timestamps, counts, or aggregates). It only says 'history of session times,' which is vague. Additionally, the 'platform' mention without a corresponding parameter adds confusion rather than context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides complete coverage for both parameters (start_date, end_date) with format and defaults. The description adds no extra semantic meaning to these parameters; it only vaguely references 'specified timestamps' without clarifying their role or relationship.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'returns the history of session times' between specified timestamps, conveying a specific verb and resource. However, it mentions 'specified platform' which is not present in the input schema, introducing minor ambiguity about the tool's exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus sibling tools like shop_list_page_views or shop_list_orders. No exclusions, comparisons, or conditional usage hints are given, leaving the selection criteria entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_tagsList tagsARead-onlyIdempotentInspect
Returns a list of the tags used in the shop. The results are paginated (20 tags displayed on each page by default). Guidance: Returns a list of the tags used in the shop. The results are paginated (20 tags displayed on each page by default).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| sort | No | Sorts the returned tags. Possible values:- `alpha`: ascending alphabetical order - `last_created`: descending creation date order - `most_tagged`: sorted by descending number of products using this tag | |
| per_page | No | Number of tags displayed on each page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations clearly declare readOnlyHint, idempotentHint, and destructiveHint false, which aligns with the description's promise of returning a list. No side effects are implied or omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but it repeats the same content in the 'Guidance' portion, creating unnecessary redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool's purpose and basic pagination are described, but there is no output schema and no indication of what fields each returned tag contains, leaving some ambiguity about the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions and the sort enum values are explained, providing good schema coverage. However, the descriptions are terse and add little beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns a list of tags used in the shop, using a specific verb and resource. The resource name and description distinguish it from the many sibling list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing to list shop tags and provides pagination context, but it does not explicitly contrast this tool with similar sibling tools or explain when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_list_unique_launchesList unique launchesBRead-onlyIdempotentInspect
Returns the history of unique launches between specified timestamps and on specified platform. Guidance: Returns the history of unique launches between specified timestamps and on specified platform.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date (included) with format `%Y-%m-%d`. Defaults to yesterday. | |
| platform | No | Target platform. Defaults to "all". | |
| start_date | No | Start date (included) with format `%Y-%m-%d`. Defaults to one month ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, and the description is consistent with those traits. No additional side-effect, authorization, or rate-limit context is added, so it stays at the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is clear and front-loaded, but the 'Guidance:' sentence is an exact duplicate and provides no additional value, reducing overall conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and does not specify return shape, uniqueness definition, or sort/grouping behavior. Since there is no output schema, this leaves some ambiguity, though it is sufficient for a simple list query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full coverage of all three parameters with descriptions, defaults, and the platform enum. The description adds no meaningful semantic detail beyond restating 'specified timestamps and platform.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns history of unique launches filtered by date range and platform, with an explicit verb and resource. It does not explicitly contrast with sibling shop_list_launches, but the phrase 'unique launches' conveys a distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The 'Guidance:' line merely repeats the description rather than explaining when to prefer this tool over alternatives like shop_list_launches or how it relates to other list endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_closeADestructiveIdempotentInspect
Close the session without saving: its changes are dropped. studio_save closes the session itself.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true; the description adds the consequence of that destructiveness — unsaved changes are dropped — which tells the agent what it loses before calling. It does not cover behavior on an already-closed or unknown session_id (error vs no-op), which would be the last needed detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and its data-loss consequence before the sibling comparison. Nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool with annotations covering safety and idempotency, this is nearly complete: the agent knows what it closes, what is lost, and where to go to save instead. Only edge-case behavior on invalid sessions is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100%, with the schema itself explaining that session_id comes from studio_open_page. The description adds no additional meaning about the parameter, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('close the session') and immediately qualifies the scope ('without saving: its changes are dropped'). It also names the sibling studio_save so the agent can distinguish the two without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the selection rule clearly: use this to abandon changes, use studio_save to persist them (since saving also closes the session). No explicit exclusion cases such as 'do not use on a session with required unsaved state', but the alternative is named and characterized.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_edit_fileAInspect
Replace one exact piece of text in a file of the open page. old_text must appear exactly once in the file: copy it from studio_read_file, without the line numbers, and include enough surrounding lines to make it unique. Nothing is saved before studio_save.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | One of the page's four files. | |
| new_text | Yes | ||
| old_text | Yes | ||
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, non-destructive, so the description usefully adds the failure condition (old_text must appear exactly once) and the deferred-persistence model ('Nothing is saved before studio_save'). That is real context beyond the annotations, though it doesn't say what the tool returns or how a non-unique match surfaces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, ordered from what the tool does to the precondition to the persistence caveat. Every sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the critical mechanics: unique-match requirement, where to source the text, and the save boundary. It leaves error reporting and confirmation of the applied edit unstated, which is a minor but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (path and session_id documented; old_text and new_text bare), so description compensation matters. The description does exactly that for old_text — uniqueness rule, source, line-number caveat, and how to disambiguate — while new_text is left to obvious inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and scope: 'Replace one exact piece of text in a file of the open page,' which is meaningfully narrower than the sibling studio_write_file. It doesn't explicitly name write_file as the alternative for whole-file replacement, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete sourcing instructions ('copy it from studio_read_file, without the line numbers') and the uniqueness precondition, plus the workflow gate that nothing persists before studio_save. It stops short of saying when to prefer this over studio_write_file or studio_search_in_files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_get_app_contextBRead-onlyIdempotentInspect
The context of the app: palette and fonts, logo, configured API keys (names only), uploaded files, backend status and existing tables.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description does add genuinely useful behavioral detail beyond that — notably that API keys are returned as names only, which signals redaction and reassures the agent this is safe to call for diagnostics. It stops short of describing cost, size, or whether the payload is cached per session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact clause with no padding, and the most discriminating items (palette/fonts, API key names, backend status) come first. It loses a point only because the fragmentary phrasing reads like a field list rather than a self-contained statement an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the full burden of describing the returned bundle — and it enumerates every component (palette, fonts, logo, key names, files, backend status, tables) in a way that lets an agent decide whether to call it. It falls short of 5 by omitting the shape and rough size of the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single session_id parameter is fully documented in the schema, including where it comes from (studio_open_page). The description adds nothing about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase enumerating return contents rather than a statement of what the tool does — there is no verb like 'retrieve' or 'read'. The enumeration is specific enough that an agent can infer it fetches app-level context, but it never distinguishes this from siblings such as studio_list_files, studio_read_doc, or studio_run_checks, which also surface app state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. An agent must infer entirely from the name and the return-content list when this is the right call versus studio_list_pages or studio_list_files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_list_filesARead-onlyIdempotentInspect
List the files of the open page, with their sizes.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that sizes are returned; it says nothing about pagination, recursion into subdirectories, or behavior when no page is open.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, and the extra detail (sizes) is appended efficiently. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing return values; it discloses only that sizes accompany files, leaving structure, ordering, and empty-page behavior unspecified. Adequate for a simple read tool but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema coverage — the schema already explains that session_id comes from studio_open_page. The description adds no further meaning about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (files) scoped to 'the open page', which is more precise than the bare name. It is distinguishable from studio_list_pages (pages, not files) and from studio_read_file (reads content rather than enumerating), though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'of the open page' implies a prerequisite (an open page/session) but never says so directly or routes to studio_open_page or to alternatives like studio_search_in_files. Usage is inferable from context rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_list_pagesARead-onlyIdempotentInspect
List the web plugin pages of your app that the page studio can edit: id, name, kind and last update. Open one with studio_open_page. New pages are created in the studio itself.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world, non-destructive), so the description's added value is scope: only studio-editable web plugin pages. It also discloses the return payload fields and that this tool cannot create pages, both of which go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the scope stated first, the follow-up action second, and the misuse-prevention note last. Each sentence carries distinct information and none repeats the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, non-destructive list tool with no output schema, the description supplies the scope, the returned fields, and the navigation path to studio_open_page. An agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4; there is nothing to disambiguate. The description goes slightly beyond schema obligations by enumerating the returned fields (id, name, kind, last update).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and a narrowly scoped resource: the web plugin pages the page studio can edit, and even names the returned fields. This separates it from the cms_/shop_ list tools, though it doesn't explicitly contrast with close siblings like studio_list_files or studio_list_sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear next step ('Open one with studio_open_page') and rules out creation ('New pages are created in the studio itself'), which is useful when-to/when-not guidance. It stops short of saying how this differs from studio_list_files or studio_list_sections, which an agent could confuse it with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_list_productsARead-onlyIdempotentInspect
The products of the app's shop, read now: title, price, former price when on sale, stock, picture and page, with the rules to show them. Narrow the list with on_sale, keyword, shop_section (the name of one of the app's shop sections) and sort.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | By price or by name, or position: the order of the shop section. Without it, the newest first; with a keyword, the best matches first unless sorted by price or name. | |
| limit | No | How many products, 8 when not given. | |
| keyword | No | Words to search for in the products (title, text, tags, brand): those matching any of them, the best matches first. | |
| on_sale | No | Only the products on sale. | |
| session_id | Yes | The session_id studio_open_page returned. | |
| shop_section | No | Only the products of this shop section of the app, by its name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds that products are read "now" from the current app state and that display rules come back with them, but it says nothing about the 24-item cap, default page size, or what happens when no section matches — details an agent would want for a session-scoped read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, return fields first and filters second, with no filler. The phrasing "read now" is slightly awkward but does not cost clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned product fields and notes that presentation rules are included; annotations cover the safety profile. Still missing is any mention of the required session_id provenance and result-size limits, which matter for a session-bound listing call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description restates the filter names and adds only the gloss "the name of one of the app's shop sections," which largely duplicates the schema's own wording; the enum values, default of 8, and max of 24 are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list/read) and resource (the app's shop products) and enumerates the returned fields (title, price, former price, stock, picture, page). It scopes itself to "the app's shop" in the studio session context, which partially separates it from the sibling shop_list_products, but it never names that sibling or states the difference explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Narrow the list with on_sale, keyword, shop_section and sort" implies when the filters are useful, but there is no explicit when-to-use / when-not guidance, and no routing between this tool and shop_list_products or studio_open_page (which produces the required session_id). Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_list_sectionsARead-onlyIdempotentInspect
The pages of the app (sections, widgets, web plugins), published or not, with their link and the exact rules to link to them. Without arguments, every page; narrow the list with kind, or with part of a name.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| name | No | ||
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new behavioral facts: unpublished pages are included, and results carry their link plus the exact rules for linking to them. It does not mention result limits or ordering, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what the tool returns, then default behavior and filtering options. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully says what each entry contains (link and linking rules), and the filtering semantics are covered. Missing are pagination/result-size behavior and any hint about how it differs from studio_list_pages, which for a list tool is a minor but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (just session_id documented), so the description must carry the rest — and it does: 'kind' is mapped to the three enumerated values and 'name' is clarified as a partial match ('part of a name'), not an exact one. The required session_id is left to the schema, which documents it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('list ... the pages of the app') and enumerates the kinds covered (sections, widgets, web plugins), plus what is returned (link and linking rules). The one weakness is that it never distinguishes itself from the sibling studio_list_pages, which by name sounds like the same resource, leaving an ambiguity an agent must resolve on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Without arguments, every page; narrow the list with kind, or with part of a name' explains default and narrowing behavior, which is useful. But it gives no when-to-use/when-not guidance and never mentions the competing studio_list_pages tool, so tool selection is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_open_pageAInspect
Open a page for editing and get the session_id every other studio tool needs. The page has four files: index.html, style.css, app.js and manifest.json. One session per page at a time, the studio's own assistant included. A session ends after 30 minutes without a call, and keeps nothing. End it with studio_save, or with studio_close to drop the changes.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The page_id studio_list_pages returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the concurrency lock (one session per page, including the studio's own assistant), a 30-minute idle expiry, and that an expired session retains nothing. The one gap is whether the mutation annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) fully align — the description implies re-opening is blocked rather than idempotent, which is consistent, but it doesn't say what happens to edits on timeout beyond 'keeps nothing' (discarded, presumably).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with the core action and the returned session_id front-loaded, then constraints, then the two exit paths. Every sentence contributes new information; nothing is restated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description names the return value (session_id) and explains the full session lifecycle — start, concurrency limit, expiry, and the two ways to end. An agent has everything needed to call this and to sequence the sibling studio tools correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single page_id parameter is already documented as coming from studio_list_pages, so the description adds no additional parameter meaning. Baseline 3 applies when the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Open a page for editing") and immediately names the artifact it produces ("session_id every other studio tool needs"), which distinguishes it from studio_list_pages and the read/write file tools. The mention of the four files further pins down what a 'page' is in this system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly establishes this as the prerequisite for all other studio tools, and routes the agent at the end: studio_save to keep changes, studio_close to drop them. It also gives the failure constraint ("one session per page at a time") so the agent knows when a second call would conflict.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_read_docARead-onlyIdempotentInspect
Read a manual: gb_api (the gb object of the app runtime), services (external APIs, libraries, keys), supabase (shared backend tables), proxy (secret keys), manifest (the fields of manifest.json), gbcontent (the app's sections whose content a page can display, and how to read it).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the content scope of the manual, not what is returned (full doc vs section, format) or whether a session must be open. That is a modest addition over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence ('Read a manual: ...') with a dense but purposeful topic glossary. No filler, though the long parenthetical chain is harder to scan than a short list would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description never indicates the shape of what comes back (markdown text, structured sections, length) or that session_id must come from studio_open_page. For a documentation-retrieval tool this leaves the return value underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only lists the enum values, but the description explains what each one actually contains (e.g. proxy = secret keys, gbcontent = the app's sections whose content a page can display). This meaningfully enriches the enum beyond the schema, which compensates for the 50% coverage gap where session_id is concerned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('a manual') and enumerates the six documentation topics it covers, so an agent can tell it apart from studio_read_file. It does not explicitly distinguish itself from studio_read_file or studio_get_app_context, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the enumeration of topics signals 'call this when you need to know about gb_api, services, supabase...'. There is no explicit when-to-use, no prerequisites (e.g. must call studio_open_page first), and no named alternative versus studio_read_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_read_fileARead-onlyIdempotentInspect
Read a file of the open page, with line numbers. Without a range, returns the first 400 lines; ask for more with start_line and end_line. A line longer than 8000 characters is cut; studio_search_in_files finds text inside it. version "start" reads the file as it was when the session opened, to put back something removed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | One of the page's four files. | |
| version | No | current (the default): the file as it is now; start: as it was when the session opened. | |
| end_line | No | ||
| session_id | Yes | The session_id studio_open_page returned. | |
| start_line | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent safety, and the description adds genuinely new behavioral facts: the 400-line default window, the 8000-character line truncation, and the historical view semantics of version "start". It doesn't say what happens when the path or session_id is invalid, but the truncation/limit disclosures are exactly the kind of context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action and default behavior front-loaded. The final clause about version "start" is slightly compressed and reads awkwardly, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read tool with no output schema and full annotation coverage, the description supplies the essentials an agent needs to call it correctly: available files, default range, truncation behavior, and the historical-version option. Error handling and exact response shape remain unstated, but those are minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 60% schema coverage (path, version, session_id described; start_line and end_line bare), the description compensates by explaining the default line window and that start_line/end_line request more, and it elaborates the current-vs-start meaning. Only session_id is left to the schema, so the description meaningfully closes the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ("Read a file of the open page, with line numbers") and scopes it to the page's files, which separates it from the write/edit siblings. It also names studio_search_in_files as the alternative for locating text, though it doesn't contrast with studio_read_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage context: the 400-line default and how to page with start_line/end_line, plus a pointer to studio_search_in_files when text is buried inside a long line. It also explains when to use version "start" (to restore something removed). It stops short of stating prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_run_checksARead-onlyIdempotentInspect
Run every check studio_save will run on the open page (structure, manifest, security rules, links, API declarations, JavaScript syntax), without saving anything. Warnings do not block studio_save. On a page that had code, it also lists what changed since the version you started from, and the other pages of the app that read a table or a gb.storage key you changed. Can take up to 90 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent/destructive annotations: it discloses the up-to-90-second latency, that warnings are non-blocking, that nothing is persisted, and that output includes a diff since the starting version plus cross-page references for changed tables/storage keys. This is exactly the behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the 'without saving anything' qualifier, followed by result semantics and a latency note. Dense but nearly every clause carries information; the third sentence is somewhat packed but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a single fully-documented parameter, the description covers what the agent needs: what is checked, that nothing is persisted, that warnings are advisory, what extra diff/reference data appears, and the long runtime. Nothing material is missing for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and session_id is fully documented in the schema (including its provenance from studio_open_page), so the description does not need to restate it. The description adds no parameter-level meaning beyond the schema, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run every check studio_save will run on the open page'), enumerates the check categories, and explicitly contrasts with the sibling studio_save by noting it saves nothing. An agent can distinguish it from studio_save without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is clearly implied and tied to the sibling: it is a dry-run of studio_save, and 'Warnings do not block studio_save' tells the agent how to interpret results before saving. It stops short of an explicit 'call this before saving' instruction or a when-not-to-use condition, so it is strong but not fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_saveAInspect
Save the open page as a new version and close the session. Runs the same checks as studio_run_checks; when they fail, nothing is saved and the errors come back to you. On a change, the first save that loses functions or element ids the request does not remove is refused once, with their names; so is the first save that changes a table or a gb.storage key other pages read, with those pages. Saving does not publish: the user publishes the version from the studio. Can take up to 90 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | For the user, in the user's language: one sentence saying what the page does or what changed. | |
| not_done | Yes | For the user, in the language of the request: what the request asked that the page does not do as asked. For example: sample data instead of the user's, data kept on each device instead of shared between users, a change made on this page instead of another, a version rebuilt instead of restored. Never what you did. Exactly "" when the page does all of it. | |
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds a great deal beyond annotations: nothing is saved when checks fail, errors are returned, the first destructive-ish save is refused once with the lost function/element ids named, cross-page table/storage impact is flagged with page names, and the call can take up to 90 seconds. The refusal guard explains why destructiveHint=false in practice, so there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and side effect, and every sentence carries useful information about checks, refusals, and publish scope. The sentence 'so is the first save that changes a table or a gb.storage key other pages read, with those pages' is grammatically tangled and takes effort to parse, costing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what comes back (errors on check failure, names of lost ids or affected pages on refusal) and warns about the 90-second latency. This is sufficient for an agent to invoke the tool correctly and interpret failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter carries a detailed description (summary, not_done, session_id), so the schema already does the heavy lifting. The tool description adds no syntax or format guidance for the parameters, which is the expected baseline-3 posture when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Save the open page as a new version' — plus the closing side effect of the session. It also distinguishes the scope from siblings: 'Runs the same checks as studio_run_checks' and 'Saving does not publish' make it unmistakable versus run_checks and close.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The reference to studio_run_checks implies the agent doesn't need to run checks separately before saving, and 'saving does not publish: the user publishes the version' rules out a publish workflow. The retry semantics ('refused once') implicitly define a fix-and-resave loop. There is no explicit 'when not to use' statement, 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.
studio_search_in_filesARead-onlyIdempotentInspect
Find where a piece of text appears in the open page's files, exactly as written (case-sensitive; not a regular expression). A short line is shown whole; in a long line (minified code), each occurrence is shown with the text around it. Returns at most 50 matches.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | One of the page's four files. | |
| text | Yes | ||
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, idempotent operation. The description adds meaningful behavioral detail beyond that: matching is exact and case-sensitive, regex is not supported, long-line matches include surrounding context, and results are capped at 50 matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the core purpose and followed by match-display and result-limit details. Every sentence adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with no output schema, the description explains the search semantics, snippet behavior, and 50-match cap well. The main missing piece is how the optional 'path' parameter behaves when omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is partial at 67%, and the description compensates for the undocumented 'text' parameter by specifying exact literal matching, case sensitivity, and non-regex behavior. It does not clarify whether omitting 'path' searches all four files, leaving one notable gap around the optional path parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: find where a text string appears in the open page's files. It clearly differs from read_file/edit_file/list_files by focusing on locating text matches, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Find where a piece of text appears,' which tells the agent this is a search operation rather than a file read. However, there is no explicit guidance on when to use it instead of studio_read_file or studio_list_files, and no stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_write_fileAInspect
Write a whole file of the open page, or append to it with append=true. Replacing an existing large file is refused: change it with studio_edit_file. manifest.json must stay one valid JSON object (studio_read_doc, topic manifest). Nothing is saved before studio_save.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | One of the page's four files. | |
| append | No | ||
| content | Yes | ||
| session_id | Yes | The session_id studio_open_page returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say it is a non-readonly, non-destructive, non-idempotent write. The description adds material behavior beyond that: the refusal of large replacements, the two-step save model (nothing persisted before studio_save), and the validity constraint on manifest.json.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each carrying a distinct constraint: write/append, the large-file refusal with its alternative, the manifest rule, and the save gating. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter write tool with no output schema, it covers the critical unknowns an agent needs: when writes actually persist, how to modify large files instead, and the structural rule for manifest.json.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% and the undocumented parameters are append and content. The description compensates by explaining append=true's semantics and the whole-file vs. append distinction, though it says nothing extra about content or session_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (write) and resource (a whole file of the open page) plus an alternate mode (append=true). It also names the sibling it is not — studio_edit_file — so the tool is distinguishable without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says a large existing file cannot be replaced and directs the agent to studio_edit_file instead, and warns that nothing is saved until studio_save. It also sets a constraint for manifest.json, so the when-to-use and when-not rules are concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- Added
studio_close - Added
studio_edit_file - Added
studio_get_app_context - Added
studio_list_files - Added
studio_list_pages - Added
studio_list_products - Added
studio_list_sections - Added
studio_open_page - Added
studio_read_doc - Added
studio_read_file - Added
studio_run_checks - Added
studio_save - Added
studio_search_in_files - Added
studio_write_file
66 tool updates
- Removed
cms_create_article - Removed
cms_create_article_paragraph - Removed
cms_create_event - Removed
cms_create_event_paragraph - Removed
cms_create_map - Removed
cms_create_map_paragraph - Removed
cms_create_photos - Removed
cms_create_sound_paragraph - Removed
cms_create_video - Removed
cms_create_video_paragraph - Removed
cms_delete_article - Removed
cms_delete_article_paragraph - Removed
cms_delete_event - Removed
cms_delete_event_paragraph - Removed
cms_delete_map - Removed
cms_delete_map_paragraph - Removed
cms_delete_photo - Removed
cms_delete_sound - Removed
cms_delete_sound_paragraph - Removed
cms_delete_video - Removed
cms_delete_video_paragraph - Removed
cms_reorder_article_paragraphs - Removed
cms_reorder_event_paragraphs - Removed
cms_reorder_map_paragraphs - Removed
cms_reorder_sound_paragraphs - Removed
cms_reorder_video_paragraphs - Removed
cms_update_article - Removed
cms_update_article_paragraph - Removed
cms_update_event - Removed
cms_update_event_paragraph - Removed
cms_update_map - Removed
cms_update_map_paragraph - Removed
cms_update_photo - Removed
cms_update_sound - Removed
cms_update_sound_paragraph - Removed
cms_update_video - Removed
cms_update_video_paragraph - Removed
shop_create_option - Removed
shop_create_paragraph - Removed
shop_create_paragraph_media - Removed
shop_create_product - Removed
shop_create_promocode_amount - Removed
shop_create_promocode_collections - Removed
shop_create_promocode_product - Removed
shop_create_promocode_tags - Removed
shop_create_push_broadcast - Removed
shop_create_push_notification - Removed
shop_create_variant - Removed
shop_delete_option - Removed
shop_delete_paragraph - Removed
shop_delete_paragraph_media - Removed
shop_delete_product - Removed
shop_delete_product_pdf - Removed
shop_delete_product_slide - Removed
shop_delete_variant - Removed
shop_update_loyalty - Removed
shop_update_option - Removed
shop_update_order_shipping - Removed
shop_update_paragraph - Removed
shop_update_paragraph_media - Removed
shop_update_product - Removed
shop_update_product_slide - Removed
shop_update_variant - Removed
shop_upload_product_pdf - Removed
shop_upload_product_slide - Removed
shop_validate_jwt
120 tool updates
- First observed
cms_create_article - First observed
cms_create_article_paragraph - First observed
cms_create_event - First observed
cms_create_event_paragraph - First observed
cms_create_map - First observed
cms_create_map_paragraph - First observed
cms_create_photos - First observed
cms_create_sound_paragraph - First observed
cms_create_video - First observed
cms_create_video_paragraph - First observed
cms_delete_article - First observed
cms_delete_article_paragraph - First observed
cms_delete_event - First observed
cms_delete_event_paragraph - First observed
cms_delete_map - First observed
cms_delete_map_paragraph - First observed
cms_delete_photo - First observed
cms_delete_sound - First observed
cms_delete_sound_paragraph - First observed
cms_delete_video - First observed
cms_delete_video_paragraph - First observed
cms_get_article - First observed
cms_get_article_paragraph - First observed
cms_get_event - First observed
cms_get_event_paragraph - First observed
cms_get_map - First observed
cms_get_map_paragraph - First observed
cms_get_photo - First observed
cms_get_sound - First observed
cms_get_sound_paragraph - First observed
cms_get_video - First observed
cms_get_video_paragraph - First observed
cms_list_article_paragraphs - First observed
cms_list_articles - First observed
cms_list_cms_sections - First observed
cms_list_event_paragraphs - First observed
cms_list_events - First observed
cms_list_map_paragraphs - First observed
cms_list_maps - First observed
cms_list_photos - First observed
cms_list_sections - First observed
cms_list_sound_paragraphs - First observed
cms_list_sounds - First observed
cms_list_video_paragraphs - First observed
cms_list_videos - First observed
cms_reorder_article_paragraphs - First observed
cms_reorder_event_paragraphs - First observed
cms_reorder_map_paragraphs - First observed
cms_reorder_sound_paragraphs - First observed
cms_reorder_video_paragraphs - First observed
cms_update_article - First observed
cms_update_article_paragraph - First observed
cms_update_event - First observed
cms_update_event_paragraph - First observed
cms_update_map - First observed
cms_update_map_paragraph - First observed
cms_update_photo - First observed
cms_update_sound - First observed
cms_update_sound_paragraph - First observed
cms_update_video - First observed
cms_update_video_paragraph - First observed
meta_get_tool_plan - First observed
shop_create_option - First observed
shop_create_paragraph - First observed
shop_create_paragraph_media - First observed
shop_create_product - First observed
shop_create_promocode_amount - First observed
shop_create_promocode_collections - First observed
shop_create_promocode_product - First observed
shop_create_promocode_tags - First observed
shop_create_push_broadcast - First observed
shop_create_push_notification - First observed
shop_create_variant - First observed
shop_delete_option - First observed
shop_delete_paragraph - First observed
shop_delete_paragraph_media - First observed
shop_delete_product - First observed
shop_delete_product_pdf - First observed
shop_delete_product_slide - First observed
shop_delete_variant - First observed
shop_get_collection - First observed
shop_get_customer - First observed
shop_get_loyalty - First observed
shop_get_order - First observed
shop_get_order_shipping - First observed
shop_get_paragraph_media - First observed
shop_get_product - First observed
shop_get_promocode - First observed
shop_get_prospect - First observed
shop_get_variant - First observed
shop_list_collections - First observed
shop_list_customers - First observed
shop_list_downloads - First observed
shop_list_downloads_global - First observed
shop_list_launches - First observed
shop_list_options - First observed
shop_list_orders - First observed
shop_list_page_views - First observed
shop_list_page_views_per_weekday - First observed
shop_list_paragraphs - First observed
shop_list_products - First observed
shop_list_promocodes_amount - First observed
shop_list_promocodes_collections - First observed
shop_list_promocodes_product - First observed
shop_list_promocodes_tags - First observed
shop_list_prospects - First observed
shop_list_session_times - First observed
shop_list_tags - First observed
shop_list_unique_launches - First observed
shop_update_loyalty - First observed
shop_update_option - First observed
shop_update_order_shipping - First observed
shop_update_paragraph - First observed
shop_update_paragraph_media - First observed
shop_update_product - First observed
shop_update_product_slide - First observed
shop_update_variant - First observed
shop_upload_product_pdf - First observed
shop_upload_product_slide - First observed
shop_validate_jwt
Related MCP Connectors
Publishing, scheduling, analytics, ads, AI, sites, flows... everything. Anywhere, anytime, for all.
Glide's official MCP server — build, manage, and operate GlideOS apps, data, and workflows.
Hosted MCP for Instagram, Facebook, X, LinkedIn, Pinterest, and Ghost. OAuth 2.1, 38 tools.
Social media MCP: publish, schedule & analyze posts on TikTok, Instagram, YouTube, LinkedIn & X
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA hosted MCP server that lets AI clients manage WordPress sites, WooCommerce and Shopify stores, Pinterest accounts and Google Search Console, covering content, products, orders, themes, analytics and SEO fields through OAuth sign-in. Risky operations such as deletes, refunds and theme switches are held until a person approves them.-
- AlicenseNot gradedqualityBmaintenanceMCP server for AI-assisted WordPress editing across 12 page builders. 172 tools for content management, page builder editing, WooCommerce, SEO analysis, accessibility scanning, and site intelligence. Edits native builder formats (Elementor, Bricks, Divi, Gutenberg, Beaver Builder, and 7 more) with duplicate-before-edit safety, optimistic locking, and surgical element-level operations10MIT
- AlicenseBqualityBmaintenanceMCP server for Instagram Graph API, Threads API & Meta platform — posting, insights, comments, messaging66722 npm31MIT
- AlicenseAqualityBmaintenanceOfficial MCP server for Brilliant Directories, the membership and directory website platform powering 50,000+ sites. Manage members, posts, leads, reviews, email templates, forms, menus, pages, redirects, tags, and more.17119MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.