该项目是一个基于 Model Context Protocol (MCP) 实现的应用后端,专注于为大型语言模型 (LLM) 客户端提供与 Cloudera Machine Learning (CML) 平台交互的能力。它实现了丰富的 MCP 工具,允许 LLM 以标准化的方式调用 CML 的各项功能。
主要功能点
- 文件和文件夹上传: 允许 LLM 指令上传本地文件或整个文件夹到指定的 CML 项目中。
- 作业管理: 支持创建、列出、获取详情、更新和删除 CML 作业 (Jobs)。
- 作业运行管理: 支持创建、列出、获取详情和停止 CML 作业运行 (Job Runs)。
- 应用管理: 支持列出、获取详情、删除、重启和停止 CML 应用 (Applications),以及创建应用。
- 实验管理: 支持创建、列出、获取详情、更新和删除 CML 实验 (Experiments)。
- 实验运行管理: 支持创建、获取详情、删除 CML 实验运行 (Experiment Runs),支持批量删除和批量日志更新实验运行。
- 模型管理: 支持列出、获取详情和删除 CML 模型 (Models)。
- 模型构建管理: 支持创建、列出和获取详情 CML 模型构建 (Model Builds)。
- 模型部署管理: 支持创建、列出、获取详情和停止 CML 模型部署 (Model Deployments)。
- 项目文件管理: 支持列出和删除 CML 项目中的文件或目录,更新文件元数据。
- 项目信息查询: 支持通过名称获取项目 ID,列出所有可用项目。
- 运行时信息查询: 支持获取 CML 中可用的运行时环境列表。
- 基础工具: 包含简单的 Echo (回显) 和 Calculator (计算器) 工具作为示例。
安装步骤
该服务器设计为通过 'uvx' 工具直接从 Git 仓库运行。请确保您已安装 Python 和 'uvx'。
-
安装 uvx: 如果您尚未安装 'uvx',请按照 'uvx' 的官方文档进行安装。
-
运行服务器: 克隆本仓库不是必需的。服务器可以直接使用 'uvx' 从 GitHub 仓库启动。根据您的需求(运行示例 MCP 或 Cloudera ML MCP),使用以下命令:
- 运行示例 MCP (包含 Echo 和 Calculator 工具):
uvx --from git+https://github.com/ritzvik/samplemcp.git@main samplemcp - 运行 Cloudera ML MCP (需要配置 CML 凭据):
uvx --from git+https://github.com/ritzvik/samplemcp.git@main workbenchmcp
- 运行示例 MCP (包含 Echo 和 Calculator 工具):
服务器配置
MCP 服务器的配置通常由启动它的 MCP 客户端提供。对于 Cloudera ML MCP 功能,服务器需要访问您的 CML 环境。这些配置信息通过环境变量传递给服务器进程。主要的配置项包括:
- 'CLOUDERA_ML_HOST': 您的 Cloudera Machine Learning 环境的 URL(例如:'https://ml-xxxx.cloudera.site')
- 'CLOUDERA_ML_API_KEY': 用于访问 CML API 的 API Key。
一个 MCP 客户端 (例如 Clade Desktop) 配置该服务器的示例(JSON 格式,非服务器代码):
{ "mcpServers": { "cloudera-ml-mcp-server": { "command": "uvx", "args": [ "--from", "git+https://github.com/ritzvik/samplemcp.git@main", "workbenchmcp" ], "env": { "CLOUDERA_ML_HOST": "YOUR_CML_HOST_URL", "CLOUDERA_ML_API_KEY": "YOUR_CML_API_KEY", "CLOUDERA_ML_PROJECT_ID": "OPTIONAL_DEFAULT_PROJECT_ID" } } } }
请将 'YOUR_CML_HOST_URL' 和 'YOUR_CML_API_KEY' 替换为您实际的 Cloudera ML 环境 URL 和 API Key。'CLOUDERA_ML_PROJECT_ID' 是可选的默认项目 ID。
基本使用方法
该 MCP 服务器启动后,会监听标准输入/输出 (Stdio) 通道上的 JSON-RPC 请求。它不是一个独立的 Web 服务,需要兼容 MCP 的客户端 (如 Clade Desktop) 连接并与之通信。
用户通过 MCP 客户端与 LLM 交互,LLM 在需要执行 Cloudera ML 相关的操作时,会向客户端发送调用 MCP 工具的请求。客户端将这些请求转发给本 MCP 服务器,服务器执行对应的功能(如调用 CML API),并将结果通过 JSON-RPC 响应返回给客户端和 LLM。
例如,LLM 可能会通过客户端调用 'list_jobs_tool' 工具来获取项目中的作业列表,或者调用 'create_job_tool' 工具来创建一个新的作业。
信息
分类
AI与计算