MCP ExplorerExplorer

Mcp Cloudera

@adfron 10 months ago
2 MIT
FreeCommunity
AI Systems
MCP_cloudera integrates Python with Cloudera ML for job and model management.

Overview

What is Mcp Cloudera

MCP_cloudera is a Python-based integration protocol that allows users to programmatically interact with Cloudera Machine Learning (CML) services, enabling efficient management of machine learning models and projects.

Use cases

Use cases for MCP_cloudera include automating the management of ML jobs, tracking experiments in machine learning workflows, and facilitating the deployment of machine learning models in production environments.

How to use

To use MCP_cloudera, clone the repository, install the required dependencies using ‘pip install -r requirements.txt’, and configure your CML instance URL, API key, and optionally, your project ID. You can run the MCP server to facilitate interactions with CML.

Key features

Key features of MCP_cloudera include uploading folders while preserving directory structure, creating and managing CML jobs, listing project files, managing ML models, tracking experiments, and handling application management.

Where to use

MCP_cloudera is primarily used in data science and machine learning projects, particularly in environments that utilize Cloudera Machine Learning for model development and deployment.

Content

Cloudera ML Model Control Protocol (MCP)

This MCP implements a Python-based integration with Cloudera Machine Learning, allowing Claude to interact with CML services programmatically.

Features

  1. Upload Folders: Upload entire folders to your CML project while preserving directory structure
  2. Create Jobs: Create new CML jobs with customizable settings
  3. List Jobs: View all jobs in your project with their current status
  4. Delete Jobs: Remove individual jobs or all jobs in a project
  5. Get Project ID: Retrieve project ID from a project name
  6. List Project Files: View files and directories in your project
  7. Model Management: Create, list, and manage ML models and deployments
  8. Experiment Tracking: Log and manage ML experiments and runs
  9. Application Management: Create, update, and manage CML applications

Installation

  1. Clone this repository
  2. Install dependencies:
    pip install -r requirements.txt
    

Configuration

The MCP requires the following configuration:

  1. host: Your CML instance URL (e.g., “https://ml-xxxx.cloudera.site”)
  2. api_key: Your API key for authentication
  3. project_id: Your CML project ID (optional - you can now get it by project name)

You can provide this configuration in code when initializing the MCP, or use environment variables:

export CLOUDERA_ML_HOST="https://ml-xxxx.cloudera.site"
export CLOUDERA_ML_API_KEY="your-api-key"
# Optional: export CLOUDERA_ML_PROJECT_ID="your-project-id"

URL Configuration Notes

  • The host URL should not include duplicate “https://” prefixes
  • Trailing slashes are automatically handled
  • The MCP will automatically format URLs correctly

Running the MCP Server

This MCP can be run as a server that allows Claude to interact with Cloudera ML.

Set up the environment

Copy the example .env file and add your credentials:

cp .env.example .env
# Edit .env with your credentials

Start the server

./server.py

The server uses the stdio transport by default, which allows it to connect directly to Claude.

Usage with Claude Desktop

To use this server with the Claude Desktop app, add the following configuration to the “mcpServers” section of your claude_desktop_config.json:

{
  "mcpServers": {
    "cloudera-ml-mcp-server": {
      "command": "python",
      "args": [
        "/path/to/MCP_cloudera/server.py"
      ],
      "env": {
        "CLOUDERA_ML_HOST": "https://ml-xxxx.cloudera.site",
        "CLOUDERA_ML_API_KEY": "your-api-key"
      }
    }
  }
}

Replace /path/to with your path to this repository and set the environment variables.

Using in Your Own Python Code

You can also import and use the MCP in your own Python code:

from MCP_cloudera.src import ClouderaMCP

# Initialize the MCP
config = {
    "host": "https://ml-xxxx.cloudera.site",
    "api_key": "your-api-key"
}
cloudera = ClouderaMCP(config)

# Get project ID by name
project_info = cloudera.get_project_id(project_name="my-project-name")
project_id = project_info["project_id"]
print(f"Project ID: {project_id}")

# List project files
files = cloudera.list_project_files(project_id=project_id)
print(files)

# Upload a folder
result = cloudera.upload_folder(
    folder_path="/path/to/local/folder",
    ignore_folders=["node_modules", ".git"]
)

Command-line Testing

You can test the MCP functions from the command line using the provided script:

./run_mcp.py [--host HOST] [--api-key API_KEY] [--project-id PROJECT_ID] COMMAND [command options]

Where COMMAND is one of:

  • list_jobs - List all jobs in the project
  • upload_folder - Upload a folder to the project
  • create_job - Create a new job
  • delete_job - Delete a specific job
  • delete_all_jobs - Delete all jobs in the project
  • get_project_id - Get project ID from a project name (--project-name required)
  • list_project_files - List files in a project
  • list_models - List ML models in a project
  • list_model_deployments - List model deployments
  • list_experiments - List experiments in a project
  • list_job_runs - List job runs

Example: Listing Project Files

./run_mcp.py --host "https://ml-xxxx.cloudera.site" --api-key "your-api-key" list_project_files --project-id "your-project-id"

Requirements

  • Python 3.8+
  • requests
  • pathlib
  • python-dotenv
  • mcp[cli]

License

MIT

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers