Data boundary
Confirm available symbols, fields, coverage, gaps, timezone, aggregation, and whether prices are midpoint, bid, or ask.
Your agent should not have to read prices off a screenshot. This MCP server hands it the numbers instead: five years of 1-minute candles across 15 instruments, and a live bridge to the chart you are backtesting right now.
Tool access needs a data contract
CHECK 29Connecting a coding agent to historical candles reduces transcription work, but it does not make the model a market oracle. Begin each task with an instrument and data inventory, then require the agent to show query dates, timeframe aggregation, sample size, missing fields, exclusions, and the exact calculation behind every conclusion.
Protect replay integrity separately. A tool may technically access bars beyond the chart position even when the prompt asks it not to. Use bounded date parameters or a server-side replay boundary for any exercise where future leakage would invalidate the decision.
Confirm available symbols, fields, coverage, gaps, timezone, aggregation, and whether prices are midpoint, bid, or ask.
List each tool the client can call, its read or write effect, response limits, and whether it can reach future data or the live chart.
Separate measured output, implementation assumptions, and model-generated explanations in the final answer.
A useful trading agent is an auditable calculator with explicit limits, not a confident narrator with hidden inputs.
One command. Node 18 or newer.
claude mcp add fxabsolute -- npx -y fxabsolute-mcp
For any other MCP client, add this to its config:
{
"mcpServers": {
"fxabsolute": {
"command": "npx",
"args": ["-y", "fxabsolute-mcp"]
}
}
}
No API key, no account, no cost. FXAbsolute pays for no inference — you bring the agent you already use, and it thinks on your side of the wire.
Once installed, the data tools work on their own — you do not need a chart open. Try asking your agent:
connect to fxabsolute with code ABC123, using the six characters shown.Every message carries a snapshot of the chart: instrument, timeframe, replay position, the current candle, your open trades, running performance, and every drawing as real geometry. A trendline arrives as its height in pips, the bars it spans and its slope per bar — not as an image the model has to squint at.
The snapshot also states where you are in the replay and tells the agent not to reveal bars you have not reached. An assistant that spoils the next candle would make backtesting pointless.
| Tool | What it answers |
|---|---|
fxa_instruments | What is available, how many bars, which fields exist |
fxa_candles | OHLC over a date range, any timeframe from M1 to W1 |
fxa_session_scan | Specific bars of a trading session across months, summarised |
fxa_bucket_stats | Movement grouped by hour, weekday, month or year |
fxa_level_touches | Whether a price level held, and the reaction it produced |
fxa_connect_chart | Pair with an open chart using its code |
fxa_wait_for_message | Wait for what the trader says, with the chart attached |
fxa_reply | Answer into the trader's panel |
fxa_set_thinking | Show the thinking indicator during a long lookup |
fxa_disconnect_chart | Leave the session |
There is no volume. The record is 20 bytes — a timestamp and four
float32 OHLC values. Volume was never stored, so no tool reports it and none
quietly substitutes a proxy. Bar range is offered instead, and every relevant response says so.
Timeframes are bucketed on wall-clock time, not by array index. Forex data has weekend and holiday gaps, so grouping every 60 one-minute bars eventually stops lining up with a real clock hour and an “H1 candle” can straddle a weekend. Here bars sit on true period boundaries, and a gap produces no bar rather than a fabricated one. Session windows resolve in exchange-local time with daylight saving handled to the second, so the 09:30 bar is the 09:30 bar in both January and July.
fxa_session_scan also reports how many weekdays in your window produced no data at
all — worth reading, because a scan can otherwise return healthy-looking statistics built on a
fifth less data than you asked for.
Free, no sign-in, 15 instruments, five years of real data.
Start backtestingNo. FXAbsolute holds no key and pays for no inference. You connect the agent you already use, and it does the thinking on your side.
Any MCP-capable client — Claude Code, the Claude desktop app, Codex, Cursor and others. The server speaks stdio and needs Node 18 or newer.
No. Drawings are stored as time and price anchors, so they are described numerically. That is more precise than an image and costs a fraction of the tokens.
The snapshot states your replay position and instructs the agent not to reveal bars beyond it. The data tools can reach any date, so ask it outright if you want the future — it just will not volunteer it.
On GitHub at varsansri/fxabsolute-mcp, MIT licensed.
One reproducible testing idea, with its rules, limitations, and review questions made explicit. In your inbox every week.