|
| 1 | +# Noteboxd MCP |
| 2 | + |
| 3 | +A [Model Context Protocol](https://modelcontextprotocol.io) server that lets an AI assistant |
| 4 | +(Claude, ChatGPT, Cursor, and other MCP clients) query the |
| 5 | +[Noteboxd](https://www.noteboxd.com) fragrance encyclopedia: fragrances, notes, accords, |
| 6 | +brands, perfumers, community reviews, and charts. |
| 7 | + |
| 8 | +[](https://www.npmjs.com/package/@noteboxd/mcp) |
| 9 | +[](./LICENSE) |
| 10 | + |
| 11 | +Once connected, you can ask things like: |
| 12 | + |
| 13 | +- "I own Oud Wood and Aventus. What else should I try for cold-weather formal wear?" |
| 14 | +- "Compare Bleu de Chanel and Dior Sauvage." |
| 15 | +- "What are reviewers saying about Baccarat Rouge 540?" |
| 16 | + |
| 17 | +The assistant answers from Noteboxd's data instead of guessing. |
| 18 | + |
| 19 | +## Quickstart |
| 20 | + |
| 21 | +1. Create an API key at [developers.noteboxd.com](https://developers.noteboxd.com). The free tier is 50 calls/day and needs no card. |
| 22 | +2. Add the server to your MCP client (see below). |
| 23 | +3. Ask your assistant about fragrance. |
| 24 | + |
| 25 | +```bash |
| 26 | +NOTEBOXD_API_KEY=nb_live_your_key npx -y @noteboxd/mcp |
| 27 | +``` |
| 28 | + |
| 29 | +## Install |
| 30 | + |
| 31 | +Every client uses the same command (`npx -y @noteboxd/mcp`) with your key in `NOTEBOXD_API_KEY`. |
| 32 | + |
| 33 | +### Claude Desktop / Claude Code |
| 34 | + |
| 35 | +Add to `claude_desktop_config.json`: |
| 36 | + |
| 37 | +```json |
| 38 | +{ |
| 39 | + "mcpServers": { |
| 40 | + "noteboxd": { |
| 41 | + "command": "npx", |
| 42 | + "args": ["-y", "@noteboxd/mcp"], |
| 43 | + "env": { "NOTEBOXD_API_KEY": "nb_live_your_key" } |
| 44 | + } |
| 45 | + } |
| 46 | +} |
| 47 | +``` |
| 48 | + |
| 49 | +### Cursor |
| 50 | + |
| 51 | +[](cursor://anysphere.cursor-deeplink/mcp/install?name=noteboxd&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBub3RlYm94ZC9tY3AiXSwiZW52Ijp7Ik5PVEVCT1hEX0FQSV9LRVkiOiJuYl9saXZlX1lPVVJfS0VZIn19) |
| 52 | + |
| 53 | +Then set your real key. Or add the JSON block above to `~/.cursor/mcp.json`. |
| 54 | + |
| 55 | +### VS Code |
| 56 | + |
| 57 | +```json |
| 58 | +{ |
| 59 | + "servers": { |
| 60 | + "noteboxd": { |
| 61 | + "command": "npx", |
| 62 | + "args": ["-y", "@noteboxd/mcp"], |
| 63 | + "env": { "NOTEBOXD_API_KEY": "nb_live_your_key" } |
| 64 | + } |
| 65 | + } |
| 66 | +} |
| 67 | +``` |
| 68 | + |
| 69 | +### Hosted alternative |
| 70 | + |
| 71 | +Noteboxd also runs a hosted MCP server at `https://mcp.noteboxd.com/mcp` (Streamable HTTP, with |
| 72 | +OAuth sign-in) if you would rather not run anything locally. This package is the local, |
| 73 | +open-source option. |
| 74 | + |
| 75 | +## Tools |
| 76 | + |
| 77 | +All tools are read-only and return JSON. Each call is authenticated with your key and counts |
| 78 | +against your Noteboxd developer plan (the free tier covers 50 calls/day). |
| 79 | + |
| 80 | +### Search and discovery |
| 81 | +| Tool | Description | |
| 82 | +| --- | --- | |
| 83 | +| `search` | Search across fragrances, brands, notes, perfumers, collections | |
| 84 | +| `search_fragrances` | Filter fragrances by query, brand, note, family, or price range | |
| 85 | +| `trending` | Trending searches and most-worn fragrances | |
| 86 | +| `list_charts`, `get_chart` | Chart rankings and leaderboards | |
| 87 | + |
| 88 | +### Fragrances |
| 89 | +| Tool | Description | |
| 90 | +| --- | --- | |
| 91 | +| `get_fragrance` | Full profile: notes, accords, perfumer, community score | |
| 92 | +| `get_fragrance_reviews` | Paginated community reviews | |
| 93 | +| `get_similar_fragrances` | Fragrances with a similar accord profile | |
| 94 | +| `get_wearing_stats` | Wearing counts over recent windows | |
| 95 | +| `compare_fragrances` | Two fragrances compared side by side | |
| 96 | +| `get_review_digest` | Short summary of a fragrance's reviews | |
| 97 | +| `batch_get_fragrances` | Up to 50 fragrances by id in one call | |
| 98 | +| `enrich_fragrance` | Profile plus notes, accords, reviews, and similar in one call | |
| 99 | + |
| 100 | +### Brands, perfumers, notes |
| 101 | +| Tool | Description | |
| 102 | +| --- | --- | |
| 103 | +| `get_brand`, `list_brand_fragrances` | Brand profile and catalogue | |
| 104 | +| `get_perfumer` | Perfumer profile and top creations | |
| 105 | +| `list_notes`, `get_note` | Browse notes and single-note profiles | |
| 106 | +| `list_accords` | List accord families | |
| 107 | + |
| 108 | +## Configuration |
| 109 | + |
| 110 | +| Variable | Required | Description | |
| 111 | +| --- | --- | --- | |
| 112 | +| `NOTEBOXD_API_KEY` | yes | Your `nb_live_` key from [developers.noteboxd.com](https://developers.noteboxd.com) | |
| 113 | +| `NOTEBOXD_API_BASE_URL` | no | Override the API origin (default `https://api.noteboxd.com`) | |
| 114 | + |
| 115 | +You can also pass the key with `--api-key nb_live_...`. |
| 116 | + |
| 117 | +## How it works |
| 118 | + |
| 119 | +This is a thin local server. It speaks MCP to your client over stdio and forwards each tool call |
| 120 | +to `api.noteboxd.com/v1` using your key. It stores no data and holds no credentials beyond the key |
| 121 | +you provide. |
| 122 | + |
| 123 | +``` |
| 124 | +AI client --stdio--> noteboxd-mcp --HTTPS + your key--> api.noteboxd.com/v1 |
| 125 | +``` |
| 126 | + |
| 127 | +## Examples |
| 128 | + |
| 129 | +See [`examples/`](./examples) for runnable code: curl, TypeScript, and Python. |
| 130 | + |
| 131 | +## Pricing |
| 132 | + |
| 133 | +The server is free and open source. API usage follows your Noteboxd developer plan: a free tier |
| 134 | +(50 calls/day), then pay-as-you-go per call. Most reads are $0.01; the AI tools cost a few cents. |
| 135 | +See [developers.noteboxd.com/pricing](https://developers.noteboxd.com/pricing). |
| 136 | + |
| 137 | +## License |
| 138 | + |
| 139 | +[MIT](./LICENSE) |
0 commit comments