Birthday Gift Finder – hand-picked gift ideas
Hand-picked gift ideas for birthdays that assistants turn into shareable wishlists fast. SE + US.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"birthday-gifts": {
"url": "https://birthday-gift-finder.vercel.app/api/mcp"
}
}
}遠端端點
https://birthday-gift-finder.vercel.app/api/mcpstreamable-http它能做什麼
工具清單
工具(9)
🟢get_health
Health check for Birthday Gift Finder. Returns ok, storage, defaultDomain (amazon.se), catalogs for amazon.se and amazon.com with their tracking tags, and marketplaces[]. Use this first. OpenAPI: getHealth.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢list_marketplaces
List supported Amazon storefronts. amazon.com (US) and amazon.se have hand-picked catalogs with /dp links. Pass marketplace on search/catalog/resolve when you know the user's store; otherwise en-US requests get amazon.com and everything else amazon.se.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢search_gifts(q, marketplace, country, locale, occasion, ...)
Search birthday gifts on the user's Amazon storefront. Pass marketplace=amazon.com for US shoppers (English search), amazon.se for Sweden. Returns search links plus hand-picked catalogMatches with /dp links. OpenAPI: searchAmazon.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 1,
"description": "Search query, e.g. cheese board"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront for the end user: amazon.com (US, English, USD) or amazon.se (Sweden), also accepts us / se. Recommended. If omitted: country, then the request's Accept-Language (en-US → amazon.com), else amazon.se. Never an error when missing."
},
"country": {
"type": "string",
"minLength": 2,
"description": "Optional ISO country of the end user, e.g. US or SE. Used when marketplace is omitted (US → amazon.com)."
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"occasion": {
"type": "string",
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
]
},
"giftCategory": {
"type": "string",
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
]
},
"ageBand": {
"type": "string",
"enum": [
"kids",
"teens",
"20s",
"30s",
"40s-plus"
],
"description": "Optional age band: kids|teens|20s|30s|40s-plus"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
"required": [
"q"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_catalog(marketplace, country, locale, q, occasion, ...)
Paginated hand-picked birthday gifts with /dp buyUrls. marketplace=amazon.com returns the US catalog (English, USD or no price, tag sw-fodelsedag-20); amazon.se the Swedish one (tag sw-fodelsedag-21). OpenAPI: getCatalog.
輸入結構描述
{
"type": "object",
"properties": {
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront for the end user: amazon.com (US, English, USD) or amazon.se (Sweden), also accepts us / se. Recommended. If omitted: country, then the request's Accept-Language (en-US → amazon.com), else amazon.se. Never an error when missing."
},
"country": {
"type": "string",
"minLength": 2,
"description": "Optional ISO country of the end user, e.g. US or SE. Used when marketplace is omitted (US → amazon.com)."
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"q": {
"type": "string",
"description": "Full-text filter"
},
"occasion": {
"type": "string",
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
]
},
"giftCategory": {
"type": "string",
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
]
},
"giftCategories": {
"type": "string",
"description": "Comma-separated gift categories"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 24
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢resolve_product(marketplace, country, locale, asin, url, ...)
Resolve an ASIN, pasted Amazon /dp/ URL, or keywords to a buyUrl on amazon.com or amazon.se (tagged for both). Pass marketplace when known. OpenAPI: resolveProduct.
輸入結構描述
{
"type": "object",
"properties": {
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront for the end user: amazon.com (US, English, USD) or amazon.se (Sweden), also accepts us / se. Recommended. If omitted: country, then the request's Accept-Language (en-US → amazon.com), else amazon.se. Never an error when missing."
},
"country": {
"type": "string",
"minLength": 2,
"description": "Optional ISO country of the end user, e.g. US or SE. Used when marketplace is omitted (US → amazon.com)."
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"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"
},
"occasion": {
"type": "string",
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
]
},
"giftCategory": {
"type": "string",
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
]
},
"budgetBand": {
"type": "string"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_wishlist(recipientName, occasion, budgetBand, giftCategories, ageBand, ...)
Create a birthday gift wishlist. Returns id, editToken, ownerUrl, shopUrl, wishlist, storage. Save editToken for add_wishlist_item. OpenAPI: createWishlist.
輸入結構描述
{
"type": "object",
"properties": {
"recipientName": {
"type": "string"
},
"occasion": {
"type": "string",
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
]
},
"budgetBand": {
"type": "string"
},
"giftCategories": {
"type": "array",
"items": {
"type": "string",
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
]
}
},
"ageBand": {
"type": "string",
"enum": [
"kids",
"teens",
"20s",
"30s",
"40s-plus"
]
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront for the end user: amazon.com (US, English, USD) or amazon.se (Sweden), also accepts us / se. Recommended. If omitted: country, then the request's Accept-Language (en-US → amazon.com), else amazon.se. Never an error when missing."
},
"country": {
"type": "string",
"minLength": 2,
"description": "Optional ISO country of the end user, e.g. US or SE. Used when marketplace is omitted (US → amazon.com)."
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"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(recipientName, occasion, budgetBand, giftCategories, ageBand, ...)
One call: create a curated birthday gift wishlist and return shopUrl (share link) + ownerUrl. Preferred agent path: create a wishlist and add ASINs / keywords / search queries in one call. OpenAPI: agentCreateAndFill.
輸入結構描述
{
"type": "object",
"properties": {
"recipientName": {
"type": "string"
},
"occasion": {
"type": "string",
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
]
},
"budgetBand": {
"type": "string"
},
"giftCategories": {
"type": "array",
"items": {
"type": "string",
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
]
}
},
"ageBand": {
"type": "string",
"enum": [
"kids",
"teens",
"20s",
"30s",
"40s-plus"
]
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront for the end user: amazon.com (US, English, USD) or amazon.se (Sweden), also accepts us / se. Recommended. If omitted: country, then the request's Accept-Language (en-US → amazon.com), else amazon.se. Never an error when missing."
},
"country": {
"type": "string",
"minLength": 2,
"description": "Optional ISO country of the end user, e.g. US or SE. Used when marketplace is omitted (US → amazon.com)."
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"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"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_wishlist(id)
Fetch a wishlist by id. Returns wishlist items with buyUrl/linkType when available, plus ownerUrl and shopUrl. OpenAPI: getWishlist.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Wishlist id"
}
},
"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. OpenAPI: addWishlistItem.
輸入結構描述
{
"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#"
}社群
證據