Girlfriend Gifts MCP
An MCP server that enables AI agents to build gift recommendation lists, shopping lists, and shareable wishlists for partners. It supports multi-country Amazon buy links, search, catalog browsing, and wishlist creation with specific marketplace and locale requirements.
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://girlfriendgifts.vercel.app/api/mcpWhat you can do with it
- Build gift recommendation lists for partners
- Create shareable wishlists with budget and style tags
- Search Amazon products by keywords and occasion
- Resolve product URLs to direct buy links
Source and maintenance
Protocol and capabilities
- Server
- girlfriend-gifts 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 9 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
9 advertised
get_health — Health & service info
Health check for Girlfriend Gifts romantic gift inspiration. Returns ok, storage, paapi, trackingTag, defaultDomain, catalogCount (amazon.se), catalogCounts per storefront (amazon.se + amazon.com), marketplaceIds. Use list_marketplaces to discover storefronts. OpenAPI: getHealth.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}list_marketplaces — List Amazon marketplaces
List supported Amazon storefronts (id, domain, label, defaultLocale, currencyHint, tagConfigured). Agents MUST pick the user's marketplace and pass it on search/catalog/resolve.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}search_gifts — Search girlfriend / wife gifts
Search Amazon for romantic partner gifts to build a recommendation or shopping list. Returns PA-API products when configured for the default storefront, otherwise romantic search deep-link cards + catalogMatches. ALWAYS pass marketplace + locale. OpenAPI: searchAmazon.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q",
"marketplace",
"locale"
],
"properties": {
"q": {
"type": "string",
"minLength": 1,
"description": "Search query, e.g. pearl earrings"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en, sv, de, fr, es"
},
"occasion": {
"enum": [
"anniversary",
"birthday",
"valentines",
"just-because",
"apology",
"wedding",
"other"
],
"type": "string"
},
"styleTag": {
"enum": [
"romantic",
"practical",
"luxury",
"experience",
"jewelry",
"beauty",
"home",
"fashion",
"tech",
"personalized"
],
"type": "string",
"description": "Style / category filter"
},
"budgetBand": {
"enum": [
"under-300",
"300-700",
"700-1500",
"1500-plus"
],
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.com, amazon.se, us, se, de. REQUIRED — curated catalogs with real /dp ASINs on amazon.se (Sweden, default) and amazon.com (United States: marketplace=amazon.com → https://www.amazon.com/dp/ASIN links); other marketplaces get romantic search deep-links."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}get_catalog — Curated gift catalog
Curated girlfriend/wife gift catalogs for building shopping lists and wishlists: 245 amazon.se /dp ASINs (default) and a separate US catalog of ASINs verified live on amazon.com (pass marketplace=amazon.com → https://www.amazon.com/dp/ASIN buy links, tagged with the server-configured amazon.com tag when set). On other marketplaces catalogMode is search-ideas. ALWAYS pass marketplace + locale. OpenAPI: getCatalog.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"marketplace",
"locale"
],
"properties": {
"q": {
"type": "string",
"description": "Full-text filter"
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en, sv, de, fr, es"
},
"occasion": {
"enum": [
"anniversary",
"birthday",
"valentines",
"just-because",
"apology",
"wedding",
"other"
],
"type": "string"
},
"styleTag": {
"enum": [
"romantic",
"practical",
"luxury",
"experience",
"jewelry",
"beauty",
"home",
"fashion",
"tech",
"personalized"
],
"type": "string"
},
"styleTags": {
"type": "string",
"description": "Comma-separated style tags"
},
"budgetBand": {
"enum": [
"under-300",
"300-700",
"700-1500",
"1500-plus"
],
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.com, amazon.se, us, se, de. REQUIRED — curated catalogs with real /dp ASINs on amazon.se (Sweden, default) and amazon.com (United States: marketplace=amazon.com → https://www.amazon.com/dp/ASIN links); other marketplaces get romantic search deep-links."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}resolve_product — Resolve buy / inspiration link
Resolve an ASIN, pasted Amazon /dp/ URL, or keywords to a buyUrl (product /dp or romantic search). ALWAYS pass marketplace + locale for the user. Does not invent Associates tags — uses server-configured tags per storefront. OpenAPI: resolveProduct.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"marketplace",
"locale"
],
"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, sv, de, fr, es"
},
"keywords": {
"type": "string",
"description": "Search keywords if no ASIN"
},
"occasion": {
"enum": [
"anniversary",
"birthday",
"valentines",
"just-because",
"apology",
"wedding",
"other"
],
"type": "string"
},
"styleTag": {
"enum": [
"romantic",
"practical",
"luxury",
"experience",
"jewelry",
"beauty",
"home",
"fashion",
"tech",
"personalized"
],
"type": "string"
},
"budgetBand": {
"enum": [
"under-300",
"300-700",
"700-1500",
"1500-plus"
],
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.com, amazon.se, us, se, de. REQUIRED — curated catalogs with real /dp ASINs on amazon.se (Sweden, default) and amazon.com (United States: marketplace=amazon.com → https://www.amazon.com/dp/ASIN links); other marketplaces get romantic search deep-links."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}create_wishlist — Create wishlist
Create a girlfriend/wife gift list / wishlist for shopping-list building. Returns id, editToken, ownerUrl (she edits), shopUrl (he/agent shops), 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.
{
"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, sv, de, fr, es"
},
"occasion": {
"enum": [
"anniversary",
"birthday",
"valentines",
"just-because",
"apology",
"wedding",
"other"
],
"type": "string"
},
"styleTags": {
"type": "array",
"items": {
"enum": [
"romantic",
"practical",
"luxury",
"experience",
"jewelry",
"beauty",
"home",
"fashion",
"tech",
"personalized"
],
"type": "string"
}
},
"budgetBand": {
"enum": [
"under-300",
"300-700",
"700-1500",
"1500-plus"
],
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.com, amazon.se, us, se, de. REQUIRED — curated catalogs with real /dp ASINs on amazon.se (Sweden, default) and amazon.com (United States: marketplace=amazon.com → https://www.amazon.com/dp/ASIN links); other marketplaces get romantic search deep-links."
},
"relationship": {
"enum": [
"girlfriend",
"wife",
"fiancée",
"partner"
],
"type": "string"
},
"recipientName": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true
}create_and_fill — One-shot create and fill
Preferred agent path for list-building: create a gift wishlist and fill it with ASINs / keywords / search queries in one call. Returns id, editToken, ownerUrl, shopUrl. Pass marketplace + locale. OpenAPI: agentCreateAndFill.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en, sv, de, fr, es"
},
"occasion": {
"enum": [
"anniversary",
"birthday",
"valentines",
"just-because",
"apology",
"wedding",
"other"
],
"type": "string"
},
"itemAsins": {
"type": "array",
"items": {
"type": "string"
}
},
"styleTags": {
"type": "array",
"items": {
"enum": [
"romantic",
"practical",
"luxury",
"experience",
"jewelry",
"beauty",
"home",
"fashion",
"tech",
"personalized"
],
"type": "string"
}
},
"budgetBand": {
"enum": [
"under-300",
"300-700",
"700-1500",
"1500-plus"
],
"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 domain or id for the end user, e.g. amazon.com, amazon.se, us, se, de. REQUIRED — curated catalogs with real /dp ASINs on amazon.se (Sweden, default) and amazon.com (United States: marketplace=amazon.com → https://www.amazon.com/dp/ASIN links); other marketplaces get romantic search deep-links."
},
"itemKeywords": {
"type": "array",
"items": {
"type": "string"
}
},
"relationship": {
"enum": [
"girlfriend",
"wife",
"fiancée",
"partner"
],
"type": "string"
},
"recipientName": {
"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 (short Redis id or t.* token)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}add_wishlist_item — Add wish item
Add an item to a gift list / wishlist (shopping-list building). Requires editToken from create. Body: name/title plus asin, url (pasted /dp), searchKeywords, or catalogId. Token storage may return a new id — update bookmarks. Prefer buyUrl in responses. 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"
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en, sv, de, fr, es"
},
"catalogId": {
"type": "string"
},
"editToken": {
"type": "string",
"minLength": 1,
"description": "X-Edit-Token from create/mutate response"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.com, amazon.se, us, se, de. REQUIRED — curated catalogs with real /dp ASINs on amazon.se (Sweden, default) and amazon.com (United States: marketplace=amazon.com → https://www.amazon.com/dp/ASIN links); other marketplaces get romantic search deep-links."
},
"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
- 501 ms
- 95th percentile latency
- 501 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 501 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 girlfriend-gifts-mcp https://girlfriendgifts.vercel.app/api/mcpCodex
codex mcp add girlfriend-gifts-mcp --url https://girlfriendgifts.vercel.app/api/mcpCursor
{
"mcpServers": {
"girlfriend-gifts-mcp": {
"url": "https://girlfriendgifts.vercel.app/api/mcp"
}
}
}Cline
{
"mcpServers": {
"girlfriend-gifts-mcp": {
"type": "streamableHttp",
"url": "https://girlfriendgifts.vercel.app/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"girlfriend-gifts-mcp": {
"type": "http",
"url": "https://girlfriendgifts.vercel.app/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http girlfriend-gifts-mcp https://girlfriendgifts.vercel.app/api/mcpClaude Desktop
{
"mcpServers": {
"girlfriend-gifts-mcp": {
"url": "https://girlfriendgifts.vercel.app/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"girlfriend-gifts-mcp": {
"serverUrl": "https://girlfriendgifts.vercel.app/api/mcp"
}
}
}Let your agent find its tools
Find servers like Girlfriend Gifts MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.