Teacher Presents MCP
A remote MCP server that allows AI agents to generate curated teacher gift wishlists from Amazon.se products. It accepts parameters like occasion, budget, and gift categories to create a shareable link for gift-givers, specifically targeting the Swedish market.
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://teacher-presents.vercel.app/api/mcpWhat you can do with it
- Generate a teacher gift wishlist for a specific occasion
- Create a shareable shopping link for gift-givers
- Curate gift ideas based on budget and category
Source and maintenance
Protocol and capabilities
- Server
- teacher-presents 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 Teacher presents. Returns ok, storage, paapi, trackingTag (null until enrolled), defaultDomain, catalogCount, and marketplaces[] (domain, label, tagConfigured). Use this first. OpenAPI: getHealth.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}list_marketplaces — List Amazon marketplaces
List supported Amazon storefronts. Agents MUST pick the user's marketplace and pass it on search/catalog/resolve.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true
}search_gifts — Search teacher presents
Search Amazon for teacher appreciation gifts on the user's marketplace. 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. cheese board"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"locale": {
"type": "string",
"minLength": 2,
"description": "User locale, e.g. en, sv, de, fr, es"
},
"subject": {
"type": "string",
"description": "Optional subject / class"
},
"occasion": {
"enum": [
"end-of-year",
"teachers-day",
"thank-you",
"christmas",
"graduation",
"first-day",
"birthday",
"just-because",
"other"
],
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED."
},
"giftCategory": {
"enum": [
"stationery",
"mug",
"plant",
"spa",
"book",
"tech",
"classroom",
"personalized",
"chocolate",
"candle",
"tote",
"jewelry",
"home",
"practical",
"luxury"
],
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}get_catalog — Curated gift catalog
Paginated curated teacher gift starters. ALWAYS pass marketplace + locale. Search remains primary discovery. OpenAPI: getCatalog.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"marketplace",
"locale"
],
"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, sv, de, fr, es"
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"occasion": {
"enum": [
"end-of-year",
"teachers-day",
"thank-you",
"christmas",
"graduation",
"first-day",
"birthday",
"just-because",
"other"
],
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED."
},
"giftCategory": {
"enum": [
"stationery",
"mug",
"plant",
"spa",
"book",
"tech",
"classroom",
"personalized",
"chocolate",
"candle",
"tote",
"jewelry",
"home",
"practical",
"luxury"
],
"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 (trackingTag null until enrolled). ALWAYS pass marketplace + locale. 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": [
"end-of-year",
"teachers-day",
"thank-you",
"christmas",
"graduation",
"first-day",
"birthday",
"just-because",
"other"
],
"type": "string"
},
"budgetBand": {
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED."
},
"giftCategory": {
"enum": [
"stationery",
"mug",
"plant",
"spa",
"book",
"tech",
"classroom",
"personalized",
"chocolate",
"candle",
"tote",
"jewelry",
"home",
"practical",
"luxury"
],
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true
}create_wishlist — Create wishlist
Create a teacher 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, sv, de, fr, es"
},
"subject": {
"type": "string"
},
"occasion": {
"enum": [
"end-of-year",
"teachers-day",
"thank-you",
"christmas",
"graduation",
"first-day",
"birthday",
"just-because",
"other"
],
"type": "string"
},
"budgetBand": {
"type": "string"
},
"marketplace": {
"type": "string",
"minLength": 2,
"description": "Amazon storefront domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED."
},
"teacherName": {
"type": "string"
},
"giftCategories": {
"type": "array",
"items": {
"enum": [
"stationery",
"mug",
"plant",
"spa",
"book",
"tech",
"classroom",
"personalized",
"chocolate",
"candle",
"tote",
"jewelry",
"home",
"practical",
"luxury"
],
"type": "string"
}
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true
}create_and_fill — One-shot create and fill
One call: create a curated teacher gifts 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, sv, de, fr, es"
},
"subject": {
"type": "string"
},
"occasion": {
"enum": [
"end-of-year",
"teachers-day",
"thank-you",
"christmas",
"graduation",
"first-day",
"birthday",
"just-because",
"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 domain or id for the end user, e.g. amazon.se, amazon.com, se, de. REQUIRED."
},
"teacherName": {
"type": "string"
},
"itemKeywords": {
"type": "array",
"items": {
"type": "string"
}
},
"giftCategories": {
"type": "array",
"items": {
"enum": [
"stationery",
"mug",
"plant",
"spa",
"book",
"tech",
"classroom",
"personalized",
"chocolate",
"candle",
"tote",
"jewelry",
"home",
"practical",
"luxury"
],
"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
- 1287 ms
- 95th percentile latency
- 1287 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1287 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 teacher-presents-mcp https://teacher-presents.vercel.app/api/mcpCodex
codex mcp add teacher-presents-mcp --url https://teacher-presents.vercel.app/api/mcpCursor
{
"mcpServers": {
"teacher-presents-mcp": {
"url": "https://teacher-presents.vercel.app/api/mcp"
}
}
}Cline
{
"mcpServers": {
"teacher-presents-mcp": {
"type": "streamableHttp",
"url": "https://teacher-presents.vercel.app/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"teacher-presents-mcp": {
"type": "http",
"url": "https://teacher-presents.vercel.app/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http teacher-presents-mcp https://teacher-presents.vercel.app/api/mcpClaude Desktop
{
"mcpServers": {
"teacher-presents-mcp": {
"url": "https://teacher-presents.vercel.app/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"teacher-presents-mcp": {
"serverUrl": "https://teacher-presents.vercel.app/api/mcp"
}
}
}Let your agent find its tools
Find servers like Teacher Presents MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.