Skip to main content
Monaco is built to be driven by AI. Paste the config below into your assistant to expose Monaco’s market data and trading as callable MCP tools — no code required. Two modes are available:
  • Public mode — no credentials; read-only market data, orderbook, and trades are available immediately.
  • Authenticated mode — add your wallet private key, client ID, and network to enable authenticated tools. Which tools are enabled is bounded by a capability profile: supplying a key does not blindly unlock everything. The default profile is read-only; trading requires opting in to market-maker, and fund movement (deposits, withdrawals, reward transfers) requires full.
The MCP server is a command and snapshot plane: it places, replaces, and cancels orders and takes one-shot reads (get_orders, get_positions, get_balances, get_orderbook). It has no streaming or subscription tools — every read is a point-in-time snapshot. For live fills, cancels, book movement, and position/risk changes, pair it with the Core SDK WebSocket state plane. If you are running a market maker or any continuously-managed strategy, follow the Market-Maker Runbook.

Add the MCP server

That’s the public, read-only server — live market data, orderbook, and trades with zero credentials. Restart your assistant after editing a config file. To enable authenticated tools, add your wallet private key, client ID, and network. By default this grants read-only access (balances, orders, fee tier); set MONACO_CAPABILITY=market-maker to place and cancel orders, and MONACO_CAPABILITY=full for vault fund movement. Full per-client setup, authenticated config, capability profiles, and the complete tool list are below.

Point your AI at the docs

These docs are LLM-readable, so any model or agent can ingest them directly: Every page also has Copy page and Open in ChatGPT / Claude buttons in the top-right, and appending .md to any docs URL returns the raw Markdown.

Drive Monaco in natural language

Once the MCP server is connected, just ask:
What’s the current ETH/USDC orderbook on Monaco, and how does the mid price compare to the last few trades?
In authenticated mode the agent can place and cancel real orders. Start on staging (testnet) and review what it proposes before confirming trades.

Trading with MCP

Authenticated mode lets an MCP-compatible assistant act through the wallet configured by MONACO_PRIVATE_KEY, within the bounds of the active capability profile. The default read profile lets the agent inspect balances, open orders, and fees only. Set MONACO_CAPABILITY=market-maker to let it request testnet funds, place spot or perp orders, replace orders, and cancel orders. Moving funds through the Monaco vault tools (deposit, withdraw) and transferring rewards require the full profile — they are off unless explicitly enabled. Use this mode when you want an assistant to operate Monaco directly from natural language, for example:
  • “Check my balances, then place a small ETH/USDC limit buy 5% below mid.”
  • “Cancel my stale open orders before placing a new quote.”
  • “Simulate fees for this order before submitting it.”
MCP is not a standalone market-making surface. Because it does not stream, an agent that manages quotes off intermittent MCP snapshots alone will miss fills, cancels, and book movement between calls — leaving stale quotes and one-sided exposure. Drive commands through MCP, but track live state through the Core SDK WebSocket. See the Market-Maker Runbook for the full command-plane vs state-plane loop.
Authenticated MCP tools control the configured wallet on the selected network. Use staging first, keep private keys out of committed config files, and review trading actions before approving them.

Capability profiles

Authenticated mode is scoped by MONACO_CAPABILITY. The profile bounds which tools the server registers — a tool outside the active profile (and not named in MONACO_TOOL_ALLOWLIST) is never registered. This is an authorization control, not an advisory annotation. The default read profile cannot mutate anything — order placement, cancel, replace, and close require MONACO_CAPABILITY=market-maker or higher. Fund-movement and privilege tools additionally require full; enable them by setting MONACO_CAPABILITY=full, or opt a single tool in with MONACO_TOOL_ALLOWLIST (e.g. MONACO_TOOL_ALLOWLIST=vault_withdraw). MONACO_TOOL_DENYLIST removes tools and wins over both the profile and the allowlist. Also note: when a private key is configured, MONACO_NETWORK is required — the server refuses to default an authenticated session to mainnet.
Grant the full profile only when you intend an agent to move funds, and prefer a per-tool MONACO_TOOL_ALLOWLIST over blanket full — especially on mainnet.

Delegated owner mode

Set MONACO_DELEGATED_OWNER_USER_ID to run the server on behalf of a delegated owner account instead of the configured wallet’s own account. The wallet in MONACO_PRIVATE_KEY is the agent: on startup it authenticates as itself, then adopts an owner-scoped delegated session (loginAsDelegatedOwner). Every subsequent tool call — reads and trades — acts on the owner account, with the agent wallet preserved as the actor for audit. The owner must have registered this agent wallet with an active delegation policy; the server cannot self-assert ownership, and adoption fails if the agent is not authorized for that owner.
This is fail-closed: MONACO_DELEGATED_OWNER_USER_ID requires MONACO_PRIVATE_KEY and MONACO_CLIENT_ID (the agent must authenticate as itself first), a blank value is rejected, and if owner adoption fails the server does not silently fall back to trading as the agent’s own account. The delegated session inherits withdrawal restrictions from the policy — fund-movement tools still require the full capability, and delegated sessions cannot withdraw owner collateral. Raw delegated-session creation is intentionally not exposed as a tool; owner adoption is a startup option, not an autonomous agent action.

IDE setup

Follow the setup instructions below for your client. Some clients use an MCP config file; Claude Code can be configured via the CLI.
Claude Code registers MCP servers from the command line — no config file to edit.Public mode:
Authenticated mode: For security, avoid pasting MONACO_PRIVATE_KEY into your shell history; prefer a secret manager or environment variable.
Verify it registered with claude mcp list, then start a session with claude.
After editing the config file, restart your AI assistant.
Never commit your MCP config file to version control. MONACO_PRIVATE_KEY is a raw private key — anyone with access to it controls your wallet.

Configuration

string
Network to connect to (mainnet, development, staging, local). Set to staging for testnet. Required when MONACO_PRIVATE_KEY is set — the server refuses to default an authenticated session to mainnet. Public-only mode defaults to mainnet.
string
Your wallet’s private key in 0x... format. Required for authenticated tools. If omitted, only public tools are available.
string
Your Monaco application client ID. Required when MONACO_PRIVATE_KEY is set. Contact [email protected] to obtain one.
string
default:"read"
Capability profile for authenticated mode: read, market-maker, or full. See capability profiles. Defaults to read (no write authority); market-maker adds order management, and full adds fund movement.
string
Comma-separated tool names to enable on top of the active profile — an explicit per-tool opt-in, including for full-only fund-movement tools (e.g. vault_withdraw).
string
Comma-separated tool names to disable. Wins over both the profile and the allowlist.
string
Sei RPC endpoint URL. Defaults to https://evm-rpc-testnet.sei-apis.com when MONACO_NETWORK=staging. The default is a public testnet RPC — rate limits may vary and it is not suitable for production. Override with a dedicated private RPC provider for better reliability.
string
Run the server on behalf of a delegated owner account instead of the configured wallet’s own account. The MONACO_PRIVATE_KEY wallet is the agent: on startup it authenticates as itself, then adopts an owner-scoped session (loginAsDelegatedOwner) so every tool call acts on the owner, with the agent wallet preserved as the audit actor. Fail-closed — requires MONACO_PRIVATE_KEY and MONACO_CLIENT_ID, rejects a blank value, and never falls back to trading as the agent’s own account. See delegated owner mode.

Available tools

Public tools require no credentials. Authenticated tools require MONACO_PRIVATE_KEY, MONACO_CLIENT_ID, and MONACO_NETWORK, and are further gated by the active capability profile — the profile column below shows the minimum profile each tool needs.

Market

Perp market data

Orderbook

Trades

Trading

Order reads (get_orders, get_order) are available under read; the mutations below require market-maker or higher.

Positions

Position reads are available under read; close_position requires market-maker, and margin add/reduce move collateral and require full.

Portfolio

Margin accounts

Reads and risk simulations are available under read; collateral transfers move funds and require the full profile (or an explicit allowlist entry).

Profile

Fees

Vault

Fund-movement tools require the full profile (or an explicit allowlist entry); the allowance and pending-withdrawal reads are available under read.

Faucet

Testnet only — the faucet tools are never registered on mainnet.

Trader codes & rewards

Copy trading

The leaderboard, leader profiles and closed trades are public. Your own reads are available under read; registering as a leader and stopping a follow require market-maker; following (which moves the allocation into a copy account) and adding margin to a copy position (which moves copy account collateral into the position) require full.

Market pulse

Example prompts

Once the server is connected, drive Monaco entirely in natural language. Your AI assistant picks the right tools and chains them together. Public — no credentials needed:
What’s the current ETH/USDC orderbook on Monaco, and how does the mid price compare to the last few trades?
Pull the last 24 hours of hourly candlesticks for BTC/USDC and summarize the trend.
Authenticated — requires MONACO_PRIVATE_KEY, MONACO_CLIENT_ID, and MONACO_NETWORK (and MONACO_CAPABILITY=market-maker to place orders):
Request test tokens from the faucet, then place a limit buy for 0.1 ETH/USDC at 5% below the current mid price.
Check my open orders and balances, then cancel any resting buy orders older than I’d expect to still be unfilled.
Simulate the fees for a 1 ETH/USDC market sell before I place it.
In authenticated mode the agent can place and cancel real orders on the configured network. Start on staging (testnet) and review what the agent proposes before confirming trades.