pickleton89
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)服务器,使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一起使用
- 安装Claude Desktop
- 打开Claude Desktop
- 点击工具栏中的MCP Servers图标
- 添加一个新的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 文件。
致谢
- cBioPortal 提供开放访问的癌症基因组数据平台
- Model Context Protocol 使 AI 工具交互成为可能
- FastMCP 提供高性能的 MCP 服务器框架