Medsci MCP 生物医学多域后端
使用说明(简要版本,适合快速上手阅读)
-
项目简介
- 该仓库实现了基于 MCP 的多域后端服务端(后端服务器),通过统一的 MCP 服务框架暴露域内的“资源/工具/提示”能力,供 LLM 客户端通过 JSON-RPC 式调用进行资源读取、工具执行和提示模板渲染等交互。核心组件使用 Bun + TypeScript,集成 Ollama 本地模型、Python 侧车以及 OpenCode 等本地化执行环境,确保数据在本地处理并提供可扩展的上下文服务。
-
主要功能点
- 多域 MCP 服务器集合:药物分析、蛋白分析、组学/单细胞分析、文献检索与分析、医学影像、沙盒执行、PaperQA 深度分析等子服务器。
- 资源和工具管理:通过统一的 MCP Server 注册工具,提供标准化的数据读取、计算分析与外部接口访问能力。
- 本地推理与侧车整合:使用 Ollama 进行本地推理、Python 侧车管理科学计算库,确保本地化、可控的数据处理流程。
- 安全与审计:OpenCode 策略、guardrails、白名单策略等,提供对工具调用的控制与日志记录。
- 可扩展性:新增域服务器仅需实现 Tool 定义并通过 createMcpServer 注册即可加入 MCP 网络。
-
安装步骤
- 安装运行环境与依赖
- Bun 18.x+(或合适的 Bun 版本)
- Ollama(本地大模型服务)
- OpenCode(用于 LLM 任务编排和 Slash Commands)
- Docker / 沙盒等组件(部分服务器依赖)
- 克隆并安装依赖
- 使用 bun 安装项目依赖,按各子模块需要的工具栈安装对应的 Python 环境与模型模组。
- 启动本地 MCP 服务器
- 每个子服务器在启动时通过核心的 createMcpServer 启动,默认走 stdio 传输。你只需在客户端配置中指明要连接的 MCP 服务器名称和启动命令即可。
- 验证与测试
- 运行仓库提供的测试用例,确保本地侧车、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 路径等)对齐。
-
-
基本使用方法
- 启动本地 MCP 服务端集合(每个子服务器独立启动)
- 配置你的 OpenCode/OpenAI 等 LLM 客户端,通过 MCP 客户端接口调用对应服务器中的工具和资源
- 通过 MCP 的标准 JSON-RPC 协议向服务器发送请求,服务器返回 JSON-RPC 响应,完成多领域的上下文服务
- 如遇异常,参考 guardrails 与错误映射,定位模型、侧车或网络层问题
-
运行与扩展性要点
- 已集成多域工具库,便于扩展新领域工具,遵循 defineTool 模板即可注册新的 MCP 工具
- 侧车与本地模型均在本地运行,确保数据不离开本地环境
- 安全策略、预检、速率限制等在 opencode.json、guardrails、policy 等处实现,帮助你在生产环境中保持稳健性