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.0.tar.gz (37.9 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.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cube_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 37.9 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.0.tar.gz
Algorithm Hash digest
SHA256 bd4ec99d7663f6b510e3734c9a5a76e4a828d7e440ba103551e0c09a8b7a7ab0
MD5 febba945b15359bfc1ffb75f66637b7f
BLAKE2b-256 aa2049aef3ed067003272147539b192022281e509833126264e5f43b681875f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cube_mcp-0.3.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3516ec0df8a2e33c41dfa93fa7ad5a63df15c32a8fc74d3c57fc4292d8757311
MD5 ccd5ed7dcd3d40207aecf6ad21f0d0fd
BLAKE2b-256 ceba4ac96ed3bc49f800fd9c75616b1968b1feb70d71f066ab80ff9fdfe72e18

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