Skip to main content
Glama
README.md
# arcium-mcp — MCP Server for Arcium Confidential Computing

Connects AI agents (Claude, GPT, any MCP client) to the Arcium encrypted computation network on Solana.

## Status

**Alpha.** Full MCP server with 19 tools across 4 categories. Network Explorer and Encryption Engine use the real Arcium SDK. App Templates implement the full encrypt → submit → await → decrypt pipeline (requires deployed MXE programs and wallet). Supports both stdio and HTTP/SSE transport.

## Architecture

```
AI Agent  <-->  MCP Protocol  <-->  arcium-mcp-server  <-->  Arcium Network (Solana)
                (stdio or HTTP)          |
                                @arcium-hq/client + reader
```

## Tools (19 across 4 categories)

### Network Explorer (7) — read-only, no wallet
| Tool | Description |
|------|-------------|
| `arcium_list_mxes` | List all MXE execution environments |
| `arcium_get_mxe_info` | Detailed MXE info |
| `arcium_list_clusters` | List computation clusters |
| `arcium_get_cluster_info` | Cluster details |
| `arcium_list_nodes` | List ARX nodes |
| `arcium_get_node_info` | Node details |
| `arcium_network_stats` | Aggregate stats |

### Encryption Engine (4) — client-side, no transactions
| Tool | Description |
|------|-------------|
| `arcium_generate_keypair` | x25519 keypair |
| `arcium_get_mxe_pubkey` | Fetch MXE public key for ECDH |
| `arcium_encrypt_values` | Encrypt with RescueCipher |
| `arcium_decrypt_result` | Decrypt computation output |

### Computation Manager (4) — inspect, track, and manage computations
| Tool | Description |
|------|-------------|
| `arcium_get_comp_definition` | Circuit details |
| `arcium_check_computation` | Check tx status |
| `arcium_await_finalization` | Wait for computation to finalize |
| `arcium_list_mempool` | List pending computations |

### App Templates (4) — full execution flow with deployed programs
| Tool | Description |
|------|-------------|
| `arcium_play_coinflip` | Encrypted coin flip |
| `arcium_play_rps` | Rock-paper-scissors |
| `arcium_sealed_bid` | Sealed auction bid |
| `arcium_private_vote` | Encrypted DAO vote |

## Quick Start

```bash
npm install
npm run build
npm start
```

### Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `SOLANA_RPC_URL` | Solana RPC endpoint | `https://api.mainnet-beta.solana.com` |
| `ARCIUM_CLUSTER_OFFSET` | Cluster offset | `0` |
| `ARCIUM_WALLET_PRIVATE_KEY` | Base58 or JSON array Solana keypair | (none — read-only mode) |
| `ARCIUM_MCP_TRANSPORT` | Transport mode: `stdio` or `http` | `stdio` |
| `ARCIUM_MCP_PORT` | HTTP port (when transport=http) | `3000` |
| `ARCIUM_COINFLIP_PROGRAM` | Coinflip MXE program ID | (disabled) |
| `ARCIUM_RPS_PROGRAM` | RPS MXE program ID | (disabled) |
| `ARCIUM_AUCTION_PROGRAM` | Auction MXE program ID | (disabled) |
| `ARCIUM_VOTING_PROGRAM` | Voting MXE program ID | (disabled) |

### Claude Desktop config (stdio)

```json
{
  "mcpServers": {
    "arcium": {
      "command": "node",
      "args": ["path/to/dist/index.js"],
      "env": {
        "SOLANA_RPC_URL": "https://api.devnet.solana.com"
      }
    }
  }
}
```

### HTTP/SSE mode (for hosted usage)

```bash
ARCIUM_MCP_TRANSPORT=http ARCIUM_MCP_PORT=3000 npm start
# MCP endpoint: http://localhost:3000/mcp
# Health check: http://localhost:3000/health
```

## Development (Ralph Wiggum Method)

This project uses the [Ralph Wiggum method](https://ghuntley.com/ralph/) for AI-driven iterative development.

```bash
# Planning mode — analyze specs vs code, generate task list
./loop.sh plan

# Build mode — implement one task per iteration, commit, repeat
./loop.sh 20
```

Key files:
- `specs/*` — Requirement specs per topic of concern
- `IMPLEMENTATION_PLAN.md` — Prioritized task list (generated/updated by Ralph)
- `AGENTS.md` — Operational guide for build/test commands
- `PROMPT_plan.md` / `PROMPT_build.md` — Loop instructions

## License

MIT

TDQS

A3.7/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a distinct resource or action: key generation, encryption/decryption, network info (clusters, nodes, MXEs), computation status, and specific applications (coinflip, RPS, vote, bid). No two tools have overlapping purposes; even similar-sounding tools like get vs list are clearly scoped to individual vs aggregate.

Naming Consistency5/5

All tool names follow a consistent `arcium_verb_noun` pattern using snake_case. Verbs are informative (encrypt, decrypt, generate, get, list, play, await, check) and nouns clearly indicate the target. No mixed conventions or vague names.

Tool Count5/5

19 tools is well-scoped for a platform offering key management, encryption/decryption, network queries, computation monitoring, and interactive MPC games. Each tool serves a clear purpose without redundancy, and the count feels complete for the advertised features.

Completeness3/5

The tool surface covers querying network state, encryption/decryption, and predefined games/voting, but lacks explicit tools to initiate custom computations or submit encrypted data for MPC processing. This gap means agents cannot perform the full lifecycle of a custom computation using the server alone.

Maintenance

ActivityInactive
ResponsivenessSyncing