MCP server · streamable HTTP
Chaos reads OKX USDT perpetual candles and returns trend, order-flow and momentum state — the part you would otherwise have to build and maintain yourself. 10 symbols. 2h and 4h. Pay per call.
OKX's market API is free and public, so raw candles are worth nothing. What is not free is the layer that turns candles into a decision — and that layer is what this server returns.
A WMA-weighted centroid ±3×ATR(10), with direction hysteresis so the reading does not flicker on every wick.
Cumulative volume delta against its own EMA. Tells you whether the flow behind a move is actually there.
MACD(13/34/9) — histogram and cross state, computed server-side and returned as a single field.
RSI(14) overbought and oversold zones, with a reversal letter when one is being tested.
Flags bars where the 2σ band sits inside 1.5× the mean ATR — the quiet before an expansion.
Everything above feeds a state machine that emits long/flat
plus the last entry/exit and when it fired.
Every tool is a plain MCP tool call — no SDK, no build step, no data pipeline on your side. Your agent calls it the same way it calls any other tool.
Per call, prepaid against an API key. Prices are deliberately small — the free alternative is "call OKX and compute it yourself", so this is priced against the hours that saves, not against the data.
| Tool | What it returns | Per call |
|---|---|---|
| list_markets | Supported symbols, intervals and data source. Free, for discovery. | free |
| get_kline | Raw OHLCV candles from OKX USDT perpetuals. | $0.002 |
| get_signal | Current signal snapshot for one symbol. | $0.01 |
| get_signals | The full market table — 10 symbols at one interval. | $0.02 |
| get_indicators | Full indicator series, for callers building their own model. | $0.05 |
| backtest_signal | Replays the state machine over history: trade count, win rate, PnL, max drawdown. | $0.25 |
Need a subscription or a volume rate instead? Say so when you get in touch — monthly plans are available.
Any MCP client that speaks streamable HTTP works. Drop the endpoint in, add your key as a header, and the six tools show up.
// claude_desktop_config.json
{
"mcpServers": {
"chaos": {
"type": "http",
"url": "https://mcp.okx.tw/mcp",
"headers": { "X-API-Key": "chaos_your_key_here" }
}
}
}
// .cursor/mcp.json
{
"mcpServers": {
"chaos": {
"url": "https://mcp.okx.tw/mcp",
"headers": { "X-API-Key": "chaos_your_key_here" }
}
}
}
# free call — no key needed
curl -s https://mcp.okx.tw/catalog | jq
# paid call
curl -s https://mcp.okx.tw/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'X-API-Key: chaos_your_key_here' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_signal",
"arguments":{"symbol":"BTC","interval":"2h"}}}'
Without a key, a tool call returns 402 Payment Required with the price
for that tool — so you can point an agent at the endpoint and let it discover
the cost before you commit to anything.
Keys are issued against prepaid credit. Tell us the expected volume and we will size the quota — small evaluation keys are fine.
/catalog is open — it lists every tool and its price. Point a client at the endpoint and read the 402s.