@dhedge/chamber-mcp
v0.1.1
Published
Chamber MCP — link vaults locally and expose them to AI agents via MCP
Downloads
350
Keywords
Readme
Chamber MCP
Local-first MCP server for managing Chamber investment vaults. Trade, lend, add liquidity, and manage Toros leveraged token positions — from any AI agent that supports MCP.
Works with Claude Desktop, Cursor, Windsurf, Cline, VS Code, Gemini CLI, ChatGPT Desktop — anything that supports the Model Context Protocol.
How it works
AI agent (Claude, Cursor, etc.)
│ MCP over stdio
▼
chamber mcp -s all
│
▼
~/.chamber/vaults.json ← encrypted private keys (AES-256, never leave your machine)
~/.chamber/.env ← RPC URLs, API keys
│
▼
dHEDGE v2 SDK → blockchain RPCsPrivate keys are stored locally, encrypted with a machine-local key at ~/.chamber/.key. No cloud. No accounts.
Quick start
1. Set your API keys and RPC URLs
Create ~/.chamber/.env:
# Optional: required only if you want to route trades via Odos
ODOS_API_KEY=your-odos-api-key
# Optional: required only if you want to route trades via 1inch
ONEINCH_API_KEY=your-oneinch-api-key
# Recommended: use a private RPC for reliability (Alchemy, Infura, etc.)
ARBITRUM_RPC_URL=https://arb-mainnet.g.alchemy.com/v2/your-key
BASE_RPC_URL=https://base-mainnet.g.alchemy.com/v2/your-key
POLYGON_RPC_URL=https://polygon-mainnet.g.alchemy.com/v2/your-key
OPTIMISM_RPC_URL=https://opt-mainnet.g.alchemy.com/v2/your-key
ETHEREUM_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/your-keyGet an Odos API key at odos.xyz (free tier available).
2. Link your vault (private key never touches Claude)
npx @dhedge/chamber-mcp vault link --address 0xYourVaultAddress --network arbitrum
# prompts for your trader wallet private key
# The trader wallet is the EOA authorised by the vault manager to execute trades — set in the dHEDGE manager interface. Not the manager wallet, not a fresh wallet.3. Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"chamber": {
"command": "npx",
"args": ["-y", "@dhedge/chamber-mcp", "mcp", "-s", "all"]
}
}
}For Cursor, Windsurf, Cline — add the same command in your MCP settings.
4. Restart Claude Desktop and start trading
"Show me what's in my vault 0x... on Arbitrum" "Buy ETHBULL3X with 1000 USDC on Arbitrum" "Lend 500 USDC to Aave on Arbitrum"
Commands
chamber vault link --address <0x...> --network <network> # link a vault
chamber vault list # show linked vaults
chamber vault unlink --address <0x...> --network <network> # remove a vault
chamber mcp -s all # started automatically by your MCP clientSupported networks: polygon optimism arbitrum base ethereum hyperliquid
Configuration
All configuration lives in ~/.chamber/:
| File | Purpose |
|------|---------|
| .env | RPC URLs and API keys (loaded automatically on startup) |
| .key | Machine-local AES-256 encryption key (auto-generated) |
| vaults.json | Encrypted vault private keys |
Supported environment variables:
| Variable | Description |
|----------|-------------|
| ODOS_API_KEY | Required for Toros trades. Get one at odos.xyz. |
| ARBITRUM_RPC_URL | Arbitrum RPC endpoint |
| BASE_RPC_URL | Base RPC endpoint |
| POLYGON_RPC_URL | Polygon RPC endpoint |
| OPTIMISM_RPC_URL | Optimism RPC endpoint |
| ETHEREUM_RPC_URL | Ethereum RPC endpoint |
| HYPERLIQUID_RPC_URL | Hyperliquid RPC endpoint |
Public RPCs are used as fallback for any variable not set.
MCP server modes — set via the -s flag in your MCP client config:
| Args | Mode | What's enabled |
|------|------|----------------|
| mcp (no flag) | Read-only | Vault info, composition, Toros products, Hyperliquid positions |
| mcp -s trade | + Trading | Approve tokens, execute swaps, change assets |
| mcp -s trade,toros | + Toros | Toros withdrawals and limit orders |
| mcp -s trade,toros,lending | + Lending | Aave V3, Compound V3, Fluid |
| mcp -s trade,toros,lending,lp | + Liquidity | Uniswap V3, Velodrome, Aerodrome, Pancake CL |
| mcp -s all | Everything | All tools enabled |
Read-only mode is safe to grant to any AI client. Use -s all only with trusted agents.
MCP tools
Always available (read)
| Tool | Description |
|------|-------------|
| chamber_list_linked_vaults | List linked vaults on this machine |
| chamber_get_vault_info | Vault name, manager, total value |
| chamber_get_composition | Current holdings and balances |
| chamber_estimate_trade | Estimate gas before executing |
| chamber_get_toros_products | Browse Toros leveraged token products |
| chamber_get_toros_deposit_assets | Valid deposit assets for a Toros pool |
| chamber_toros_get_limit_order | Read active limit order |
| chamber_toros_has_limit_order | Check if limit order exists |
| chamber_get_nft_manager_address | NFT manager address for LP protocols |
| chamber_price_to_tick | Convert price range to ticks for CL pools |
| chamber_hyperliquid_get_positions | Perp + spot positions and PnL |
| chamber_hyperliquid_get_open_orders | Unfilled orders on Hyperliquid |
-s trade
| Tool | Description |
|------|-------------|
| chamber_approve_token | Approve token for a DEX aggregator |
| chamber_approve_spender | Approve token for any spender address |
| chamber_execute_trade | Swap via Odos, 1inch, KyberSwap, Toros, Pendle, CoW |
| chamber_change_assets | Update vault's enabled asset list |
-s toros
| Tool | Description |
|------|-------------|
| chamber_complete_toros_withdrawal | Claim tokens after Toros redemption |
| chamber_toros_approve_limit_order | Approve token for limit order manager |
| chamber_toros_create_limit_order | Set stop-loss / take-profit |
| chamber_toros_modify_limit_order | Update existing limit order |
| chamber_toros_delete_limit_order | Cancel limit order |
-s lending
| Tool | Description |
|------|-------------|
| chamber_aave_lend | Supply to Aave V3 |
| chamber_aave_withdraw | Withdraw from Aave V3 |
| chamber_aave_borrow | Borrow from Aave V3 |
| chamber_aave_repay | Repay Aave V3 loan |
| chamber_compound_lend | Supply to Compound V3 or Fluid |
| chamber_compound_withdraw | Withdraw from Compound V3 or Fluid |
-s lp
| Tool | Description |
|------|-------------|
| chamber_lp_add | Open concentrated liquidity position |
| chamber_lp_increase | Add liquidity to existing position |
| chamber_lp_remove | Remove liquidity (partial or full) |
| chamber_lp_claim_fees | Collect trading fees |
Supported protocols: Uniswap V3, Velodrome CL, Aerodrome CL, Pancake CL
-s hyperliquid
| Tool | Description |
|------|-------------|
| chamber_hyperliquid_deposit | Deposit USDC into Hyperliquid |
| chamber_hyperliquid_perp_to_spot | Move USDC perp → spot wallet |
| chamber_hyperliquid_withdraw | Withdraw USDC back to EVM vault |
| chamber_hyperliquid_order | Open market order (long or short) |
| chamber_hyperliquid_close_position | Close position by percentage |
Hyperliquid trading requires the vault to be deployed on the Hyperliquid network and whitelisted by dHEDGE.
Security
- Private keys are AES-256-CBC encrypted using a randomly generated machine-local key (
~/.chamber/.key) - Keys never leave your machine — no cloud server, no telemetry
- Vault linking is CLI-only — private keys are never passed through Claude or logged
- Run
chamber mcp(no-sflag) for read-only access — safe to grant to AI clients by default - The
-s allflag enables all write operations including on-chain transactions — use with trusted agents only
Related
- Chamber — the underlying protocol
- Model Context Protocol — the MCP spec
