Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

killerapp/ray-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ Ray MCP Server

πŸš€ Supercharge your AI workflows with distributed computing!

A powerful Model Context Protocol (MCP) server that brings Ray's distributed computing capabilities directly to Claude Desktop. Manage clusters, submit jobs, and orchestrate complex workflows through natural language commands! 🎯

✨ Features

  • πŸ—οΈ Multi-Node Cluster Management: Start and manage Ray clusters with head nodes and worker nodes
  • πŸš€ Job Management: Submit, monitor, and manage Ray jobs with ease
  • 🎭 Actor Management: Create and manage Ray actors for stateful computations
  • πŸ“Š Real-time Monitoring: Get cluster status, resource usage, and performance metrics
  • πŸ” Logging and Debugging: Access logs and debug job issues seamlessly
  • ⏰ Scheduling: Schedule jobs with cron-like syntax for automated workflows

πŸš€ Quick Start

πŸ“¦ Installation

πŸš€ Super Easy with uvx (Recommended):

# Install and run directly with uvx - no setup needed! ⚑
uvx ray-mcp-server

πŸ“₯ Or clone for development:

# Clone the repository
git clone <repository-url>
cd ray-mcp

# Install dependencies with UV (lightning fast! ⚑)
uv sync

# You're ready to go! πŸŽ‰

🎯 Starting Ray Clusters

The server supports both single-node and multi-node cluster configurations:

πŸ–₯️ Simple Single-Node Cluster

{
  "tool": "start_ray",
  "arguments": {
    "num_cpus": 4,
    "num_gpus": 1
  }
}

🌐 Multi-Node Cluster (Default)

The server now defaults to starting multi-node clusters with 2 worker nodes (perfect for scaling! πŸ“ˆ):

{
  "tool": "start_ray",
  "arguments": {
    "num_cpus": 1
  }
}

This creates:

  • 🧠 Head node: 1 CPU, 0 GPUs, 1GB object store memory
  • βš™οΈ Worker node 1: 2 CPUs, 0 GPUs, 500MB object store memory
  • βš™οΈ Worker node 2: 2 CPUs, 0 GPUs, 500MB object store memory

πŸ› οΈ Custom Multi-Node Setup

For advanced configurations, you can specify custom worker nodes:

{
  "tool": "start_ray",
  "arguments": {
    "num_cpus": 4,
    "num_gpus": 0,
    "object_store_memory": 1000000000,
    "worker_nodes": [
      {
        "num_cpus": 2,
        "num_gpus": 0,
        "object_store_memory": 500000000,
        "node_name": "cpu-worker-1"
      },
      {
        "num_cpus": 4,
        "num_gpus": 1,
        "object_store_memory": 1000000000,
        "node_name": "gpu-worker-1",
        "resources": {"custom_resource": 2}
      }
    ],
    "head_node_port": 10001,
    "dashboard_port": 8265,
    "head_node_host": "127.0.0.1"
  }
}

πŸ’« Basic Usage

Just ask Claude Desktop naturally! πŸ—£οΈ

  • "What's my Ray cluster status?"
  • "Submit a job to process my data"
  • "Show me cluster resources"
  • "List all running jobs"

Or use direct tool calls:

{
  "tool": "cluster_status"
}

πŸ› οΈ Available Tools

20+ powerful tools for comprehensive Ray management! πŸ’ͺ

πŸ—οΈ Cluster Operations

  • πŸš€ start_ray - Start a new Ray cluster with head node and optional worker nodes
  • πŸ”— connect_ray - Connect to an existing Ray cluster
  • πŸ›‘ stop_ray - Stop the current Ray cluster
  • πŸ“Š cluster_status - Get comprehensive cluster status
  • πŸ’Ύ cluster_resources - Get resource usage information
  • πŸ–₯️ cluster_nodes - List all cluster nodes
  • βš™οΈ worker_status - Get detailed status of worker nodes

πŸš€ Job Operations

  • πŸ“€ submit_job - Submit a new job to the cluster
  • πŸ“‹ list_jobs - List all jobs (running, completed, failed)
  • πŸ” job_status - Get detailed status of a specific job
  • ❌ cancel_job - Cancel a running or queued job
  • πŸ‘€ monitor_job - Monitor job progress in real-time
  • πŸ› debug_job - Debug a job with detailed information
  • πŸ“œ get_logs - Retrieve job logs and outputs

🎭 Actor Operations

  • πŸ‘₯ list_actors - List all actors in the cluster
  • πŸ’€ kill_actor - Terminate a specific actor

πŸ“ˆ Enhanced Monitoring

  • ⚑ performance_metrics - Get detailed cluster performance metrics
  • πŸ₯ health_check - Perform comprehensive cluster health check
  • 🎯 optimize_config - Get cluster optimization recommendations

⏰ Job Scheduling

  • πŸ“… schedule_job - Configure job scheduling parameters

πŸ“š Examples

Ready-to-run examples in the examples/ directory:

  • 🎯 simple_job.py - Basic Ray job example (start here!)
  • 🌐 multi_node_cluster.py - Multi-node cluster with worker management
  • 🎭 actor_example.py - Actor-based stateful computation
  • πŸ”„ data_pipeline.py - Scalable data processing pipeline
  • πŸ€– distributed_training.py - Distributed machine learning
  • 🎼 workflow_orchestration.py - Complex workflow orchestration

πŸ”Œ Claude Desktop Integration

⚑ Quick Setup

  1. 🎯 Choose your installation method:

    Option A: uvx (Easiest! πŸš€)

    # No installation needed! uvx handles everything

    Option B: Development setup

    git clone <repository-url>
    cd ray-mcp
    uv sync
  2. βš™οΈ Add to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

    For uvx installation:

    {
      "mcpServers": {
        "ray-mcp": {
          "command": "uvx",
          "args": ["ray-mcp-server"]
        }
      }
    }

    For development setup:

    {
      "mcpServers": {
        "ray-mcp": {
          "command": "/opt/homebrew/bin/uv",
          "args": ["run", "--directory", "/absolute/path/to/ray-mcp", "ray-mcp-server"]
        }
      }
    }
  3. 🌐 For remote Ray clusters (like Kubernetes), add port-forwarding and environment:

    kubectl port-forward -n ray-cluster ray-cluster-kuberay-head-<pod-id> 10001:10001

    For uvx:

    {
      "mcpServers": {
        "ray-mcp": {
          "command": "uvx",
          "args": ["ray-mcp-server"],
          "env": {
            "RAY_ADDRESS": "ray://127.0.0.1:10001"
          }
        }
      }
    }
  4. πŸ”„ Restart Claude Desktop and test with: "What Ray tools are available?" πŸŽ‰

πŸ“– Detailed Setup Guides

πŸ› οΈ Development

πŸ§ͺ Running Tests

# Run all tests
uv run pytest

# Run specific test categories
uv run pytest tests/test_mcp_tools.py
uv run pytest tests/test_multi_node_cluster.py
uv run pytest tests/test_e2e_integration.py

✨ Code Quality

# Run linting and formatting checks
make lint

# Format code automatically
make format

# Run type checking
uv run pyright ray_mcp/

# Run code formatting
uv run black ray_mcp/
uv run isort ray_mcp/

πŸ“„ License

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

This software includes code originally from ray-mcp licensed under the MIT License. See NOTICE file for full attribution details.


Ready to supercharge your Ray workflows? Get started now! πŸš€βœ¨

About

Ray MCP Server to bridge AI assistants to Ray distributed computing clusters. Manage Ray clusters, submit jobs and monitor resources through a standardized MCP interface with comprehensive tools.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors