Perfume Picks

io.github.bguillow-rgbPublished by GitHub account bguillow-rgbv1.0.5Updated Oct 30, 2026

Search the Perfume Picks fragrance database: 10,000+ scents with notes, dupes, and wear data.

VerifiedStreamable HTTPWeb executableLocation & LifestyleBusiness & Commerce

Overview

AI-generated overview

Read-only MCP access to the Perfume Picks fragrance database, letting an assistant search scents, find dupes and similar perfumes, compare them, and get…

What you can do
  • Search and browse fragrances by text, brand, family, gender and MSRP, and read full records with note pyramids, accords and community scores
  • Find cheaper smell-alikes with match percentages, and list the most similar scents from a precomputed ranking
  • Get picks from note or accord preferences, budget, occasion and gender, and compare two fragrances side by side
  • See trending fragrances and get a suggestion for what to wear tonight, scored by compliment or office-safety data
When to use it
Useful when someone wants fragrance advice or research: finding a cheaper alternative to a known perfume, choosing a scent for an occasion, or comparing two bottles before buying. Not needed for anything outside fragrance catalog data.
Requirements
Either the remote streamable HTTP endpoint, or a local process via npx with Node.js 18+. No API key or configuration is required for public read-only access. Optional environment variables SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY override defaults.
Before you install
The optional SUPABASE_SERVICE_ROLE_KEY is described as internal use only and should never be distributed; without it, trending falls back to catalog popularity. Each tool call logs the tool name, arguments, client name and version, duration and outcome to a write-only table kept 90 days. All tools are read-only and rate-limited to 60 calls per minute.

Installation

In SourceWeft

  1. Open Perfume Picks in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.bguillow-rgb%2Fperfume-picks/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "perfume-picks": {
      "type": "http",
      "url": "https://mcp.perfumepicks.app/?src=registry"
    }
  }
}

README

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_fragrancesFull-text catalog search with brand, family, gender, and MSRP filters
get_fragranceFull record for one scent (by slug or name): note pyramid, accords, community scores
find_dupesCurated cheaper smell-alikes with match percentage — "what smells like X without the price tag"
find_similarMost-similar fragrances from a precomputed similarity ranking
get_recommendationsPicks from note/accord preferences + budget + occasion + gender
compare_fragrancesSide-by-side: notes, shared/distinct accords, scores, price delta
trending_fragrancesWhat Perfume Picks users are adding to their wardrobes right now
what_to_wear_tonightA 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_URLOverride the database URL
SUPABASE_SERVICE_ROLE_KEYInternal 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_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 installnpm run dev     # run from TypeScript via tsxnpm 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.

Source: README.md at commit 6d2f2ff

Tools

0
SourceWeft has not read this server's tools yet.

Version history

3
  1. v1.0.5LatestOct 16, 2026
  2. v1.0.2Sep 17, 2026
  3. v1.0.1Sep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts