项目简介

BADR (Bulk Academic Deep Research) 是一个基于 Model Context Protocol (MCP) 实现的后端服务,专门为生物/医学领域的学术综述撰写提供自动化支持。它通过与大型语言模型 (LLM) 客户端协作,实现了文献搜索、原文获取、内容处理与存储、以及基于 RAG (Retrieval Augmented Generation) 的综述框架填充等功能,旨在大幅提高研究人员撰写综述的效率和质量。

主要功能点

  • 文献搜索与获取: 支持通过 PubMed 搜索指定关键词的文献,并尝试从 Sci-Hub 或 PMC 获取文献全文。
  • 内容处理与存储: 将获取到的文献全文或摘要进行智能分块,利用嵌入模型(默认使用硅基流动的 bge-m3)生成向量嵌入,并将这些向量及其关联的元数据(如标题、DOI、来源)存储在本地的 ChromaDB 向量数据库中。
  • 摘要整合与检索: 可以从数据库中提取所有已处理文献的摘要,整合成一个文本供 LLM 参考生成综述框架。
  • RAG 文本检索: 根据 LLM 生成的综述框架(或其他参考文本),将其分割成多个查询片段,然后在 ChromaDB 中检索与每个片段最相关的文献内容块,并将检索结果提供给 LLM 用于填充和完善综述。
  • MCP 工具化: 所有核心功能都封装为标准的 MCP 工具,供支持 MCP 协议的 LLM 客户端调用。

安装步骤

  1. 克隆仓库: 打开终端,使用 git 命令克隆项目仓库到你的本地计算机:
    git clone https://github.com/XinYu-pumch/BADR.git
  2. 进入目录: 进入克隆下来的 BADR 项目文件夹:
    cd BADR
  3. 安装依赖: 安装项目运行所需的 Python 库。请确保你已经安装了 Python 和 pip:
    pip install -r requirements.txt
  4. 配置服务器文件: 使用文本编辑器打开 'literature_search_mcp_server_final_decsion.py' 文件,修改以下配置项:
    • 'CHROMA_DB_PATH': 设置 ChromaDB 数据库文件的存储路径。这是一个本地文件夹路径,例如 '/path/to/your/chromadb_storage'。
    • 'SILICONFLOW_API_KEY': 替换为你从硅基流动平台获取的 API Key。建议将其设置为环境变量 'SILICONFLOW_API_KEY',代码会优先读取环境变量,如果未设置环境变量,则直接替换代码中的 'xxxxxxxxxxxx'。
    • 'NCBI_EMAIL' 和 'NCBI_API_KEY' (可选): 填写你的 NCBI 邮箱和 API Key 可以减少访问 PubMed 时被限制的风险。

服务器配置(用于MCP客户端)

BADR MCP 服务器通过标准输入输出 (Stdio) 协议与 MCP 客户端通信。你需要在你的 MCP 客户端(如 chatmcp, langflow)中配置一个新的 MCP 服务器连接,提供启动 BADR 服务器脚本的命令和参数。

以下是配置时通常需要填写的信息及说明:

  • Server Name (服务器名称): 给你的 MCP 服务器起一个名字,例如 'LiteratureSearchTool' 或 'BADR_Literature_Server'。
  • Type (连接类型): 选择 'stdio',表示通过标准输入输出通信。
  • Description (描述): 简要描述此服务器的功能,例如 'Academic Literature Search and RAG'。
  • Is Active (是否启用): 勾选或设置为 'true' 以启用此连接。
  • Command (启动命令): 这里填写用于启动 Python 脚本的可执行文件路径。通常是你的 Python 解释器的绝对路径。在终端中运行 'which python' 或 'where python' (Windows) 可以找到。例如 '/usr/local/bin/python3'。
  • Args (命令参数): 这里填写传递给启动命令的参数,即 BADR 服务器主脚本的绝对路径。例如 '/path/to/your/BADR/literature_search_mcp_server_final_decsion.py'。

请根据你实际的项目安装路径替换上述 '/path/to/your/' 部分。

基本使用方法

  1. 确保你已完成安装和配置步骤。
  2. 在你的 MCP 客户端中,添加并启用 BADR MCP 服务器配置。
  3. 启动你的 MCP 客户端,客户端会自动尝试连接并启动配置好的 BADR 服务器。
  4. 使用支持 MCP 工具调用的 LLM(如 Gemini 2.5 Pro 等)。
  5. 通过 LLM 调用 BADR 服务器提供的 MCP 工具来执行文献研究和综述撰写流程:
    • 首先调用 'search_literature' 工具,提供关键词、数据库名称、期望结果数量等参数进行文献搜索和数据准备。
    • 然后调用 'get_combined_abstracts' 工具获取所有文献的摘要合集,将其提供给 LLM,让 LLM 基于摘要生成综述框架。
    • 最后调用 'search_text_from_chromadb' 工具,将 LLM 生成的综述框架作为参考文本,从数据库中检索相关的内容块,并将检索结果提供给 LLM,让 LLM 结合框架和检索到的内容完成最终的综述撰写。
  6. 根据你的 LLM 客户端和 LLM 的能力,可能需要编写合适的系统提示词或使用 Agent 工作流来编排上述工具的调用。

信息

分类

AI与计算