项目简介
SCMCP 是一个基于 Model Context Protocol (MCP) 构建的应用后端服务器,专门为单细胞 RNA 测序 (scRNA-Seq) 数据分析领域设计。它将常用的生物信息学分析流程(如数据读取、预处理、分析、可视化等)封装成 MCP 工具,供兼容 MCP 的大型语言模型 (LLM) 客户端或智能体框架调用,使用户能够通过自然语言指令进行复杂的 scRNA-Seq 分析。
主要功能点
- 数据IO: 支持以标准格式读取和写入单细胞 RNA 测序数据(例如 AnnData 对象)。
- 数据预处理: 提供各种预处理功能,如细胞和基因过滤、质量控制、数据归一化、高变基因选择、主成分分析 (PCA) 和构建细胞邻居图等。
- 核心分析工具: 集成了聚类、差异表达分析、细胞-细胞通讯分析、拟时序分析和富集分析等关键生物信息学分析方法。
- 可视化: 支持生成多种图表,如小提琴图、热图、点图等,帮助理解分析结果。
- 能力聚合: 通过聚合其他特定功能的 MCP 服务器(如 Scanpy-MCP, Cellrank-MCP, Liana-MCP 等)来提供全面的分析能力。
安装步骤
SCMCP 可以通过 pip 包管理器轻松安装。
pip install scmcp
安装完成后,您可以测试服务器是否成功安装:
scmcp run
这将尝试启动服务器,如果未配置特定的传输协议,通常会使用标准IO (Stdio) 传输。
服务器配置
SCMCP 服务器需要被配置在 MCP 客户端中才能使用。根据您的使用场景(本地或远程),配置方式有所不同。配置信息通常以 JSON 格式提供给 MCP 客户端。
本地运行 (Stdio 传输)
如果您在客户端所在的同一台机器上运行 SCMCP 服务器,客户端需要知道服务器可执行文件的路径。
- 首先,找到 'scmcp' 命令的完整路径,例如在 Linux/macOS 上可以使用 'which scmcp' 命令。
- 在您的 MCP 客户端配置中,指定服务器的名称、可执行命令路径和启动参数。
例如,配置名称为 "scmcp" 的服务器:
{ "mcpServers": { "scmcp": { "command": "/path/to/your/scmcp_executable", // 将此路径替换为您实际找到的 scmcp 路径 "args": [ "run" // 启动参数,表示运行服务器 ] } } }
您也可以在启动参数中指定加载特定模块,例如 '["run", "-m", "sc", "li"]' 表示只加载 scanpy 和 liana 模块。
远程运行 (HTTP/SHTTP 传输)
如果您在另一台服务器上运行 SCMCP 服务器,客户端需要通过网络连接。
-
在服务器上启动 SCMCP,指定传输协议和端口:
scmcp run --transport shttp --port 8000这将启动一个基于 HTTP 协议(实际上是 SHTTP)的服务器,监听 8000 端口。
-
在您的 MCP 客户端配置中,指定服务器的名称和访问 URL。
例如,配置名称为 "scmcp" 的服务器:
{ "mcpServers": { "scmcp": { "url": "http://server-address:8000/mcp" // 将 server-address 替换为实际的服务器IP或域名 } } }
注意:具体的配置格式和位置取决于您使用的 MCP 客户端实现。请查阅您的客户端文档获取详细信息。
基本使用方法
一旦 SCMCP 服务器在 MCP 客户端中配置并连接成功,您就可以通过该客户端与服务器交互。通常,这涉及在客户端界面中使用自然语言向 LLM 发出指令,LLM 识别出需要调用 SCMCP 提供的特定分析功能时,会向服务器发送相应的 MCP 请求(例如 'call_tool' 请求),携带分析所需的参数。SCMCP 服务器接收请求,执行底层生物信息学库的代码进行分析,然后将结果通过 MCP 响应返回给客户端。客户端再将分析结果以易于理解的方式呈现给用户。
例如,您可以在客户端中说 "读取 hg19 目录下的单细胞数据",客户端可能会调用 SCMCP 的 'sc_io_read' 工具来执行此操作。
信息
分类
AI与计算