MCP Server
JTXMARKETS_MAX_ORDER_USDT in the env block to cap the notional the LLM can place per order.The JTX Markets MCP server is a Model Context Protocol bridge that lets Claude Desktop query your account, place trades, and run TWAP algos in plain English: “show my open BTC-PERP positions”, “close half my ETH-PERP long”, “TWAP 1000 BTC-PERP contracts over the next 30 minutes in 10 slices”.
Ships with 15 tools — 7 read (get_balance / get_positions / get_orders / get_trades / get_funding_history / list_markets / get_market_summary), 5 trade (submit_order / cancel_order / cancel_all_orders / close_position / set_leverage), and 3 algos (submit_twap / list_algos / cancel_algo). Trade + algo tools require a Trade-scoped API key; a Read key gets a 403 insufficient scope back from the engine.
Withdrawals never touch MCP — they need email code + TOTP + admin approval on the dashboard, which does not translate to natural language.
jtxmarkets-mcp-server-0.3.0.tgz · Node 18+ required# From wherever you downloaded the tarball: tar -xzf jtxmarkets-mcp-server-0.3.0.tgz cd package npm install # The runnable server is now at: $(pwd)/dist/index.js
- Read — safest. Claude can see everything but can’t submit or cancel orders.
- Trade — Claude can also submit / cancel orders and close positions. Never touches withdrawals.
api_key and secret — the secret is only shown once. Consider adding your IP to the IP allowlist for defence in depth.<paste-…> placeholders with your API key + secret from step 3, and change the /path/to/… to the actual location where you extracted the tarball.~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).{
"mcpServers": {
"jtxmarkets": {
"command": "node",
"args": [
"/path/to/jtxmarkets-mcp-server/dist/index.js"
],
"env": {
"JTXMARKETS_API_KEY": "<paste-your-api-key>",
"JTXMARKETS_API_SECRET": "<paste-your-api-secret>",
"JTXMARKETS_CLIENT_ID": "<your-client-id>",
"JTXMARKETS_ENV": "staging"
}
}
}
}- “Show me my open positions and total unrealized P&L.”
- “What’s the funding rate on BTC-PERP and when’s the next settlement?”
- “Which of my recent trades had the biggest realized P&L?”
- “Place a limit buy for 100 BTC-PERP contracts at 500 USDT below the mark.”
- “Close half my ETH-PERP long as a market order.”
- “TWAP 1,000 BTC-PERP contracts over the next 30 minutes in 10 slices, buy side, market.”
- “Show my running algos.” · “Cancel the TWAP.”
- Symbol: BTC-PERP · Side: Buy · Total: 1,000 contracts (≈ 0.01 BTC)
- Duration: 30 min · Slices: 10 · Interval: ~180s between fills
- Order type: market · Reduce-only: no
- id:
algo-4f2a-…c19d - status: started
- First slice scheduled in ~5 seconds
- BTC-PERP BUY market · 300 / 1,000 filled (3/10 slices, 30%) · id
algo-4f2a-…c19d· running
algo-4f2a-…c19d. Any remaining slices will not execute. Already-filled 300 contracts stay in your position — reduce with “close my BTC-PERP position” if needed.algo-… id is the trader-visible handle for cancel + progress queries.- Never share a Claude chat that contains active JTX Markets tool calls — it exposes your account state.
- Withdrawals will never work through MCP. They require email verification code + TOTP + admin approval on the dashboard.
- If a key is compromised, revoke it from the Additional API Keys panel above.