CML MCP Server

Un servidor MCP para interactuar con Cloudera Machine Learning (CML).

Documentación

CML MCP Server

Un servidor MCP (Model Context Protocol) independiente para interactuar con Cloudera Machine Learning (CML).

Requisitos

  • Python 3.8+
  • Paquetes de Python requeridos:
    • mcp[cli]>=1.2.0
    • requests>=2.31.0

Instalación

  1. Instale los paquetes requeridos:
pip install mcp[cli] requests

O con uv:

uv pip install mcp[cli] requests
  1. Configure las variables de entorno (opcional):
# 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. Descargue el certificado SSL de su servidor CML (si utiliza un certificado autofirmado):
python download_certificate.py

Esto descargará el certificado del servidor CML especificado en la variable de entorno CLOUDERA_ML_HOST o CML_BASE_URL y lo guardará en cml_ca.pem.

Uso

Puede ejecutar el servidor usando cualquiera de estos comandos:

# Using standard Python
python3 cml_mcp_server.py

# Using uv
uv run cml_mcp_server.py

# Using uvx
uvx cml_mcp_server.py

Para obtener ayuda e información de configuración:

python3 cml_mcp_server.py --help

También puede especificar parámetros personalizados:

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

Uso Directo

También puede usar el script directo para listar proyectos sin usar el servidor MCP:

python direct_list_projects.py

Integración con Claude for Desktop

Para usar este servidor con Claude for Desktop:

  1. Cree un archivo claude_desktop_config.json en su directorio de configuración de Claude for Desktop
  2. Agregue la siguiente configuración (actualice la ruta para que coincida con la ubicación de su servidor):
{
  "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"
      }
    }
  }
}

Alternativamente, puede usar el administrador de paquetes de Python uv para ejecutar el servidor (recomendado):

{
  "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"
      }
    }
  }
}

El método uv proporciona un mejor aislamiento de dependencias y tiempos de inicio más rápidos en comparación con la ejecución estándar de Python.

Herramientas Disponibles

El servidor proporciona las siguientes herramientas MCP para interactuar con CML:

Gestión de Proyectos

  • list_projects: Listar todos los proyectos CML a los que el usuario tiene acceso
  • create_project: Crear un nuevo proyecto CML
  • get_project: Obtener detalles de un proyecto CML específico

Operaciones de Archivos

  • list_files: Listar archivos en un proyecto CML en la ruta especificada
  • read_file: Leer el contenido de un archivo de un proyecto CML
  • upload_file: Subir un archivo a un proyecto CML
  • rename_file: Renombrar un archivo en un proyecto CML
  • patch_file: Actualizar metadatos de archivo (renombrar, mover o cambiar atributos)

Gestión de Trabajos

  • list_jobs: Listar todos los trabajos en un proyecto CML
  • create_job: Crear un nuevo trabajo en un proyecto CML
  • create_job_from_file: Crear un trabajo a partir de un archivo existente en un proyecto CML
  • run_job: Ejecutar un trabajo en un proyecto CML
  • list_job_runs: Listar todas las ejecuciones de un trabajo en un proyecto CML
  • stop_job_run: Detener un trabajo en ejecución en un proyecto CML
  • schedule_job: Programar un trabajo para que se ejecute periódicamente usando una expresión cron

Gestión de Runtime

  • list_runtime_addons: Listar todos los complementos de runtime disponibles (p. ej., Spark3, GPU)
  • download_ssl_cert: Descargar el certificado SSL del servidor CML