# FX Trading With Fable 5: Live Macro Research

Canonical: https://fxmacrodata.com/articles/how-to-use-claude-fable-5-with-fxmacrodata-for-fx-trading
Author: Robert Tidball
Published: 2026-06-10T03:55:00Z

Turn live macro evidence into a source-linked FX release brief with Claude Fable 5. Use MCP or controlled REST, then validate the response before it reaches a trader or workflow.

**Quick answer:**Claude Fable 5 can turn current macro evidence into a source-linked FX release brief. Use MCP when the assistant should retrieve the evidence itself, or REST when your application must control retrieval and validation. Keep order placement, position sizing, and risk-limit changes outside the model path.

[Claude Fable 5](https://www.anthropic.com/claude/fable) is Anthropic's highest-capability widely released model for long-running work. FX trading with Fable 5 works best when it compares a release calendar, fresh announcements, central-bank language, positioning, and pair context before a desk receives a concise, reviewable brief.

The useful boundary is simple: FXMacroData provides the evidence, Fable compares and explains it, and deterministic application controls decide what reaches a trader. The output should make evidence, uncertainty, and the required review visible. It is not a price feed, risk engine, or order executor.

**The practical output**

For one pair and one event window, the workflow returns a decision packet: confirmed facts, a conditional macro interpretation, what would invalidate it, the missing inputs, source paths, and`review_required: true`. That is useful to a trader, analyst, or downstream policy gate because it can be checked in minutes.

**Fit**

**Use this for**

Pre-release research, event monitoring, macro handovers, scenario comparisons, and analyst-assistant workflows.

**Choose MCP when**

A Claude agent or coding assistant should discover FXMacroData tools and retrieve current facts during the task.

**Keep separate**

Execution, leverage, position sizing, and any change to risk limits or account permissions.

## Fable 5 Trading Bot vs. FX Research Assistant

A Claude Fable 5 trading-bot workflow should separate research from execution. Fable can retrieve, compare, and explain source-labelled macro evidence. It should not receive broker credentials, alter a risk limit, calculate a final position size, or place an order.

Research assistant Execution system Summarises releases, identifies missing evidence, and presents conditional scenarios with source paths. Applies deterministic permissions, sizing, limits, and order-routing rules outside the model. Produces a brief for an analyst or a policy gate to review. Acts only after the required controls and approvals have passed.

This division is useful even when the workflow is fully automated: it makes the model output auditable and lets the execution layer reject a brief that is incomplete, stale, or outside its mandate.

## What Fable 5 Adds to FX Research

Fable is valuable when the task is more than a single lookup. For example, a[USD/JPY](/dashboard/USD_JPY) briefing might need recent[Japan inflation](/api-data-docs/jpy/inflation) , a[Bank of Japan](/dashboard/press-releases/jpy) communication check, the next event on the[release calendar](/dashboard/release-calendar) , and[JPY COT](/dashboard/cot/jpy) positioning before the model can describe a directional setup responsibly.

As of July 2026, the API model ID is`claude-fable-5`. Anthropic lists a 1 million-token context window, 128k maximum output, always-on adaptive thinking, and $10 per million input tokens plus $50 per million output tokens. These capabilities help with long research packets, but they do not make a larger prompt inherently better.

**Use a decision packet, not a data dump**

Send the release or policy question, the smallest current evidence set needed to answer it, source paths, timestamps, and explicit missing-data fields. Fable 5 uses a newer tokenizer that can turn the same text into more tokens than earlier Claude models, so compact, structured context is better for both reviewability and cost.

## Choose MCP or REST

Path Use it when Why it fits**FXMacroData MCP**A Claude agent or MCP-native host should discover macro-data tools during a task. The model can request current evidence rather than relying on remembered values.**Anthropic MCP connector**Your app calls the Claude Messages API and wants it to connect to a remote MCP server. Claude can call approved FXMacroData tools directly through the API.**FXMacroData REST**Your production application owns caching, retries, audit records, and its own retrieval order. Your code decides exactly what evidence reaches the model and validates the result.

For an AI-facing workflow, start with MCP. For a production trading application, keep REST available as the controlled fallback or primary application boundary. Both paths should produce the same evidence contract: timestamped facts, source paths, missing data, and a reviewable output object.

## Build a Release-First Research Loop

The highest-value prompt is usually not "what should I trade?" It is "which confirmed event matters most, what has already been priced, and what would invalidate the current view?" Start with the event, then add the smallest set of facts needed to assess the pair.

**1. Retrieve**

Get confirmed calendar rows, recent announcements, pair context, policy communication, and positioning.

**2. Bound**

Give Fable one pair, one event window, and the exact questions it must answer.

**3. Structure**

Require facts, interpretation, invalidation, missing inputs, and source paths in the response.

**4. Review**

Apply deterministic freshness and risk rules before the brief is shown, alerted, or escalated.

**Research scenario**

Before a Japanese inflation release, retrieve the confirmed release time, recent inflation history, latest policy-rate context, JPY positioning, and USD/JPY spot. Ask Fable to state the lead driver, the scenario that would change the bias, and the next observation required. A trader can then challenge or approve the brief with the evidence in view.

## Define the Research Brief Before Connecting the Model

Start with the acceptance test, not the prompt. A useful FX brief should fail closed when a required fact is missing or stale. That prevents an articulate response from being mistaken for a complete research record.

Brief field Evidence required What to do when it is absent**Event state**Confirmed scheduled time or released observation with a timestamp. Return`review_required: true`; do not imply the event has occurred.**Macro claim**Released value, prior value, units, and source path. List the claim as unavailable rather than filling it from model memory.**Pair context**Dated FX reference observation and its source frequency. Describe it as reference context, not an intraday response.**Surprise assessment**Comparable consensus or forecast, plus any required core measure. State that surprise assessment is not available.**Action boundary**Research-only mandate and an explicit reviewer or policy gate. Reject the output from any execution or account-control workflow.

A compact response contract makes the brief auditable:

```
{
  "pair": "USD/JPY",
  "as_of": "2026-07-14T12:30:00Z",
  "event_state": "released",
  "lead_driver": "Japan inflation surprise",
  "interpretation": "conditional; no order recommendation",
  "invalidation": "Policy expectations do not reprice after the release",
  "missing_data": ["market consensus", "intraday FX response"],
  "source_paths": ["/v1/calendar/jpy", "/v1/announcements/jpy/inflation"],
  "review_required": true
}
```

## Worked Example: June US CPI and USD/JPY

A released event is the best way to test whether a Fable workflow can keep facts, interpretation, and uncertainty separate. FXMacroData records the June 2026 US CPI release from the[Bureau of Labor Statistics](https://www.bls.gov/cpi/) at 08:30 ET on 14 July. The release was 3.5% year over year and -0.4% month over month, after May readings of 4.2% year over year and 0.5% month over month.

Evidence packet Verified input Use in the brief[US CPI](/united-states/inflation#api-docs) June: 3.5% YoY; -0.4% MoM. May: 4.2% YoY; 0.5% MoM. State the released values and the change from the prior reading. Release timestamp 14 July 2026, 08:30 ET. Confirm that the event is released before interpreting it.[USD/JPY](/dashboard/USD_JPY) reference context 162.2206 on 14 July 2026. Provide pair context without claiming an intraday reaction from a daily reference observation. Not supplied Market consensus, core CPI, and an intraday event-response series. List these as missing rather than inferring a surprise or a trade outcome.

US CPI annual-rate comparison chart.

Chart**Takeaway:**the annual US CPI reading was 0.7 percentage points lower in June than in May. This describes the released values only; the evidence packet still needs consensus, core CPI, and intraday USD/JPY data before it can assess a surprise or price response.

Give Fable a bounded prompt that makes the evidence limit explicit:

```
Prepare a USD/JPY macro research brief using only the supplied evidence.

Facts: June US CPI was 3.5% YoY and -0.4% MoM; May was 4.2% YoY and 0.5% MoM.
The release time was 14 July 2026 at 08:30 ET. USD/JPY was 162.2206 on the
14 July reference date. Market consensus, core CPI, and intraday price response are not supplied.

Return: confirmed facts, conditional macro interpretation, missing evidence,
invalidation conditions, source paths, and review_required. Do not recommend an order.
```

The correct result is not a buy or sell instruction. It should identify the lower CPI readings, explain that they are insufficient on their own to establish a policy repricing or USD/JPY reaction, and flag the missing consensus, core measure, and intraday data for review. This is the quality bar to test before a workflow is used around a live release.

## Use the Anthropic MCP Connector

Anthropic's MCP connector lets the Messages API connect to a public remote MCP server. FXMacroData exposes its hosted tool surface at[FXMacroData MCP](/documentation/mcp-server) . The connector supports tool configuration, OAuth bearer tokens, and multiple remote servers; local STDIO servers are not connected directly through this API feature.

Use the current MCP client beta header and an environment-held bearer token. Do not place credentials in model-visible text. Start with a narrow toolset, then broaden it only after you can demonstrate that each tool improves the brief.

```
import os
from anthropic import Anthropic

client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
response = client.beta.messages.create(
    model="claude-fable-5",
    max_tokens=1200,
    system="Use tool results for current FX facts. Return facts and uncertainty.",
    messages=[{"role": "user", "content": "Prepare a EUR/USD release-risk brief."}],
    mcp_servers=[{
        "type": "url",
        "name": "fxmacrodata",
        "url": "https://mcp.fxmacrodata.com",
        "authorization_token": os.environ["FXMD_MCP_BEARER"],
    }],
    tools=[{
        "type": "mcp_toolset",
        "mcp_server_name": "fxmacrodata",
        "default_config": {"enabled": False},
        "configs": {
            "release_calendar": {"enabled": True},
            "indicator_query": {"enabled": True},
            "forex": {"enabled": True},
        },
    }],
    betas=["mcp-client-2025-11-20"],
)
```

The goal is not to expose every possible action to a model; it is to give it the few current facts needed to answer a defined research question. Keep the final format explicit, and preserve the tool calls and returned source paths with the response. Anthropic's MCP connector supports remote HTTP servers and tool calls; use a client-managed MCP path when you need local servers, prompts, resources, or more direct connection control.

## Use REST Inside a Controlled Application

REST is often the better production boundary when your application needs deterministic retrieval, caching, retry behavior, and a durable audit trail. The API fetch happens on your server before Fable sees any market context.

```
import os
import requests

API_ROOT = "https://api.fxmacrodata.com/v1"

def fxmd_get(path: str, **params) -> dict:
    response = requests.get(
        f"{API_ROOT}{path}",
        params=params,
        headers={"X-API-Key": os.environ["FXMD_API_KEY"]},
        timeout=20,
    )
    response.raise_for_status()
    return {"source_path": f"/v1{path}", "payload": response.json()}
```

Build only the evidence needed for the current question. For example, a EUR/USD event brief may call`/calendar/usd`,`/announcements/usd/inflation`, and`/forex/eur/usd`, then send the returned rows and source paths to Fable.

```
import json
from anthropic import Anthropic

client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
context = {
    "calendar": fxmd_get("/calendar/usd"),
    "inflation": fxmd_get("/announcements/usd/inflation"),
    "spot": fxmd_get("/forex/eur/usd"),
}
message = client.messages.create(
    model="claude-fable-5",
    max_tokens=1200,
    system="Use only supplied evidence. Return JSON with facts, risks, and gaps.",
    messages=[{"role": "user", "content": json.dumps(context)}],
)
```

This pattern makes the application responsible for the factual boundary. The model can organize, compare, and explain the evidence, but it cannot quietly substitute a remembered release value for a current response.

## Handle Fable Refusals and Fallbacks

Fable can return`stop_reason: "refusal"`as a successful response rather than an HTTP error. Treat that as an explicit workflow state: discard any partial brief, record the refusal, and use a supported fallback only when the same evidence and output contract can be applied.

```
import json
import os
from anthropic import Anthropic

client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
response = client.beta.messages.create(
    model="claude-fable-5",
    max_tokens=1200,
    system="Use only supplied evidence. Return the required research-brief JSON.",
    messages=[{"role": "user", "content": json.dumps(context)}],
    fallbacks=[{"model": "claude-opus-4-8"}],
    betas=["server-side-fallback-2026-06-01"],
)

if response.stop_reason == "refusal":
    raise RuntimeError("No model returned a usable research brief")

served_by_fallback = any(
    item.type == "fallback_message"
    for item in (response.usage.iterations or [])
)
```

Server-side fallback is currently a beta feature for the Claude API and Claude Platform on AWS. On other platforms, use equivalent client-side retry logic. Instrument refusals and fallback-served responses separately: a refusal is an HTTP 200, so an error-rate dashboard will not show it.

## Validate the Research Output

A good Fable workflow produces a decision-support object, not an executable instruction. Validate it before any downstream alert or workflow sees it.

**Minimum controls**

- **Evidence completeness:**reject market claims that lack source paths or report missing inputs as complete.

- **Freshness:**compare each source timestamp with the event window before returning a brief.

- **Schema validity:**reject output that does not match the expected fields and allowed values.

- **Pair and action limits:**constrain the output to supported pairs and research-only actions.

- **Human or policy approval:**keep execution, leverage, and risk-limit changes outside the model path.

Measure the workflow on a fixed set of past and live-like scenarios. The useful questions are whether Fable requests the right data, distinguishes scheduled events from released values, identifies missing evidence, and returns a brief that a reviewer can approve or challenge quickly.

## Fable 5 Operational Details

Detail What to account for**Adaptive thinking**Fable uses adaptive thinking only. Do not send a request that disables thinking or relies on manual extended-thinking budgets.**Refusals and fallbacks**Handle`stop_reason: "refusal"`as a normal response state. On eligible Claude API surfaces, server-side fallback can retry a refused request; the fallback result needs the same evidence and review checks.**Token accounting**Use Anthropic's token-counting API to measure real prompts. Fable's tokenizer can produce roughly 30% more tokens than models before Opus 4.7 for the same text.**Data retention**The Anthropic MCP connector is not zero-data-retention eligible. Tool definitions and execution results follow Anthropic's standard retention policy, so confirm that the evidence packet fits your data-handling requirements.

## Get Started

Start with one pair and one confirmed event. Connect an MCP-native assistant to the[FXMacroData MCP server](/documentation/mcp-server) , or build a small server-side REST helper against the[FXMacroData API reference](/documentation/reference) . Then test the same research contract around a known event such as[US CPI](/united-states/inflation#api-docs) before extending it to more pairs.

**Related FXMacroData guides**

- [Explore the AI Trading Hub](/ai-trading)

- [How to Use LangChain with FXMacroData](/articles/how-to-use-langchain-with-fxmacrodata)

- [How to Use OpenAI Agents SDK with FXMacroData](/articles/how-to-use-openai-agents-sdk-with-fxmacrodata)

- [Backtest Your Agent Logic, Not Just Your Strategy](/articles/backtest-your-agent-logic-not-just-your-strategy)

- [Why Trading Agents Need Model Access Fallbacks](/articles/ai-export-controls-operational-risk-for-trading-agents)

**Sources**

The product links below and the example inputs were checked on 20 July 2026. This guide describes research workflow controls, not investment advice or a recommendation to trade any instrument.

- [Anthropic: Claude Fable 5](https://www.anthropic.com/claude/fable)

- [Anthropic Claude Platform: models overview](https://platform.claude.com/docs/en/about-claude/models/overview)

- [Anthropic Claude Platform: Fable 5 integration changes](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5)

- [Anthropic Claude Platform: API release notes](https://platform.claude.com/docs/en/release-notes/overview)

- [Anthropic Claude Platform: MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector)

- [Anthropic Claude Platform: refusals and fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback)

- [Anthropic Claude Platform: token counting](https://platform.claude.com/docs/en/build-with-claude/token-counting)

- [Anthropic Claude Platform: API and data retention](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention)

- [US Bureau of Labor Statistics: Consumer Price Index](https://www.bls.gov/cpi/)

- [FXMacroData: US CPI data and API documentation](https://fxmacrodata.com/united-states/inflation#api-docs)

- [FXMacroData: USD/JPY dashboard](https://fxmacrodata.com/dashboard/USD_JPY)

- [FXMacroData production OpenAPI schema](https://api.fxmacrodata.com/openapi.json)

Source: FXMacroData
