Santa Wishlist – hand-picked gift ideas
Server Details
Hand-picked gift ideas for kids' Christmas, turned into shareable wishlists fast.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Several tools overlap by design: create_and_fill is a strict superset of create_wishlist (which itself accepts items), and get_catalog, search_gifts, and resolve_product all return product/search links for the same storefronts with only subtle differences (keywords vs ASIN vs paginated catalog). list_marketplaces is explicitly the same data as get_health.marketplaces, so an agent must read descriptions carefully to pick correctly. The descriptions do spell out a 'preferred agent path', which keeps this from being worse.
All nine tools use snake_case verb-first names (add_/create_/get_/list_/resolve_/search_), which is fully consistent. create_and_fill is the only slight deviation from the verb_noun shape but still fits the pattern.
Nine tools is a well-scoped size for a small gift-wishlist service: create, fill, add, read, and discovery operations each map to a distinct capability. No bloat, and nothing looks like a filler tool.
The surface covers create, read, and add-item for wishlists and product discovery, but there is no way to remove an item, update/rename a wishlist, delete a wishlist, or list a user's existing wishlists. These are notable lifecycle gaps, especially item removal after a mistaken add, which the description hints at only via token/id churn.
Available Tools
9 toolsadd_wishlist_itemAdd wish itemAInspect
Add an item to a wishlist. Requires editToken from create. Body: name/title plus asin, url (pasted /dp), searchKeywords, or catalogId. Token storage may return a new id — update bookmarks. OpenAPI: addWishlistItem.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wishlist id | |
| url | No | ||
| asin | No | ||
| name | No | ||
| emoji | No | ||
| title | No | ||
| catalogId | No | ||
| editToken | Yes | X-Edit-Token from create/mutate response | |
| searchKeywords | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=true, so the description carries real weight: it discloses the editToken dependency, the one-of identifier rule, and the non-obvious side effect that token storage may return a new id requiring bookmark updates. It does not cover failure modes or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then the precondition, then the body rule, in compact telegraphic prose with no filler. The trailing 'OpenAPI: addWishlistItem' is marginally useful for traceability but is essentially a dangling fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation with no output schema, the description covers the critical prerequisites and side effects but leaves the return shape, error conditions, and several optional parameters (emoji, and how searchKeywords resolves) undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 22%, so the description must compensate, and it does: it explains that url is a pasted /dp path, that name/title are the display label, and that asin/url/searchKeywords/catalogId are mutually alternative item references. The emoji parameter and the exact one-of exclusivity remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add an item to a wishlist') that an agent can distinguish from create_wishlist and create_and_fill without opening a schema. It stops short of explicitly contrasting itself with the sibling create_and_fill, which also populates a wishlist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Requires editToken from create' gives the precondition for calling, and the body rule ('name/title plus asin, url (pasted /dp), searchKeywords, or catalogId') tells the agent the item must be identified by exactly one reference source. There is no explicit when-not or named alternative such as create_and_fill.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_and_fillOne-shot create and fillAInspect
One call: create a curated kids' Christmas gift wishlist and return shopUrl (share link) + ownerUrl. Preferred agent path: create a wishlist and add ASINs / keywords / search queries in one call (or give only ageBand/interests to auto-fill curated picks). Pass marketplace=amazon.com for US shoppers (amazon.se default). Returns id, editToken, shopUrl, ownerUrl, parentUrl, kidUrl. OpenAPI: agentCreateAndFill.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | If no items are given, auto-fill this many curated picks for the age band/interests (default 6) | |
| locale | No | User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted. | |
| ageBand | No | ||
| country | No | ISO country of the shopper, e.g. US or SE (used when marketplace is omitted) | |
| childName | No | ||
| interests | No | ||
| itemAsins | No | ||
| itemQueries | No | Each query is searched and added as a wish | |
| marketplace | No | Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com. | |
| itemKeywords | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=true; the description goes further by spelling out return fields, the marketplace resolution order (marketplace → country → locale → amazon.se default), and the different link types per storefront. It omits any auth/permission or rate-limit expectations for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with "One call:" and packed with useful detail in four sentences. The marketplace precedence chain is a dense pseudo-grammar and the parentheticals make it slightly run-on, but nothing is genuinely redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly enumerates the return fields (id, editToken, shopUrl, ownerUrl, parentUrl, kidUrl), which is exactly what an agent needs. The only gap is that childName's role and the interaction between count and explicit items are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 50% schema coverage, the description compensates for several undocumented params (itemAsins, itemKeywords, ageBand/interests auto-fill semantics) and adds the marketplace precedence chain. However, childName is never explained in either place, and count's default/max is only restated from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — create a curated kids' Christmas gift wishlist — and names the distinguishing capability (one call instead of create_wishlist + add_wishlist_item). An agent can tell from the first sentence that this is the combined path rather than a step in it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Preferred agent path" plus two concrete input modes (explicit ASINs/keywords/queries, or only ageBand/interests for auto-fill) give clear selection guidance. It does not state when to fall back to the granular siblings (create_wishlist then add_wishlist_item), which is the one missing exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_wishlistCreate wishlistAInspect
Create a kids Christmas wishlist. Pass marketplace (amazon.com for US, amazon.se default) so buy links match the shopper's store. Returns id, editToken, shopUrl, ownerUrl, parentUrl, kidUrl, wishlist, storage. Save editToken for add_wishlist_item. If storage is token, later mutations may return a new id — always use the latest. OpenAPI: createWishlist.
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | ||
| ageBand | No | ||
| country | No | ISO country of the shopper, e.g. US or SE (used when marketplace is omitted) | |
| childName | No | ||
| interests | No | ||
| marketplace | No | Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=true; the description adds real context beyond that, including the returned fields (id, editToken, shopUrl, storage) and the important caveat that with token storage later mutations may return a new id that must be used. It does not describe permissions, error modes, or whether the wishlist is public by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then the marketplace note, then the returns and token caveat — each sentence carries information. It is slightly run-on with the OpenAPI alias and the compressed returns list, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields and the id-rotation behavior, and it explains the marketplace resolution order for the one enum-adjacent parameter. Still missing coverage of the items/childName/interests parameters and any prerequisite or failure-mode context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description largely repeats what the marketplace schema description already says about the resolution order and link formats. The other parameters (items, childName, ageBand, interests) get no semantic explanation in the description, so the low-coverage gap is only partially compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a kids Christmas wishlist') with domain scope, which an agent can grasp immediately. Sibling differentiation is only implicit: it signals the sequencing with add_wishlist_item, but never distinguishes itself from create_and_fill or explains why items are an optional parameter here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent to pass marketplace so buy links match the shopper's store, and to save editToken for add_wishlist_item, which implies workflow position. But there is no explicit when-to-use/when-not-to-use guidance versus create_and_fill or add_wishlist_item, and no mention of what happens when all parameters are omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalogCurated gift catalogBRead-onlyInspect
Paginated hand-picked kids gift catalog (~600 on amazon.se, ~560 English items on amazon.com). amazon.se: /dp product links with SEK price hints. amazon.com: English names, tagged amazon.com search links, no SEK prices (catalogMode search-ideas). OpenAPI: getCatalog.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Full-text filter | |
| ids | No | Comma-separated catalog ids | |
| limit | No | ||
| locale | No | User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted. | |
| offset | No | ||
| ageBand | No | ||
| country | No | ISO country of the shopper, e.g. US or SE (used when marketplace is omitted) | |
| interest | No | ||
| interests | No | Comma-separated interests | |
| marketplace | No | Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only and open-world, so the description earns credit for disclosing the materially different result shapes per storefront: /dp product links with SEK price hints on amazon.se versus English search links with no SEK prices on amazon.com. Pagination is also flagged. It omits rate limits or total-count behavior, but the per-marketplace divergence is exactly the kind of thing an agent cannot infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource, which is good — but the telegraphic fragment style ('amazon.com: English names, tagged amazon.com search links, no SEK prices') is hard to parse, and the trailing 'OpenAPI: getCatalog.' is internal jargon that earns no 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 10-parameter read tool with no output schema, the description does cover the payoff of the marketplace axis and the paginated nature of results, which is the most complex part. It leaves the filtering parameters' interaction and result-item structure unexplained, so it is adequate but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with q, ids, limit, offset, ageBand, and interest carrying little or no inline explanation. The description partially compensates by explaining what the marketplace/locale/country axis actually yields, but it says nothing about how to combine text filter (q) with ids, or how ageBand/interest narrow the catalog, so the fill rate stays around the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely — a paginated, curated kids gift catalog — and quantifies it (~600 items on amazon.se, ~560 on amazon.com), which tells an agent what corpus it is querying. It does not distinguish itself from the sibling search_gifts or resolve_product, so an agent still has to infer which retrieval tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this catalog listing versus search_gifts, resolve_product, or create_and_fill. The 'catalogMode search-ideas' note hints at one behavior but never says what condition should route an agent here instead of to a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_healthHealth & marketplacesARead-onlyInspect
Health check for Santa Wishlist gift inspiration. Returns ok, storage, paapi, trackingTag, defaultDomain, catalogCount, and marketplaces[] (domain, label, tagConfigured). amazon.se (default) and amazon.com (US) are the primary storefronts. OpenAPI: getHealth.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that it is a read-only, open-world call. The description adds real value beyond that by disclosing the diagnostic payload (storage, paapi, trackingTag, defaultDomain, catalogCount, marketplaces) and the fact that amazon.se and amazon.com are the primary storefronts, though it does not explain what a failing status looks like or what paapi/trackingTag indicate.
Agents need to know what a tool does to the 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 that front-load the purpose and then the returned fields. The trailing 'OpenAPI: getHealth.' merely restates the tool name and is the only dead weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the return fields and noting storefront defaults, which is the key information an agent needs. It stops short of explaining status value semantics (what 'ok' vs a failing storage/paapi means), a minor gap for a simple zero-arg diagnostic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate; the description correctly focuses on behavior and output rather than inputs. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('health check for Santa Wishlist gift inspiration') and enumerates the returned fields, which makes the diagnostic scope unambiguous. It does not explicitly contrast with siblings, but the health/diagnostic intent is distinct from the wishlist and catalog 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?
Usage is only implied by the phrase 'health check' – there is no statement of when to call it (e.g. before other operations, to troubleshoot missing catalog data) and no alternatives or exclusions are named. An agent can infer the intent but gets no explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wishlistGet wishlistARead-onlyInspect
Fetch a wishlist by id. Returns items with buyUrl/linkType for the list's store (override with marketplace), plus shopUrl, parentUrl and kidUrl. OpenAPI: getWishlist.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wishlist id (short Redis id or t.* token) | |
| marketplace | No | Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and openWorldHint already covering the safety profile, the description adds useful return behavior: items include buyUrl/linkType for the list's store, plus shopUrl, parentUrl and kidUrl. It does not describe errors or auth, but it meaningfully supplements 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 front-loaded and compact. The final 'OpenAPI: getWishlist.' is redundant with the tool name/title but causes minimal bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and annotations, the description is largely complete. Since there is no output schema, listing key returned fields is helpful, though it does not fully describe the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already explains both id and marketplace in detail. The description only briefly restates 'by id' and '(override with marketplace)', so it adds little beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fetch a wishlist by id.' This clearly distinguishes a read-by-id wishlist operation from sibling tools like create_wishlist and add_wishlist_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool does but provides no explicit when-to-use guidance or alternatives. The marketplace note is parameter-specific, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketplacesList Amazon marketplacesARead-onlyInspect
List supported Amazon storefronts (domain, label, currencyHint, tagConfigured). Same data as get_health.marketplaces. Pass the user's marketplace (amazon.com for US, amazon.se for Sweden) on search/catalog/resolve/create.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds the inventory of returned fields and the equivalence to get_health.marketplaces, which is useful behavioral context beyond the annotations. It says nothing about caching, ordering, or whether the list is static, but for a small read-only lookup that is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose and return fields, then the cross-tool usage hint. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by naming the returned fields, and with zero parameters and covered annotations nothing else is needed to call it correctly. The equivalence note to get_health closes the main remaining question about redundant sources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing to disambiguate and the baseline is 4. The description correctly omits parameter discussion rather than inventing any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 (supported Amazon storefronts) and enumerates the returned fields (domain, label, currencyHint, tagConfigured), so the agent knows exactly what comes back. It also explicitly notes the data is identical to get_health.marketplaces, which cleanly separates it from that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete downstream guidance: pass the user's marketplace (amazon.com for US, amazon.se for Sweden) on search/catalog/resolve/create, which tells the agent both when to call this and what to do with the result. It does not explicitly say when to skip this tool, though the get_health equivalence implies a fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_productResolve buy / inspiration linkARead-onlyInspect
Resolve an ASIN, pasted Amazon /dp/ URL, or keywords to a buyUrl for the user's store (amazon.com or amazon.se). Curated catalog ASINs on amazon.com become English search links. With no input it returns a default kids gift search. OpenAPI: resolveProduct.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Pasted Amazon product URL | |
| asin | No | 10-char Amazon ASIN | |
| locale | No | User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted. | |
| ageBand | No | ||
| country | No | ISO country of the shopper, e.g. US or SE (used when marketplace is omitted) | |
| category | No | ||
| keywords | No | Search keywords if no ASIN | |
| marketplace | No | Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com. | |
| preferSearch | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and openWorld, so the safety profile is covered; the description adds genuinely new behavior — the no-input default, the amazon.com curated-ASIN downgrade to English search links, and the two supported storefronts. It omits error behavior for invalid ASINs/URLs, but the added disclosure is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight, front-loaded sentences that each carry information; the input forms lead, then the amazon.com nuance, then the fallback. The trailing "OpenAPI: resolveProduct" is an internal artifact that earns little for a calling agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, zero-required tool with no output schema, the description covers the primary inputs and the return concept (buyUrl) but leaves the optional filtering parameters and the shape of the response largely unexplained. Adequate to call, not enough to call optimally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description contributes real meaning by framing url/asin/keywords as alternative input paths and describing the no-input default. However, two parameters (ageBand, preferSearch) remain undocumented in both schema and description, and the interplay of category/ageBand with keyword search is unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb (resolve) with a defined output (buyUrl) and enumerates the accepted input forms (ASIN, /dp/ URL, keywords). It is distinguishable from siblings like search_gifts and get_catalog by being a resolver of a specific reference into a storefront link, though it never names those siblings to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives implicit routing rules: supply ASIN, URL, or keywords, and with no input it falls back to a default kids gift search. It never states when to prefer this over search_gifts or get_catalog, nor whether the input forms are mutually exclusive, so the agent must infer the selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_giftsSearch kids giftsARead-onlyInspect
Search kids Christmas gift ideas for the user's store (amazon.com for US, amazon.se default). Returns kids-filtered search link cards + curated catalogMatches (English on amazon.com). q is optional. OpenAPI: searchAmazon.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query, e.g. LEGO City (default: christmas gifts for kids) | |
| limit | No | ||
| locale | No | User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted. | |
| ageBand | No | ||
| country | No | ISO country of the shopper, e.g. US or SE (used when marketplace is omitted) | |
| interest | No | Category filter | |
| marketplace | No | Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a read-only, open-world tool, and the description adds meaningful behavioral detail: marketplace-dependent output, English results on amazon.com, and curated /dp product links on amazon.se. It stops short of describing error behavior or limits, but the marketplace-specific return behavior is useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the main purpose and return behavior. The final 'OpenAPI: searchAmazon' line is an implementation reference that does little for an agent, but the rest is dense and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given seven optional parameters, no required fields, and no output schema, the description does a reasonable job explaining default query behavior, marketplace selection, and return formats. It is not fully complete on parameter semantics or sibling routing, but it covers what is needed for a basic 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 71%, so most parameters already have semantic documentation. The description only reinforces that q is optional and that amazon.com is used for US while amazon.se is the default; it adds little for limit, ageBand, locale, country, or interest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search kids Christmas gift ideas for the user's store. It also clarifies the return shape (search link cards plus curated catalogMatches), but it does not explicitly distinguish this tool from siblings such as get_catalog or resolve_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 implies the use case by naming kids Christmas gift search, and notes that q is optional with defaults. However, it does not state when to use this tool versus siblings 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- Changed
create_and_fill4 fields changed- added
Input schema / properties / countAdded value: +{ + "description": "If no items are given, auto-fill this many curated picks for the age band/interests (default 6)", + "maximum": 12, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / countryAdded value: +{ + "description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)", + "type": "string" +} - added
Input schema / properties / localeAdded value: +{ + "description": "User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted.", + "type": "string" +} - added
Input schema / properties / marketplaceAdded value: +{ + "description": "Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com.", + "type": "string" +}
- Changed
create_wishlist2 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)", + "type": "string" +} - added
Input schema / properties / marketplaceAdded value: +{ + "description": "Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com.", + "type": "string" +}
- Changed
get_catalog6 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)", + "type": "string" +} - changed
Input schema / properties / locale / descriptionPrevious value: -"User locale, e.g. en, sv, de, fr, es"New value: +"User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted." - removed
Input schema / properties / locale / minLengthRemoved value: -2 - changed
Input schema / properties / marketplace / descriptionPrevious value: -"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — curated ASINs only produce /dp links on amazon.se; other marketplaces get search deep-links."New value: +"Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com." - removed
Input schema / properties / marketplace / minLengthRemoved value: -2 - removed
Input schema / requiredRemoved value: -[ - "marketplace", - "locale" -]
- Changed
get_wishlist1 field changed- added
Input schema / properties / marketplaceAdded value: +{ + "description": "Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com.", + "type": "string" +}
- Changed
resolve_product6 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)", + "type": "string" +} - changed
Input schema / properties / locale / descriptionPrevious value: -"User locale, e.g. en, sv, de, fr, es"New value: +"User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted." - removed
Input schema / properties / locale / minLengthRemoved value: -2 - changed
Input schema / properties / marketplace / descriptionPrevious value: -"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — curated ASINs only produce /dp links on amazon.se; other marketplaces get search deep-links."New value: +"Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com." - removed
Input schema / properties / marketplace / minLengthRemoved value: -2 - removed
Input schema / requiredRemoved value: -[ - "marketplace", - "locale" -]
- Changed
search_gifts8 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)", + "type": "string" +} - changed
Input schema / properties / locale / descriptionPrevious value: -"User locale, e.g. en, sv, de, fr, es"New value: +"User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted." - removed
Input schema / properties / locale / minLengthRemoved value: -2 - changed
Input schema / properties / marketplace / descriptionPrevious value: -"Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED — curated ASINs only produce /dp links on amazon.se; other marketplaces get search deep-links."New value: +"Amazon storefront for the end user: amazon.com (US) or amazon.se (Sweden, default); also uk, de, fr… Order: marketplace → country → locale/Accept-Language (en-US ⇒ amazon.com) → amazon.se. amazon.se returns curated /dp product links; amazon.com returns English search links tagged for amazon.com." - removed
Input schema / properties / marketplace / minLengthRemoved value: -2 - changed
Input schema / properties / q / descriptionPrevious value: -"Search query, e.g. LEGO City"New value: +"Search query, e.g. LEGO City (default: christmas gifts for kids)" - removed
Input schema / properties / q / minLengthRemoved value: -1 - removed
Input schema / requiredRemoved value: -[ - "q", - "marketplace", - "locale" -]
9 tool updates
- First observed
add_wishlist_item - First observed
create_and_fill - First observed
create_wishlist - First observed
get_catalog - First observed
get_health - First observed
get_wishlist - First observed
list_marketplaces - First observed
resolve_product - First observed
search_gifts
Related MCP Connectors
Hand-picked gift ideas for Christmas gift games, turned into shareable wishlists fast.
Hand-picked gift ideas for trips and travel, turned into shareable wishlists fast.
Hand-picked gift ideas for her (partner gifts), turned into shareable wishlists fast.
Hand-picked gift ideas for birthdays that assistants turn into shareable wishlists fast. SE + US.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, manage, and discover family gift registries. Users can add links from Amazon, Target, and more through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to browse public wishlists, check available gifts within budget, reserve items, and draft coordination messages without scraping or clicking through the UI.MIT

@shareawish/mcpofficial
AlicenseBqualityAmaintenanceEnables creators to build and manage Share a Wish affiliate shops and lets developers integrate wishlist baskets and save buttons directly from AI assistants like Claude and Cursor.31182 npmMIT- FlicenseNot gradedqualityDmaintenanceRecommends gifts and drafts messages based on relationship, occasion, budget, and vibe.-
Glama MCP Gateway
Add one secure layer between your agents and this server.