PubMed Search MCP服务器使用说明

项目简介

PubMed Search MCP服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在通过标准化的方式向支持 MCP 协议的 LLM 客户端(如 Claude)提供医学文献搜索功能。该服务器允许用户通过自然语言查询 PubMed 数据库,获取相关的医学文献信息,并支持简单的笔记存储和管理功能。

主要功能点

  • 医学文献搜索: 通过 'pubmed_search' 工具,用户可以使用自然语言查询 PubMed 数据库,获取医学文献的摘要和详细信息。
  • 笔记功能: 允许用户创建和存储笔记,方便记录和管理医学研究相关的想法和信息 (仓库描述中提及,但代码中未完全体现,可能为未来功能)。
  • Prompt模板: 提供 'summarize-notes' Prompt 模板,可以总结用户存储的笔记内容 (仓库描述中提及,但代码中未完全体现,可能为未来功能)。
  • MCP 协议支持: 完全兼容 MCP 协议,可以通过 Stdio 等传输协议与 MCP 客户端进行通信。

请注意,当前提供的代码主要实现了 'pubmed_search' 工具的核心功能,仓库描述中提及的笔记功能和 Prompt 模板可能需要进一步的代码实现或完善。

安装步骤

本仓库本身是 MCP 服务器的实现代码,无需单独安装。您需要将其部署到您的运行环境中,并配置支持 MCP 协议的 LLM 客户端(例如 Claude Desktop)来连接和使用该服务器。

前提条件:

  • Entrez API Key (可选): 为了更稳定地访问 PubMed API,建议配置 Entrez API Key。您需要在 NCBI 注册并获取 API Key,然后将其设置为环境变量 'ENTREZ_API_KEY'。如果未配置,则需要设置 'ENTREZ_EMAIL' 环境变量。
  • Python 环境: 确保您的运行环境已安装 Python 3.7 或更高版本。
  • uv 包管理器 (推荐): 推荐使用 'uv' 包管理器来安装和管理 Python 依赖,可以参考 uv installation guide

部署步骤:

  1. 下载代码: 将 GitHub 仓库 https://github.com/wavelovey/pubmed_search 的代码下载到您的本地计算机。
  2. 安装依赖: 在代码根目录下,使用 'uv' 安装项目依赖:
    uv sync
  3. 配置环境变量:
    • ENTREZ_EMAIL: 必须设置 'ENTREZ_EMAIL' 环境变量,用于配置 Entrez API 访问。如果您配置了 Entrez API Key,则可以不设置 'ENTREZ_EMAIL'。
    • ENTREZ_API_KEY (可选): 建议设置 'ENTREZ_API_KEY' 环境变量,提高 PubMed API 访问的稳定性和速率限制。

服务器配置

要将 PubMed Search MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要编辑客户端的配置文件 ('claude_desktop_config.json'),添加 MCP 服务器的配置信息。

配置文件路径:

  • MacOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

配置信息 (Development/Unpublished Servers):

如果您希望以开发模式运行服务器,可以使用以下配置。请注意修改 'command' 配置中的代码路径为您实际的代码仓库路径。

"mcpServers": {
  "pubmed_search": {
    "command": "uv",
    "args": [
      "--directory",
      "/Users/your_username/path/to/pubmed_search",  //  请替换为您的代码仓库路径
      "run",
      "pubmed_search"
    ]
  }
}

配置信息 (Published Servers):

如果您已经将服务器打包发布,可以使用以下配置。

"mcpServers": {
  "pubmed_search": {
    "command": "uvx",
    "args": [
      "pubmed_search"
    ]
  }
}

配置参数说明:

  • '"mcpServers"': 配置 MCP 服务器的顶级 JSON 对象。
  • '"pubmed_search"': 您为该 MCP 服务器指定的名称,可以自定义,在客户端中用于标识该服务器。
  • '"command"': 启动 MCP 服务器的命令。
    • '"uv"': 使用 'uv' 包管理器运行开发模式的服务器。
    • '"uvx"': 使用 'uvx' 运行已发布的服务器。
  • '"args"': 传递给 'command' 的参数列表。
    • '"--directory"': (仅开发模式) 指定代码仓库的根目录。 请务必替换为您的实际代码仓库路径。
    • '"run"': (仅开发模式) 使用 'uv run' 运行 Python 包。
    • '"pubmed_search"': 运行 'pubmed_search' Python 包,该包的 'init.py' 中定义了 'main' 入口函数。

请根据您的实际部署情况选择合适的配置信息,并将其添加到 'claude_desktop_config.json' 文件中。 添加配置后,重启 Claude Desktop 客户端即可加载新的 MCP 服务器配置。

基本使用方法

  1. 启动 MCP 服务器: 根据您选择的配置方式,启动 PubMed Search MCP 服务器。如果您使用开发模式配置,客户端启动时会自动启动服务器。

  2. 在 MCP 客户端中使用: 在支持 MCP 协议的 LLM 客户端(如 Claude Desktop)中,您应该能够看到名为 'pubmed_search' 的服务器已连接。

  3. 调用 'pubmed_search' 工具: 在 LLM 客户端的对话中,您可以使用自然语言指示 LLM 使用 'pubmed_search' 工具来搜索 PubMed 数据库。例如:

    请使用 pubmed_search 工具搜索关于 "COVID-19疫苗最新研究进展" 的文献。

    LLM 客户端会将您的指令转换为对 'pubmed_search' 工具的调用,并将搜索结果返回给您。

工具参数:

  • query (required): 医学/科学搜索查询关键词,字符串类型。
  • max_results (optional): 最大返回结果数量,数字类型,默认值为 15,最大值为 15。

例如,要搜索 "癌症免疫疗法" 并限制返回 10 条结果,可以在提示词中包含类似信息(具体取决于客户端的工具调用方式)。

请注意,由于代码仓库仅提供了 'pubmed_search' 工具的实现,笔记功能和 Prompt 模板的使用方法可能需要等待后续代码更新。

信息

分类

网页与API