Select Brand Images
select_brand_imagesSave the user's chosen brand images as visual references for post generation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| imageUrls | Yes | The image URLs the user selected |
select_brand_imagesSave the user's chosen brand images as visual references for post generation.
| Name | Required | Description | Default |
|---|---|---|---|
| imageUrls | Yes | The image URLs the user selected |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent write. The description adds useful context about what is being stored and why (visual references for post generation), which goes slightly beyond the annotation set. However, it never clarifies whether repeated calls append or overwrite, which is exactly the ambiguity the idempotentHint=false annotation raises and which matters to an agent calling it twice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the action front-loaded and zero filler. It is appropriately terse for a one-parameter tool, though the terseness is what leaves the usage and replace/append gaps unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter write with annotations covering the safety profile and no output schema, the description is minimally adequate: it says what is saved and for what purpose. It falls short on the one behavior an agent actually needs here — the effect of saving a second time relative to existing references — which is not recoverable from the schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter ('imageUrls' documented as the selected URLs), so the schema carries parameter meaning on its own. The description's 'user's chosen brand images' loosely maps to that parameter but adds no format, count, or constraint detail (e.g., minItems of 1) beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Save the user's chosen brand images') plus the downstream purpose ('as visual references for post generation'), so the agent knows this persists a selection rather than discovering or recommending images. It does not, however, name or contrast itself with near siblings like discover_brand_images, recommend_images_for_post, or search_my_images, leaving that discrimination to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the user's chosen brand images' faintly implies a prior selection step, but there is no explicit when-to-use, when-not-to-use, or alternative named. Nothing tells the agent whether this replaces an existing reference set or adds to it, or when to prefer it over set_agent_onboarding_images.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.