Orderly Trading MCP
OfficialSummary: This server only exposes a read-only diagnostic tool; it cannot perform trading actions.
orderly_status: reports why the Orderly CLI is unavailable and how to fix it.Indicates trading tools are disabled until a compatible Orderly CLI (v2.0.1+) is found.
Provides no account, market, order, position, or mutation capabilities in the provided schema.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Orderly Trading MCP show my open positions and unrealized PnL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Orderly Trading MCP
MCP server that gives AI clients trading access to Orderly Network through the
locally installed orderly CLI.
Private keys live in the OS keychain. The MCP process never sees them and never signs anything — it only discovers the CLI's command surface, validates arguments, and runs the CLI as a subprocess.
MCP client ⇄ stdio ⇄ orderly-trading-mcp ⇄ execFile ⇄ orderly CLI ⇄ Orderly API
↳ OS keychainRequirements
Node.js >= 20
orderlyCLI v2.1.1+ recommended (v2.0.1 still works)v2.1.1 fixes the BID/ASK market short form, classifies price-scope and max-quantity rejections as trading errors, and fixes
broker-statusDEX authentication.v2.1.0 adds the Orderly Predict commands,
faucet-account, and thelongAbout/numArgsschema fields used for richer descriptions and variadic arguments.On v2.0.1 the MCP falls back cleanly: the
predictprofile has no predict tools,faucet-accountis absent (usefaucet_usdc), descriptions are shorter, and variadic arguments use a hardcoded fallback.
A wallet/API key already set up in the CLI (
orderly auth-listshows them)
Related MCP server: Alpha Arena MCP
Install
# CLI (installs to ~/.local/bin)
curl -fsSL https://orderly.network/cli.sh | sh
# MCP server
npm install -g @orderly.network/trading-mcp
orderly-trading-mcp doctordoctor prints every CLI candidate it found, the selected binary, the effective
profile/network, and the accounts visible in the keychain.
Client configuration
The reliable form sets ORDERLY_BIN explicitly. GUI clients often launch with a
minimal PATH, so ~/.local/bin may not be visible even though your terminal
finds orderly. If the keychain has multiple accounts, also set
ORDERLY_MCP_ACCOUNT to the account ID you want as the default.
Claude Code / Cursor (.mcp.json or .cursor/mcp.json):
{
"mcpServers": {
"orderly-trading": {
"command": "npx",
"args": ["-y", "@orderly.network/trading-mcp"],
"env": {
"ORDERLY_BIN": "/Users/you/.local/bin/orderly"
}
}
}
}VS Code (.vscode/mcp.json):
{
"servers": {
"orderly-trading": {
"command": "npx",
"args": ["-y", "@orderly.network/trading-mcp"],
"env": { "ORDERLY_BIN": "/Users/you/.local/bin/orderly" }
}
}
}OpenCode (opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"orderly-trading": {
"command": ["npx", "-y", "@orderly.network/trading-mcp"],
"environment": {
"ORDERLY_BIN": "/Users/you/.local/bin/orderly",
"ORDERLY_MCP_TIMEOUT_MS": "180000"
},
"timeout": { "execution": 190000 }
}
}
}
}Older OpenCode builds use the deprecated top-level mcp.<name> form; the
timeout there is a single integer. The mcp.servers form above is current.
Codex (.codex/config.toml):
[mcp_servers.orderly-trading]
command = "npx"
args = ["-y", "@orderly.network/trading-mcp"]
env = { ORDERLY_BIN = "/Users/you/.local/bin/orderly" }Tools
The default core profile registers 15 tools:
Tool | Kind | Purpose |
| read | Stored accounts (public IDs only) |
| read | Token holdings |
| read | Positions, account value, margin |
| read | Working orders |
| read | Mark/index/24h stats |
| read | Depth and best bid/ask |
| read | Candles |
| write | Place a perpetual order |
| write | Cancel one order |
| write | Cancel all orders |
| write | Reduce-only market close |
| read | Read current leverage |
| write | Change leverage |
| meta | Full CLI coverage |
Everything else — algo/TP-SL orders, batch orders, Predict, trades, funding, history, symbols, fee tiers — is reached through the escape hatch:
orderly_commands({ query: "algo" })
orderly_run({
command: "algo-order-place",
args: {
symbol: "PERP_ETH_USDC", side: "SELL", algo_type: "TP_SL",
quantity: 0.01, tp_trigger_price: 2500, account: "0x..."
}
})orderly_run applies the shared policy: secret-command blocklist, mutation
allowlist, read-command allowlist, read-only mode and mainnet gate. Profiles
control the dedicated tool surface only; by default the escape hatch still
reaches every allowed command. Set ORDERLY_MCP_STRICT_PROFILE=1 to restrict
orderly_run to the selected profile as well. Because it can mutate,
orderly_run is annotated non-read-only; reads routed through it may trigger an
extra client confirmation. Prefer the dedicated read tools for listings.
Profiles add dedicated tools for domains:
| Tools |
| 15 |
| core + all six Predict tools, including |
| core + |
| every reviewed read command + every allowed trading mutation (67) |
|
|
Safety model
Variable | Default | Effect |
| auto | Explicit CLI path; if set and invalid, no fallback |
|
| Tool surface (see above) |
| off | Set |
| CLI config | Default network override |
| auto | Default account ID when a call omits |
|
| Set |
| off | Set |
| off | Set |
|
| Per-call timeout |
|
| Max characters returned per call |
| off | Log argv/timing to stderr |
faucet_account --wait can take up to 120 seconds; raise
ORDERLY_MCP_TIMEOUT_MS (for example to 180000) before using it.
Design rules:
Keys never enter the MCP.
wallet-create,wallet-import,wallet-remove,wallet-logout,wallet-register,wallet-add-key,wallet-revoke-key,auth-import,auth-logout,auth-cleanup,broker-createandauth-export-keyare blocked in every profile, includingorderly_run.auth-export-keyis read-only in the CLI manifest but prints a private key, so it is denied explicitly.Fail-closed mutations. Only an explicit allowlist of trading commands can mutate. A new mutating CLI command stays invisible until it is reviewed.
Fail-closed reads. Read commands are allowlisted too, so a new read command cannot expose sensitive data without review.
ORDERLY_MCP_ALLOW_UNKNOWN_READS=1opts out.No shell. The CLI is spawned with an argv array, so hex account IDs and other values cannot inject shell syntax.
No hangs. stdin is closed, so interactive CLI prompts fail fast; every call has a timeout.
Mutations are serialized, so parallel tool calls cannot double-submit.
Preview first. Mutating tools that support
--dry-runexpose adry_runargument; descriptions instruct the model to preview before executing.No automatic retries for mutations.
Output and errors
The CLI's compact JSON is passed through unchanged when it fits. Non-JSON output
(for example No keys stored...) is returned as text. If a response exceeds
ORDERLY_MCP_MAX_OUTPUT, the call fails with a clear error rather than returning
truncated, invalid JSON. Batch commands that return per-row success flags are
reported as errors when any row fails, with the failed count in the message.
Errors include the CLI stderr and a hint based on the error kind:
Kind | What to do |
Usage/validation | Call |
API/trading rejection | Read the message; check symbol, price, quantity, margin and account state |
Authentication | Check |
Transient | Retry after a delay |
Multiple accounts | Pass |
The CLI exit codes are 2 usage, 3 auth, 4 trading rejection and 5
transient. The MCP adds the account/network context and does not retry mutations.
Resources: orderly://schema, orderly://accounts, orderly://config,
orderly://guide.
Development
npm install
npm run typecheck # tsc --noEmit
npm test # builds dist/ + 59 unit/protocol tests
npm run build
npm run doctor
node dist/index.js tools # print the registered tool listTests use a hermetic fake CLI (test/fixtures/fake-orderly.mjs), so they do not
need network, keychain or the real binary.
The CLI schema is loaded once at server startup. Restart the MCP server after
upgrading the CLI or changing ORDERLY_MCP_PROFILE / ORDERLY_BIN.
Releasing
Bump
versioninpackage.json,package-lock.json, and every version inserver.json, then commit. The release workflow verifies the tag matchespackage.json; the registry workflow verifies every manifest version matches.Tag and push:
git tag v0.1.1 git push origin master git push origin v0.1.1.github/workflows/release.yamlruns typecheck, tests, build and pack, then publishes to npm with provenance (NPM_TOKENsecret required)..github/workflows/publish-registry.yamlvalidatesserver.json, waits for the npm version to appear, then publishes it to the MCP registry with GitHub OIDC.
The MCP release is independent of CLI releases. CLI v2.1.1 is released and recommended; v2.0.1 still works with fallbacks.
There is no Docker image: this server is stdio-only, unlike the read-only MCP.
Not included (on purpose)
Key, wallet, auth and broker management tools.
HTTP transport. Exposing a trading server over the network needs its own authentication and threat model; stdio only for now.
Automatic CLI download. Install it explicitly; the installer verifies the release checksum.
Available Tools
1 toolorderly_statusOrderly CLI statusARead-onlyIdempotent
Report why the Orderly CLI is unavailable and how to fix it. The trading tools are disabled until a compatible orderly CLI (v2.0.1+) is found.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
With only a single tool exposed, there is no possibility of overlap or misselection. An agent cannot confuse orderly_status with anything else because nothing else exists.
The lone tool uses a clear, predictable snake_case server-prefixed convention (orderly_status). No mixed styles or verb inconsistencies can arise from a single-name surface.
A server named 'Orderly Trading MCP' exposes exactly one diagnostic tool and zero trading operations. This is an extreme mismatch between the stated purpose and the actual surface, effectively a stub rather than a functional toolset.
There are no trading capabilities at all—no order placement, cancellation, position queries, or market data. The only tool reports that the CLI is unavailable, leaving every conceivable trading workflow as a dead end.
Maintenance
Related MCP Connectors
Trade Papertrade BTC and ETH perps from Claude, ChatGPT, Codex, Cursor and any MCP client.
Perpetual futures trading for AI agents on the user's own exchange accounts, behind one risk gate.
Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.
Trading tools for AI agents: token risk checks, swap quotes, unsigned swaps, holdings on 5 chains.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.23 PyPI24MIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Hyperliquid perpetual futures exchange for market analysis, account management, and risk-managed trading.51MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language trading of Hyperliquid perpetual futures, including portfolio checks, market data, order placement with confirmation, and position management.MIT
- AlicenseNot gradedqualityBmaintenanceLets AI coding agents like Claude Code and Cursor read Quai Network wallet balances and market data over stdio, and — only when writes are explicitly permitted with spending caps — execute buy, sell, swap, OTC, claim, airdrop and wall actions through the same simulation, confirmation and guard pipeline as the CLI.1MIT