Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

MTContext

REMOTE · MCP.MTCONTEXT.COM · SCANNED AUG 3

Connect any MCP client to MetaTrader 4/5 to read prices, manage positions, and place trades.

36 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 5 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.mtcontext.com

# add to Claude Code
claude mcp add --transport http mtcontext-mtcontext https://mcp.mtcontext.com/mcp/v1
# ~/.codex/config.toml
[mcp_servers.mtcontext-mtcontext]
url = "https://mcp.mtcontext.com/mcp/v1"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mtcontext-mtcontext": {
      "type": "remote",
      "url": "https://mcp.mtcontext.com/mcp/v1",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mtcontext-mtcontext --url https://mcp.mtcontext.com/mcp/v1 --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  mtcontext-mtcontext:
    url: "https://mcp.mtcontext.com/mcp/v1"
// mcp.json
{
  "mcpServers": {
    "mtcontext-mtcontext": {
      "type": "http",
      "url": "https://mcp.mtcontext.com/mcp/v1"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 −26
    • Endpoint reachability: reachable → behind authorisation security
    • Authorization: unverified → fail security
    • Transport: pass → unverified security
    • Stability: 0.13 → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +3
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Jul 26 0
    • Stability: unverified → 0.03 functional
  • 28 Jul 26 57

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.mtcontext.com/mcp/v1

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.mtcontext.com CN=YR1,O=Let's Encrypt,C=US 26 Jun 2026 24 Sept 2026 RSA 2048 SHA256-RSA 5fcde56e8a00179484b023fc565d3a637e8
SANs: mcp.mtcontext.com
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f
DNSSEC insecure

Validation of mcp.mtcontext.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
mtcontext.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On connection
HTTP status 401
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
x-content-type-options nosniff
referrer-policy strict-origin-when-cross-origin

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.mtcontext.com/mcp/v1 Auth required 401
http (plaintext) http://mcp.mtcontext.com/mcp/v1 HTTPS enforced 301 https://mcp.mtcontext.com/mcp/v1
MCP tools — 73 exposed · ~7,548 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
get_tick_history ~59

Returns a sequence of raw ticks for a symbol. Result: { ticks: [{ time, bid, ask, last, volume }] }.

NameTypeReqDescription
countinteger
from_datestring
symbolstringyes

No output schema declared.

No examples provided.

get_trade_history ~41

Returns closed trades with optional date range filter.

NameTypeReqDescription
from_datestring
limitinteger
to_datestring

No output schema declared.

No examples provided.

get_trade_stats ~76

Returns aggregate statistics over closed trades: total_trades, win/loss counts, win_rate, avg_profit, avg_loss, profit_factor, total_pnl, expectancy, max_drawdown_percent, sharpe_ratio, consistency_percent.

NameTypeReqDescription
from_datestring
symbolstring
to_date

No output schema declared.

No examples provided.

list_alerts ~56

Lists all alerts for this license with status (active/fired/cancelled), condition, mode, fire count, and last_evaluated_at (stale while the terminal is disconnected — evaluation pauses). Available at Pro+ tier.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_experts ~19

Returns all Expert Advisors currently attached to open charts.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

modify_order ~119

Modifies the price, stop_loss, take_profit, or expiry of a pending order. At least one of price, stop_loss, take_profit, or expiry must be provided. Defaults to dry_run=true — set dry_run=false to execute live. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
dry_runboolean
expiryinteger
pricenumber
stop_lossnumber
take_profitnumber
ticketintegeryes

No output schema declared.

No examples provided.

modify_position ~96

Modifies the stop_loss and/or take_profit of an open position. At least one of stop_loss or take_profit must be provided. Defaults to dry_run=true — set dry_run=false to execute live. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
dry_runboolean
stop_lossnumber
take_profitnumber
ticketintegeryes

No output schema declared.

No examples provided.

partial_close ~103

Closes a portion of an open position. `volume` must be less than the full position volume. Defaults to dry_run=true — set dry_run=false to execute live. Returns INVALID_PARAMETER if volume >= position volume, POSITION_NOT_FOUND if position closed between dry-run and live call. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
dry_runboolean
ticketintegeryes
volumenumberyes

No output schema declared.

No examples provided.

place_order ~161

Places a market or pending order on MT5. Defaults to dry_run=true — set dry_run=false to execute live. Pending orders may set expiry (unix epoch seconds) for broker-side expiration; expiry is rejected on market orders. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
commentstring
dry_runboolean
expiryintegerPending orders only: expiration as unix epoch seconds (UTC). Must be in the future.
magicinteger
order_typestringyes
pricenumber
stop_lossnumber
symbolstringyes
take_profitnumber
volumenumberyes

No output schema declared.

No examples provided.

poll_alerts ~94

Drains undelivered fired-alert events (oldest first) and marks them delivered. Each event carries event_id, the alert's condition echo, the triggering values, and the fired timestamp. Events are retained 7 days; pass include_delivered=true to see the retained history. Call this periodically — alerts are pull-based, nothing is pushed. Available at Pro+ tier.

NameTypeReqDescription
include_deliveredboolean

No output schema declared.

No examples provided.

query_journal ~127

Queries trade journal entries, newest first. Filters: ticket, tag, setup, from_date/to_date (ISO), and search (case-insensitive text match). Entries linked to closed trades include realized_pnl when the terminal is connected (null otherwise). Available at Free+ tier.

NameTypeReqDescription
from_datestringISO date
limitinteger
offsetinteger
searchstring
setupstring
tagstring
ticketinteger
to_datestringISO date

No output schema declared.

No examples provided.

read_ea_logs ~47

Returns recent lines from the EA log file. available=false when the log cannot be read (MQL5 sandbox).

NameTypeReqDescription
countinteger
datestring

No output schema declared.

No examples provided.

remove_equity_guard ~63

Removes the equity guard. If the guard is currently breached (or breached_pending), removal requires confirm=true — this prevents silently disabling an active safety rail; without it the call returns CONFIRM_REQUIRED. Requires the `trade` capability.

NameTypeReqDescription
confirmboolean

No output schema declared.

No examples provided.

remove_news_guard ~39

Removes the news guard for this license. The guard stops polling immediately. Returns { removed: true } on success. Requires the `analytics` capability.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_prop_firm_rules ~55

Removes the prop-firm ruleset for the terminal (does not touch any linked equity guard — remove that separately with remove_equity_guard). Returns RULESET_NOT_FOUND if none exists. Requires the `trade` capability.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

reverse_position ~175

Closes an open position and opens a market order in the opposite direction as ONE EA command (single trade-context acquisition — minimises the gap between the two fills vs separate close_position + place_order calls). volume defaults to the closed volume; optional stop_loss / take_profit apply to the new position. If the close succeeds but the open fails (margin, market closed), returns REVERSE_PARTIAL with the close details and leaves the account flat — the EA never retries the open on its own. Defaults to dry_run=true — set dry_run=false to execute live. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
dry_runboolean
stop_lossnumber
take_profitnumber
ticketintegeryes
volumenumber

No output schema declared.

No examples provided.

scan_symbols ~96

Scans Market Watch symbols and filters by spread, RSI, or ATR thresholds. At least one filter criterion must be provided. Returns up to 50 symbols. If scanning takes over 10 seconds, partial results are returned with partial=true. Requires the `read` capability (Pro+ tier).

NameTypeReqDescription
filterobjectyes
limitinteger
sort_bystring
timeframestring

No output schema declared.

No examples provided.

set_breakeven ~110

Moves the stop loss of a position (or all positions) to its entry price. Optional buffer_points adds N points on the safe side of entry. Returns POSITION_NOT_IN_PROFIT if the position has not yet moved favourably. Defaults to dry_run=true — set dry_run=false to execute live. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
buffer_pointsinteger
dry_runboolean
ticketinteger

No output schema declared.

No examples provided.

set_equity_guard ~251

Configures an account-level circuit breaker enforced server-side (survives this session): when equity falls max_daily_loss_percent below the daily anchor (or max_total_drawdown_percent below initial equity), the guard breaches. breach_action: close_all = close all positions then block new live trades until the daily reset; block_new = block only; notify = record an alert event only (see poll_alerts). Evaluation runs on a ~30s sampling loop while the terminal is connected; if disconnected at breach time, the trade block still applies and close_all executes on reconnect. This is best-effort protection above the broker's own stop-out, not a replacement for stop losses. One guard per license — calling again replaces it. Requires the `trade` capability.

NameTypeReqDescription
breach_actionstringyes
initial_balancenumberAlias for initial_equity.
initial_equitynumberStarting account equity for total drawdown calculation basis.
max_daily_loss_percentnumberyes
max_total_drawdown_percentnumber
reset_timezonestringIANA timezone for the daily reset boundary, e.g. 'UTC' or 'Europe/Prague'.

No output schema declared.

No examples provided.

set_news_guard ~116

Configures a persistent server-side news monitor. When enabled, the guard polls news at the specified interval, classifies articles by severity and affected currencies, and triggers alerts (via poll_alerts) when articles meet the threshold. One guard per license — calling again replaces the config. Notify-only: the guard never closes positions or blocks trades. Requires the `analytics` capability.

NameTypeReqDescription
currenciesarrayyes
keywordsarray
min_severitystring
poll_interval_secondsinteger

No output schema declared.

No examples provided.

set_prop_firm_rules ~391

Configures a per-terminal prop-firm ruleset evaluated server-side (survives this session). Rules: max_daily_loss_percent (vs the daily equity anchor), optional max_total_drawdown_percent with drawdown_mode (static = from initial balance; trailing = from the high-watermark) and drawdown_basis (balance or equity), optional profit_target_percent, min_trading_days, and consistency_max_day_share_percent (max share of total profit from a single day). A preset (ftmo | generic) pre-fills defaults but the stored ruleset is always fully resolved — explicit params win. reset_timezone (IANA) sets the daily boundary. initial_balance seeds the drawdown basis for mid-challenge onboarding (otherwise seeded from a live sample). One ruleset per (license, terminal); re-calling replaces rule values but preserves the watermark unless initial_balance is re-supplied. ADVISORY ONLY — this never blocks trades. Pass link_equity_guard: true to also install a matching equity guard (breach_action default block_new) for actual enforcement. Requires the `trade` capability.

NameTypeReqDescription
breach_actionstring
consistency_max_day_share_percentnumber
drawdown_basisstring
drawdown_modestring
initial_balancenumber
initial_equitynumberAlias for initial_balance. Starting account balance/equity for drawdown basis.
link_equity_guardbooleanInstall a matching equity guard for enforcement.
max_daily_loss_percentnumber
max_total_drawdown_percentnumber
min_trading_daysinteger
presetstring
profit_target_percentnumber
reset_timezonestringIANA timezone for the daily reset boundary, e.g. 'Europe/Prague'.

No output schema declared.

No examples provided.

set_trailing_stop ~117

Registers a software trailing stop on a position. The EA updates the SL each timer cycle when price moves trailing_points in the position's favour. IMPORTANT: trailing state is lost if the EA restarts — callers should re-set after reconnect. trailing_points minimum is 10. Defaults to dry_run=true — set dry_run=false to register live. Requires the `trade` capability and inp_AllowTrading=true on the EA.

NameTypeReqDescription
dry_runboolean
ticketintegeryes
trailing_pointsintegeryes

No output schema declared.

No examples provided.

write_trade_note ~139

Persists a trade journal entry: rationale, setup label, and tags, optionally linked to a position/order ticket. Entries are append-only and immutable — to correct one, write a new note with amends_entry_id pointing at the original. Use at order time to capture WHY a trade was taken; query later with query_journal for post-trade review and per-setup statistics. Free tier stores up to 100 entries. Available at Free+ tier.

NameTypeReqDescription
amends_entry_idstring
setupstring
tagsarray
textstringyes
ticketinteger

No output schema declared.

No examples provided.