Skip to main content

MCP server for EdgescaleAI Cube operations

Project description

Cube MCP Server

MCP server for EdgescaleAI Cube operations via Teleport and Apollo Container Registry (ACR) deployments.

Prerequisites

  • Teleport client (tsh) installed
  • kubectl installed
  • helm installed
  • docker with buildx (for image builds)
  • aws CLI (for Apollo publishing)
  • Access to EdgescaleAI Teleport (edgescaleai.teleport.sh)

Apollo Container Registry (ACR) Setup

To use the deployment tools, add these to your ~/.bashrc or ~/.zshrc:

export APOLLO_CLIENT="<your-client-id>"
export APOLLO_SECRET="<your-client-secret>"

Then restart your terminal or run source ~/.bashrc.

Installation

cd cube-mcp
pip install -e .

Usage with Claude Code

Add to your Claude Code settings (.claude/settings.json or global settings):

{
  "mcpServers": {
    "cube": {
      "command": "cube-mcp"
    }
  }
}

Or run directly with uvx:

{
  "mcpServers": {
    "cube": {
      "command": "uvx",
      "args": ["--from", "/path/to/cube-mcp", "cube-mcp"]
    }
  }
}

Available Tools

cube_login

Login to a Cube cluster via Teleport. Opens browser for SSO authentication.

Parameters:

  • cluster (required): Cube cluster name (e.g., staging-int, staging-pre-prod)
  • proxy (optional): Teleport proxy URL (defaults to edgescaleai.teleport.sh)

Example:

"Connect me to the staging-int Cube"

cube_list

List all available Cube clusters accessible via Teleport.

Example:

"What Cubes are available?"

cube_status

Get the status of the connected Cube node using kubectl describe node.

Example:

"What's the status of the Cube?"

ACR / Apollo Deployment Tools

helm_deploy

The main deployment tool. Builds, packages, pushes, and publishes a Helm chart to Apollo.

Handles the full pipeline:

  1. Login to ACR (Docker + Helm)
  2. Build and push Docker image (if Dockerfile found)
  3. Bump Chart.yaml version
  4. Package Helm chart
  5. Push to ACR
  6. Publish to Apollo via Lambda

Parameters:

  • chart_path (optional): Path to chart directory. Auto-detected if not specified.
  • version (optional): Exact version to use (e.g., "1.0.0"). Auto-bumps if not specified.
  • bump (optional): "patch" (default), "minor", or "major"
  • app_version (optional): Docker image tag version
  • skip_docker (optional): Skip Docker build even if Dockerfile exists
  • dry_run (optional): Show what would happen without doing it

Examples:

"Deploy my chart"                    → auto-detect everything, bump patch
"Deploy my chart as version 1.0.0"   → use exact version
"Deploy my chart, bump minor"        → bump minor version
"Deploy the chart at ./charts/foo"   → specify path
"Deploy my chart, dry run"           → preview without changes

acr_login

Manually login to Apollo Container Registry (Docker + Helm).

Example:

"Login to ACR"

acr_get_token

Get an OAuth2 token from ACR (for debugging).

Example:

"Get ACR token"

Quick Start

Cube Operations

  1. Ask Claude to list available Cubes: "What Cubes can I connect to?"
  2. Connect to a Cube: "Connect me to staging-int"
  3. Check status: "Show me the Cube status"

Helm Deployments

  1. Navigate to your chart directory
  2. Ask Claude: "Deploy my chart"
  3. Or with options: "Deploy my chart, bump minor version"

Manual Setup (if needed)

# Login to Teleport
tsh login --proxy=edgescaleai.teleport.sh

# List available Cubes
tsh kube ls

# Connect to a Cube
tsh kube login staging-int

# Verify
kubectl get nodes

Development

# Install in development mode
pip install -e .

# Run directly
python -m cube_mcp.server

Releasing Updates to Developers

1. Bump the version

Edit pyproject.toml and update the version number:

[project]
version = "0.1.1"  # Bump this

Version format: MAJOR.MINOR.PATCH

  • PATCH (0.1.0 → 0.1.1): Bug fixes
  • MINOR (0.1.0 → 0.2.0): New features
  • MAJOR (0.1.0 → 1.0.0): Breaking changes

2. Build the wheel

pip3 install build  # Only needed once
python3 -m build

This creates dist/cube_mcp-X.X.X-py3-none-any.whl

3. Distribute to developers

Send them:

  • The new .whl file
  • DEVELOPER_SETUP.md (for new developers)

4. Developer installation

New version (recommended):

pip install cube_mcp-0.1.1-py3-none-any.whl

Same version (force reinstall):

pip install cube_mcp-0.1.0-py3-none-any.whl --force-reinstall

Note: If the version number doesn't change, pip will say "Requirement already satisfied" and won't update. Either bump the version or have developers use --force-reinstall.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cube_mcp-0.3.1.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cube_mcp-0.3.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file cube_mcp-0.3.1.tar.gz.

File metadata

  • Download URL: cube_mcp-0.3.1.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for cube_mcp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 95e5de36bedc76c7ed40e3415a41085eb68829d7447175ad1f4480839168a858
MD5 fb13f78ccc033eb063216043f595852a
BLAKE2b-256 c3c5490aee429b28c0ca561406bc712b3a9acd62ea7615706026b4a17c79ad90

See more details on using hashes here.

File details

Details for the file cube_mcp-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: cube_mcp-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for cube_mcp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 acaf7add94f364bbb561d88abf266317bfb041dfc912e4c9270d9e07d36e8dbc
MD5 a34109e2eced1abb40405a349fe4dee5
BLAKE2b-256 0f33e9d3f797f5c948664592ff61f74656caa0a84d0c618de80850ebe6e68f38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page