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
kubectlinstalledhelminstalleddockerwith buildx (for image builds)awsCLI (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 toedgescaleai.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:
- Login to ACR (Docker + Helm)
- Build and push Docker image (if Dockerfile found)
- Bump Chart.yaml version
- Package Helm chart
- Push to ACR
- 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 versionskip_docker(optional): Skip Docker build even if Dockerfile existsdry_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
- Ask Claude to list available Cubes: "What Cubes can I connect to?"
- Connect to a Cube: "Connect me to staging-int"
- Check status: "Show me the Cube status"
Helm Deployments
- Navigate to your chart directory
- Ask Claude: "Deploy my chart"
- 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
.whlfile 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd4ec99d7663f6b510e3734c9a5a76e4a828d7e440ba103551e0c09a8b7a7ab0
|
|
| MD5 |
febba945b15359bfc1ffb75f66637b7f
|
|
| BLAKE2b-256 |
aa2049aef3ed067003272147539b192022281e509833126264e5f43b681875f1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3516ec0df8a2e33c41dfa93fa7ad5a63df15c32a8fc74d3c57fc4292d8757311
|
|
| MD5 |
ccd5ed7dcd3d40207aecf6ad21f0d0fd
|
|
| BLAKE2b-256 |
ceba4ac96ed3bc49f800fd9c75616b1968b1feb70d71f066ab80ff9fdfe72e18
|