cloudera-cml-mcp-server

yw449/cloudera-cml-mcp-server

3.3

If you are the rightful owner of cloudera-cml-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A standalone MCP server for interacting with Cloudera Machine Learning (CML).

Tools
  1. list_projects

    List all CML projects the user has access to

  2. create_project

    Create a new CML project

  3. get_project

    Get details of a specific CML project

  4. list_files

    List files in a CML project at the specified path

  5. read_file

    Read the contents of a file from a CML project

  6. upload_file

    Upload a file to a CML project

  7. rename_file

    Rename a file in a CML project

  8. patch_file

    Update file metadata (rename, move, or change attributes)

  9. list_jobs

    List all jobs in a CML project

  10. create_job

    Create a new job in a CML project

  11. create_job_from_file

    Create a job from an existing file in a CML project

  12. run_job

    Run a job in a CML project

  13. list_job_runs

    List all runs for a job in a CML project

  14. stop_job_run

    Stop a running job in a CML project

  15. schedule_job

    Schedule a job to run periodically using a cron expression

  16. list_runtime_addons

    List all available runtime addons (e.g., Spark3, GPU)

  17. download_ssl_cert

    Download the SSL certificate from the CML server

CML MCP Server

A standalone MCP (Model Context Protocol) server for interacting with Cloudera Machine Learning (CML).

Requirements

  • Python 3.8+
  • Required Python packages:
    • mcp[cli]>=1.2.0
    • requests>=2.31.0

Installation

  1. Install the required packages:
pip install mcp[cli] requests

Or with uv:

uv pip install mcp[cli] requests
  1. Set up environment variables (optional):
# Traditional environment variables
export CML_API_TOKEN="your_api_token_here"
export CML_BASE_URL="https://your-cml-instance.cloudera.com"

# MCP configuration environment variables (preferred)
export CLOUDERA_ML_API_KEY="your_api_token_here"
export CLOUDERA_ML_HOST="https://your-cml-instance.cloudera.com"

# Certificate path (optional)
export CML_CERT_FILE="/path/to/your/certificate.pem"
  1. Download the SSL certificate from your CML server (if using a self-signed certificate):
python download_certificate.py

This will download the certificate from the CML server specified in the CLOUDERA_ML_HOST or CML_BASE_URL environment variable and save it to cml_ca.pem.

Usage

You can run the server using any of these commands:

# Using standard Python
python3 cml_mcp_server.py

# Using uv
uv run cml_mcp_server.py

# Using uvx
uvx cml_mcp_server.py

For help and configuration information:

python3 cml_mcp_server.py --help

You can also specify custom parameters:

python3 cml_mcp_server.py --token "your_api_token" --url "https://your-cml-instance.cloudera.com" --cert "/path/to/your/certificate.pem"

Direct Usage

You can also use the direct script to list projects without using the MCP server:

python direct_list_projects.py

Integration with Claude for Desktop

To use this server with Claude for Desktop:

  1. Create a claude_desktop_config.json file in your Claude for Desktop configuration directory
  2. Add the following configuration (update the path to match your server location):
{
  "mcpServers": {
    "cml": {
      "command": "uv",
      "args": ["run", "/full/path/to/cml_mcp_server.py"],
      "env": {
        "CLOUDERA_ML_HOST": "https://your-cml-instance.cloudera.com",
        "CLOUDERA_ML_API_KEY": "your-api-key-here"
      }
    }
  }
}

Alternatively, you can use the uv Python package manager to run the server (recommended):

{
  "mcpServers": {
    "cml": {
      "command": "python3",
      "args": ["/full/path/to/cml_mcp_server.py"],
      "env": {
        "CLOUDERA_ML_HOST": "https://your-cml-instance.cloudera.com",
        "CLOUDERA_ML_API_KEY": "your-api-key-here"
      }
    }
  }
}

The uv method provides better dependency isolation and faster startup times compared to standard Python execution.

Available Tools

The server provides the following MCP tools for interacting with CML:

Project Management

  • list_projects: List all CML projects the user has access to
  • create_project: Create a new CML project
  • get_project: Get details of a specific CML project

File Operations

  • list_files: List files in a CML project at the specified path
  • read_file: Read the contents of a file from a CML project
  • upload_file: Upload a file to a CML project
  • rename_file: Rename a file in a CML project
  • patch_file: Update file metadata (rename, move, or change attributes)

Job Management

  • list_jobs: List all jobs in a CML project
  • create_job: Create a new job in a CML project
  • create_job_from_file: Create a job from an existing file in a CML project
  • run_job: Run a job in a CML project
  • list_job_runs: List all runs for a job in a CML project
  • stop_job_run: Stop a running job in a CML project
  • schedule_job: Schedule a job to run periodically using a cron expression

Runtime Management

  • list_runtime_addons: List all available runtime addons (e.g., Spark3, GPU)
  • download_ssl_cert: Download the SSL certificate from the CML server