fhir-mcp-server-medagentbench

fhir-mcp-server-medagentbench

一个用于 MedAgentBench (FHIR 请求生成) 的模型上下文协议服务器的实现。

mike-holcomb

开发者工具
访问服务器

README

fhir-mcp-server-medagentbench

PyPI version License: MIT

一个基于 Python 的 MCP (MedAgentBench Communications Protocol) 服务器,专为 MedAgentBench 环境设计。该服务器模拟与 FHIR (Fast Healthcare Interoperability Resources) API 的交互。

它不会向 FHIR 服务器发出实际的 HTTP 请求,而是拦截针对 FHIR 操作的 MCP 请求,并返回将会发出的 HTTP 请求的文本表示形式(例如,GET https://fhir.example.com/Patient/123POST https://fhir.example.com/Observation\n{...})。这允许在不需要实时 FHIR 端点的情况下测试 MedAgentBench 代理。

特性

  • 实现 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 进行配置和打包。
  • 包含使用 pytestpytest-asyncio 的异步单元测试。

安装

确保您已安装 Python >= 3.10 和 Poetry。

poetry install

配置

在运行服务器之前,您必须设置 FHIR_BASE_URL 环境变量。此 URL 用于构造模拟的请求字符串。

export FHIR_BASE_URL="https://your-fhir-server-base.com/fhir"
# 或者用于本地测试:
# 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)。

# 对暂存文件运行所有检查(通常在提交时自动运行)
poetry run pre-commit run

# 对所有文件运行所有检查
poetry run pre-commit run --all-files

# 或者单独运行工具
poetry run black .
poetry run isort .
poetry run flake8 src tests
poetry run mypy src

测试

测试位于 tests/ 目录中,并使用 pytest

poetry run pytest

# 运行并生成覆盖率报告
poetry run pytest --cov=src

由于 MCP 处理程序的异步性质,测试需要 pytest-asyncio

许可证

本项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件(如果不存在 LICENSE 文件,则可能需要创建)。

贡献

欢迎贡献!请打开一个 issue 或提交一个 pull request。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript