ChatSpatial MCP 后端服务器
使用说明(Markdown 格式)
项目简介
ChatSpatial 作为一个 MCP 服务器端实现,承载并暴露一组面向空间转录组分析的资源、工具和提示模板。它通过 MCP 协议与 LLM 客户端通信,支持以标准化方式读取数据、执行分析工具、以及获取并渲染 Prompt 模板,方便在对话式分析场景中实现可扩展的上下文服务。
主要功能点
- MCP 服务器实现与暴露工具
- 使用 MCP 的工具注册机制 (@mcp.tool) 自动暴露各种分析与数据处理工具。
- 统一的数据管理与结果持久化,支持多数据集工作流。
- 资源与结果管理
- 在内存数据管理器中加载、查询、保存分析结果,以便 LLM 调用后续步骤。
- 提示模板与对话渲染
- 通过服务器端指令向 LLM 客户端提供统一的使用场景与工作流指引。
- 多传输协议支持
- 服务器可以通过标准输入输出(Stdin/Stdout) 或 SSE 等传输协议与客户端对接,满足不同部署场景。
- 运行与部署
- 提供命令行入口,支持通过 python -m chatspatial server 启动。
- 兼容 Python 3.11+,依赖 Scanpy、Anndata、Squidpy、以及一系列生物信息学工具链。
安装与运行步骤
- 环境要求
- Python 3.11 及以上
- 依赖库包含:scanpy、anndata、squidpy、以及与 MCP 框架相关的库
- 安装
- 使用官方发行包或源码安装 ChatSpatial(参考仓库提供的安装指南)。
- 启动服务
- 直接在仓库根目录执行命令:python -m chatspatial server
- 启动后,MCP 服务器将监听客户端请求,通过 JSON-RPC 进行通信
- 客户端连接准备
- MCP 客户端需要配置服务器名称、启动命令以及参数,以便通过指定的传输协议与服务器建立连接
- 服务器暴露的工具将可被 MCP 客户端调用,返回 JSON-RPC 响应
服务器配置(给 MCP 客户端的连接配置示例说明)
说明:以下为 JSON 配置要点,描述了服务器名称、启动命令与参数等信息,供 MCP 客户端在连接时读取。客户端本身不需要该信息,而是使用该信息建立连接并发送请求。
{ "server_name": "ChatSpatial", "command": "/path/to/venv/bin/python", "args": ["-m", "chatspatial", "server"], "transport": "stdio", // 可能可选值:stdio、sse、websocket 等,按客户端实现选择 "description": "ChatSpatial MCP 后端服务,提供空间转录组分析工具、资源与提示模板的 MCP 接口" }
注释说明:
- server_name:服务端名称,便于客户端在多服务器环境中辨识
- command:启动服务器的可执行程序路径(如虚拟环境中的 python)
- args:启动服务器需要的参数,通常包括模块名和命令,如 -m chatspatial server
- transport:客户端与服务器之间的传输协议,MCP 客户端需根据实际部署选择合适的传输通道(如 stdio、SSE 等)
- description/其他字段:用于客户端在建立连接前了解服务器用途和能力
基本使用方法(非代码操作,面向开发与集成)
-
注册与调用工具
- 客户端通过 MCP JSON-RPC 调用服务器暴露的工具,如数据加载、分析、可视化、导出等
- 服务器负责会话管理、能力声明、资源与结果的持久化、以及跨工具的协作
-
会话与能力声明
- 服务器在启动时会暴露一组能力信息,客户端可通过初步的 MCP 会话握手获取可用的 Resources、Tools 与 Prompts
- 客户端根据能力进行对话式工作流设计,例如先加载数据、再执行滤波、再进行空间分析等
-
安全性与扩展性
- 服务器端实现具备隔离与日志记录能力,便于审计与扩展
- 新工具、数据源或提示模板可以通过 MCP 规范继续向后兼容扩展
-
常见任务组合(示例性思路)
- 加载空间转录组数据 → 预处理 → 计算 embedding/分析 → 产出可视化结果或导出数据
- 通过工具链将分析结果汇总成可用于 LLM 的对话式摘要,驱动进一步推理步骤
需要了解的注意点
- MCP 客户端需要正确配置启动命令与参数以建立连接,服务器端实现已经包含了服务器初始化、工具注册与数据管理等核心能力。
- 本实现的核心代码清晰地将 MCP 的工具装载、数据管理、工具执行和结果导出串联起来,具备作为 MCP 服务器的完整性。
关键词
空间转录组, 生物信息学, 大语言模型, AnnData, 多数据集分析
分类ID
1