项目简介

该仓库是一个基于 Model Context Protocol (MCP) 实现的服务器,专门用于与 Azure Health Data Services FHIR (Fast Healthcare Interoperability Resources) 服务进行交互。它为大型语言模型(LLMs)提供了一个标准化的接口,以便通过 MCP 工具和资源访问和操作存储在 Azure FHIR 中的医疗健康数据。

主要功能点

  • 医疗数据访问: 允许 LLM 通过 MCP 标准访问和检索各种 FHIR 资源,如 Patient (患者), Observation (观察), Medication (药物) 等。
  • 数据搜索能力: 提供 'search_fhir' 工具,支持基于特定参数搜索 FHIR 资源,方便查找符合条件的医疗数据。
  • Azure FHIR 集成: 负责处理与 Azure FHIR 服务的连接、认证(OAuth2)以及数据交互的细节。
  • 标准化接口: 通过 MCP 协议(JSON-RPC)与 LLM 客户端通信,提供统一的数据和服务访问方式。

安装步骤

  1. 安装 Python 和 uv: 确保您的系统已安装 Python 3.13 或更高版本,并安装了 'uv' 包管理器(安装方法请参考其官方文档)。
  2. 克隆仓库: 使用 Git 命令将仓库克隆到本地。
    git clone https://github.com/erikhoward/azure-fhir-mcp-server.git
    cd azure-fhir-mcp-server
  3. 创建并激活虚拟环境:
    • Linux/macOS:
      python -m venv .venv
      source .venv/bin/activate
    • Windows:
      python -m venv .venv
      .venv\Scripts\activate
  4. 安装项目依赖:
    pip install -e ".[dev]"
  5. 配置环境: 复制 '.env.example' 文件为 '.env',并根据您的 Azure FHIR 服务信息编辑 '.env' 文件,填写 'fhirUrl', 'clientId', 'clientSecret', 'tenantId' 等必要的认证和连接信息。

服务器配置(供MCP客户端参考)

MCP客户端(如Claude Desktop)需要配置如何启动并连接到此MCP服务器。典型的配置会包含服务器名称、启动服务器的命令及其参数,以及连接 Azure FHIR 服务所需的认证信息(通常通过环境变量传递给服务器)。

例如,一个MCP客户端的配置片段可能如下所示(请根据您的客户端文档进行实际配置):

  • 服务器名称: 例如设置为 'fhir'。
  • 启动命令 (command): 指定用于启动服务器的可执行文件或脚本,例如 'uvx' 或 'uv'。
  • 启动参数 (args): 提供传递给启动命令的参数,例如 'azure-fhir-mcp-server' 或 '--directory /path/to/repo run azure_fhir_mcp_server'。
  • 环境变量 (env): 设置服务器运行时需要读取的环境变量,包括 Azure FHIR 的 URL ('fhirUrl')、客户端ID ('clientId')、客户端密钥 ('clientSecret') 和租户ID ('tenantId')。

客户端配置示例(请勿直接复制到此处,仅为结构说明):

{
    "mcpServers": {
        "fhir": {
            "command": "uvx", // 或 "uv"
            "args": [ "azure-fhir-mcp-server" ], // 或其他运行参数
            "env": {
                "LOG_LEVEL": "INFO",
                "fhirUrl": "https://your-fhir-server.azurehealthcareapis.com/fhir",
                "clientId": "your-client-id",
                "clientSecret": "your-client-secret",
                "tenantId": "your-tenant-id"
            }
        }
    }
}

配置完成后,请重启您的 MCP 客户端应用。

基本使用方法

配置并启动 MCP 服务器后,连接到该服务器的 LLM 客户端即可通过 MCP 协议与之交互:

  1. 访问资源: LLM 可以通过特定的 'fhir://' URI 来请求访问特定的 FHIR 资源。例如,请求 'fhir://Patient/123' 可以获取 ID 为 123 的患者信息,请求 'fhir://Observation/' 可以获取观察资源列表。
  2. 调用工具: LLM 可以调用 'search_fhir' 工具,并提供资源类型和搜索参数(如 '{ "name": "John", "birthdate": "1990-01-01" }')来执行更灵活的 FHIR 数据搜索。

MCP 服务器会处理这些请求,调用 Azure FHIR API 获取数据,并将结果通过 MCP 协议返回给 LLM 客户端。

信息

分类

AI与计算