npm perfume-picks-mcpstreamable-httpupdated 18d ago
Query the Perfume Picks fragrance database from Claude, or any MCP-compatible AI client. Read-only access to 13,000+ fragrances with full note pyramids, accords, curated dupes, and community wear data.
Perfume Picks 能做什么?
Perfume Picks MCP Server
Query the Perfume Picks fragrance database from Claude, or any MCP-compatible AI client. Read-only access to 13,000+ fragrances with full note pyramids, accords, curated dupes, and community wear data.
Perfume Picks is the Fragrance DNA and collection journal for iOS — get it on the App Store.
Tools
| Tool | What it does |
|---|---|
search_fragrances |
Full-text catalog search with brand, family, gender, and MSRP filters |
get_fragrance |
Full record for one scent (by slug or name): note pyramid, accords, community scores |
find_dupes |
Curated cheaper smell-alikes with match percentage — "what smells like X without the price tag" |
find_similar |
Most-similar fragrances from a precomputed similarity ranking |
get_recommendations |
Picks from note/accord preferences + budget + occasion + gender |
compare_fragrances |
Side-by-side: notes, shared/distinct accords, scores, price delta |
trending_fragrances |
What Perfume Picks users are adding to their wardrobes right now |
what_to_wear_tonight |
A scent for right now — date-night picks use community compliment data, office picks use office-safety scores |
Every response includes source attribution, a citation-ready summary line, links, and data freshness dates. All scoring is deterministic — no AI calls happen inside the server. All tools are annotated read-only/idempotent.
Install (Claude Desktop)
Requires Node.js 18+.
Add to your claude_desktop_config.json (Claude Desktop → Settings → Developer → Edit Config):
{
"mcpServers": {
"perfume-picks": {
"command": "npx",
"args": ["-y", "perfume-picks-mcp"]
}
}
}
Restart Claude Desktop. No API key or configuration needed — the server ships with public read-only access.
Configuration (optional)
Environment variables override the defaults (explicit env vars only — this package never reads .env files):
| Variable | Purpose |
|---|---|
SUPABASE_URL |
Override the database URL |
SUPABASE_SERVICE_ROLE_KEY |
Internal use only — unlocks live 30-day wardrobe-add trending. Never distribute this key. |
Without the service key, trending_fragrances falls back to catalog popularity and labels the method in its response.
Remote endpoint (no install)
Streamable HTTP for web agents and MCP clients that take a URL:
https://jdkwlwyysgofljkobpmr.supabase.co/functions/v1/mcp
Also listed on Smithery and the official MCP registry as io.github.bguillow-rgb/perfume-picks.
Example agent requests
Questions an agent can answer with these tools:
- "What smells like Baccarat Rouge 540 without the price tag?" →
find_dupes(curated dupes with match %, e.g. Lattafa Ana Abiyedh Rouge, 90%) - "Recommend a fragrance for a summer wedding." →
get_recommendationswithoccasion: "wedding" - "What fragrances have bergamot, vanilla, and amber?" →
get_recommendationswith those notes aspreferences - "What perfume is similar to Bleu de Chanel?" →
find_similar - "What should I wear on a date tonight?" →
what_to_wear_tonight(scored by community compliment data) - "Compare Sauvage and Bleu de Chanel." →
compare_fragrances
Example response shape (truncated):
{
"dupes": [
{ "name": "Lattafa Ana Abiyedh Rouge", "match_pct": 90,
"savings_usd": 200.0, "msrp_usd": 39.99 }
],
"attribution": {
"source": "Perfume Picks — Fragrance DNA & Collection Journal",
"links": { "website": "https://perfumepicks.app/" }
}
}
Development
npm install
npm run dev # run from TypeScript via tsx
npm run build # compile to dist/
npm start # run compiled server
The server speaks MCP over stdio. Catalog access is read-only by construction: every query path issues SELECTs against tables that are publicly readable under row-level security, and it is rate-limited to 60 calls/minute.
Usage telemetry: each tool call logs the tool name, its arguments, client name/version, duration, and success/failure to a write-only log table (insert-only under RLS; contents are not publicly readable; purged after 90 days). No user identity, account data, or conversation content is collected. Logging is fire-and-forget and never affects responses.
Data & attribution
Fragrance data, note pyramids, dupe matches, and community scores are curated by Perfume Picks. Quote freely with attribution:
Source: Perfume Picks — Fragrance DNA & Collection Journal (perfumepicks.app)
Freshness dates on each fragrance reflect the last data update.
安装
把 Perfume Picks 添加到你的客户端。选择你正在使用的那个。
{
"servers": {
"perfume-picks-mcp": {
"type": "http",
"url": "https://jdkwlwyysgofljkobpmr.supabase.co/functions/v1/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
claude mcp add perfume-picks-mcp -- npx -y perfume-picks-mcpcodex mcp add perfume-picks-mcp -- npx -y perfume-picks-mcpamp mcp add perfume-picks-mcp -- npx -y perfume-picks-mcp{
"mcpServers": {
"perfume-picks-mcp": {
"command": "npx",
"args": [
"-y",
"perfume-picks-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"perfume-picks-mcp": {
"command": "npx",
"args": [
"-y",
"perfume-picks-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"mcpServers": {
"perfume-picks-mcp": {
"command": "npx",
"args": [
"-y",
"perfume-picks-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"perfume-picks-mcp": {
"command": "npx",
"args": [
"-y",
"perfume-picks-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"perfume-picks-mcp": {
"command": "npx",
"args": [
"-y",
"perfume-picks-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"perfume-picks-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"perfume-picks-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"perfume-picks-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"perfume-picks-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y perfume-picks-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
8 个工具
Perfume Picks 向已连接的智能体提供 8 个工具。
- search_fragrances
- Full-text catalog search with brand, family, gender, and MSRP filters
- get_fragrance
- Full record for one scent (by slug or name): note pyramid, accords, community scores
- find_dupes
- Curated cheaper smell-alikes with match percentage — "what smells like X without the price tag"
- find_similar
- Most-similar fragrances from a precomputed similarity ranking
- get_recommendations
- Picks from note/accord preferences + budget + occasion + gender
- compare_fragrances
- Side-by-side: notes, shared/distinct accords, scores, price delta
- trending_fragrances
- What Perfume Picks users are adding to their wardrobes right now
- what_to_wear_tonight
- A scent for right now — date-night picks use community compliment data, office picks use office-safety scores
评分
71 / 100
良好
- 文档25/25
- 维护19/25
- 可信度6/20
- 能力6/15
- 安装体验15/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 10 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 8 tool(s) documented
- Provides prompt templates
- Provides resources
- 18 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
版本历史
| 版本 | 发布于 |
|---|---|
| 1.0.1最新 | 2026年8月21日 |
| 1.0.0 | 2026年8月13日 |