Present Picker
com.thepresentpicker/present-pickerthepresentpicker.comstreamable-httpv1.0.1Scanned
Gift recommendations matched to the person, the occasion, and your budget.
3 tools: 3 only read.
- Reads private data · 1
- Reads text others write · 0
- Can send data out · 0
- 1 finding
Tools listed without sign-in. Remote posture
Anlyon alternative
Run the operations that matter as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
3 tools
Only reads 3Show 3 read-only tools
get_giftPicked for them, not the store: returns the full detail for one gift idea from the bank: description, why-line, a buying-notes line (what to look for and what to avoid when buying …Reads private dataNo findings
Why it is in this group
- The name "get_gift" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "note": it reads notes.
Description, as the server wrote it Picked for them, not the store: returns the full detail for one gift idea from the bank: description, why-line, a buying-notes line (what to look for and what to avoid when buying it), a care-and-pairing tip, budget band, who it suits, its interests and styles, and up to 3 similar ideas, each with its own link. Accepts a gift id returned by pick_gift or search_gifts, or a gift name like 'cast iron skillet'. When nothing matches, the result says so and gives example ids.
Annotations the server declares
- title: Get gift details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
pick_giftReturns up to 5 gift ideas from a fixed bank of 255 checked gift ideas, matched to who the gift is for, a budget band, interests, and an optional gift style.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
Findings
- Info
The description is 2,410 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...d no exact prices. When fewer than 5 ideas fit the exact mix, the result says so."
Description, as the server wrote it Returns up to 5 gift ideas from a fixed bank of 255 checked gift ideas, matched to who the gift is for, a budget band, interests, and an optional gift style. Each pick has a one-line description, a why-line explaining the fit, one buying note, its budget band, a link that opens that exact idea on thepresentpicker.com, and a photo link to the picture on that idea's page. Some picks carry a good_to_know line: a plain handling fact the bank states for that idea, such as the weight of a cast iron skillet, present only where the bank states one. The result also carries lead_pick — the top pick at full bank depth, with its buying notes (what to look for and what to avoid) and a care-and-pairing tip — more_ideas with the remaining picks under the heading 'More ideas if that one misses', and answer_text, that focused answer formatted as text: it opens by naming who the gift is for, in the caller's words, and how the top pick fits them. Recipient and budget band are hard filters. A style, when given, is a hard filter too: every pick carries the style, and the result reports total_matches and, on a style call, style_matches. Interests narrow the pool, and picks matching more interests rank first. keyword names a specific item the buyer asked for: picks matching every keyword word rank first inside the same filtered pool, carry their full bank detail, and the result reports keyword_matches (a miss is stated in the note, and a miss carries no lead_pick). exclude names an item the person already has: matching picks are dropped before ranking, and the result notes the drop. A recipient-only call (no budget, interest, style, or keyword) returns a spread across all budget bands, led by a mid-band pick and never by the $100+ band — a starting sampler, not a tailored list. A 'teen' recipient maps to the kid pool and carries a recipient_note explaining how teen picks are drawn from that pool. A 'coworker' recipient draws on the bank's coworker shelf — picks tagged for coworkers, ranked ahead of the general pool — and when a mix returns none of them, recipient_note says so plainly. A relation the bank has no shelf for (a sister, an aunt, an in-law, a cousin) is filed under the closest shelf, and recipient_note states the filing plainly. Ideas are generic product types: the bank names no brands, no stores, and no exact prices. When fewer than 5 ideas fit the exact mix, the result says so.
Annotations the server declares
- title: Pick a gift
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_giftsPicked for them, not the store: searches the fixed bank of 255 gift ideas by interest, by keyword, or by both, with optional recipient and budget-band filters.No findings
Why it is in this group
- The name "search_gifts" says "search": a word for reading.
Description, as the server wrote it Picked for them, not the store: searches the fixed bank of 255 gift ideas by interest, by keyword, or by both, with optional recipient and budget-band filters. Returns up to 10 matches in bank order, each with a one-line description, a why-line, one buying note, its budget band, a photo link, and a link that opens that exact idea on thepresentpicker.com. The result reports the total number of matches, including when there are none.
Annotations the server declares
- title: Search gift ideas
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Nov 5, 2026, 03:19 UTC, unchanged since Nov 5, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 0
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- not observed
- Authorization servers
- not observed
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
Findings
Matches of fixed checks, with the text they matched.
- Infopick_gift
The description is 2,410 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...d no exact prices. When fewer than 5 ideas fit the exact mix, the result says so."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http present-picker https://mcp.thepresentpicker.com/mcpclaude mcp add --transport http present-picker https://mcp.thepresentpicker.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__present-picker__pick_gift",
"mcp__present-picker__search_gifts",
"mcp__present-picker__get_gift"
],
"ask": [],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as present-picker. Review it before you use it.
Capability tags behind 1 rule
- mcp__present-picker__get_gift private-data
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/com.thepresentpicker/present-picker/verify?hash=c42efb775e3de44b6547f2ad3e6e0f645b2dc55438087826f7edb9ca3aac6055" | jq -e '.changed == false'Pinned hash c42efb775e3d, from Nov 5, 2026, 04:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.thepresentpicker/present-picker/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.thepresentpicker/present-picker)Source: MCP Registry · repository. Synced Nov 5, 2026, 04:18 UTC.