项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 或其他AI客户端提供结构化的医疗健康信息访问能力。通过这个服务器,AI可以调用特定的工具来查询FDA药品数据、PubMed医学文献、Health.gov健康主题、ClinicalTrials.gov临床试验以及ICD-10医学编码等信息。

主要功能点

  • FDA药品信息查询: 根据药品名称和查询类型(如通用信息、说明书、不良事件)获取FDA数据库中的详细信息。
  • PubMed医学文献搜索: 根据关键词搜索PubMed数据库中的医学研究文章,可指定结果数量和发表日期范围。
  • Health.gov健康话题查询: 查询Health.gov提供的循证健康信息,可指定话题和语言(英语/西班牙语)。
  • ClinicalTrials.gov临床试验搜索: 搜索正在进行或已完成的临床试验,可根据疾病状况、状态等条件进行筛选。
  • ICD-10编码和术语查询: 根据编码或描述查询ICD-10医学编码及其定义和相关信息。
  • 数据缓存: 内置高效缓存系统,减少重复API调用,提高响应速度。
  • 使用统计: 记录匿名使用数据,可查询会话和总体使用情况。
  • 多种连接方式: 支持Stdio(命令行)和HTTP/SSE协议,便于与不同类型的客户端集成。

安装步骤

  1. 克隆仓库: 将项目代码从GitHub下载到本地。

  2. 创建并激活虚拟环境: 为了避免依赖冲突,推荐使用Python虚拟环境。 'python -m venv venv' 激活环境 (Windows): 'venv\Scripts\activate' 激活环境 (macOS/Linux): 'source venv/bin/activate'

  3. 安装依赖: 进入项目目录,安装所需的Python库。 'pip install -r requirements.txt'

  4. 配置环境变量 (可选): 如果需要使用某些外部API(如FDA、PubMed可能需要API Key以获得更高限额),请根据 '.env.example' 文件创建一个 '.env' 文件,并在其中填入相应的API密钥。

  5. 运行服务器: 使用Python解释器运行主程序文件。 'python run.py' (默认以Stdio模式运行) 'python run.py --http --port 8000' (以HTTP模式运行在8000端口)

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

MCP客户端需要了解如何启动此服务器以及与其通信。以下是客户端通常需要配置的信息:

  • 服务器名称: healthcare-mcp
  • 启动命令 (command): 'python' (调用Python解释器)
  • 启动参数 (args): 根据所需的运行模式配置
    • Stdio模式 (命令行): '["run.py"]'
    • HTTP模式 (例如在8000端口): '["run.py", "--http", "--port", "8000"]'
  • 传输协议: 根据启动参数配置
    • Stdio模式: 'stdio'
    • HTTP模式: 'http' (客户端可能还需要配置连接URL,例如 'http://localhost:8000')

客户端的配置通常是一个JSON对象,包含服务器名称、启动命令、参数列表以及传输协议设置等。

基本使用方法

服务器启动后,等待MCP客户端连接。客户端通过MCP协议(JSON-RPC over Stdio或HTTP)向服务器发送请求,调用已注册的工具。

例如,一个AI客户端可能会发送一个请求,要求调用名为 'fda_drug_lookup' 的工具,并提供参数 '{"drug_name": "aspirin", "search_type": "general"}'。服务器接收请求,执行相应的Python函数,调用FDA API获取数据,然后将结构化的结果通过MCP协议返回给客户端。

用户也可以通过测试脚本或HTTP API直接测试工具功能:

  • 运行所有测试: 'python -m tests.run_tests --pytest'
  • 运行HTTP服务器并访问 '/docs' 查看Swagger UI: 'python run.py --http --port 8000'

信息

分类

AI与计算