Home / Developers
MCP connector · read-only

ZakuraFX API & MCP connector

Connect Claude and other AI tools to gold and market candles, quotes, the economic calendar, the published track record and the AI desk signals. Ask for a key below. Every request is reviewed by the owner.

Read-onlyKeys approved by the ownerOne key, every planHTTPS onlyMCP · JSON-RPC 2.0

Overview

One endpoint, 10 tools. Your AI tool calls them in the middle of a conversation to read prices, candles, the calendar and the desk's own record. Nothing here places a trade or changes an account.

Endpoint
POST /api/mcp

MCP over HTTPS (encrypted), one JSON reply per request.

Tools
10 read-only

9 on every plan, 1 from Pro. Live levels and fast timeframes on paid plans.

Limits
100–300 requests an hour

Set by your plan at the moment of each request.

Authentication

Every request carries your key in the Authorization header:

Authorization: Bearer YOUR_KEY
  • The key is shown once, when you create it. Only a hash of it is stored, so a lost key cannot be shown again: delete it and create a new one.
  • The key works on every plan. What it can call follows your plan at the moment of each request: upgrade and the same key opens more, with no new key needed.
  • Changing your password switches off keys made before the change. The owner can revoke access at any time.
  • HTTPS only. Always use the https:// address: a plain http:// request is redirected, but a key sent that way has already crossed the network unencrypted, so replace it.
  • Send the key only in the Authorization header, never in a URL.

Connect

Endpoint (HTTPS, POST only): https://zakurafx.com/api/mcp

The word http in the commands below is the name of the MCP transport, not the address: the connection is always encrypted HTTPS.

Claude Code

claude mcp add --transport http zakurafx https://zakurafx.com/api/mcp \
  --header "Authorization: Bearer YOUR_KEY"

Cursor and other MCP clients that take a URL and headers

{
  "mcpServers": {
    "zakurafx": {
      "type": "http",
      "url": "https://zakurafx.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}

Claude Desktop

Claude Desktop's config file (claude_desktop_config.json) starts local programs only, so connect through the mcp-remote bridge. It needs Node.js installed.

{
  "mcpServers": {
    "zakurafx": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://zakurafx.com/api/mcp", "--header", "Authorization:${AUTH_HEADER}"],
      "env": { "AUTH_HEADER": "Bearer YOUR_KEY" }
    }
  }
}

Connecting from the claude.ai website (sign in instead of a key) is not available yet. Use Claude Code, Claude Desktop or Cursor with a key.

Raw requests

List the tools (a tool your plan does not open says which plan does):

curl -X POST https://zakurafx.com/api/mcp \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Call a tool:

curl -X POST https://zakurafx.com/api/mcp \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_candles","arguments":{"symbol":"XAUUSD","interval":"1h","limit":3}}}'

Each tool answers with the data twice: as JSON text in content for any client, and as an object in structuredContent:

Reply
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{ "type": "text", "text": "{\"symbol\":\"XAUUSD\",\"interval\":\"1h\",\"bars\":[…]}" }],
    "structuredContent": {
      "symbol": "XAUUSD", "interval": "1h", "live": true, "fetchedAt": "…",
      "bars": [{ "t": "…", "o": …, "h": …, "l": …, "c": … }, …]
    }
  }
}

Tools reference

Every tool is read-only: it reads data and never trades, writes or pays. A tool marked Pro+ answers a Free key with a short note saying which plan opens it.

list_symbolsRead-onlyFree

The chart symbols and candle timeframes this API serves, and which timeframes your plan opens.

No parameters.

get_candlesRead-onlyFree

OHLC candles for a symbol and timeframe, oldest first. Free: 15min and slower, up to 200 bars. Pro/Premium: every timeframe incl. 1min/5min, up to 1000/2000 bars. The source holds fewer on slower timeframes (about 400 on 1h, 4h and 1day, closed-market hours removed), so a large limit returns what there is.

ParameterTypeRequiredDescription
symbolstringYesChart symbol, e.g. XAUUSD. See list_symbols.
intervalstringYesTimeframe. One of: 1min · 5min · 15min · 30min · 1h · 4h · 1day.
limitintegerNoNumber of most recent bars (default 100). 1–2000.
get_quotesRead-onlyFree

Latest price for every symbol on the watchlist (gold, crypto, FX, indices, oil, silver).

No parameters.

get_news_calendarRead-onlyFree

Economic calendar: high-impact events from the last 8 hours to the next N hours (set allImpacts for every event).

ParameterTypeRequiredDescription
currenciesstring[]NoCurrency codes (default USD). Up to 12.
hoursintegerNoHow far ahead to list events (default 24). 1–168.
allImpactsbooleanNoInclude low and medium impact events too (default false).
get_headlinesRead-onlyFree

Latest market news headlines with source and time.

ParameterTypeRequiredDescription
limitintegerNoHow many (default 20). 1–50.
get_track_recordRead-onlyFree

The desk's published track record: win rate (TP1 vs SL), net R, average R, profit factor and sample size.

ParameterTypeRequiredDescription
periodstringNoPeriod (default all). One of: all · 90d · 30d.
get_desk_signalsRead-onlyFree

Setups the AI desk sent in the last 7 days, newest first (max 20). Closed setups carry levels and outcome. Entry/SL/TP of a setup that is still running are shown on Pro and Premium only.

ParameterTypeRequiredDescription
symbolstringNoA chart symbol, or "all" (default).
get_desk_statusRead-onlyFree

Whether the AI desk is running, its last post and today's scan count.

No parameters.

get_market_pulseRead-onlyFree

The latest written bias per market (board) or for gold, with key level and age.

ParameterTypeRequiredDescription
scopestringNoDefault board. One of: board · gold.
get_gold_scanRead-onlyPro+

The gold scan board with every reading: verdict and confidence per timeframe (M5-H1), H4/D1 context and consensus.

No parameters.

Plans & limits

PlanRequests an hourCandle timeframesMax barsRunning setup levelsGold scan
Free10015min, 30min, 1h, 4h, 1day200Hidden—
Pro2001min, 5min, 15min, 30min, 1h, 4h, 1day1000ShownYes
Premium3001min, 5min, 15min, 30min, 1h, 4h, 1day2000ShownYes

Bar caps are ceilings: the source holds fewer on slower timeframes (about 400 on 1h and above), so a large limit returns what there is. Every request counts toward the hourly limit, including the few your AI tool sends when it connects. Past the limit the server answers 429 with a Retry-After header. All keys together also share one site-wide limit of 600 requests an hour. Each plan has 100 of them reserved, so one plan's keys cannot use up the hour for the others; once a plan's reserve and the shared remainder are used, its keys get 429 until the hour resets.

See plans and prices

Errors

HTTPJSON-RPCMeaning
401-32600No key, or the key is wrong or revoked. Send it as "Authorization: Bearer <key>".
429-32600Your plan's hourly limit is used up, the shared site-wide limit is reached, or too many requests came from one address. Wait for the Retry-After seconds.
413-32600The request body is over 32 KB.
400-32700 · -32600The body is not JSON, is not a JSON-RPC request, or is a batch (send one message per request).
503-32603The service is briefly unavailable or paused. Retry after the Retry-After seconds.
500-32603Unexpected server error. Retry; if it repeats, tell the owner.
200-32601Unknown method.
200-32602Unknown tool, or arguments that are not an object.
200isError: trueThe tool ran but could not answer: it needs a higher plan, an argument is out of range, or the market data is unavailable. The text says which.
202—A notification was accepted (no reply body).
405—GET or DELETE on /api/mcp. This server answers POST only, with one JSON reply (no event stream).
308—A plain http:// address. The request is redirected to https://; replace any key sent this way.

Rules

  • Read-only. The API never places trades, changes your account or takes payment.
  • Signals are the desk's read, not advice. Confidence is the desk's score, never a probability.
  • One key per member. Do not share it or resell the data. The owner can revoke access at any time.

Get a key

  1. Sign in and fill in the form below: what it is for, what you will build, and how you will connect.
  2. The owner reviews and approves the request. Then come back here and create your key.
  3. Add the connector to your AI tool with the key (see Connect above).

Loading your access…

Risk disclaimer

Trading foreign exchange and CFDs on margin carries a high level of risk and may not be suitable for all investors. Past performance of any signal or analysis is not indicative of future results. You could lose some or all of your initial investment.

Join our Telegram