使用说明

项目简介

BioMedMCP服务器是一个基于Model Context Protocol (MCP) 的后端实现,专为生物医学研究领域设计。它旨在为大型语言模型(LLM)驱动的研究Agent提供必要的上下文信息和工具能力,使其能够更有效地进行医学文献检索和网络信息挖掘。该服务器使用Python编写,无需大型框架,依赖少,方便研究人员在本地或服务器上部署,以低成本或零成本的方式增强本地LLM在生物医学领域的应用能力。

主要功能点

  • PubMed文献检索: 提供强大的PubMed数据库检索工具,支持关键词查询,并返回相关的医学文献信息,助力研究人员快速定位所需文献。
  • PubMed文章详情获取: 允许通过PubMed ID (PMID) 精确获取特定文章的详细信息,包括摘要、作者、期刊等,为LLM提供深入的文献上下文。
  • PubMed查询优化提示: 内置查询优化工具,可以根据用户提出的医学问题,生成用于指导LLM构建高效PubMed检索查询的提示,提升检索效率。
  • 网页搜索: 集成网页搜索工具,帮助LLM获取更广泛的互联网信息,作为PubMed文献信息的补充。
  • 网页内容获取: 能够根据URL地址抓取网页内容,并进行初步处理,提取关键信息,为LLM提供网页文本上下文。
  • 轻量级易部署: 采用Flask框架,代码简洁,依赖少,易于安装和配置,方便研究人员快速搭建和使用。
  • 支持JSON-RPC协议: 完全遵循MCP协议规范,通过JSON-RPC与客户端进行通信,保证了与各类MCP客户端的兼容性。
  • 支持本地和网络模式: 服务器可以以网络模式(HTTP)或本地模式(标准输入/输出)运行,适应不同的部署环境和应用场景。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/hherb/biomedmcp.git
    cd biomedmcp
  2. 安装Python依赖: 虽然项目声称依赖少,但为了确保运行,建议检查并安装可能需要的库,通常标准Python库已足够,如果缺少可以尝试安装 'flask', 'requests', 'beautifulsoup4', 'flask-jsonrpc' 等。可以使用pip命令安装:

    pip install flask requests beautifulsoup4 flask-jsonrpc

    如果需要使用NCBI API Key以提升PubMed API的请求速率限制,请设置环境变量 'NCBI_API_KEY'。

  3. 安装Ollama (如果需要运行配套Agent): 如果需要运行仓库中提供的agent('biomed_mcpagent.py'),则需要安装并运行 Ollama,并确保agent所使用的模型(默认为 'phi4:latest')已通过 Ollama 下载。

服务器配置

MCP客户端需要配置服务器的启动命令和参数才能连接到BioMedMCP服务器。以下是根据仓库信息生成的服务器配置信息(JSON格式),请复制到MCP客户端的服务器配置中。

{
  "serverName": "BioMedMCP Server",
  "command": "python",
  "args": [
    "biomed_mcpserver.py",
    "--mode", "network"  // 默认为网络模式,如果需要在本地模式下运行,可以修改为 "local"
    // "--port", "5152"   // 如果需要修改默认端口,可以添加此参数并指定端口号
    // "--debug"         // 如果需要启用debug模式,可以添加此参数
  ],
  "protocol": "json-rpc",
  "transport": "http"   // 网络模式下使用HTTP传输,本地模式下根据客户端实现可能为stdio或其他
}

参数注释:

  • 'serverName': 服务器名称,用于在MCP客户端中标识。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 传递给启动命令的参数列表:
    • '"biomed_mcpserver.py"': 服务器主程序文件名。
    • '"--mode", "network"': 指定服务器运行模式为网络模式,接受HTTP请求。可以替换为 '"local"' 以使用本地模式。
    • '"--port", "5152"' (可选): 指定服务器监听的端口号,默认为5152。可以根据需要修改。
    • '"--debug"' (可选): 启用debug模式,方便开发和调试。
  • 'protocol': 指定通信协议为 'json-rpc'。
  • 'transport': 指定网络模式下的传输协议为 'http'。 本地模式下根据客户端实现可能为 'stdio' 或其他。

注意: 请根据您的MCP客户端的具体配置要求进行调整。例如,某些客户端可能需要指定服务器的URL地址而不是启动命令。对于BioMedMCP服务器的网络模式,默认URL为 'http://服务器IP地址:5152/jsonrpc'。

基本使用方法

  1. 启动BioMedMCP服务器: 根据您选择的模式(网络或本地),运行相应的命令启动服务器。

    • 网络模式: 在仓库根目录下,执行命令 'python biomed_mcpserver.py --mode network' (或 'python biomed_mcpserver.py',因为网络模式是默认模式)。
    • 本地模式: 执行命令 'python biomed_mcpserver.py --mode local'。 本地模式下服务器将通过标准输入/输出与客户端通信。
  2. 配置MCP客户端: 在您的MCP客户端中,根据上述 服务器配置 部分提供的信息,配置连接到BioMedMCP服务器。 确保客户端能够正确识别服务器地址(网络模式)或启动命令(本地模式)。

  3. 使用Agent或客户端工具: 仓库中提供了 'biomed_mcpagent.py' 作为使用BioMedMCP服务器的示例Agent。您可以运行该Agent,或使用任何兼容MCP协议的客户端工具,通过服务器提供的工具进行生物医学文献检索和信息查询。

    例如,使用 'biomed_mcpagent.py' Agent,您可以直接在命令行中输入医学问题,Agent将自动判断是否需要使用PubMed或网页搜索工具,并调用BioMedMCP服务器提供的工具进行检索,最终给出基于检索结果的答案。

    运行 Agent 示例: 'python biomed_mcpagent.py' 然后根据提示输入医学问题。

提示: 为了获得更好的PubMed API 使用体验,建议配置 NCBI API Key。

信息

分类

网页与API