关于 fhir-mcp-server-medagentbench
fhir-mcp-server-medagentbench 是用于测试 MedAgentBench Agent 的 Python MCP 服务,无需连接真实 FHIR 端点。它模拟 FHIR 操作,并以文本返回预期发送的 HTTP 请求内容。
主要功能
- 01模拟 FHIR 搜索和读取
- 02模拟创建 FHIR 资源
- 03返回 HTTP 请求文本表示
- 04提供模拟资源和工具
适用场景
- 01在没有真实 FHIR API 时测试 MedAgentBench Agent
- 02检查生成的 FHIR 请求表示
MCP 相关
该服务向 MCP 客户端提供模拟 FHIR 资源和工具,包括搜索、读取及创建资源操作。它返回 HTTP 请求的文本表示,而不会向 FHIR 服务发送请求。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
fhir-mcp-server-medagentbench
这是一个基于 Python 的 MCP(MedAgentBench Communications Protocol)服务,专为 MedAgentBench 环境设计。此服务模拟与 FHIR(Fast Healthcare Interoperability Resources)API 的交互。
它不会向 FHIR 服务发送实际的 HTTP 请求,而是拦截针对 FHIR 操作的 MCP 请求,并返回原本会发送的 HTTP 请求的文本表示(例如,GET https://fhir.example.com/Patient/123 或 POST https://fhir.example.com/Observation\n{...})。这样无需连接在线 FHIR 端点,即可测试 MedAgentBench Agent。
功能
- 实现 MCP 处理器:
list_resources:列出可用的模拟资源(目前为CapabilityStatement)。read_resource:模拟通过 URI 读取 FHIR 资源。list_tools:列出可用的 FHIR 模拟工具。call_tool:模拟执行 FHIR 操作:search_fhir:模拟搜索 FHIR 资源。read_fhir:模拟通过 URI 读取特定的 FHIR 资源。create_fhir_resource:模拟创建新的 FHIR 资源。
- 使用
mcp-server库进行 MCP 通信。 - 使用 Poetry 进行配置和打包。
- 使用
pytest和pytest-asyncio编写异步单元测试。
安装
确保已安装 Python >= 3.10 和 Poetry。
poetry install
配置
运行服务之前,必须设置 FHIR_BASE_URL 环境变量。此 URL 用于构造模拟请求字符串。
export FHIR_BASE_URL="https://your-fhir-server-base.com/fhir"
# Or for local testing:
# export FHIR_BASE_URL="http://localhost:8080/fhir"
使用方法
配置完成后,使用已安装的脚本运行服务:
fhir-mcp-server-medagentbench
服务将通过标准输入/输出开始监听 MCP 请求。
开发
设置
克隆仓库并安装依赖项,包括开发工具:
git clone https://github.com/MikeHolcomb/mcp-fhir-python-medagentbench.git
cd mcp-fhir-python-medagentbench
poetry install --with dev
代码检查与格式化
此项目使用 pre-commit 强制执行代码风格规范(black、isort),并检查问题(flake8、mypy)。
# Run all checks on staged files (usually run automatically on commit)
poetry run pre-commit run
# Run all checks on all files
poetry run pre-commit run --all-files
# Or run tools individually
poetry run black .
poetry run isort .
poetry run flake8 src tests
poetry run mypy src
测试
测试位于 tests/ 目录中,使用 pytest 运行。
poetry run pytest
# Run with coverage report
poetry run pytest --cov=src
由于 MCP 处理器具有异步特性,测试需要 pytest-asyncio。
许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件(如果尚未创建 LICENSE 文件,则可能需要创建)。
贡献
欢迎贡献!请提交 issue 或拉取请求。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。