Skip to main content
Glama
vingupta3

E2E Networks Cloud & TIR MCP Server

by vingupta3
README.md
# E2E Networks Cloud & TIR MCP Server

[![npm version](https://img.shields.io/npm/v/e2e-mcp.svg?color=cb3837)](https://www.npmjs.com/package/e2e-mcp)
[![npm downloads](https://img.shields.io/npm/dm/e2e-mcp.svg)](https://www.npmjs.com/package/e2e-mcp)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/vingupta3/e2e-mcp)](https://github.com/vingupta3/e2e-mcp/releases)

The official [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for **E2E Networks Cloud** and the **TIR AI/ML Platform**. 

Connect **Claude Desktop**, **Cursor**, **Google Antigravity**, and **Codex** directly to your E2E Cloud infrastructure to provision GPUs, manage nodes, control databases, orchestrate Kubernetes, and run AI workloads.

---

## ⚑ Quickstart (Zero Installation via `npx`)

You do **not** need to clone this repository or install anything globally. You can set it up in two simple commands using `npx`:

### Step 1: Configure your E2E credentials
Run the interactive configuration wizard (like `aws configure`):
```bash
npx -y e2e-mcp configure
```
This prompts for:
* **E2E API Key** (from [MyAccount β†’ Security / API Tokens](https://myaccount.e2enetworks.com))
* **E2E Auth Token** (Bearer token)
* **Default Location** (e.g. `DEL-1` or `NCR-1`)
* *Saved securely to `~/.e2e/credentials` (chmod 0600)*.

### Step 2: Auto-install into your AI Assistant
Automatically register the MCP server in Claude Desktop, Cursor, and Antigravity:
```bash
npx -y e2e-mcp install
```
Restart your AI assistant, and you're ready!

---

## πŸ’» Manual Setup in AI Assistants

If you prefer to configure your assistant's JSON file manually:

### 1. Claude Desktop
Add to your config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS or `%APPDATA%\Claude\claude_desktop_config.json` on Windows):

```json
{
  "mcpServers": {
    "e2e-cloud": {
      "command": "npx",
      "args": ["-y", "e2e-mcp"]
    }
  }
}
```

> [!TIP]
> If you didn't run `npx e2e-mcp configure`, you can pass credentials directly in the `env` block:
> ```json
> "env": {
>   "E2E_API_KEY": "YOUR_API_KEY",
>   "E2E_AUTH_TOKEN": "YOUR_AUTH_TOKEN",
>   "E2E_PROJECT_ID": "YOUR_PROJECT_ID",
>   "E2E_LOCATION": "DEL-1"
> }
> ```

### 2. Cursor
Add to `.cursor/mcp.json` or Cursor Settings β†’ MCP:
```json
{
  "mcpServers": {
    "e2e-cloud": {
      "command": "npx",
      "args": ["-y", "e2e-mcp"]
    }
  }
}
```

### 3. Google Antigravity
Add to `~/.gemini/config/mcp_config.json`:
```json
{
  "mcpServers": {
    "e2e-cloud": {
      "command": "npx",
      "args": ["-y", "e2e-mcp"]
    }
  }
}
```

---

## πŸ› οΈ Available MCP Tools

Once connected, your AI assistant gains access to **40+ specialized cloud tools**:

### πŸ–₯️ Compute & NVIDIA GPUs
* `e2e_list_nodes` β€” List all running VMs and GPU instances with IPs, plans, and regions.
* `e2e_get_node` β€” Get full technical specifications, network interfaces, and disk info for a node.
* `e2e_create_node` β€” Launch new compute or GPU instances on-demand.
* `e2e_node_action` β€” Control node lifecycle: `power_on`, `power_off`, `reboot`, `lock`, `unlock`.
* `e2e_delete_node` β€” Terminate and delete an instance.
* `e2e_list_plans` / `e2e_list_os_images` β€” Inspect hardware plans, pricing, and operating systems.
* `e2e_get_node_health` β€” Retrieve live CPU, memory, and disk health metrics.

### πŸ€– TIR AI/ML Cloud
* `e2e_tir_list_gpu_skus` β€” List available NVIDIA GPU hardware (H100 SXM5, A100, L40S, L4).
* `e2e_tir_list_notebooks` / `e2e_tir_create_notebook` β€” Launch and manage Jupyter AI Labs.
* `e2e_tir_notebook_action` β€” Start, stop, or reboot AI Lab notebooks.
* `e2e_tir_list_model_endpoints` β€” Monitor deployed LLM inference endpoints.
* `e2e_tir_list_datasets` β€” Manage training and fine-tuning datasets.
* `e2e_tir_list_training_clusters` β€” Manage Slurm & distributed training clusters.

### πŸ’Ύ Storage & Buckets
* `e2e_list_volumes` / `e2e_create_volume` β€” Manage block storage volumes (SSD/NVMe).
* `e2e_attach_volume` / `e2e_detach_volume` β€” Attach or detach block volumes to nodes.
* `e2e_list_buckets` / `e2e_create_bucket` β€” S3-compatible EOS Object Storage buckets.
* `e2e_list_sfs` β€” Shared File System (SFS/NFS) storage.

### 🌐 Networking & Security
* `e2e_list_vpcs` / `e2e_create_vpc` β€” Virtual Private Cloud networks and subnets.
* `e2e_list_reserved_ips` / `e2e_action_reserved_ip` β€” Manage static public IP addresses.
* `e2e_list_security_groups` β€” Inspect firewalls and security rules.
* `e2e_list_load_balancers` β€” Application and Network Load Balancers (ALB / NLB).

### πŸ—„οΈ Managed Databases (DBaaS)
* `e2e_list_databases` / `e2e_create_database` β€” Provision managed PostgreSQL, MySQL, MariaDB, Kafka.
* `e2e_get_database` / `e2e_database_action` β€” Cluster health, topologies, failover, start/stop.

### ☸️ Managed Kubernetes
* `e2e_list_k8s_clusters` / `e2e_get_k8s_cluster` β€” Inspect Kubernetes clusters and API endpoints.
* `e2e_list_k8s_node_pools` β€” Manage cluster worker node pools.

### 🌐 Universal REST Tool (`e2e_raw_request`)
* `e2e_raw_request` β€” Allows Claude to call **any** of E2E's 450+ REST endpoints with automatic authentication, region normalization, and error handling.

---

## βš™οΈ Optional & Advanced Setups

<details>
<summary><b>1. Multiple Credential Profiles (AWS-Style)</b></summary>

You can maintain separate profiles (e.g. `[default]`, `[production]`, `[staging]`):
```bash
npx -y e2e-mcp configure --profile staging
npx -y e2e-mcp install --profile staging
```
Stored in `~/.e2e/credentials` and `~/.e2e/config`.
</details>

<details>
<summary><b>2. Hosted HTTP / SSE Daemon Mode</b></summary>

Run as a shared HTTP service with SSE and a built-in Web Dashboard:
```bash
npx -y e2e-mcp --http --port 3000
```
* **Dashboard**: `http://localhost:3000/`
* **SSE Endpoint**: `http://localhost:3000/sse`
* **Health Check**: `http://localhost:3000/health`
</details>

<details>
<summary><b>3. Docker & Docker Compose</b></summary>

```bash
docker run -d -p 3000:3000 \
  -e E2E_API_KEY="your_key" \
  -e E2E_AUTH_TOKEN="your_token" \
  ghcr.io/vingupta3/e2e-mcp:latest
```
</details>

<details>
<summary><b>4. Running from Source (Contributors)</b></summary>

```bash
git clone https://github.com/vingupta3/e2e-mcp.git
cd e2e-mcp
npm install
npm test
npm run build
```
See [CONTRIBUTING.md](CONTRIBUTING.md) for pull request guidelines.
</details>

---

## πŸ“„ License
[Apache 2.0](LICENSE) Β© 2026 Vinay Gupta

TDQS

B3.1/5.0

Scored across 46 tools

Disambiguation4/5

Most tools target a distinct resource+action (nodes, databases, k8s, volumes, buckets, VPCs, reserved IPs, TIR notebooks), so selection is generally clear. Minor overlap exists between e2e_get_node and e2e_get_node_health, and the catch-all e2e_raw_request could in principle shadow every other tool, but the descriptions keep boundaries readable.

Naming Consistency4/5

Nearly all names follow an e2e_ prefix with a predictable verb_noun pattern (list_nodes, get_node, create_volume, delete_bucket), plus a consistent e2e_tir_ namespace for AI tools. A few names invert to noun_action (e2e_node_action, e2e_database_action, e2e_action_reserved_ip), a minor deviation but still predictable.

Tool Count3/5

46 tools is heavy by count (normally warranting a low score), but the server spans a genuinely large cloud domain (compute, networking, storage, DBaaS, k8s, billing, and a full AI/ML platform). Spread across these services it is roughly 4-5 tools each, so it is borderline rather than excessive.

Completeness3/5

Several domains are read-only with no lifecycle operations: load balancers, security groups, k8s clusters, and SFS offer only list/get with no create/delete. Compute and database flows are well covered, and the e2e_raw_request escape hatch plus credential/connection tools mitigate the gaps, but the surface is uneven.

Maintenance

ActivityMaintained
ResponsivenessNo issues