关于 meddata
meddata 是将 MedData API 封装为工具的 MCP 服务,供 MCP 客户端查询药物与补充剂资料及相互作用。它区分来源未发现结果与未覆盖的组合,并提供评估依据。
主要功能
- 01按品牌名或通用名搜索药物
- 02按 RxCUI 或 NDC 查询药物资料
- 03查询补充剂及事实说明
- 04检查药物与补充剂相互作用
- 05评估日常方案并返回依据
- 06查看用量与方案限额
适用场景
- 01查询药物的完整资料
- 02核查药物与补充剂组合
- 03了解方案评估所用来源
- 04查看当前计费周期用量
MCP 相关
通过工具向 MCP 客户端提供 MedData API 的药物、补充剂和相互作用查询。支持 stdio 与 streamable-HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MedData MCP Server
mcp-name: io.github.anthesiallc/meddata
一个 Model Context Protocol 服务,可将 MedData API 作为工具提供,让任何 MCP 客户端(Claude Desktop、Cursor、ChatGPT 连接器或 Agent 框架)都能通过对话查询药物和 补充剂数据并检查相互作用。
这是一个轻量封装:每个工具都映射到一个 MedData REST 端点。所有数据 处理都由 API 完成。
工具
| 工具 | 功能 |
|---|---|
search_drugs | 按品牌名或通用名搜索药物;返回 RxCUI 和详细信息 |
get_drug | 按 RxCUI 获取完整药物档案 |
get_drug_by_ndc | 按 NDC 包装代码获取药物档案 |
search_supplements | 按名称搜索补充剂;返回补充剂 ID |
get_supplement | 按 ID 获取完整补充剂资料表 |
check_interactions | 检查 2 至 10 种药物/补充剂混合清单中的相互作用 |
assess_routine | 全面评估日常方案:逐对覆盖情况、来源、时间和食物条件 |
get_usage | 当前计费周期的用量和套餐限额 |
check_interactions 与 assess_routine 的区别
check_interactions 返回平面形式的相互作用列表。assess_routine
则会返回推理过程:每个提交的名称解析成了什么、每一对查阅了哪些内容,
以及每项发现所依据的文档。当答案需要解释或采取行动,而不只是展示时,请使用它。
最重要的区别体现在 pairs_checked[].status 中:
| 状态 | 含义 |
|---|---|
finding | 存在一项或多项有依据的发现,列于 findings[] 中 |
no_finding_in_sources | 已查阅涵盖此类配对的来源,但未发现内容。没有发现不代表安全 |
not_covered | 没有来源涵盖此类配对,因此未进行评估。大多数补充剂之间的配对都属于此类 |
unresolved | 某项未能解析,因此无法进行检查 |
not_covered 和 no_finding_in_sources 表示不同的结果,空的平面列表
无法区分二者。
assess_routine 还接受 class_matching(默认关闭)。启用后,药物
会与补充剂记录中列出的治疗类别匹配,而不仅仅是记录中列出的药物名称;此类发现会带有
basis.level: "class" 并注明类别,因此可以区分推断匹配与明确匹配。发现还会带有 basis.level
(formulation / ingredient / class),说明来源与提交内容的匹配程度;还会提供三态的
timing 和 food 条件,其中未提及表示 not_documented,而不是“没有影响”;以及包含文档
版本和原文段落的 references[]。
获取 API 密钥
免费套餐每月可调用 250 次,无需信用卡:
curl -X POST https://meddata.anthesia.io/api/v1/signup \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]"}'
密钥会在响应的 api_key 字段中返回。
安装和运行
最简单的方式是使用 uv(无需手动创建虚拟环境):
# stdio transport (default — for Claude Desktop, Cursor, most local clients)
MEDDATA_API_KEY=md_your_key uvx meddata-mcp
# streamable-HTTP transport (for remote / web clients)
MEDDATA_API_KEY=md_your_key uvx meddata-mcp --http
也可以使用 pip 将其安装到独立环境中:
pip install meddata-mcp
MEDDATA_API_KEY=md_your_key meddata-mcp
注意:请安装到专用环境中。
mcpSDK 要求的starlette版本比 MedData API 应用固定的版本更新,因此二者一起安装会发生冲突。
环境变量:
MEDDATA_API_KEY(必填)— 你的 MedData API 密钥。MEDDATA_BASE_URL(可选)— 默认为https://meddata.anthesia.io。MEDDATA_TIMEOUT(可选)— 请求超时时间(秒),默认为30。
客户端配置
Claude Desktop
在 claude_desktop_config.json 中添加(Settings → Developer → Edit Config):
{
"mcpServers": {
"meddata": {
"command": "uvx",
"args": ["meddata-mcp"],
"env": { "MEDDATA_API_KEY": "md_your_key" }
}
}
}
Cursor
在 ~/.cursor/mcp.json 中添加相同的代码块(或添加到项目的 .cursor/mcp.json 中)。
Smithery(托管,无需安装)
该服务托管在 Smithery 上, 因此支持 Smithery 的 MCP 客户端无需安装任何内容即可连接。你只需在 Smithery 配置中提供 MedData API 密钥,它便会将请求路由到该服务。
LangChain / LangGraph
任何 LangChain 或 LangGraph Agent 都可以通过
langchain-mcp-adapters 使用这些工具:
# pip install langchain-mcp-adapters langgraph "langchain[anthropic]"
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient(
{
"meddata": {
"transport": "stdio",
"command": "uvx",
"args": ["meddata-mcp"],
"env": {"MEDDATA_API_KEY": "md_your_key"},
}
}
)
tools = await client.get_tools()
# hand `tools` to a LangGraph/LangChain agent, e.g.
# from langgraph.prebuilt import create_react_agent
# agent = create_react_agent("anthropic:claude-opus-4-8", tools)
LlamaIndex 通过其 MCP 工具规范也可以采用相同的方式。
从源代码开发
git clone https://github.com/anthesiallc/meddata-mcp && cd meddata-mcp
python -m venv .venv
.venv/Scripts/python -m pip install -e ".[http]" # Windows; [http] adds uvicorn for --http
# .venv/bin/pip install -e ".[http]" # macOS/Linux
MEDDATA_API_KEY=md_your_key .venv/Scripts/python -m meddata_mcp.server
备注
- 数据仅供参考,不构成医疗建议。
- 交互数据来自成熟的医疗数据库;结果为空表示这些来源中未找到相关数据,并不代表已证明某种组合是安全的。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。