Medsci MCP 生物医学多域后端

使用说明(简要版本,适合快速上手阅读)

  • 项目简介

    • 该仓库实现了基于 MCP 的多域后端服务端(后端服务器),通过统一的 MCP 服务框架暴露域内的“资源/工具/提示”能力,供 LLM 客户端通过 JSON-RPC 式调用进行资源读取、工具执行和提示模板渲染等交互。核心组件使用 Bun + TypeScript,集成 Ollama 本地模型、Python 侧车以及 OpenCode 等本地化执行环境,确保数据在本地处理并提供可扩展的上下文服务。
  • 主要功能点

    • 多域 MCP 服务器集合:药物分析、蛋白分析、组学/单细胞分析、文献检索与分析、医学影像、沙盒执行、PaperQA 深度分析等子服务器。
    • 资源和工具管理:通过统一的 MCP Server 注册工具,提供标准化的数据读取、计算分析与外部接口访问能力。
    • 本地推理与侧车整合:使用 Ollama 进行本地推理、Python 侧车管理科学计算库,确保本地化、可控的数据处理流程。
    • 安全与审计:OpenCode 策略、guardrails、白名单策略等,提供对工具调用的控制与日志记录。
    • 可扩展性:新增域服务器仅需实现 Tool 定义并通过 createMcpServer 注册即可加入 MCP 网络。
  • 安装步骤

    1. 安装运行环境与依赖
      • Bun 18.x+(或合适的 Bun 版本)
      • Ollama(本地大模型服务)
      • OpenCode(用于 LLM 任务编排和 Slash Commands)
      • Docker / 沙盒等组件(部分服务器依赖)
    2. 克隆并安装依赖
      • 使用 bun 安装项目依赖,按各子模块需要的工具栈安装对应的 Python 环境与模型模组。
    3. 启动本地 MCP 服务器
      • 每个子服务器在启动时通过核心的 createMcpServer 启动,默认走 stdio 传输。你只需在客户端配置中指明要连接的 MCP 服务器名称和启动命令即可。
    4. 验证与测试
      • 运行仓库提供的测试用例,确保本地侧车、Ollama、以及各工具的集成工作正常。
  • 服务器配置(给 MCP 客户端的连接信息示例) 说明:MCP 客户端需要的配置信息通常包括服务器名称、启动命令与参数等。以下示例仅用于理解如何在客户端侧配置对应的服务器启动信息;实际使用请结合你本地的运行环境与 OpenCode 配置进行填充。

    • 服务器药物分析(medsci-drug)

      • server_name: medsci-drug
      • command: bun
      • args: ["run", "packages/server-drug/src/index.ts"] 注释:启动后该服务器将注册工具集(如 analyze_molecule、lipinski_filter、similarity_search、predict_admet、search_chembl 等),并通过 MCP 的 stdio 传输对外提供 JSON-RPC 请求。
    • 服务器蛋白分析(medsci-protein)

      • server_name: medsci-protein
      • command: bun
      • args: ["run", "packages/server-protein/src/index.ts"]
    • 服务器组学/Omics(medsci-omics)

      • server_name: medsci-omics
      • command: bun
      • args: ["run", "packages/server-omics/src/index.ts"]
    • 服务器文献/获取与综合(medsci-literature)

      • server_name: medsci-literature
      • command: bun
      • args: ["run", "packages/server-literature/src/index.ts"]
    • 服务器 PaperQA 深度分析(server-paperqa)

      • server_name: server-paperqa
      • command: bun
      • args: ["run", "packages/server-paperqa/src/index.ts"]
    • 服务器沙盒执行(medsci-sandbox)

      • server_name: medsci-sandbox
      • command: bun
      • args: ["run", "packages/server-sandbox/src/index.ts"]
    • 服务器医学成像分析(medsci-imaging)

      • server_name: medsci-imaging
      • command: bun
      • args: ["run", "packages/server-imaging/src/index.ts"]
    • 服务器 acquisition(medsci-acquisition)

      • server_name: medsci-acquisition
      • command: bun
      • args: ["run", "packages/server-acquisition/src/index.ts"]

    说明:

    • 以上是基于仓库现有的各子服务器入口的启动信息示例。实际部署中请结合你的工作流,将 server_name、command、args 与本地环境变量(如 Ollama URL、模型、Python 路径等)对齐。
  • 基本使用方法

    1. 启动本地 MCP 服务端集合(每个子服务器独立启动)
    2. 配置你的 OpenCode/OpenAI 等 LLM 客户端,通过 MCP 客户端接口调用对应服务器中的工具和资源
    3. 通过 MCP 的标准 JSON-RPC 协议向服务器发送请求,服务器返回 JSON-RPC 响应,完成多领域的上下文服务
    4. 如遇异常,参考 guardrails 与错误映射,定位模型、侧车或网络层问题
  • 运行与扩展性要点

    • 已集成多域工具库,便于扩展新领域工具,遵循 defineTool 模板即可注册新的 MCP 工具
    • 侧车与本地模型均在本地运行,确保数据不离开本地环境
    • 安全策略、预检、速率限制等在 opencode.json、guardrails、policy 等处实现,帮助你在生产环境中保持稳健性

服务器信息