Birthday Gift Finder MCP
A remote MCP server that allows AI assistants to generate curated birthday gift wishlists from Amazon.se and Amazon.com. It supports creating shareable links for gift-givers, searching for gift ideas by category and budget, and resolving product details, facilitating the creation of shopping lists for birthdays in Sweden and the United States.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://birthday-gift-finder.vercel.app/api/mcpWhat you can do with it
- Create a birthday gift wishlist with a shareable link
- Search for curated gift ideas by category and budget
- Resolve product details from Amazon URLs or keywords
- Generate gift lists for specific occasions and recipients
Source and maintenance
Protocol and capabilities
- Server
- birthday-gifts 1.1.0
- MCP protocol
- 2025-06-18
- Tools
- 9 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
9 advertised
get_health — Health & marketplaces
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": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}list_marketplaces — List Amazon 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": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}search_gifts — Search birthday gifts
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",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"minLength": 1,
"description": "Search query, e.g. cheese board"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"ageBand": {
"enum": [
"kids",
"teens",
"20s",
"30s",
"40s-plus"
],
"type": "string",
"description": "Optional age band: kids|teens|20s|30s|40s-plus"
},
"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)."
},
"occasion": {
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
],
"type": "string"
},
"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."
},
"giftCategory": {
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
],
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}get_catalog — Curated gift catalog
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",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Full-text filter"
},
"limit": {
"type": "integer",
"default": 24,
"maximum": 100,
"minimum": 1
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"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)."
},
"occasion": {
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
],
"type": "string"
},
"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."
},
"giftCategory": {
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
],
"type": "string"
},
"giftCategories": {
"type": "string",
"description": "Comma-separated gift categories"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}resolve_product — Resolve buy link
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",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"type": "string",
"description": "Pasted Amazon product URL"
},
"asin": {
"type": "string",
"description": "10-char Amazon ASIN"
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"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)."
},
"keywords": {
"type": "string",
"description": "Search keywords if no ASIN"
},
"occasion": {
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
],
"type": "string"
},
"budgetBand": {
"type": "string"
},
"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."
},
"giftCategory": {
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
],
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}create_wishlist — Create wishlist
Create a birthday gift wishlist. Returns id, editToken, ownerUrl, shopUrl, wishlist, storage. Save editToken for add_wishlist_item. OpenAPI: createWishlist.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"asin": {
"type": "string"
},
"name": {
"type": "string"
},
"emoji": {
"type": "string"
},
"title": {
"type": "string"
},
"catalogId": {
"type": "string"
},
"searchKeywords": {
"type": "string"
}
},
"additionalProperties": false
}
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"ageBand": {
"enum": [
"kids",
"teens",
"20s",
"30s",
"40s-plus"
],
"type": "string"
},
"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)."
},
"occasion": {
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
],
"type": "string"
},
"budgetBand": {
"type": "string"
},
"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."
},
"recipientName": {
"type": "string"
},
"giftCategories": {
"type": "array",
"items": {
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
],
"type": "string"
}
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true
}create_and_fill — One-shot create and fill
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",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en-US, sv. Optional; amazon.com always answers in English."
},
"ageBand": {
"enum": [
"kids",
"teens",
"20s",
"30s",
"40s-plus"
],
"type": "string"
},
"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)."
},
"occasion": {
"enum": [
"birthday",
"surprise-party",
"milestone-birthday",
"kids-birthday",
"other"
],
"type": "string"
},
"itemAsins": {
"type": "array",
"items": {
"type": "string"
}
},
"budgetBand": {
"type": "string"
},
"itemQueries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Each query is searched and added as a wish"
},
"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."
},
"itemKeywords": {
"type": "array",
"items": {
"type": "string"
}
},
"recipientName": {
"type": "string"
},
"giftCategories": {
"type": "array",
"items": {
"enum": [
"experiences",
"tech",
"fashion",
"home",
"wellness",
"hobbies",
"books",
"gourmet",
"kids-toys",
"jewelry-accessories"
],
"type": "string"
}
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true
}get_wishlist — Get wishlist
Fetch a wishlist by id. Returns wishlist items with buyUrl/linkType when available, plus ownerUrl and shopUrl. OpenAPI: getWishlist.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Wishlist id"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}add_wishlist_item — Add wish item
Add an item to a wishlist. Requires editToken from create. OpenAPI: addWishlistItem.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"editToken"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Wishlist id"
},
"url": {
"type": "string"
},
"asin": {
"type": "string"
},
"name": {
"type": "string"
},
"emoji": {
"type": "string"
},
"title": {
"type": "string"
},
"catalogId": {
"type": "string"
},
"editToken": {
"type": "string",
"minLength": 1,
"description": "X-Edit-Token from create/mutate response"
},
"searchKeywords": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1344 ms
- 95th percentile latency
- 1344 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1344 ms · metadata changed · 9 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http birthday-gift-finder-mcp https://birthday-gift-finder.vercel.app/api/mcpCodex
codex mcp add birthday-gift-finder-mcp --url https://birthday-gift-finder.vercel.app/api/mcpCursor
{
"mcpServers": {
"birthday-gift-finder-mcp": {
"url": "https://birthday-gift-finder.vercel.app/api/mcp"
}
}
}Cline
{
"mcpServers": {
"birthday-gift-finder-mcp": {
"type": "streamableHttp",
"url": "https://birthday-gift-finder.vercel.app/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"birthday-gift-finder-mcp": {
"type": "http",
"url": "https://birthday-gift-finder.vercel.app/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http birthday-gift-finder-mcp https://birthday-gift-finder.vercel.app/api/mcpClaude Desktop
{
"mcpServers": {
"birthday-gift-finder-mcp": {
"url": "https://birthday-gift-finder.vercel.app/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"birthday-gift-finder-mcp": {
"serverUrl": "https://birthday-gift-finder.vercel.app/api/mcp"
}
}
}Let your agent find its tools
Find servers like Birthday Gift Finder MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.