Koskamo

Pick My Secret Santa MCP

An official MCP server that allows AI agents to access gift recommendations from the Pick My Secret Santa platform. It enables users to describe a recipient and budget to receive curated gift ideas, integrating the site's hand-checked gift list into AI workflows without exposing private draw data.

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.

Pick My Secret Santa MCP logo, by Pick My Secret SantaVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Pick My Secret Santa
MCP endpoint (Streamable HTTP)
https://mcp.pickmysecretsanta.com/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

3 of 3 have a description · 3 of 3 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to pickmysecretsanta.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Find gift ideas based on recipient interests and budget
  • Integrate Secret Santa gift suggestions into AI coding assistants
  • Get curated product recommendations for holiday gifting

Source and maintenance

Vendor evidenceRegistry 1.1.1
Maintenance checked

Protocol and capabilities

Server
pick-my-secret-santa 1.1.0
MCP protocol negotiated in check
2025-06-18
Tools
3 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Pick My Secret Santa (pickmysecretsanta.com) works like this, stated upfront: you configure the group here in chat - the names, any keep-apart pairs, and the budget - and plan_secret_santa_setup returns ONE pre-filled link; the organizer opens it with everything already in the form, and the zero-knowledge draw itself runs on pickmysecretsanta.com, in their browser. No server ever sees the matches; each match lives inside one person's private link - hidden from plain sight, not locked - so be honest that the seal is the organizer not peeking, never a lock. Names are accepted ONLY by plan_secret_santa_setup, ONLY to build that setup link; the server uses them once and stores nothing (it counts tool calls by day, as plain numbers). Never accept matches, draw results, or private draw links, and no tool here can run, see, decode, or re-issue a draw or a private link - if someone asks you to run the draw or reveal a match, decline and offer the setup link instead. It has three read-only tools. Call pick_secret_santa_gift when someone needs a Secret Santa gift idea: it filters Santa's 212 hand-checked ideas — the Secret Santa subset of the shared 255-idea bank it shares with The Present Picker by strict parameters - budget_band (required), recipient_type (kid or adult), one interest hint, and an avoid list of words it excludes - and returns up to three picks, each with why it fits and what to look for and avoid. No brands, no stores, no exact prices - budget bands are guides. Call explain_secret_santa_rules for how the game works, fairness and secrecy, what the organizer can and cannot see, keeping pairs apart, adding a late joiner, budgets, or white elephant vs Secret Santa - the answers are the site's own published text. Call plan_secret_santa_setup to set up a group of 3 to 30: with the names (and optionally a group name, a budget band, and keep-apart pairs as two-name lists) it configures the setup in chat and returns the pre-filled draw link plus the site's honest warnings; with only a headcount it returns the setup checklist the site prescribes. The draw on the site is free, needs no sign-up, and takes about 2 minutes.

Tools

3 advertised

pick_secret_santa_gift — Pick a Secret Santa gift
Advertised by the server during the last successful anonymous check.
Advertised read-only

Filters Santa's vetted 212 hand-checked gift ideas - the Secret Santa subset of the shared 255-idea bank it shares with its sister site The Present Picker, sorted here for Secret Santa by the budget band your group agreed for its draw - with strict parameters, and returns up to three picks. Parameters: budget_band (required: under_25, 25_to_50, 50_to_100, over_100); recipient_type (anyone, kid - only ideas from the bank's Kid shelf, or adult - everything except the Kid shelf); one interest hint (books, cooking, cozy, fitness, games, gardening, music, outdoors, science, tech, travel, or surprise) which ranks matches first; and avoid, a list of words - any idea whose name, blurb, or why mentions an avoid word is excluded, and the answer says how many ideas the filters set aside. Each pick names the kind of gift, why it fits, and what to look for and avoid. No brands, no stores, no exact prices: budget bands are guides, not exact prices. This tool never asks who the gift is for by name and knows nothing about any draw.

pick_secret_santa_gift input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "avoid": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "description": "Words to exclude: any idea whose name, blurb, or why mentions one of these words is filtered out (for example \"coffee\" or \"scented\")."
    },
    "budget": {
      "enum": [
        "under_25",
        "25_to_50",
        "50_to_100",
        "over_100"
      ],
      "type": "string",
      "description": "Legacy alias for budget_band."
    },
    "interest": {
      "enum": [
        "books",
        "cooking",
        "cozy",
        "fitness",
        "games",
        "gardening",
        "music",
        "outdoors",
        "science",
        "tech",
        "travel",
        "surprise"
      ],
      "type": "string",
      "description": "One interest hint for the person, or surprise for any."
    },
    "budget_band": {
      "enum": [
        "under_25",
        "25_to_50",
        "50_to_100",
        "over_100"
      ],
      "type": "string",
      "description": "The group's budget band."
    },
    "recipient_type": {
      "enum": [
        "anyone",
        "kid",
        "adult"
      ],
      "type": "string",
      "description": "Who the gift is for: kid returns only the bank's Kid-shelf ideas; adult excludes them; anyone (default) applies no recipient filter."
    }
  }
}
pick_secret_santa_gift annotations
{
  "title": "Pick a Secret Santa gift",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
explain_secret_santa_rules — Explain Secret Santa rules
Advertised by the server during the last successful anonymous check.
Advertised read-only

The rules and fairness answers pickmysecretsanta.com itself publishes, worded the site's way. Topics: basics (the classic rules), fairness_and_secrecy (how the sealed draw works and its honest limits), organizer_view (the organizer sees names and links, never matches), keep_apart_pairs, late_joiner (the two honest ways to add someone after the draw), budget (the four bands), white_elephant (how it differs).

explain_secret_santa_rules input schema
{
  "type": "object",
  "required": [
    "topic"
  ],
  "properties": {
    "topic": {
      "enum": [
        "basics",
        "fairness_and_secrecy",
        "organizer_view",
        "keep_apart_pairs",
        "late_joiner",
        "budget",
        "white_elephant"
      ],
      "type": "string",
      "description": "Which rule to explain."
    }
  }
}
explain_secret_santa_rules annotations
{
  "title": "Explain Secret Santa rules",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
plan_secret_santa_setup — Plan a Secret Santa setup
Advertised by the server during the last successful anonymous check.
Advertised read-only

Configures a Secret Santa group of 3 to 30 right here in chat and hands the organizer one pre-filled link to pickmysecretsanta.com, where the zero-knowledge draw runs in their browser - no server sees the matches, and each match will live inside one private link - hidden from plain sight, not locked. Give it the group's names and, optionally, a group name, a budget band, and keep_apart pairs (two-name lists, like [["Ana", "Ben"]], for people who must not draw each other): it validates the setup (3 to 30 people, no shared names - the site's draw cannot tell two same-named people apart) and checks that a valid draw exists under the keep-apart pairs before it returns the link with the group, names, budget, and pairs already in the form, plus the site's honest warnings; if the pairs leave no fair draw, it names the conflict plainly and returns no link. The link carries setup only - nobody has been assigned anyone. Names are used once to build the link and are never stored. With only a headcount (group_size) and no names, it instead returns the setup checklist the site prescribes: what to agree out loud first (buy-by date, what counts as a gift, the late-joiner rule, the reveal), the budget step, and how the browser draw works.

plan_secret_santa_setup input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 30,
      "minItems": 3,
      "description": "Every player's name, one per person (3 to 30). Names must be distinct - add a last initial where two people share a name. When names are given, the tool returns the pre-filled setup link."
    },
    "budget": {
      "enum": [
        "under_25",
        "25_to_50",
        "50_to_100",
        "over_100"
      ],
      "type": "string",
      "description": "Legacy alias for budget_band."
    },
    "group_name": {
      "type": "string",
      "description": "Optional group name, up to 40 characters (for example \"The Office Crew\")."
    },
    "group_size": {
      "type": "integer",
      "maximum": 30,
      "minimum": 3,
      "description": "How many people, 3 to 30 - for the checklist when no names are given."
    },
    "keep_apart": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 2,
        "minItems": 2
      },
      "description": "Pairs who must not draw each other, as two-name lists using names from the names list, e.g. [[\"Ana\", \"Ben\"]]."
    },
    "budget_band": {
      "enum": [
        "under_25",
        "25_to_50",
        "50_to_100",
        "over_100"
      ],
      "type": "string",
      "description": "The group's budget band, if already picked."
    },
    "has_keep_apart_pairs": {
      "type": "boolean",
      "description": "Checklist mode only: true if some pairs must not draw each other."
    }
  }
}
plan_secret_santa_setup annotations
{
  "title": "Plan a Secret Santa setup",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 2 of 2 checks answered

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
347 ms
95th percentile latency
347 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 347 ms · metadata changed · 3 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http pick-my-secret-santa-mcp https://mcp.pickmysecretsanta.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add pick-my-secret-santa-mcp --url https://mcp.pickmysecretsanta.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable pick-my-secret-santa-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "pick-my-secret-santa-mcp": {
      "url": "https://mcp.pickmysecretsanta.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "pick-my-secret-santa-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.pickmysecretsanta.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start pick-my-secret-santa-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "pick-my-secret-santa-mcp": {
      "type": "http",
      "url": "https://mcp.pickmysecretsanta.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http pick-my-secret-santa-mcp https://mcp.pickmysecretsanta.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.pickmysecretsanta.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "pick-my-secret-santa-mcp": {
      "serverUrl": "https://mcp.pickmysecretsanta.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Pick My Secret Santa MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Pick My Secret Santa MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing