Kubeflow MCP服务器(第一阶段-培训客户端)
该项目实施 第一阶段 KEP-936:模型上下文协议(MCP)服务器 这包裹了 Kubeflow训练器SDK (kubeflow.trainer.TrainerClient)并暴露 通过工具对AI代理(Claude、Cursor等)进行训练操作。
MCP服务器:
- 不 重新实施训练逻辑
- 是否 导入和包装现有SDK类型:
TrainerClient, BuiltinTrainer, CustomTrainer, CustomTrainerContainer等等。
- 提供:
- 发现工具(集群+培训工作信息) - 培训工具(微调、定制培训、容器作业) - 监控工具(日志、状态、事件) - 生命周期工具(删除作业)
核心原则:MCP封装SDK并添加自然语言接口。
项目布局
kubeflow-mcp/
├── pyproject.toml # Package config + dependencies
├── README.md # This file
├── src/kubeflow_mcp/
│ ├── __init__.py
│ ├── server.py # FastMCP server entrypoint
│ └── tools/
│ ├── __init__.py
│ ├── discovery.py # 7 discovery tools
│ ├── training.py # 3 training tools
│ ├── monitoring.py # 3 monitoring tools
│ └── lifecycle.py # 1 lifecycle tool
└── tests/
├── conftest.py
├── test_discovery.py
├── test_training.py
├── test_monitoring.py
└── test_lifecycle.py依赖项
- Python 3.9+
kubeflow软件开发工具包>=0.3.0mcp>=1.0.0kubernetesPython客户端>=28.0.0
安装以进行开发:
cd kubeflow-mcp
pip install -e ".[dev]"MCP服务器
主MCP服务器在中定义 src/kubeflow_mcp/server.py 并使用 FastMCP 从 mcp 包裹。它注册了来自的所有工具 kubeflow_mcp.tools.
MCP客户端(Claude Desktop、Cursor等)可以加载此服务器并调用以下工具:
get_cluster_infoget_cluster_resourceslist_training_jobsfine_tunerun_custom_trainingrun_container_jobget_training_logsdelete_job
运行测试
从 kubeflow-mcp 目录:
pytest -q测试使用 pytest 和 unittest.mock 致:
- 模拟Kubeflow SDK(
TrainerClient培训师等) - 模拟Kubernetes Python客户端
- 验证每个工具:
- 调用正确的SDK或K8s API - 干净利落地处理成功和失败 - 返回简单的JSON可序列化字典
状态
第一阶段的重点是:
- ✅ 带发现工具的FastMCP服务器
- ✅
fine_tune包裹BuiltinTrainer(TorchTune) - ✅
run_custom_training包裹CustomTrainer - ✅
run_container_job包裹CustomTrainerContainer - ✅ 基本监控工具(日志、状态、事件)
- ✅ 生命周期工具(
delete_job)
未来阶段(尚未在此回购中)将包括:
- 飞行前验证(资源估算、先决条件)
- 基于策略的访问控制
- 使用指标跟踪进度
- OptimizerClient(Katib)集成
