# Pick My Secret Santa

> Runs a Secret Santa name draw in chat and gives each person a private reveal link.

- name: com.pickmysecretsanta/pick-my-secret-santa
- version: 1.1.1
- connection class: unknown (unknown)
- trust: 71/100
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.pickmysecretsanta%2Fpick-my-secret-santa
- tools: https://api.protogrid.dev/v1/servers/com.pickmysecretsanta%2Fpick-my-secret-santa/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "pick-my-secret-santa": {
      "type": "http",
      "url": "https://mcp.pickmysecretsanta.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 17
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website -unreachable(1 failures) +updated-3d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 3 of 3 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,387 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 2 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 3, about 1,387 tokens to load them all
- tool set hash: 571a44d0cce42ba9f2713655527d9dc1
- badge: [![protogrid quality](https://protogrid.dev/badge/com.pickmysecretsanta/pick-my-secret-santa.svg)](https://protogrid.dev/servers/com.pickmysecretsanta/pick-my-secret-santa)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.pickmysecretsanta.com/mcp (streamable-http, auth none, reachable false, uptime30d 0.6666667)

## Packages

_none_

## Tools (3)

- `explain_secret_santa_rules`: 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).
- `pick_secret_santa_gift`: 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.
- `plan_secret_santa_setup`: 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.
