trackmcp
Back to directory
bguillow-rgb

perfume-picks-mcp

View on GitHub

MCP server for the Perfume Picks fragrance database — read-only catalog, dupes, and wear data for AI assistants

0 stars TypeScriptOthers Updated Aug 21, 2026
agent-toolsai-agentsfragrancemcpmcp-servermodel-context-protocolperfumerecommendations

Documentation

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

ToolWhat 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):

json
{
  "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):

VariablePurpose
`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:

code
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_recommendations` with `occasion: "wedding"`
  • *"What fragrances have bergamot, vanilla, and amber?"* → `get_recommendations` with those notes as `preferences`
  • *"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):

json
{
  "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

bash
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.

Frequently asked questions

What is perfume-picks-mcp?

perfume-picks-mcp is MCP server for the Perfume Picks fragrance database — read-only catalog, dupes, and wear data for AI assistants

How do I install perfume-picks-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is perfume-picks-mcp open source?

Yes — it is hosted on GitHub at https://github.com/bguillow-rgb/perfume-picks-mcp.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP