만약 perfume MCP 서버를 검색하면 몇 가지 옵션만 찾을 수 있고, 이들이 어떻게 작동하는지에 대한 데이터는 매우 적습니다. 그래서 저희는 2026년 10월 20일에 API 키나 로그인 없이 답변하는 다섯 개의 perfume MCP 서버에 동일한 40개 질문을 실행하고 그 결과를 기록했습니다.
숫자를 보기 전에 한 가지 공개할 점이 있습니다. 테스트에 사용된 서버 중 하나는 저희가 직접 구축한 10ML Perfume Finder입니다. 이는 명백한 이해 상충(conflict of interest)이므로, 방법론, 평가 기준(rubric), 40개 질문 및 요약 데이터는 아래에 게시하고 한계점은 목록으로 제시합니다. 전체 내용은 10ml.com에서 확인하실 수 있습니다.
측정 항목
- 날짜 및 장소: 2026년 10월 20일 화요일, UTC 기준 06:24부터 06:32까지, 동남아시아의 가정 연결망에 있는 단일 기기에서 진행되었습니다. 지연 시간(Latency)은 각 서버의 가장 가까운 엣지(edge)까지의 이동 시간을 포함하므로, 전 세계적인 수치는 아니며 하나의 관점만을 나타냅니다.
- 클라이언트: 캐싱이나 재시도(retries) 없이 순수한
fetch를 사용한 Node 25.9와 MCP Streamable HTTP (프로토콜 2025-06-18), 서버당 한 개의 연결을 사용했습니다. 루프 내에 언어 모델은 포함되지 않았습니다.
- 정중함(Politeness): 저희를 포함하여 모든 서버에 초당 최대 한 번의 요청만 허용되었습니다. 서버당:
initialize 1회, tools/list 1회, 점수화되지 않은 워밍업 질문 1회, 그리고 40개 질문을 한 번씩 진행했습니다.
- 질문: 실행 전에 작성되었고 어떤 인덱스에도 조정되지 않은 40개의 고정 질문으로 구성되었습니다. 여기에는 잘 알려진 향수 20개, 니치 또는 중동 향수 10개, 노트(note) 관련 질문 3개, 유사 향(similar-scent) 질문 2개, 브랜드(house) 질문 2개, 그리고 독일어, 프랑스어, 스페인어로 된 질문 3개가 포함되었으며, 작성된 대로 도구(tools)에 전달되었습니다. 10ML의 경우 이 세 가지 언어에 대해 문서화된 로케일 인자(locale argument)도 제공되었습니다.
- 점수 산정: 답변에 향수 이름, 브랜드, 그리고 그 헤드라인 노트 중 최소 두 개가 포함되어 있으면 정답으로 간주합니다. 노트 질문은 해당 노트를 언급하는 항목이 최소 4개이거나 고정된 목록의 잘 알려진 향수가 2개 이상일 경우 정답입니다. 유사 향 및 브랜드 질문은 고정된 목록에서 향수 1개 또는 3개가 필요합니다.
규칙은 실행 전에 작성되었으며 모든 서버에 동일하게 적용되었습니다.
- 호출(Calls): 각 서버는 에이전트가 자체 도구를 사용하는 방식대로 구동되었습니다. 즉, 서버가 이름을 받는 상세 호출(detail call)과 ID가 필요한 검색 후 상세 호출을 사용했습니다. 서버가 특정 질문 유형에 대한 도구가 없으면 검색 도구(search tool)를 사용했습니다.
결과 (Results)
| Server | Correct /40 | Median latency | p95 | Calls per question | Tools |
|---|
| 10ML Perfume Finder (10ML Fragrance Index 2.3.0) | 39 | 232 ms | 691 ms | 1.00 | 15 |
| ... | | | | | |
| 두 가지 참고 사항이 있습니다. Perfume Picks의 1/s 지연 시간(latency)에는 19건의 즉시 거절 응답(instant refusals)이 포함되어 있습니다. Perfume Picks는 분당 60회 호출이라는 문서화된 제한을 가지고 있지만, 초당 한 건으로 요청했을 때 질문 22부터 거절하기 시작했습니다 (거절 19건). 따라서 우리는 60초간의 중단 후 나머지 19개의 답변하지 못한 질문들을 4초 간격으로 재실행하여 두 가지 수치를 모두 보고합니다. | | | | | |
| Parfica는 노트 이름을 우크라이나어로 반환했으며, 에이전트가 이를 번역했다면 40개 중 34개를 달성했을 것이지만, 우리의 스크립트 클라이언트는 번역을 수행하지 않습니다. | | | | | |
ScentRev, Noteboxd, Fragella 및 Fraganty는 키(key) 또는 로그인(sign-in)이 필요하여 점수를 매길 수 없었습니다.
서버 간 차이점 (Where the servers differ)
점수는 이야기의 일부만을 알려줍니다. 응답과 각 서버의 tools/list를 측정했습니다:
- 출력 스키마(Output schemas): 10ML Perfume Finder는 15개 도구 모두에 선언하고 ScentVerdict는 6개 도구 모두에 선언했습니다. Parfum Bible, Perfume Picks 및 Parfica는 아무것도 선언하지 않았습니다.
- 노트 피라미드(Note pyramids): 10ML의 경우 30개 중 29개의 조회 답변에서 전체 탑(top), 하트(heart) 및 베이스(base) 피라미드가 반환되었으며, Parfum Bible, Perfume Picks (1/s 실행 시 21건), Parfica에서는 30개 중 30개에서 반환되었습니다. ScentVerdict는 조회 도구에서 평평한 키 노트(flat key notes)를 반환합니다. 별도의 향 프로필 도구(scent-profile tool)가 피라미드를 반환하지만, 우리는 이를 호출하지 않았습니다.
- 도구 목록 가중치(Tool-list weight): 10ML의
tools/list는 60.5 KB로 가장 무겁고, ScentVerdict의 6개 도구는 39.2 KB, Perfume Picks의 8개 도구는 6.6 KB입니다. 컨텍스트 예산(context budget)을 신경 쓴다면 이는 실제 비용이 됩니다.
우리가 부족한 부분 (Where we lose)
- 범위(Breadth). Perfume의 개수는 각 서버가 자체적으로 산정한 수치이며 독립적으로 계산된 것은 아닙니다. ScentVerdict는 31,000개 이상, Perfume Picks는 13,000개 이상을 언급한 반면, 10ML Fragrance Index에서는 5,406개를 기록했습니다. 이 질문들은 주류 인덱스가 답변할 수 있도록 선택되었기 때문에, 본 벤치마크는 그 5,406개가 넘는 향수에 대해서는 아무것도 말해주지 못합니다. 좀 더 생소한(obscure) 향수 세트를 사용한다면, 규모가 큰 인덱스들이 앞서 나갈 것입니다.
- 프로필 깊이(Profile depth). 5,406개 항목 중 4,925개는 지속력(longevity), 발향력(projection) 또는 조향사 정보가 없는 핵심 프로필이며, 481개는 전체 편집 프로필입니다.
- 오류 한 가지(One miss). 'Hermès Terre d'Hermès와 유사한'이라는 질문에 대해 저희 고정 목록에 없던 그럴듯한 공통 노트 이웃들을 반환했습니다. 유사 향수 루브릭은 본 벤치마크의 가장 취약한 부분입니다: n 값은 2이며, 목록이 모든 적절한 답변을 담을 수는 없습니다.
- 추가 정보(Extras). ScentVerdict는 향수별로 서면 평가를 추가합니다. Perfume Picks는 커뮤니티 착용 점수와 선별된 대안을 추가하며, Parfum Bible은 미국 소매업체 판매 정보를 추가합니다.
테스트의 한계점
한 번의 실행, 한 장소에서 이루어졌습니다. n = 40일 때, 질문 하나 차이만으로도 노이즈 범위 내에 있을 수 있습니다. 이 세트는 설계상 주류(mainstream)에 치우쳐 있습니다. 초기 검토 후 두 가지 채점 오류가 발견되었습니다 (JSON에서 누락된 악센트, 그리고 노트 질문을 처음에 고정된 향수 목록만을 기준으로 점수화했던 것). 저희는 이를 모든 서버에 대해 수정하고 저장된 모든 응답을 재채점했습니다. 초기 패스 점수는 10ML이 37점, ScentVerdict가 32점, Parfum Bible이 33점, Perfume Picks가 18점, Parfica가 2점이었습니다. Parfica는 두 번 실행되었으며, 두 번째 실행은 이름만으로 재시도한 것이고 그 결과가 보고되었습니다.
또한, 모든 서버는 단순 스크립트에 의해 구동되었습니다. 재시도하거나 번역하는 모델을 사용한다면 Parfica와 Perfume Picks의 점수가 올라가고, 우리가 측정한 단일 호출(single-call) 우위가 줄어들 것입니다. 저희는 이 테스트를 매월 다시 실행할 계획입니다. 요약 데이터는 벤치마크 페이지에서 CSV 및 JSON 형식으로 CC BY 4.0 라이선스를 따릅니다.
사용해보기
The MCP 엔드포인트는 API 키나 계정 없이 무료로 사용할 수 있는 단일 URL을 제공합니다:
Claude Code에서는:
claude mcp add --transport http perfume-finder https://mcp.10ml.com/mcp
Cursor의 경우, ~/.cursor/mcp.json에 작성합니다:
Claude, ChatGPT, VS Code, Gemini CLI, Windsurf, Cline, Goose 및 Zed를 위한 설정은 perfume MCP 서버 페이지에서 확인할 수 있습니다.
직접 코드로 호출하고 싶다면, 동일한 답변을 일반 GET 요청으로 받을 수 있습니다 (CORS 허용, JSON 응답):
const res = await fetch("https://mcp.10ml.com/api/v1/perfumes/Baccarat%20Rouge%20540?format=detailed");
const { perfume } = await res.json();
console.log(perfume.name, perfume.pyramid);
Curl 및 Python 예제, 다른 엔드포인트와 OpenAPI 3.1 설명은 perfume API 페이지에 있습니다. 이 API는 읽기 전용이며, 공정 사용량 제한(fair-use rate limiting)이 적용될 수 있으므로 대량 작업을 할 때는 예의를 지키고 가져온 데이터를 캐싱하는 것이 좋습니다.
만약 여러분이 향수 서버를 운영하고 다음 라운드에 참여하고 싶거나, 질문 유형이 부족하다고 생각한다면 댓글로 알려주세요. 질문과 채점 기준(rubric)은 벤치마크 페이지에 있으니 직접 질문을 재실행할 수 있습니다.