mcpField
M
Medical Terminologies MCP

Medical Terminologies MCP

远程服务
medical.sidneybissoli.com健康医疗161 天前更新

关于 Medical Terminologies MCP

Medical Terminologies MCP 为研究人员、公共卫生分析师、临床信息学开发者和教育者提供多种权威医学术语数据的统一接口。它支持 ICD-11、LOINC、RxNorm、MeSH、ATC 和巴西 CID-10,并提供跨术语查询、映射及来源信息;不用于临床决策。

主要功能

  1. 01查询六类医学术语数据
  2. 02跨术语搜索与代码映射
  3. 03结果附带来源与引用信息
  4. 04提供缓存和速率限制
  5. 05包含 MCP 提示词与资源
  6. 06支持 stdio 和 Streamable HTTP

适用场景

  1. 01查找疾病分类代码及层级
  2. 02检索实验室项目术语
  3. 03查询药品标准名称
  4. 04为术语映射记录版本和来源

MCP 相关

该服务向 MCP 客户端提供 33 个工具、3 个提示词和 4 个资源,覆盖术语搜索、查询、映射及参考内容。可通过 stdio 或 Streamable HTTP 连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://medical.sidneybissoli.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmmedical-terminologies-mcp2.4.0

工具

33
参数类型必填说明
querystring是搜索文本(疾病名称、症状或关键词)
languageenum否语言代码(默认:en)。如果存在来源的官方译文,则返回该译文(例如,官方葡萄牙语使用 'pt');内容绝不经过机器翻译。en | es | pt | fr | de | it | zh | ja | ar | ru
max_resultsinteger否结果数上限(1–100)。默认值:25

详细介绍

医学术语 MCP 服务

npm version npm downloads node MCP Registry LobeHub smithery badge Glama MCP server Available on CodeGuilds GitHub stars GitHub Sponsors tool calls MCP License: MIT

一个 Model Context Protocol (MCP) 服务,统一提供对全球主要医学术语体系的访问:

  • ICD-11 - 国际疾病分类(WHO)
  • LOINC - 逻辑观察标识符名称与代码
  • RxNorm - 临床药物的标准化名称(NIH)
  • MeSH - 医学主题词(NLM)
  • ATC - 解剖学治疗学及化学分类(WHO 合作中心,通过 NLM RxClass 提供)
  • CID-10 - ICD-10 的巴西葡萄牙语译本(DataSUS V2008,内置)

🇧🇷 阅读葡萄牙语版

查看实际效果

向助手提问:

  • “2 型糖尿病的 ICD-11 代码是什么?” → icd11_search
  • “将 ICD-10 代码 E11 映射到 ICD-11。” → map_icd10_to_icd11
  • “LOINC 2339-0 测量的是什么?” → loinc_details
  • “急性心肌梗死的 CID-10 代码是什么?” → cid10_search

答案来自权威来源(WHO、NLM、NIH、DataSUS),提供真实代码和映射,而非根据训练数据猜测。

功能

  • 33 个工具:31 个术语工具,另加供 ChatGPT Deep Research 使用的 search/fetch
  • 3 个 MCP 提示词,可将工具调用编排为命名工作流(find-medical-code、drug-info、cid10-portuguese-lookup)——客户端会将其呈现为一键式用户操作
  • 4 个 MCP 资源,用于提供进程内参考内容(info://server、info://cid10/chapters、info://licenses、info://stats)——读取时间不到 1 毫秒(info://stats 除外,它会与托管端点上的 StatsCounter Durable Object 往返通信)
  • 单个服务支持多种术语体系
  • 跨术语体系映射与搜索
  • 每个响应均包含来源信息(自 v1.8.0 起):每个成功的工具结果都带有机器可读的来源信息块,包括来源、规范 URL、数据版本、实际提取时间(缓存命中时保留原始获取时间)、可直接使用的引文和许可证,位于 structuredContent.provenance + attribution 中;同时镜像到 com.sidneybissoli.medical/* 下的 _meta 中,并为纯文本客户端提供简洁的文本页脚。多来源响应(find_equivalent、validate_codes)会为每个来源提供一个信息块;服务端计算的排名字段会标记为派生字段
  • 内置缓存,提升性能
  • 速率限制,遵守 API 限制
  • 响应详细,格式丰富
  • 两种传输方式:stdio(默认;用于 Claude Desktop、IDE 客户端)和 Streamable HTTP(托管的 Cloudflare Worker:https://medical.sidneybissoli.com/mcp,或你自己的 worker/ 实例)

📖 文章(葡萄牙语): CID-10、CID-11,以及 SUS 数据从业者将面临的变化——V2008 的结构数据、WHO 转换表的用途与局限,以及不同来源所采用的许可证。该文章也以葡萄牙语和英语发布在网站上:sidneybissoli.com。

适用人群

该服务并非用于临床护理决策的工具——执业临床医生有专用助手(UpToDate AI、OpenEvidence、与 EHR 集成的工具)可供使用。它的实际受众是需要以编程方式访问权威术语数据的研究人员、公共卫生分析师、临床信息学开发人员和教育工作者。

如果你是……从这里开始原因
生物医学研究人员 / 书目编制人员mesh_search、mesh_descriptor、mesh_treeMeSH 是 PubMed 的索引词汇表;树号可让你通过编程方式遍历受控层级结构
公共卫生分析师(巴西 / SUS)cid10_search、cid10_chapters、atc_classifyCID-10 V2008 是巴西的操作标准;ATC 与 DataSUS 处方数据可直接配合使用
公共卫生分析师(国际)icd11_search、icd11_lookup、icd11_chaptersWHO ICD-11 是当前的国际修订版;章节和层级结构支持流水线分类
临床信息学开发人员loinc_search、loinc_details、find_equivalentLOINC 用于实验室检查 / 观察结果的互操作;跨术语体系搜索可为创建新映射提供基础
教育工作者 / 课程编写者mesh_descriptor、icd11_lookup、rxnorm_search可直接用于自检练习的权威定义、树号和药物术语类型

此服务的用途边界——以及哪些数据会离开你的设备

  • 此服务不用于临床决策支持。 它会检索官方来源发布的内容,但不会诊断、推荐治疗方案或给出剂量。
  • 此服务不支持离线运行。 ICD-11、LOINC、RxNorm、MeSH 和 ATC 的查询由 WHO 和 NLM 的公共 API 实时处理。你发送的每个查询字符串都会转发给这些服务。 运行查询前,请先对术语列表进行去标识化:不要包含患者姓名、自由文本记录或记录标识符。两套数据集已打包在服务中,并在进程内响应,无需网络调用:CID-10(DataSUS V2008)和 WHO ICD-10 → ICD-11 转换表(map_icd10_to_icd11)。
  • 使用托管端点无需凭据。 https://medical.sidneybissoli.com/mcp 已配置 WHO 凭据。只有在自行运行服务时才需要 WHO_CLIENT_ID/WHO_CLIENT_SECRET,且仅供 5 个 ICD-11 工具使用。
  • 此服务不提供 SNOMED CT。 它已在 2.0.0 版本中弃用:目前没有可用的公共 Snowstorm 主机,SNOMED 内容需要按国家/地区获取许可证,而且默认关闭的工具会让所有列出此服务的目录产生混淆。请参阅 SNOMED CT(在 2.0.0 版本中弃用)。
  • 此服务的数据结构与 OMOP 不兼容。 结果包含来源自己的代码,而非 OMOP concept_id,也不支持遍历 concept_ancestor。如果你的输出需要与 OMOP CDM 联接,请使用 OMOP 词汇服务;一般术语处理则可使用此服务。
  • 搜索基于词法匹配,而非语义匹配。 find_equivalent 和 *_search 工具匹配的是词语,而不是含义(不使用嵌入)。
  • 大批量查询会受上游速率限制影响(请参阅 API 速率限制)。数千个不同术语需要数分钟到数十分钟。

可复现性:查询所依据的版本

只有注明词汇版本,交叉映射或编码数据集才有意义。以下两项会记录版本:

  • terminology_versions 会列出每种术语所查询的版本。批量运行开始时调用此工具,并将输出与结果一并保存。ICD-11 版本是固定的(默认为 2026-01,可通过 WHO_ICD11_RELEASE_ID 覆盖),因此在更改设置之前,自行托管的运行结果可复现。

  • 每个响应中的来源信息区块(structuredContent.provenance)包含 retrieved_at(实际提取时间;命中缓存时保留原始获取时间)、来源 URL、引用和许可证。其 data_vintage 字段会记录版本,前提是来源提供了版本信息:

    来源每个响应中的 data_vintage
    ICD-11固定的 WHO 版本(例如 2026-01)
    ICD-10 → ICD-11 表打包的 WHO 版本(例如 2025-01)
    CID-10V2008
    LOINC、RxNorm、MeSH、ATCnull,因为这些 API 不会在每个响应中注明版本。请改为记录 terminology_versions 和 retrieved_at

最简批量日志:开始时调用一次 terminology_versions,并记录每个结果的 provenance(来源、data_vintage、retrieved_at)。

试用托管实例(无需安装)

公共 Cloudflare Workers 部署运行于:

https://medical.sidneybissoli.com/mcp

通过 MCP Inspector 或任何 Streamable HTTP MCP 客户端连接:

npx @modelcontextprotocol/inspector --transport streamable-http \
  --server-url https://medical.sidneybissoli.com/mcp

也可以通过 Smithery 安装,该服务会通过其网关代理同一端点:

npx -y smithery mcp add sidneybissoli/medical-terminologies-mcp

托管实例已配置 WHO 凭据,因此无需在你这边进行任何设置即可使用全部 33 个工具。如需部署自己的实例(例如用于企业网络、其他地区或自定义 WHO 凭据),请参阅下文的安装和 Cloudflare Workers 托管(主要方式)部分。

安装

全局安装(推荐)
npm install -g medical-terminologies-mcp
本地安装
npm install medical-terminologies-mcp

配置

Claude Desktop

将以下内容添加到 Claude Desktop 配置文件中:

macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "medical-terminologies": {
      "command": "npx",
      "args": ["-y", "medical-terminologies-mcp"],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}
环境变量
变量必需描述
WHO_CLIENT_ID是¹WHO ICD API 客户端 ID
WHO_CLIENT_SECRET是¹WHO ICD API 客户端密钥
WHO_ICD11_RELEASE_ID否要查询的 ICD-11 版本(例如 2025-01、2026-01)。默认值为 2026-01。
LOG_LEVEL否pino 日志级别(debug、info、warn、error、fatal)。默认值为 info。

¹ ICD-11 工具必需。请在此处获取凭据:https://icd.who.int/icdapi。

LOINC、RxNorm、MeSH、ATC 和 CID-10 无需配置。

HTTP 传输(托管)

默认情况下,服务通过 stdio 运行,这是 Claude Desktop 和 IDE 客户端的预期方式。Streamable HTTP 传输由 worker/ 中的 Cloudflare Worker 提供(这是维护者 Fase 0 托管模板的一个实例)。Node 入口的 --http 标志已在 v1.6.0 中移除——如果需要本地 HTTP 端点,请在本地运行 Worker:

npm ci && cd worker && npm ci
npm run dev     # wrangler dev on http://localhost:8787
# Inspector via HTTP
npx @modelcontextprotocol/inspector --transport streamable-http --server-url http://localhost:8787/mcp

托管端点(生产环境和本地环境均适用):

  • POST /mcp — 通过 Streamable HTTP 传输 JSON-RPC(MCP 协议)。无状态模式:每个请求相互独立。
  • GET /health — 返回 { status, name, version, tool_count, uptime_s } 的存活探针。
  • GET /status — 版本和部署元数据。GET /metrics — 按工具汇总的使用情况。
  • GET /stats 和 GET /stats/badge — 公开工具调用计数器(自 2026-05-13 起)及其 shields.io 徽章。
  • GET /.well-known/mcp/server-card.json — 供注册表扫描器使用的静态服务卡片。
  • CORS 设置为宽松模式(*),因此浏览器客户端(例如 MCP Inspector 网页 UI)可以直接连接。
ChatGPT(深度研究)

ChatGPT 深度研究(以及公司知识和通过 Responses API 进行的研究工作流)只使用恰好公开 search 和 fetch 的 MCP 服务——本服务除了术语工具外也提供这两个工具。将连接器指向托管端点即可,无需密钥:

https://medical.sidneybissoli.com/mcp

search 会在捆绑的 CID-10(类别、子类别、章节)、术语版本记录以及实时并行查询 ICD-11、LOINC、RxNorm 和 MeSH 的结果中对查询进行排序(与 find_equivalent 使用相同的并行查询;失败的数据源会被跳过),并返回 { id, title, url };fetch 会通过术语自身的查询工具(cid10_lookup、icd11_lookup、loinc_details、rxnorm_concept、mesh_descriptor、terminology_versions)将文档呈现为易读的 Markdown,并附上规范公共页面(WHO ICD 浏览器、loinc.org、RxNav、MeSH Browser),供 ChatGPT 引用。两者都包含与其他工具相同的来源信息块——search 为每个响应的数据源提供一个信息块,与 find_equivalent 类似。在 ChatGPT 的开发者模式(Settings → Security and login → Developer mode)中,任何工具都可以调用——术语工具仍是用于数据的工具。

部署在 Cloudflare Workers 上(主要方式)

生产部署使用 worker/ 中的 Cloudflare Worker,配置位于 worker/wrangler.jsonc,CI 部署配置位于 .github/workflows/deploy-worker.yml(每次推送到 main 时自动运行)。

部署你自己的实例:

npm ci && npm run build:worker-lib
cd worker && npm ci
npx wrangler login         # one-time, browser flow
npx wrangler deploy        # publishes to <name>.<account>.workers.dev
# Set ICD-11 secrets so those 5 tools work:
npx wrangler secret put WHO_CLIENT_ID
npx wrangler secret put WHO_CLIENT_SECRET

注意:worker/wrangler.jsonc 固定了维护者的 account_id 和自定义域名路由——请在自己的部署中删除或替换这两项。

为何选择 Workers:边缘节点零冷启动,费用固定为每月 $5,可处理 1000 万次请求(免费层每天最多支持 10 万次请求),无需配置或重启虚拟机。该模板提供按 IP 限流和 usage-stats Durable Object;面向上游的缓存和限流按隔离实例设置(PROGRESS.md Phase 11.9 Stage 2 跟踪 KV/DO 升级)。

在 Smithery 上架

Worker 上线后,在 Smithery 上注册 URL:

  1. 访问 https://smithery.ai → Publish → MCP(或访问 https://smithery.ai/new)。
  2. 选择 URL 提交方式(Smithery 已于 2024 年弃用容器托管;目前支持的方式是 URL)。
  3. 粘贴 https://<your-worker>.workers.dev/mcp。Smithery 的网关会扫描合规性并代理流量。

可用工具(33)

官方葡萄牙语(pt-BR)内容

服务不会对术语内容进行机器翻译,但多个来源会发布官方译文,这些工具可以提供这些内容:

  • CID-10 原生支持葡萄牙语:cid10_search / cid10_lookup / cid10_chapter(s) 提供 DataSUS V2008 数据集(巴西 SUS 在实际工作中使用的 CID-10)。
  • ICD-11 官方葡萄牙语版本:向 icd11_search / icd11_lookup 传入 language: "pt",即可搜索和读取 WHO 官方 pt-BR 线性化标签。
  • MeSH:向 mesh_search / mesh_descriptor 传入 language: "pt",即可请求 NLM 已发布的官方译文。

如果某个来源没有对应条目的官方译文,返回的将是来源语言内容,而不是机器翻译。

ICD-11 工具(5 个)
工具描述示例
icd11_search按术语搜索 ICD-11query: "diabetes mellitus"
icd11_lookup按代码/URI 获取实体详情code: "5A11"
icd11_hierarchy浏览父子关系code: "5A11"
icd11_chapters列出所有 ICD-11 章节-
icd11_postcoordination获取后协调轴code: "5A11"
LOINC 工具(4 个)
工具描述示例
loinc_search搜索实验室检测和观察项目query: "glucose"
loinc_details获取完整的 LOINC 代码详情loinc_num: "2339-0"
loinc_answers获取问卷条目的答案列表:LA 代码、文本、顺序和分值(PHQ-9 条目:0-3);没有列表的代码返回空结果,未知代码返回“not found”loinc_num: "44250-9"
loinc_panels获取面板/表单结构:按表单顺序排列的成员条目loinc_num: "44249-1"
RxNorm 工具(5 个)
工具描述示例
rxnorm_search按名称搜索药物query: "metformin"
rxnorm_concept获取药物概念详情rxcui: "6809"
rxnorm_ingredients获取活性成分rxcui: "6809"
rxnorm_classes获取治疗类别rxcui: "6809"
rxnorm_ndc映射 RxCUI 与 NDCrxcui: "6809"
MeSH 工具(4 个)
工具描述示例
mesh_search搜索 MeSH 描述符query: "hypertension"
mesh_descriptor获取描述符详情mesh_id: "D006973"
mesh_tree获取树形层级位置mesh_id: "D006973"
mesh_qualifiers获取允许的限定词mesh_id: "D006973"
跨术语映射工具(4 个)
工具描述示例
map_icd10_to_icd11使用捆绑的 WHO 转换表进行权威 ICD-10 → ICD-11 映射;返回主代码、章节、URI 以及 WHO 文档中记录的任何备选项icd10_code: "E11"
validate_codes批量验证 ICD-11、LOINC、RxNorm、MeSH、ATC、CID-10 中最多 50 个代码;逐个返回有效/无效状态和显示名称codes: [{terminology:"icd11",code:"5A11"}, …]
find_equivalent跨术语进行排序后的统一搜索:为每个候选项返回服务计算的 match_score/rank,并提供由词面完全相同的标题组成的跨术语 groupsterm: "diabetes"
harmonize_terms将最多 50 个自由文本术语批量映射到标准代码:诊断 → ICD-11,药物 → RxNorm(以及 ATC 类别),实验室 → LOINC。每个术语返回:带有 match_score 和 match_type(exact / strong / needs_review)的排序候选项,以及每个来源各自的溯源信息块。此工具与 validate_codes 互补,采用术语优先的方式terms: [{term:"type 2 diabetes",domain:"diagnosis"}, {term:"metformin",domain:"drug"}]
ATC 工具(3)

通过 NLM RxClass 提供的 WHO 解剖学、治疗学及化学分类(免费,无需认证)。WHOCC 基础服务本身需要付费订阅,但 RxClass 包含相同的代码/名称对。

工具描述示例
atc_classify药物名称 → ATC 代码drug_name: "metformin"
atc_lookupATC 代码(第 1–4 级)→ 名称 + 级别类型atc_code: "A10BA"
atc_membersATC 类别 → 成员药物atc_code: "A10BA"
CID-10 工具(4)

巴西葡萄牙语版 ICD-10(DataSUS V2008)。作为静态数据集捆绑提供,不会调用 HTTP。巴西 SUS 在实际工作中使用 CID-10 V2008;对于国际版 ICD-11(WHO 当前修订版),请使用上面的 ICD-11 工具。

工具描述示例
cid10_search葡萄牙语文本搜索(不区分变音符号,单词之间按 AND 匹配;日常用词会映射到 CID-10 用语,并在响应中说明)query: "câncer de mama"
cid10_lookup代码 → 官方葡萄牙语名称code: "I21" 或 "A00.1"
cid10_chapters列出 22 个 CID-10 章节-
cid10_chapter章节详情及其组成类别num: 9

请用自己的话提问,而不是照搬 CID-10 的用语。 CID-10 使用临床葡萄牙语表述,而 cid10_search 会将你的用词与代码标题作为一个逐字匹配的短语进行比对,因此日常用词会返回完全没有结果。根据捆绑的 V2008 数据集中的 14,496 个类别和子类别进行测量(2026-09-16),此功能自 1.12.0 起固定不变:每个词都必须匹配(AND),日常用词会扩展为 CID-10 自身的用词(仅包含 src/clients/cid10-vocabulary.ts 中测量过的词对);响应会在 vocabulary_notes 中说明这一点,且零结果会附带解决方法。

你的查询之前的命中数CID-10 的表述命中数
câncer、câncer de mama0neoplasia maligna (da mama)497、12
ataque cardíaco0infarto42
AVC0acidente vascular cerebral11
pressão alta0hipertensão44
dor de cabeça0cefaleia10
suicídio0lesão autoprovocada167
atropelamento0pedestre traumatizado97
aids0doença pelo HIV45
pedra nos rins、convulsão、tabagismo、maconha、crack、obeso、cachorro0calculose、convulsões、fumo、canabinóides、cocaína、obesidade、provocado por cão19、41、17、12、13、6、11

V2008 数据集未包含的内容仍会被排除,并继续返回零结果,例如 covid(U07.1 来自 2020 年)和 zika;因为为不存在的代码添加别名,会让人误以为源数据包含该内容。同一张表也为 Deep Research 的 search 索引提供数据。

版本工具(2)

展示此服务当前查询的每种术语的版本——在固定版本上进行批量验证,或在上游更新后调查意外的查询未命中时,这些信息很有用。

工具描述示例
terminology_versions列出全部 8 种受支持术语的当前版本、发布日期、发布方、来源 URL 和更新频率-
terminology_diff报告某术语两个版本之间有哪些差异数据(ICD-10 → ICD-11 提供真实的跨修订版统计数据;其他情况提供指导)terminology: "icd10-icd11"
ChatGPT Deep Research(2)

OpenAI Deep Research 契约——仅有的两个不带术语前缀的工具(名称由 OpenAI 固定)。请参阅上文的 ChatGPT(Deep Research)。

工具描述示例
search搜索目录(CID-10、ICD-11、LOINC、RxNorm、MeSH、术语版本),并按相关性返回 { id, title, url }query: "myocardial infarction"
fetch返回 search 中某个 id 的完整文档({ id, title, text, url, metadata }),由相应术语的查询工具渲染id: "cid10:I21.0"

示例输出

以下样例是这些工具实际生成的格式化输出——即 CallToolResult 的正文。工具还会返回一个与各自 outputSchema 匹配的 structuredContent 对象,供程序化使用者使用。

loinc_search — 查询:「glucose」,max_results:3
## LOINC Search Results for "glucose"

Found 1024 total results (showing 3):

1. **74790-7** - Glucose challenge (hydrogen breath test) panel - Exhaled gas
   Component: Glucose challenge panel | Method: -

2. **104708-3** - Deprecated Estimated average glucose [Moles/volume] in Blood
   Component: Estimated average glucose | Property: SCnc

3. **97510-2** - Glucose measurements in range out of Total glucose measurements during reporting period
   Component: Glucose measurements in range/Total glucose measurements | Property: NFr | Method: Calculated

total_count(1024)反映 NLM Clinical Tables 索引中的所有匹配项,而不只是返回的页面。提高 max_results(最大值为 50),即可查看 2339-0(Glucose [Mass/volume] in Blood)等规范代码;在页面较小时,API 的相关性排序会将检验组和衍生测量排在普通血糖项目之前。

rxnorm_ingredients — rxcui:「6809」(metformin)
# Ingredients for RxCUI 6809

Found 18 ingredient(s):

| RxCUI | Name | Type |
|-------|------|------|
| 6809 | metformin | Single Ingredient |
| 1007411 | chlorpropamide / metformin | Multiple Ingredient |
| 1043562 | metformin / saxagliptin | Multiple Ingredient |
| 1243019 | linagliptin / metformin | Multiple Ingredient |
| 1486436 | dapagliflozin / metformin | Multiple Ingredient |
| 1545149 | canagliflozin / metformin | Multiple Ingredient |
| 1664314 | empagliflozin / metformin | Multiple Ingredient |
| 729717  | metformin / sitagliptin | Multiple Ingredient |
| ...     | (10 more combinations)   | Multiple Ingredient |

对于本身就是成分的 RxCUI(TTY=IN),该工具会返回该成分,以及所有包含它的多成分(TTY=MIN)概念。可用此工具枚举以某种物质为基础的复方产品。

mesh_descriptor — mesh_id:「D006973」(Hypertension)
# Hypertension
MeSH ID: D006973

## Scope Note

Persistently high systemic arterial BLOOD PRESSURE. Based on multiple readings (BLOOD PRESSURE DETERMINATION), hypertension is currently defined as when SYSTOLIC PRESSURE is consistently greater than 140 mm Hg or when DIASTOLIC PRESSURE is consistently 90 mm Hg or more.

## Tree Numbers

- C14.907.489

## Concepts

- Hypertension *(preferred)*

## Allowed Qualifiers

35 qualifier(s) allowed. Use mesh_qualifiers for details.

范围说明来自描述符的首选概念,而非其注释字段(该字段是面向索引人员的说明)。树编号是可在 MeSH 受控层级中导航的路径——C14.907.489 表示 Hypertension 隶属于 Cardiovascular Diseases → Vascular Diseases。

常见工作流

  • ICD-11 查询: 使用临床术语调用 icd11_search → 选择结果 → 使用代码调用 icd11_lookup 获取完整详情,或调用 icd11_hierarchy 遍历父级/子级。
  • 药物处理流程: 使用品牌名或通用名调用 rxnorm_search → 调用 rxnorm_concept 获取规范记录 → 调用 rxnorm_ingredients 和 rxnorm_classes 进行下游分析。
  • 协调一列自由文本术语: 开始时调用一次 terminology_versions → 分批调用 harmonize_terms,每批最多 50 个(每个术语都要指定其领域)→ 接受 exact,抽查 strong,将 needs_review 交由人工处理 → 在交叉映射中保留每行的 provenance。记录实验室术语时,需注明标本和属性(「glucose serum」):仅写「glucose」会匹配到一千多个 LOINC 代码。
  • 跨术语体系搭建基础映射: 使用临床术语调用 find_equivalent,一次搜索 ICD-11、LOINC、RxNorm 和 MeSH。可用它为映射建立初始基础;成对的 map_* 工具可进一步完善映射。
  • ICD-10 → ICD-11(权威映射): map_icd10_to_icd11 会读取随附的 WHO 转换表。它会返回主要的 ICD-11 代码和 WHO 记录的任何备选代码;如果 ICD-10 类别不在表中,则返回 null(绝不猜测)。

SNOMED CT(在 2.0.0 中弃用)

截至 1.18.x,此服务提供五个 SNOMED CT 工具(snomed_search、snomed_concept、snomed_hierarchy、snomed_descriptions、snomed_ecl)以及 map_snomed_to_icd10;这些工具默认关闭,由 ENABLE_SNOMED_TOOLS 控制;另有 map_loinc_to_snomed(仅供参考)。2.0.0 版本移除了全部七个工具、Snowstorm 客户端和该标志;find_equivalent、validate_codes、terminology_versions 或 terminology_diff 也不再接受 snomed 作为有效值(请求中指定该值时,会返回验证错误并列出可接受的值)。

原因:这些工具依赖的公共 IHTSDO Snowstorm 主机自 2026-05 起一直返回 HTTP 410;SNOMED CT 内容需要许可证,且许可条件取决于用户所在国家/地区;该功能无人使用;而不完整的术语支持误导了所有介绍此服务的第三方目录。

如需使用 SNOMED CT:pacharanero/sct 可基于你自己的授权版本在本地提供服务;FHIR 术语服务器(例如 tx.fhir.org 这一公共 HL7 测试服务器,以及 CSIRO Ontoserver)也支持 $lookup/$expand,但需遵守你自己的 SNOMED 许可证。

术语许可

MIT 许可证仅涵盖服务端代码和由服务端维护的元数据——不涵盖通过该服务提供的术语内容,也不涵盖随附的两个数据集(cid10.json、icd10-to-icd11.json);它们仍受各自条款约束。汇总声明随软件包一同发布,见 NOTICE.md;每条工具响应都包含按来源划分的来源信息块,其中注明适用的许可证。

ICD-11(WHO)

ICD-11 内容依据 《知识共享署名-禁止演绎 3.0 政府间组织版许可证》(CC BY-ND 3.0 IGO)提供,详见 《ICD-11 使用条款和许可协议》。

  • 必须注明的引用:"International Classification of Diseases, Eleventh Revision (ICD-11), World Health Organization (WHO) 2019 https://icd.who.int/browse11. Licensed under the Creative Commons Attribution-NoDerivatives 3.0 IGO licence (CC BY-ND 3.0 IGO)."
  • 本服务始终将 ICD-11 代码和标题与其 URI 一并原样提供;非英语标签均为 WHO 官方翻译(绝不使用机器翻译)
  • WHO 可随时通过通知终止许可证(§4.7)
  • 访问 API 需在 https://icd.who.int/icdapi 注册
WHO ICD-10 → ICD-11 转换表(随附)

对 WHO 在 ICD-11 发布版中提供的表格进行格式转换(TSV → JSON,内容未经更改)。© World Health Organization,受 ICD-11 使用条款约束——不受本项目的 MIT 许可证约束。WHO 的说明:这些表格展示不同修订版之间的对应关系,"并非旨在直接将数据从一个修订版转换为另一个修订版"。

CID-10 V2008(DataSUS / CBCD,随附)

© World Health Organization;巴西葡萄牙语翻译 © CBCD / Faculdade de Saúde Pública da USP;电子文件由 DataSUS(Ministério da Saúde do Brasil)发布。DataSUS/CBCD 许可:开发者可在注明来源的前提下免费使用这些文件——本服务免费提供这些文件,并在每条响应中注明来源。不受本项目的 MIT 许可证约束。

LOINC

本材料包含来自 LOINC(http://loinc.org)的内容。LOINC 版权归 © Regenstrief Institute, Inc. 和 Logical Observation Identifiers Names and Codes (LOINC) Committee 所有,可依据 http://loinc.org/license 中的许可证免费使用。LOINC® 是 Regenstrief Institute, Inc. 在美国注册的商标。

  • 通过免费的 NLM Clinical Tables API 提供;每个代码都附有其官方显示名称
  • 带有第三方版权声明的术语会原样附带其声明一并提供
RxNorm

RxNorm 由美国国家医学图书馆(U.S. National Library of Medicine)制作;RxNav API 免费提供非专有的公共领域 RxNorm 内容。

本产品使用来自美国国家医学图书馆(NLM)、美国国立卫生研究院、卫生与公众服务部的公开数据;NLM 对本产品不承担责任,也不认可或推荐本产品或任何其他产品。

ATC(通过 NLM RxClass)

ATC 分类 © WHO Collaborating Centre for Drug Statistics Methodology(https://atcddd.fhi.no/),通过 NLM RxClass 获取并原样提供。本服务绝不重新分发 WHOCC ATC/DDD 索引。

MeSH

MeSH 属于美国政府作品,依据 NLM 条款与条件免费提供。上文关于 NLM 的声明(RxNorm)同样适用于此数据渠道。

可从注册表核验的表面指纹

每个版本都会在其 MCP Registry 条目中发布此版本所提供表面的 sha256(initialize、工具、资源、提示词),以及哪些方法无需凭据即可响应。表面发生变化却未提升版本号时,构建会失败;注册表中的指纹可让客户端在自己的环境中核验同一信息。规范形式和流程: @sbissoli/mcp-surface 的 SPEC.md。 你可以自行核验(Node 18+,无依赖):

curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.SidneyBissoli/medical-terminologies-mcp

API 速率限制

此服务实施速率限制,以遵守 API 提供方的要求:

API速率限制
WHO ICD-115 个请求/秒
NLM(LOINC、MeSH)10 个请求/秒
RxNorm20 个请求/秒

开发

从源代码构建
git clone https://github.com/SidneyBissoli/medical-terminologies-mcp.git
cd medical-terminologies-mcp
npm install
npm run build
本地运行
npm start
使用 MCP Inspector 进行测试
npx @modelcontextprotocol/inspector node dist/index.js

贡献

欢迎贡献!欢迎提交 Pull Request。

  1. Fork 此仓库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add some AmazingFeature')
  4. 推送到分支(git push origin feature/AmazingFeature)
  5. 发起 Pull Request

作者

Sidney da Silva Pereira Bissoli

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

注意:尽管此软件采用 MIT 许可证授权,通过它访问的医学术语各自拥有自己的许可证(参见上文的术语许可证)。

致谢

支持

如果遇到问题或有疑问:

  • 在 GitHub 上提交 issue
  • 查看现有 issue,寻找解决方案

为医学信息学社区倾情打造

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。