CML MCP Server

Um servidor MCP para interagir com o Cloudera Machine Learning (CML).

Documentação

Servidor MCP CML

Um servidor MCP (Model Context Protocol) autônomo para interagir com o Cloudera Machine Learning (CML).

Requisitos

  • Python 3.8+
  • Pacotes Python necessários:
    • mcp[cli]>=1.2.0
    • requests>=2.31.0

Instalação

  1. Instale os pacotes necessários:
pip install mcp[cli] requests

Ou com uv:

uv pip install mcp[cli] requests
  1. Configure as variáveis de ambiente (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. Baixe o certificado SSL do seu servidor CML (se estiver usando um certificado autoassinado):
python download_certificate.py

Isso baixará o certificado do servidor CML especificado na variável de ambiente CLOUDERA_ML_HOST ou CML_BASE_URL e o salvará em cml_ca.pem.

Uso

Você pode executar o servidor usando qualquer um destes 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 ajuda e informações de configuração:

python3 cml_mcp_server.py --help

Você também pode 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 Direto

Você também pode usar o script direto para listar projetos sem usar o servidor MCP:

python direct_list_projects.py

Integração com Claude for Desktop

Para usar este servidor com o Claude for Desktop:

  1. Crie um arquivo claude_desktop_config.json no diretório de configuração do Claude for Desktop
  2. Adicione a seguinte configuração (atualize o caminho para corresponder ao local do seu 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, você pode usar o gerenciador de pacotes Python uv para executar o 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"
      }
    }
  }
}

O método uv fornece melhor isolamento de dependências e tempos de inicialização mais rápidos em comparação com a execução padrão do Python.

Ferramentas Disponíveis

O servidor fornece as seguintes ferramentas MCP para interagir com o CML:

Gerenciamento de Projetos

  • list_projects: Listar todos os projetos CML aos quais o usuário tem acesso
  • create_project: Criar um novo projeto CML
  • get_project: Obter detalhes de um projeto CML específico

Operações de Arquivo

  • list_files: Listar arquivos em um projeto CML no caminho especificado
  • read_file: Ler o conteúdo de um arquivo de um projeto CML
  • upload_file: Enviar um arquivo para um projeto CML
  • rename_file: Renomear um arquivo em um projeto CML
  • patch_file: Atualizar metadados de arquivo (renomear, mover ou alterar atributos)

Gerenciamento de Jobs

  • list_jobs: Listar todos os jobs em um projeto CML
  • create_job: Criar um novo job em um projeto CML
  • create_job_from_file: Criar um job a partir de um arquivo existente em um projeto CML
  • run_job: Executar um job em um projeto CML
  • list_job_runs: Listar todas as execuções de um job em um projeto CML
  • stop_job_run: Parar um job em execução em um projeto CML
  • schedule_job: Agendar um job para execução periódica usando uma expressão cron

Gerenciamento de Runtime

  • list_runtime_addons: Listar todos os addons de runtime disponíveis (ex.: Spark3, GPU)
  • download_ssl_cert: Baixar o certificado SSL do servidor CML