p

pickleton89

@pickleton89/cbioportal-mcp
0 Stars 314 次浏览 pickleton89 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "cbioportal": {
      "args": [
        "/Users/jeffkiefer/Documents/projects/cbioportal_MCP/cbioportal_server.py"
      ],
      "command": "/Users/jeffkiefer/Documents/projects/cbioportal_MCP/.venv/bin/python3",
      "env": {}
    }
  }
}

服务介绍

cBioPortal MCP 服务器


MCP
FastMCP

这是一个高性能的异步模型上下文协议(MCP)服务器,使AI助手能够与cBioPortal中的癌症基因组数据进行交互。cBioPortal是一个探索多维癌症基因组数据集的平台。该服务器使用现代异步Python构建,以实现显著更快的数据检索速度。

功能

  • 🔍 癌症研究:浏览和搜索cBioPortal中可用的癌症研究
  • 🧬 基因组数据:访问基因突变、临床数据和分子谱型
  • 🔎 搜索功能:通过关键词搜索研究、基因和样本
  • 📊 多种数据类型:检索突变、临床数据和研究元数据
  • ⚡ 异步性能:完全异步实现,显著加快数据检索速度(最高可达4.5倍)
  • 📚 批量操作:并发获取多个研究和基因以提高性能
  • 🔄 FastMCP集成:基于高性能FastMCP框架构建

目录

安装

先决条件

  • Python 3.8或更高版本
  • pip(Python包管理器)
  • Git(可选,用于克隆仓库)

设置环境

选项1:使用venv和pip(标准方法)

bash

创建虚拟环境

python -m venv cbioportal-mcp-env

激活环境

在Windows上:

cbioportal-mcp-envScriptsactivate

在macOS/Linux上:

source cbioportal-mcp-env/bin/activate

使用pip安装依赖项

bash

安装MCP SDK和FastMCP框架

pip install mcp>=2.0.0

安装其他依赖项

pip install httpx asyncio

选项2:使用UV(更快的替代方案)

UV 是一个现代的高性能Python包管理和环境管理工具,比pip快得多。

bash

如果还没有安装UV,请先安装

pipx install uv

或者使用Homebrew

brew install uv

使用UV创建并激活虚拟环境

uv venv

激活环境

在Windows上:

.venvScriptsactivate

在macOS/Linux上:

source .venv/bin/activate

使用UV安装依赖项

bash

安装MCP SDK和FastMCP框架

uv pip install mcp>=2.0.0

安装其他依赖项

uv pip install httpx asyncio

下载服务器

cbioportal_server.py脚本下载到工作目录,或者克隆此仓库:

bash
git clone https://github.com/pickleton89/cbioportal-mcp.git
cd cbioportal-mcp

使脚本可执行(仅限Linux/macOS)

bash
chmod +x cbioportal_server.py

使用

启动服务器

使用默认设置启动服务器:

bash
python cbioportal_server.py

这将使用公共cBioPortal API https://www.cbioportal.org/api 启动服务器。

高级选项

使用命令行参数自定义服务器行为:

bash

使用不同的cBioPortal API实例

python cbioportal_server.py --base-url https://your-cbioportal-instance.org/api

指定不同的传输机制(目前仅支持stdio)

python cbioportal_server.py --transport stdio

配置

与Claude Desktop一起使用

  1. 安装Claude Desktop
  2. 打开Claude Desktop
  3. 点击工具栏中的MCP Servers图标
  4. 添加一个新的MCP服务器,并使用以下配置:

json
{
"mcpServers": {
"cbioportal": {
"command": "/Users/jeffkiefer/Documents/projects/cbioportal_MCP/.venv/bin/python3",
"args": ["/Users/jeffkiefer/Documents/projects/cbioportal_MCP/cbioportal_server.py"],
"env": {}
}
}
}注意: 请确保将路径替换为实际的Python可执行文件和服务器脚本路径。command字段应指向虚拟环境中的Python可执行文件(例如,.venv/bin/python3),而args数组的第一个元素应该是cbioportal_server.py脚本的路径。如果遇到ENOTDIR错误,请确保command字段正确设置为Python可执行文件而不是目录。

使用VS Code

在工作区设置中配置MCP服务器:

json
{
"mcp.servers": {
"cbioportal": {
"command": "python",
"args": ["/path/to/cbioportal_server.py"]
}
}
}

可用工具

cBioPortal MCP服务器提供了以下工具:

工具名称 描述
get_cancer_studies 列出cBioPortal中所有可用的癌症研究
get_cancer_types 获取所有癌症类型的列表
get_study_details 获取特定癌症研究的详细信息
get_samples_in_study 获取与某项研究相关的样本列表
get_genes 通过Hugo符号或Entrez ID获取特定基因的信息
search_genes 通过关键词搜索基因的符号或名称
get_mutations_in_gene 获取给定研究中特定基因的突变情况
get_clinical_data 获取研究中患者的临床数据
get_molecular_profiles 获取某项研究可用的分子谱型列表
search_studies 通过关键词搜索癌症研究
get_multiple_studies 并发获取多个研究以提高性能
get_multiple_genes 自动分批并发检索多个基因

示例

这里是一些你可以向连接到此服务器的人工智能助手提问的例子:

"cBioPortal中有哪些可用的癌症研究?"
"在cBioPortal中搜索黑色素瘤研究"
"获取BRCA1基因的信息"
"乳腺癌研究中TP53存在哪些突变?"
"查找与肺癌相关的研究"
"获取TCGA乳腺癌研究中患者的临床数据"

性能

该服务器实现了完全异步支持,显著提高了从cBioPortal API检索数据时的性能。

基准测试结果

我们的测试显示,使用异步实现后性能有显著提升:

  • 并发获取研究的速度比顺序操作快4.57倍
  • 高效批量处理多个基因的检索
  • 顺序操作与并发操作之间保持一致的数据质量

批量操作的优势

服务器提供专门用于利用并发性的批量操作工具:

  • get_multiple_studies: 使用asyncio.gather并行获取多个研究
  • get_multiple_genes: 实现智能分批以高效并发检索基因

这些方法包括详细的性能指标,如执行时间和批次计数,帮助您了解效率提升情况。

故障排除

服务器启动失败

  • 确保已安装Python 3.8+:python --version
  • 验证所有依赖项均已安装:pip list | grep mcp
  • 检查控制台中的错误消息

Claude桌面版连接问题

  • 确认配置中的脚本路径正确
  • 确保脚本具有执行权限
  • 查看Claude日志以获取详细的错误信息

API连接问题

  • 确保互联网连接正常
  • 验证cBioPortal API是否可访问:curl https://www.cbioportal.org/api/cancer-types
  • 如果可能,尝试使用不同的API端点

开发

扩展服务器功能

您可以通过向CBioPortalMCPServer类添加新方法并将它们注册为工具来扩展服务器的功能:

python

添加一个新方法

def my_new_tool(self, parameter1: str, parameter2: int) -> Dict:
# 实现
return {"result": "data"}

注册新工具

self.mcp.tool()(self.my_new_tool)### 未来改进

未来版本的潜在改进:

  • 对频繁访问的数据进行缓存
  • 支持私有 cBioPortal 实例的身份验证
  • 增加更多端点以提供更全面的数据访问
  • 根据服务器性能微调并发限制
  • 添加请求重试机制以实现更健壮的错误处理
  • 为其他端点实现更多的并发批量操作方法

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

致谢

相关 MCP 服务