Trade a simulated account with MCP
This quickstart is for a simulated or paper-backed prop account. Its orders go through the platform OMS and paper matching engine; no exchange wallet or agent private key is required. A live funded prop account uses different custody and authorization.
-
Get an API key for the account
Section titled “Get an API key for the account”A paper account’s API key, its tier and its risk caps are decided by your workspace operator, not by the trader. Ask the operator to issue a key for the account in the admin console (Account → API keys). The tier they choose determines the tools the agent can use. They may also record a maximum position notional and daily-loss cap, which are passed on to the risk engine rather than enforced by TRON. The secret is shown once, at issue.
Configure
@tronchartsxyz/mcp-serverversion 0.2.0 or later over stdio in Claude Code, Cursor or Cline with that key and secret. There is noTRON_CHARTS_AGENT_KEYfor paper. The OAuth browser connector does not issue paper keys and answersaccess_denied. -
Confirm the account and limits
Section titled “Confirm the account and limits”Ask the client to call
query_accountandget_agent_context. Checkkind: "paper", the expected account number, tier and risk caps. Then callquery_balance,query_positionsandquery_open_ordersbefore submitting an order. Connection success proves identity; it does not prove that a chosen symbol has fresh pricing or enough buying power. -
Place one simulated order
Section titled “Place one simulated order”Call
place_market_orderwith an explicit paper venue and a unique caller ID for this logical order:{"venue": "paper","symbol": "BTC.HL","side": "buy","qty": 0.001,"clientOrderId": "demo-20260922-001"}Use a symbol available to your account’s trading group; B3 paper symbols such as
WIN.B3use the samevenue: "paper"setting. The platform enforces prop rules, risk caps and buying power before simulated dispatch. Read the returnedstate:dispatchedis not a fill. -
Recover, cancel or stop
Section titled “Recover, cancel or stop”If the call times out, first call
query_orderwith the sameclientOrderId. If you retry placement, send the same ID and arguments. The OMS returns the original intent instead of creating a second order. Changing the payload while reusing the ID returns a conflict.Poll
query_orderuntil the intent reaches a terminal state, and checkquery_positionsandquery_recent_fillsfor reconciliation. A resting limit order can be canceled withcancel_orderand its intent ID. Useflatten_positionwithvenue: "paper"and a newclientOrderIdto close an open position.To stop future writes immediately, engage the credential’s kill switch in Lab → MCP, or revoke it there when the connection is no longer needed. Only the workspace operator can release a kill switch or change the key’s tier and caps.
The local client exchanges its API key and secret for a bearer automatically, and every request enforces the key’s account, tier, expiry and OMS controls.
Next: MCP server reference · Track an order · Scopes and tiers