Santa Wishlist – hand-picked gift ideas
Hand-picked gift ideas for kids' Christmas, turned into shareable wishlists fast.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"santa-gifts": {
"url": "https://santa-wish.vercel.app/api/mcp"
}
}
}Remote endpoints
https://santa-wish.vercel.app/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢get_health
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.
Input Schema
{
"type": "object",
"properties": {}
}🟢list_marketplaces
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.
Input Schema
{
"type": "object",
"properties": {}
}🟢search_gifts(q, country, marketplace, locale, ageBand, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query, e.g. LEGO City (default: christmas gifts for kids)"
},
"country": {
"type": "string",
"description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)"
},
"marketplace": {
"type": "string",
"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."
},
"locale": {
"type": "string",
"description": "User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted."
},
"ageBand": {
"type": "string",
"enum": [
"0-2",
"3-5",
"6-8",
"9-12"
]
},
"interest": {
"type": "string",
"enum": [
"toys",
"books",
"sports",
"craft",
"tech",
"outdoor",
"games"
],
"description": "Category filter"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_catalog(country, marketplace, locale, q, ageBand, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)"
},
"marketplace": {
"type": "string",
"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."
},
"locale": {
"type": "string",
"description": "User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted."
},
"q": {
"type": "string",
"description": "Full-text filter"
},
"ageBand": {
"type": "string",
"enum": [
"0-2",
"3-5",
"6-8",
"9-12"
]
},
"interest": {
"type": "string",
"enum": [
"toys",
"books",
"sports",
"craft",
"tech",
"outdoor",
"games"
]
},
"interests": {
"type": "string",
"description": "Comma-separated interests"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 24
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
},
"ids": {
"type": "string",
"description": "Comma-separated catalog ids"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢resolve_product(country, marketplace, locale, asin, url, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)"
},
"marketplace": {
"type": "string",
"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."
},
"locale": {
"type": "string",
"description": "User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted."
},
"asin": {
"type": "string",
"description": "10-char Amazon ASIN"
},
"url": {
"type": "string",
"description": "Pasted Amazon product URL"
},
"keywords": {
"type": "string",
"description": "Search keywords if no ASIN"
},
"ageBand": {
"type": "string",
"enum": [
"0-2",
"3-5",
"6-8",
"9-12"
]
},
"category": {
"type": "string",
"enum": [
"toys",
"books",
"sports",
"craft",
"tech",
"outdoor",
"games"
]
},
"preferSearch": {
"type": "boolean"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_wishlist(marketplace, country, childName, ageBand, interests, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"marketplace": {
"type": "string",
"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."
},
"country": {
"type": "string",
"description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)"
},
"childName": {
"type": "string"
},
"ageBand": {
"type": "string",
"enum": [
"0-2",
"3-5",
"6-8",
"9-12"
]
},
"interests": {
"type": "array",
"items": {
"type": "string",
"enum": [
"toys",
"books",
"sports",
"craft",
"tech",
"outdoor",
"games"
]
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"name": {
"type": "string"
},
"asin": {
"type": "string"
},
"url": {
"type": "string"
},
"searchKeywords": {
"type": "string"
},
"catalogId": {
"type": "string"
},
"emoji": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_and_fill(marketplace, country, locale, childName, ageBand, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"marketplace": {
"type": "string",
"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."
},
"country": {
"type": "string",
"description": "ISO country of the shopper, e.g. US or SE (used when marketplace is omitted)"
},
"locale": {
"type": "string",
"description": "User locale, e.g. en-US, sv, de. en-US switches to amazon.com when marketplace is omitted."
},
"childName": {
"type": "string"
},
"ageBand": {
"type": "string",
"enum": [
"0-2",
"3-5",
"6-8",
"9-12"
]
},
"interests": {
"type": "array",
"items": {
"type": "string",
"enum": [
"toys",
"books",
"sports",
"craft",
"tech",
"outdoor",
"games"
]
}
},
"itemAsins": {
"type": "array",
"items": {
"type": "string"
}
},
"itemKeywords": {
"type": "array",
"items": {
"type": "string"
}
},
"itemQueries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Each query is searched and added as a wish"
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "If no items are given, auto-fill this many curated picks for the age band/interests (default 6)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_wishlist(id, marketplace)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Wishlist id (short Redis id or t.* token)"
},
"marketplace": {
"type": "string",
"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."
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_wishlist_item(id, editToken, name, title, asin, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Wishlist id"
},
"editToken": {
"type": "string",
"minLength": 1,
"description": "X-Edit-Token from create/mutate response"
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"asin": {
"type": "string"
},
"url": {
"type": "string"
},
"searchKeywords": {
"type": "string"
},
"catalogId": {
"type": "string"
},
"emoji": {
"type": "string"
}
},
"required": [
"id",
"editToken"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence