该项目是一个基于 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'。

  1. 安装 uvx: 如果您尚未安装 'uvx',请按照 'uvx' 的官方文档进行安装。

  2. 运行服务器: 克隆本仓库不是必需的。服务器可以直接使用 '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 服务器的配置通常由启动它的 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与计算