mcpbeat

Forex-GPT MCP Server

io.github.hatgit/forex-gpt-mcp
answering

Forex-GPT MCP Server is answering right now. Last checked 15 min ago. It exposes 45 tools.

AI-powered forex and crypto trading analysis with real-time data across 127+ instruments.

Uptime history 39 hours of history
39 hours agonow
100.0%
Uptime 24h
91 of 91 checks
45
Tools
read from the server
456 ms
Response time
average over 24h
open, no key
Access
sse

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 15 min ago.

run in your terminal
claude mcp add forex-gpt-mcp --transport http https://mcp.forex-gpt.ai/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "forex-gpt-mcp": {
      "url": "https://mcp.forex-gpt.ai/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.forex-gpt-mcp]
url = "https://mcp.forex-gpt.ai/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "forex-gpt-mcp": {
      "url": "https://mcp.forex-gpt.ai/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "forex-gpt-mcp": {
      "url": "https://mcp.forex-gpt.ai/mcp"
    }
  }
}

Available tools 45

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

trade
get_trade_details
Get full details of a specific trade (Open or Closed). Useful to investigate a trade that disappeared or to see its full history.
trade_limit_order
Place a Limit Order. price: The limit price to trigger the order. take_profit: ABSOLUTE PRICE (e.g. 1.1250). stop_loss: ABSOLUTE PRICE (e.g. 1.1100). take_profit_distance: RELATIVE PIPS (e.g. 0.0050). stop_loss_distance: RELATIVE PIPS (e.g. 0.0020). trailing_stop_distance: RELATIVE DISTANCE for trailing stop. guaranteed_stop_loss: True for GSLO. expiry: ISO 8601 string (e.g. "2023-12-31T23:59:00Z"). Defaults to GTC if omitted.
trade_market_order
Place a Market Order. units: Positive for Buy, Negative for Sell take_profit: ABSOLUTE PRICE (e.g. 1.1250). stop_loss: ABSOLUTE PRICE (e.g. 1.1100). take_profit_distance: RELATIVE PIPS (e.g. 0.0050). Use this OR absolute price. stop_loss_distance: RELATIVE PIPS (e.g. 0.0020). Use this OR absolute price. trailing_stop_distance: RELATIVE DISTANCE for trailing stop (e.g. 0.0020). guaranteed_stop_loss: True to use GSLO (Premium, requires specific SL distance rule).
trade_modify_trade
Modify an existing trade's Stop Loss and Take Profit. You can use absolute prices OR relative distances. Only provided fields will be updated. Args: trade_id: The ID of the open trade to modify. take_profit: New ABSOLUTE price. stop_loss: New ABSOLUTE price. take_profit_distance: New RELATIVE distance (e.g. 0.0050). stop_loss_distance: New RELATIVE distance (e.g. 0.0020).
trade_stop_order
Place a Stop Order (Momentum/Breakout Entry). Use this to Buy ABOVE market price or Sell BELOW market price. Args: instrument: Asset symbol (e.g. 'EUR_USD') units: Positive for Buy, Negative for Sell price: The STOP price to trigger the order. expiry: ISO 8601 string (e.g. "2023-12-31T23:59:00Z"). Defaults to GTC if omitted. take_profit: ABSOLUTE PRICE. stop_loss: ABSOLUTE PRICE. take_profit_distance: RELATIVE DISTANCE (e.g. 0.0050). stop_loss_distance: RELATIVE DISTANCE (e.g. 0.0020). trailing_stop_distance: RELATIVE DISTANCE for trailing stop. guaranteed_stop_loss: True for GSLO.
analyze
analyze_asset
Run a one-shot technical analysis for a single asset/timeframe. Args: asset: Asset symbol (e.g., EUR_USD, XAU_USD) timeframe: Timeframe for analysis (D, H4, H1, etc.) priceType: Price type - B (bid), A (ask), or M (mid) timeoutSec: Timeout in seconds (5-120) Returns: Analysis results with status, signals, and recommendations
analyze_timeframes
Analyze a single asset across multiple timeframes simultaneously. Args: asset: Asset symbol (e.g., EUR_USD) timeframes: List of timeframes (e.g., ["D", "H4", "H1"]) priceType: B (bid), A (ask), or M (mid) timeoutSec: Overall timeout in seconds (30-300) Returns: Multi-timeframe analysis results
analyze_watchlist
Analyze multiple assets from the user's SAVED watchlist in parallel. Args: timeframe: Timeframe (D, H4, H1, etc.) priceType: B (bid), A (ask), or M (mid) timeoutSec: Overall timeout in seconds (30-300) (optional) timeframes: list of timeframes (timeframes mode) – if provided, supersedes timeframe (optional) max_assets: limit how many watchlist assets to analyze (default: all) Returns: Results for all watchlist assets with analysis data
market
get_market_categories
Get all available market categories and instrument counts. Useful for understanding what categories can be queried with get_market_hours. Returns: List of categories with counts and sample instruments.
get_market_hours
Get trading hours for instruments. Use for session planning or bulk data fetch. Args: instrument: Specific instrument (e.g., "EUR_USD", "US30_USD"). If None, returns all. category: Filter by category (e.g., "Forex CFDs", "Index CFDs", "Commodity CFDs", "Metals CFDs", "Bonds CFDs"). include_status: Include current open/closed status (default True). Returns: For each instrument: - timezone: IANA timezone (e.g., "America/New_York") - windows: Array of {days, open, close} in LOCAL time - windows_utc: Same windows converted to UTC - category: Asset category - is_open: Current status (if include_status=True) - displayName: Human-readable name Examples: - get_market_hours(instrument="EUR_USD") - Single instrument - get_market_hours(category="Index CFDs") - All indices - get_market_hours(include_status=False) - All instruments, no status check
is_market_open
Check if a specific market is currently open for trading. Args: instrument: The OANDA instrument name (e.g., "EUR_USD", "US30_USD", "XAU_USD"). at_time: Optional ISO8601 datetime to check (e.g., "2024-01-15T14:30:00Z"). Defaults to current time if not provided. Returns: - instrument: The queried instrument - is_open: Boolean - True if market is open - checked_at_utc: When the check was made (UTC) - checked_at_local: Same time in instrument's local timezone - timezone: The instrument's native timezone - category: Asset category (Forex CFDs, Index CFDs, etc.) - displayName: Human-readable name - reason: Why the market is open/closed - schedule: Schedule type if available (e.g., "24/5", "24/7") - dstAffected: Whether DST affects trading hours Example: is_market_open(instrument="US30_USD") is_market_open(instrument="SUGAR_USD", at_time="2024-01-15T10:00:00-05:00")
chart
chart_chat_proxy
Proxy to the Flask /api/chart-chat endpoint using the caller's bearer token. Keeps token accounting/auth consistent with the web app while exposing chat via MCP.
get_chart_data
Retrieve OHLC (candlestick) data for charting. Args: asset: Asset symbol (e.g., EUR_USD) timeframe: Timeframe (D, H4, H1, etc.) count: Number of candles (50-5000) Returns: Candlestick data with timestamps, open, high, low, close prices
close
close_position
Close position for an instrument.
close_trade
Close a specific trade (fully or partially).
instrument
get_instrument_cache_status
Check the status of the instrument data cache. Returns: - ageHours: How old the cached data is - isStale: True if data is older than 24 hours - lastRefreshed: When the cache was last updated - instrumentCount: Number of instruments in cache - recommendation: Whether refresh is recommended
get_instrument_specs
Get instrument specifications (precision, limits, margin, financing rates). Args: instrument: Specific instrument (e.g., "EUR_USD"). If None, returns all or filtered by type. type_filter: Filter by type: "CURRENCY", "METAL", "CFD". If None, returns all. include: List of field groups to include. Options: ["precision", "limits", "margin", "financing", "gslo", "trailing"] If None, includes all fields. Returns: For each instrument: - displayName: Human-readable name - type: CURRENCY, METAL, CFD - precision: pip location, display precision, trade units precision - limits: min trade size, max order units, max position size - margin: rate and calculated leverage (e.g., "30:1") - financing: longRate, shortRate, tripleSwapDay - gslo: guaranteed stop loss mode, min distance, premium - trailingStop: min/max distance - meta: cache age, staleness status Examples: - get_instrument_specs(instrument="EUR_USD") - Single instrument - get_instrument_specs(type_filter="METAL") - All metals - get_instrument_specs(instrument="XAU_USD", include=["precision", "margin"]) - Specific fields
open
get_open_positions
List open positions (Net Exposure per instrument). Useful to see total Long/Short units and P&L per pair.
get_open_trades
List open trades.
watchlist
add_to_watchlist
Add a new asset to your persistent watchlist. Args: asset: Asset symbol (e.g. 'EUR_USD', 'BTC_USD')
get_watchlist
View the current assets in your saved watchlist. Returns: List of saved assets and count.
account
get_account_history
Get account transaction history (e.g. closed trades, order fills). Useful for finding past trades, reporting, or auditing. Args: from_time: Start time (RFC3339 format, e.g. "2023-05-01T00:00:00Z"). to_time: End time (RFC3339). type_filter: Comma-separated types (e.g. "ORDER_FILL,TRADE_CLOSE"). To see closed trades, use "TRADE_CLOSE".
assets
list_assets
Return supported asset symbols from config.OANDA_UNIVERSE. Optional: • filter: substring (case-insensitive) to narrow the list • asset: specific symbol to test membership
blog
get_blog_articles
Get recent articles from the Forex-GPT blog feed. Args: max_results: Maximum number of articles to return (1-50, default: 10) Returns: List of recent blog articles with titles, URLs, summaries, images, and publication dates
cancel
cancel_pending_order
Cancel a pending (unfilled) Limit or Stop order. Args: order_id: The OANDA ID of the order to cancel.
economic
economic_events
Fetch upcoming economic events via the TradingView proxy source. Args: fromDays: Start of date range (days from now, 0-90) toDays: End of date range (days from now, 0-90) Returns: List of economic events with importance, country, and timing
fetch
fetch
Retrieve complete forex analysis by ID. Args: id: Analysis ID in format "ASSET_TIMEFRAME" (e.g., "EUR_USD_D", "XAU_USD_H4") Returns: Full analysis document with technical indicators, signals, and recommendations
from
remove_from_watchlist
Remove an asset from your persistent watchlist. Args: asset: Asset symbol to remove
health
health
Comprehensive health and status check including optional upstream dependencies. Args: checkOpenAI: Verify OpenAI API connectivity checkTradingView: Verify TradingView API connectivity checkOANDA: Verify OANDA API connectivity Returns: Health status with environment info and dependency checks
help
help_tutorial
Master tutorial for MCP tools: usage tips, key parameters, and suggested flows.
live
get_live_heatmap
Generates a real-time Sentiment Heatmap snapshot. Behavior: 1. If 'assets' are provided, scans those specific assets. 2. If 'assets' not provided, scans the user's saved Watchlist. 3. If Watchlist is empty, scans a default list of popular global assets. Args: assets: Optional list of symbols. timeframe: Granularity (e.g. 'H1', 'D').
oanda
delete_oanda_credentials
Remove/Delete your stored OANDA API Key and Account ID. Use this if you want to clear your credentials or switch accounts.
order
get_order_history
Get OANDA order history (FILLED, CANCELLED, TRIGGERED, etc.). state: "ALL", "PENDING", "FILLED", "TRIGGERED", "CANCELLED". count: Max 500.
pending
get_pending_orders
List all PENDING orders (Limits, Stops, Entry Orders). These are orders waiting to be filled.
price
get_price_stream_url
Return a short-lived URL for the raw price stream (SSE) for given instruments. The URL expires after ~10 minutes.
refresh
refresh_instrument_data
Manually refresh instrument data from OANDA API. Updates financing rates, margin requirements, and other parameters. Requires: User must have saved OANDA credentials via save_oanda_credentials. Returns: - success: Boolean indicating if refresh succeeded - message: Status message - count: Number of instruments refreshed - refreshedAt: Timestamp of refresh Note: This fetches fresh data from OANDA's practice environment. The cache is automatically refreshed on server startup if data is >24 hours old.
replace
replace_pending_order
Replace (Modify) an existing pending order. Basically cancels the old one and places a new one atomically. Args: order_id: ID of the order to replace. type: 'LIMIT' or 'STOP'. (All other args same as placement tools)
save
save_oanda_credentials
Save your OANDA API Key and Account ID securely. These are required before you can trade.
scan
scan_market
Scans the entire market universe (Forex, Crypto, Metals, Indices) to find the strongest trading opportunities. Args: timeframes: List of timeframes to scan (e.g. ["H1", "H4", "D"]). Default is ["H8"]. min_score: Minimum absolute sentiment score (0-100) to include. Default 80 (Bullish/Bearish). limit: Maximum number of results to return. Default 6. Returns: A list of the top opportunities ranked by sentiment strength.
search
search
Search forex analysis results by asset name, timeframe, or keywords. Returns a list of available analyses matching the search criteria. Args: query: Search query (e.g., "EUR_USD", "daily analysis", "gold", "bitcoin") Returns: Search results with IDs for fetching full analysis
sentiment
get_sentiment_stream_url
Return a short-lived URL for the sentiment stream (SSE) for given instruments and granularity. The URL expires after ~10 minutes.
server
get_server_time
Return the server's current UTC timestamp (ISO 8601).
spreads
get_spreads
Checks the current liquidity and trading cost (spread) for an asset. Useful for checking if a market is too expensive to trade right now. Args: asset: The asset symbol (e.g., "EUR_USD", "XAU_USD") Returns: Current spread, average spread, and cost in basis points.
token
get_token_balances
Return the current user's token balances from Auth0 app_metadata. Uses _safe_profile() so that the same values shown inside AI analysis (token_quota, purchased_tokens, total_token_usage, last_reset, email, user_id) are returned in a simple JSON structure.
trading
get_trading_account
Get trading account summary (balance, margin).

Endpoints

URLTransportStateLatencyChecked
https://mcp.forex-gpt.ai/mcp sse answering 420 ms 15 min ago

Forex-GPT MCP Server — questions

Answers built from our own checks of this server.

What can Forex-GPT MCP Server do?
It exposes 45 tools, read directly from the server on our last check. Among them: add_to_watchlist, analyze_asset, analyze_timeframes, analyze_watchlist, cancel_pending_order, chart_chat_proxy and 39 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Forex-GPT MCP Server mostly used for?
Its tools cluster around trade, analyze and market. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Forex-GPT MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 456 ms. The bar chart above shows every period we have measured.
How do I connect Forex-GPT MCP Server?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Forex-GPT MCP Server need an API key?
No. Forex-GPT MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 45 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Forex-GPT MCP Server?
It answers our handshake in 456 ms on average, which is faster than 26% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.