# Fxapis Mt5 MCP server

Source: https://glimind.com/server/mcp-registry%2Fcom.fxapis%2Fmt5
Registry id: `mcp-registry/com.fxapis/mt5`
Status: live (checked 2026-10-27T01:26:38.067Z)

## Verdict

Fxapis Mt5 MCP server answered 100% of Glimind's liveness checks over 30 days, better than 42% of MCP servers, with 333 ms median handshake and 0 outages in 90 days. Its agent-readiness grade is A (96/100) across 30 tools, costing an agent about 11,492 tokens to load. Checked every few minutes; no tool is ever called.

## Measurements (30 days)

| Metric | Value | Better than |
|---|---|---|
| Uptime, 30 days | 100% | 42% of MCP servers |
| Median handshake latency | 333 ms | 59% of MCP servers |
| p95 handshake latency | 473 ms | — |
| Checks in 30 days | 2,231 | — |
| Outages, 90 days | 0 | — |
| Median recovery | — | — |
| Agent-readiness score | 96/100 (A) | 82% of MCP servers |
| Tools | 30 | — |
| Tool-list size for an agent | ~11,492 tokens | 16% of MCP servers |
| Days observed | 23 | — |

## Install

```json
{
  "mcpServers": {
    "fxapis-mt5-mcp-server": {
      "type": "http",
      "url": "https://api.fxapis.com/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http fxapis-mt5-mcp-server https://api.fxapis.com/mcp
```

## Tools (30)

- `bring_accounts_online`: Starts each account's MT5 terminal in the cloud and logs it in; poll get_account_status until `ready`. Places no trades and is safe to repeat. Example: {"accoun
- `calculate`: The margin an order would need, or its profit between two prices, as the broker computes it; opens nothing. The account must be online. Example: {"account_id": 
- `cancel_multi_account_order`: Calls off a multi-account order on the user's real broker accounts (or demo) before anything is sent. Once orders went out, close the positions instead. Example
- `cancel_order`: Cancels a pending order on the user's real broker account (or demo) that has not triggered. If it triggered there is a position to close instead. Example: {"ord
- `close_position`: Closes a position on the user's real broker account (or demo), whole or by volume. Sent twice it opens the opposite position, so reuse an idempotency_key only t
- `get_account`: One account: login, broker, state, environment, and its last-read balance, equity and free margin. Example: {"account_id": "<id from list_accounts>"}
- `get_account_figures`: Balance, equity, margin, free margin and margin level as decimal strings in the account currency, read every 15 s while online. Set fresh to ask the terminal no
- `get_account_overview`: One account in one call: state, environment, balance and equity, and its largest open positions with their total P/L. Start here when asked how an account is do
- `get_account_status`: Just an account's state, cheap enough to poll every few seconds after bring_accounts_online until `ready`. States invalid_credentials, needs_2fa, needs_certific
- `get_market_hours`: Whether a market is open now on this account's broker, and when it next opens or closes, in UTC. A broker holiday missing from its schedule still refuses orders
- `get_multi_account_order`: One multi-account order and each account's result; poll it after placing one. An account left `unresolved` must not be resent, so poll its order instead. Exampl
- `get_order`: The authoritative record of one order: what was asked, the broker's answer, fill volume and price. Poll it after ORDER_UNRESOLVED until it leaves `unknown`. Exa
- `get_price_history`: Recent price bars (candles: open, high, low, close, tick volume, spread) for one symbol from this account's broker, oldest first with bar-open times in UTC, for
- `get_quotes`: Live bid and ask for up to 20 symbols or instruments from this account's broker; a closed market answers its last price with marketOpen false. The account must 
- `get_symbol_snapshot`: One symbol on one account in one call: its specification, live quote, whether the market is open, and the margin for a volume. Use it before proposing a trade. 
- `get_usage`: This month's usage against the plan, and its cost so far in minor units (9900 is $99.00). Over quota opening is refused, closing never is. Example: {}
- `get_workspace`: This connection's workspace: its plan, the plan's limits and features, and whether trading is switched off. Call it first when unsure what the user can do. Exam
- `list_account_instruments`: Each instrument's symbol on this account's broker: mapped, ambiguous (with candidates) or missing. Trade the mapped symbol. Example: {"account_id": "<id>", "que
- `list_accounts`: The workspace's MT5 accounts with id, login, server, state and environment (demo or live); use the id, not the login, everywhere else. Only `ready` accounts tra
- `list_deals`: An account's deal history as the broker recorded it, newest first, including stops that fired, swaps and manual trades. Realised profit is here. Example: {"acco
- `list_instruments`: Markets named once (XAUUSD, US30, BTCUSD) whatever each broker calls them. list_account_instruments gives one account's own symbol for each. Example: {"category
- `list_multi_account_orders`: Recent multi-account orders (one trade on many accounts), each with its per-account result. Pages with limit and cursor. Example: {}
- `list_orders`: Orders placed through fxapis, newest first, for one account or all; state `unknown` means still being confirmed, so never resend those. Pages with cursor. Examp
- `list_positions`: Open positions on one account as last observed; brokerPositionId is what close_position and modify_position take. Pages with limit and cursor. Example: {"accoun
- `modify_position`: Moves a position's stop loss or take profit on the user's real broker account (or demo); null removes a level. Remove a stop loss only when the user asks. Examp
- `place_market_order`: Opens a position at market on the user's real broker account (or demo) and waits for the broker; confirm account, symbol, side and volume with the user first. O
- `place_multi_account_order`: Places the same market order on many of the user's real broker accounts (or demo) at once and returns at once; follow it with get_multi_account_order. Confirm t
- `place_pending_order`: Places a limit or stop order on the user's real broker account (or demo) that waits at the broker; success means working, not filled. Confirm it with the user f
- `search_broker_servers`: MT5 broker servers matching a broker or server name, servers seen working on fxapis first. A server not listed can still be used. Example: {"query": "icmarkets"
- `take_account_offline`: Stops an account's terminal; open positions and their stops stay at the broker. Refused while an order is in flight. Example: {"account_id": "<id>"}

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
