使用说明
Cybershuttle MCP服务器
Apache Cybershuttle的模型上下文协议(MCP)服务器。该服务器使AI代理能够与Cybershuttle研究目录进行交互,允许对数据集、笔记本电脑、模型、存储库、项目和会话进行自然语言查询和操作。
特性
- 完成Cybershuttle API集成:涵盖所有主要的Cybershuttle研究服务端点
- MCP协议支持:与用于AI代理集成的模型上下文协议完全兼容
- 认证:带有令牌管理的OAuth2设备流身份验证
- 工具发现:全面
/tools代理能力发现端点 - OpenAI集成:准备好使用OpenAI函数调用的演示
- 资源管理:为所有资源类型创建、读取、更新和删除操作
- 会话管理:启动和管理互动研究会议
- 项目组织机构:利用多种资源创建和管理研究项目
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ AI Agent │ │ MCP Server │ │ Cybershuttle │
│ (OpenAI) │◄──►│ │◄──►│ API │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- AI 代理:具有函数调用功能的OpenAI GPT-4
- MCP服务器:基于FastAPI的服务器,封装Cybershuttle API
- 数码穿梭机API:Apache Airavata研究服务REST端点
先决条件
- Python 3.8+
- OpenAI API密钥(用于演示)
- 访问Cybershuttle平台(联系dev@airavata.apache.org访问)
安装
- 克隆存储库:
git clone https://github.com/cyber-shuttle/mcp-server.git
cd mcp-server
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 设置环境变量:
# Required for OpenAI demo
export OPENAI_API_KEY="your-openai-api-key"
# Cybershuttle access token (obtained via device flow)
export CS_ACCESS_TOKEN="your-cybershuttle-token"
认证
服务器使用真实Cybershuttle平台的OAuth2设备流身份验证:
获取身份验证令牌
- 运行身份验证脚本:
python cybershuttle_auth.py
-
按照提示操作:
- 访问提供的URL
- 输入设备代码
- 使用您的机构凭据登录
-
导出令牌:
export CS_ACCESS_TOKEN="your-token-from-script"
身份验证使用:
- 身份验证服务器:
https://auth.cybershuttle.org - API服务器:
https://api.dev.cybershuttle.org:18899 - 客户端ID:
cybershuttle-agent
用法
1.启动MCP服务器
python cybershuttle_mcp_server.py
服务器将于启动 http://localhost:8000。您可以访问API文档,网址为 http://localhost:8000/docs.
2.测试服务器
检查运行状况端点:
curl http://localhost:8000/health
列出可用工具:
curl http://localhost:8000/tools
3.运行OpenAI演示
python cybershuttle_openai_demo.py
这将启动一个交互式聊天会话,您可以在其中询问有关Cybershuttle目录的问题。
交互示例
以下是您可以尝试使用AI代理的一些示例提示:
资源发现
- “显示目录中的所有数据集”
- “查找与机器学习相关的笔记本”
- “搜索有关深度学习的存储库”
- “目录中有哪些标签?”
资源管理
- “为气候研究创建新的数据集”
- “添加关于数据可视化的笔记本”
- “从GitHub导入存储库”
项目管理
- “为我的研究创建一个新项目”
- “列出我的所有项目”
- “启动项目XYZ的会话”
会话管理
- “显示所有活动会话”
- “为我的机器学习项目启动一个新的会话”
API终点
MCP服务器提供以下主要端点:
资源管理
GET /resources-列出所有经过筛选的资源GET /resources/{id}-获取特定资源POST /resources/dataset-创建数据集POST /resources/notebook-创建笔记本POST /resources/repository-创建存储库POST /resources/model-创建模型GET /resources/search-搜索资源GET /resources/tags-获取所有标签
项目管理
GET /projects-列出项目POST /projects-创建项目GET /projects/{owner_id}-按所有者获取项目DELETE /projects/{id}-删除项目
会话管理
GET /sessions-列出会话GET /hub/start-session/{project_id}-开始会话GET /hub/resume-session/{session_id}-恢复会话PATCH /sessions/{id}-更新会话DELETE /sessions/{id}-删除会话
工具发现
GET /tools-列出代理的所有可用工具GET /health-健康检查
监控和日志记录
服务器包括全面的日志记录和监控:
# Check server health
curl http://localhost:8000/health
# Monitor logs
tail -f logs/cybershuttle_mcp.log
测试
运行测试套件:
# Quick test (MCP server only)
python test_cybershuttle_mcp.py --quick
# Full test suite
python test_cybershuttle_mcp.py
测试身份验证:
python cybershuttle_auth.py
故障排除
常见问题
-
身份验证错误:
- 确保
CS_ACCESS_TOKEN设置正确 - 检查令牌过期(令牌在约2小时后过期)
- 验证API端点的可访问性
- 确保
-
OpenAI集成问题:
- 确保
OPENAI_API_KEY已设置 - 检查OpenAI帐户积分
- 验证函数定义是否与服务器端点匹配
- 确保
-
连接问题:
- 检查Cybershuttle dev API是否可访问
- 验证网络连接
- 检查防火墙设置
调试模式
在调试模式下运行服务器:
python cybershuttle_mcp_server.py --debug
项目结构
mcp-server/
├── src/
│ ├── cybershuttle_mcp_server.py
│ ├── cybershuttle_auth.py
│ └── __init__.py
├── demos/
│ └── cybershuttle_openai_demo.py
├── tests/
│ └── test_cybershuttle_mcp.py
├── requirements.txt
├── cybershuttle.yml
└── README.md
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
许可证
此项目根据Apache 2.0许可证获得许可。
致谢
- Cybershuttle平台的Apache Airavata团队
- OpenAI用于函数调用功能
- 模型上下文协议社区
