关于 scentindex
scentindex 是用于查询公开 10ml Fragrance Index 的 MCP 服务和命令行工具。它支持搜索香水、香调、品牌和指南,也可查找相似香水与替代品,无需 API 密钥。
主要功能
- 01按文本和条件搜索香水
- 02查看香水详情与香调
- 03查找相似香水和替代品
- 04按单一香调浏览香水
- 05解释香调并搜索指南
适用场景
- 01按香调或风格探索香水
- 02查找其他品牌的替代香水
- 03查询香调的气味特征
- 04浏览香水品牌和指南
MCP 相关
向 MCP 客户端提供九种工具,用于搜索和查询香水、香调、品牌及指南,也支持相似香水和替代品查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
9收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 否 | |
| house | string | 否 | |
| limit | integer | 否 | 每页数量(默认 20,最多 100)。 |
| style | string | 否 | |
| cursor | string | 否 | 上一响应中的不透明游标。 |
| family | string | 否 | |
| gender | string | 否 | |
| iconic | boolean | 否 | |
| locale | string | 否 | 响应语言(en、es、fr、de、it、pt、nl、pl、ru、ja、ko、zh、ar、hi、tr、sv、id)。 |
| season | string | 否 | |
| accords | string | 否 | |
| occasion | string | 否 | |
| notes_exclude | string | 否 | |
| notes_include | string | 否 | |
| response_format | enum | 否 | 简洁(默认)或详细。concise | detailed |
详细介绍
scentindex
一个大型香氛索引的窗口。scentindex 查询公开的 10ml Fragrance Index——香水、其中的香调、制造香水的品牌,以及解释相关词汇的指南——并原样返回索引中的内容。无需账户或 API 密钥;它只是一个基于公共 API 的轻量、诚实的客户端。
你可以用它:
- 按自由文本、品牌、包含或排除的香调、香韵、香调家族、性别、季节、场合或风格搜索香水,并使用游标翻阅结果。
- 查看一款香水的完整信息,包括香调、香韵和元数据。
- 从一款香水、一组香调或一种香韵特征出发,查找相似香水,或寻找替代品——来自其他品牌、香氛特征相同的香水。
- 按单一香调浏览香水,例如查找所有含有沉香的香水。
- 了解某种香调的实际气味,以及它通常出现在哪里。
- 按类型或国家/地区筛选并列出、查看香水品牌,还能搜索索引中的指南和词汇表内容。
多数工具支持通过 locale 指定响应语言,并且在底层操作支持的情况下,可通过 response_format 选择 concise(API 默认值)或 detailed。列表工具使用 limit(1–100)和从先前响应中取得的不透明 cursor 翻页。
已实现的子集:15 个工具中的 9 个
此重建版本实现了原工具集 15 个工具中的 9 个——也就是对应上游 OpenAPI 文档中已发布操作的 9 个:
search_perfumes、get_perfume、find_similar_perfumes、find_perfume_alternatives、perfumes_by_note、explain_note、list_houses、get_house、search_guides。
其余 6 个工具未纳入,因为已发布的 OpenAPI 中没有对应操作,且在任何可访问的位置都找不到它们的参数结构:
compare_perfumes、recommend_perfumes、explain_perfume_term、suggest_layering、pick_for_occasion、find_gift。
配置
API 基础地址默认为 https://mcp.10ml.com/api/v1,可以通过 PERFUME_API_BASE 环境变量覆盖。无需 API 密钥。
CLI
每个工具都是一个子命令,接受一个 JSON 参数字符串:
npx @reneturcios/scentindex search_perfumes '{"q":"oud","limit":10}'
npx @reneturcios/scentindex get_perfume '{"id":"<perfume id>"}'
npx @reneturcios/scentindex find_similar_perfumes '{"perfume":"<name>"}'
npx @reneturcios/scentindex find_perfume_alternatives '{"perfume":"<name>"}'
npx @reneturcios/scentindex perfumes_by_note '{"note":"oud"}'
npx @reneturcios/scentindex explain_note '{"id":"oud"}'
npx @reneturcios/scentindex list_houses '{"country":"FR"}'
npx @reneturcios/scentindex get_house '{"id":"<house id>"}'
npx @reneturcios/scentindex search_guides '{"q":"layering"}'
npx @reneturcios/scentindex --version
输出为上游 JSON,原样返回。退出代码:成功时为 0,运行时错误(包括验证失败或上游错误)时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/scentindex mcp
MCP 客户端配置:
{
"mcpServers": {
"scentindex": {
"command": "npx",
"args": ["-y", "@reneturcios/scentindex", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/scentindex
docker run --rm ghcr.io/cloudcorprecords/scentindex perfumes_by_note '{"note":"oud"}'
开发
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev # run the CLI from source
许可证
MIT — 版权所有 (c) 2026 Rene Turcios
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。