← FXAbsolute Coding agents

MCP Server for Forex Data

Published 2026-08-17 · Updated 2026-08-28 · FXAbsolute

FXAbsolute runs a free MCP server that hands your coding agent 28,412,683 real OHLC bars across 15 forex, index and crypto instruments — and can drive a live chart in your browser. No API key, no rate limit, MIT licensed. This page documents every tool, what the data actually contains, and what it is missing.

The short answer

Yes — there is an MCP server for forex data, and it is free. FXAbsolute publishes one that exposes five years of real candle history plus a live bridge to a trader's chart. It speaks the Model Context Protocol, so it works with Claude Code, Claude Desktop, Cursor, or anything else that implements MCP.

The distinction worth understanding: most "AI trading" tools ask a language model to reason about markets from its training data, which is frozen and approximate. This does the opposite — it puts actual historical bars in front of the model so it can compute rather than recall.

What data you actually get

Fifteen instruments at one-minute resolution, aggregated on demand to M5, M15, M30, H1, H4, D1 or W1 on true clock boundaries. Figures below are the live archive, not a marketing round-up:

InstrumentM1 barsCoverage
BTCUSD2,627,5492021-07-24 → 2026-07-23
ETHUSD2,270,8192021-01-01 → 2026-08-03
GBPJPY1,939,0252021-01-03 → 2026-04-30
USDCAD1,936,7312021-01-03 → 2026-04-30
EURUSD1,911,1412021-01-03 → 2026-04-30
AUDUSD1,909,0572021-01-03 → 2026-04-30
EURGBP1,905,9732021-01-03 → 2026-04-30
GBPUSD1,898,7462021-01-03 → 2026-04-30
USDJPY1,894,9502021-01-03 → 2026-04-30
EURJPY1,890,3882021-01-03 → 2026-04-30
AUDCAD1,888,2572021-01-03 → 2026-04-30
XAUUSD1,871,4872021-01-03 → 2026-04-30
SPX5001,390,1772021-01-04 → 2026-08-03
NAS1001,383,4982021-01-04 → 2026-08-03
US301,357,7572021-01-03 → 2026-08-03
Sample: 28,412,683 bars total, verified 2026-08-17 by node scripts/research.mjs inventory. Indices carry fewer bars because they trade an exchange session rather than 24/5.

What it does not have — read this before you build

Two honest limitations, stated up front because discovering them halfway through a project is worse than being told:

There are also small coverage holes — the largest in EURUSD is a five-day gap around 2025-07-22. Any data provider has these; most do not publish them. You can list them yourself with node scripts/research.mjs holes EURUSD.

Try it while you read FXAbsolute replays real historical candles bar by bar, free, in your browser. No account, no download, no card.
Start free — no account →

The ten tools

Five read the archive. Five drive a live chart in a trader's browser, which is the part no other market-data MCP server does.

Data tools

Live chart tools

Because pairing goes over a broadcast channel rather than a local socket, the chart and the agent do not need to be on the same machine. Chart on a phone, agent in a laptop terminal works fine.

Installing it

The server is MIT licensed and lives in the mcp/ directory of the public repository.

git clone --depth 1 --filter=blob:none --sparse https://github.com/varsansri/fxabsolute
cd fxabsolute && git sparse-checkout set mcp
cd mcp && npm install

claude mcp add fxabsolute -- node "$PWD/src/index.js"

Then confirm it registered:

claude mcp list
cd mcp && npm run smoke   # exercises every tool against live data

The smoke suite runs 18 checks in under two seconds and asserts real invariants — that H1 bars land on exact hour boundaries, that timestamps strictly increase, that aggregated OHLC never breaks (no high below its own low). If those pass, the data is sound.

Note: the server fetches candles over HTTPS at runtime, so it does not need the repository's data files. Cloning still pulls them, which is why a published package is the better route once available.

A worked example, end to end

The clearest way to judge a data tool is to watch it answer a question that would otherwise take an afternoon. Here is one: when is the S&P 500 actually volatile, and by how much?

The agent calls fxa_bucket_stats once. Bucketing 1,390,177 SPX500 bars by hour returns:

14:00 UTC   2.94 pts avg range   63,645 bars
15:00 UTC   2.72 pts             63,551 bars

14:00 UTC is the half-hour around the New York cash open, and it carries roughly 8% more range than the hour that follows it — across five years and 63,000 bars per bucket, which is a large enough sample that the difference is not noise.

Compare that with the same question asked of a language model with no tool access. It will produce a fluent paragraph about the New York open being volatile, which is directionally right and numerically worthless. The difference between "the open is volatile" and "2.94 versus 2.72 points across 63,645 bars" is the difference between an opinion and a measurement.

The same shape of question works for weekend risk. Gold gaps far harder than currencies: across 289 session breaks, the median XAUUSD gap is 122.5 points, and the 90th percentile is 1,470. If you hold gold over a weekend, that tail is the number that matters, and no amount of prose substitutes for it.

Put this into practice Five years of real one-minute data across 15 instruments, with an automatic trade journal. Free forever.
Open the free backtester →

MCP versus the alternatives

There are four common ways to get market data in front of an agent. They are not equivalent.

ApproachSetupSample size it can handleMain problem
Paste a screenshotNoneOne chartThe model reads pixels, not prices. It cannot count.
Paste CSV into the promptNoneA few thousand rowsBurns the context window; five years is far past any limit.
Write a bespoke API clientHoursUnlimitedYou maintain it, and most free feeds rate-limit or require keys.
MCP serverOne commandUnlimitedRequires an MCP-capable client.

The decisive advantage is not convenience, it is sample size. Pasting data into a prompt caps you at whatever fits in the context window. A tool call has no such ceiling — the aggregation happens before the model ever sees a number, so asking about 1.4 million bars costs the same handful of tokens as asking about a hundred.

What agents are actually good at here

Having run this against real questions, the split is fairly clear.

Agents do well at systematic scanning — questions of the form "across five years, how often did X happen". That is arithmetic over a large sample, and a tool call beats human chart-flipping by orders of magnitude. Asking for the volatility profile of EURUSD by hour takes one call and returns a defensible answer: hour 14:00 UTC averages 2.83 pips of range per M1 bar against 0.73 at 21:00, a 3.9× spread across 1.9 million bars.

Agents do badly at anything requiring a view. They will happily produce a confident narrative about why a level held, and that narrative is generated, not measured. Treat the tool output as evidence and the prose around it as a hypothesis.

The useful pattern is to make the agent compute, then check the number yourself.

Installing it: one line, no clone

As of 28 August 2026 the server is published to npm as fxabsolute-mcp and listed in the official MCP Registry under the name io.github.varsansri/fxabsolute. Installing it no longer involves cloning anything.

claude mcp add fxabsolute -- npx -y fxabsolute-mcp

For Cursor, Claude Desktop, Windsurf or any other client that reads a JSON config:

{
  "mcpServers": {
    "fxabsolute": { "command": "npx", "args": ["-y", "fxabsolute-mcp"] }
  }
}

You can confirm the listing without taking our word for it — the registry answers a public API:

curl "https://registry.modelcontextprotocol.io/v0/servers?search=fxabsolute"

The published package is 8 files and 17.9 kB. It carries no telemetry, no key and no account. Before each release, 30 automated checks run every tool against the live archive — including that H1 bars land on exact hour boundaries, that aggregated OHLC never violates high ≥ max(open, close), and that the New York session opens at 09:30 local in both January and July.

Frequently asked questions

How do I install the FXAbsolute MCP server?

Run: claude mcp add fxabsolute -- npx -y fxabsolute-mcp. The package is published on npm as fxabsolute-mcp, so nothing needs cloning or building. Clients that use a JSON config take {"command":"npx","args":["-y","fxabsolute-mcp"]}.

Is the server listed in the official MCP registry?

Yes, as io.github.varsansri/fxabsolute since 28 August 2026. You can verify it by querying https://registry.modelcontextprotocol.io/v0/servers?search=fxabsolute, which returns the entry and the npm package it resolves to.

Is there an MCP server for forex data?

Yes. FXAbsolute publishes a free, MIT-licensed MCP server exposing 28,412,683 real OHLC bars across 15 forex, index and crypto instruments, plus tools to drive a live chart. It works with Claude Code, Claude Desktop, Cursor and any MCP-compatible client.

Does it need an API key?

No. There is no key, no account and no rate limit. The candle data is served as static files, so there is nothing to authenticate against.

What timeframes are available?

Everything is stored at one-minute resolution and aggregated on demand to M5, M15, M30, H1, H4, D1 and W1. Aggregation happens on true clock boundaries, so an H1 bar starts exactly on the hour.

Does the data include volume?

No. The archive is pure OHLC with no volume field and no bid/ask spread. Strategies that depend on volume, VWAP or volume profile cannot be tested against it, and scalping results will look better than they would live because the spread is absent.

Can the agent see my live chart?

Yes, if you pair it. The fxa_connect_chart tool joins an agent to a running browser session using a short code you read out. Because pairing uses a broadcast channel rather than a local socket, the chart and the agent do not need to be on the same machine.

How far back does the data go?

Most instruments start on 3 January 2021 and run to 30 April 2026. Crypto and index instruments extend to August 2026. Exact per-instrument ranges are listed in the coverage table above.

See the chart your agent is driving

FXAbsolute is a free browser-based backtester with bar-by-bar replay and a full trade journal. No account, no download.

Open FXAbsolute →