The fix, shown · live right now

The docs said the MCP server wasn't available. Here is one, answering.

Not a mockup and not a proposal: five GMX v2 tools serving real Arbitrum chain data at a public endpoint you can hit from your terminal in ten seconds. Built against the documented v2 contracts, non-custodial end to end.

Before and after

Before · the docs today
"The MCP server is under development and not yet available."

GMX AI Agents documentation, docs.gmx.io · re-verified 2026-08-16

An agent sent to trade on GMX finds a promise where the integration should be. The official SDK route has its own problem: @gmx-io/sdk pulls in react-native as a transitive dependency carrying HIGH-severity advisories per a direct npm audit run.

After · live at vealth.net/mcp

Five tools, serving now, free to call, no API key, no auth. Read positions, orders, and oracle prices for any wallet; prepare an unsigned order transaction; relay it once the caller signs it with their own key. Zero new dependencies, no SDK, no custody.

Entry orders ship with a real protection the build itself surfaced: execution price bounded to mark ±2%, verified by decoding a real prepared transaction against a live mark price.

Prove it from your own terminal

One curl, no API key

curl -X POST https://vealth.net/mcp -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"gmx_get_prices","arguments":{}}}' # live GMX v2 Arbitrum oracle prices come back as JSON: the same numbers the app trades on

Point any MCP client at https://vealth.net/mcp and the GMX tools appear in tools/list alongside the rest of the endpoint's tool set.

The whole agent loop, non-custodial at every step

This is what an agent actually runs, in order. The only thing that ever touches a private key is the caller's own wallet, on the caller's own machine.

gmx_get_pricesfree · read-only

Live mark prices for every tradeable asset, straight from the v2 oracle path.

gmx_get_positions / gmx_get_ordersfree · read-only

Open positions and pending orders for any wallet address. No key, no auth, no account.

prepare_gmx_ordernon-custodial

Returns a complete unsigned Ethereum transaction: sized collateral, leverage, and an execution price bounded to mark ±2%. We never see a key. An optional workPacketId can pledge the trade's future UI fee toward a real, priced work packet on the public board. It records intent and moves no money.

the caller signstheir wallet, their machine

MetaMask, Ledger, ethers.Wallet: any signer. This step never leaves the caller's side.

submit_gmx_orderrelay only

Broadcasts the already-signed transaction to Arbitrum. It cannot sign, alter, or replay anything: an unsigned or tampered payload is just an invalid transaction.

The bottom line, in plain English

Any MCP-capable agent can now read GMX markets and place a bounded, self-signed GMX trade through one public endpoint, today, for free, without trusting us with a single key. That is the layer the docs promise, running.

Provisioned by EcoWealth · Digital Provisioning Protocol · provenance‑sealed