MTContext
REMOTE · MCP.MTCONTEXT.COM · SCANNED AUG 3
Connect any MCP client to MetaTrader 4/5 to read prices, manage positions, and place trades.
Available components
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, but returns a challenge with no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
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.
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
claude mcp add --transport http mtcontext-mtcontext https://mcp.mtcontext.com/mcp/v1
[mcp_servers.mtcontext-mtcontext] url = "https://mcp.mtcontext.com/mcp/v1"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mtcontext-mtcontext": {
"type": "remote",
"url": "https://mcp.mtcontext.com/mcp/v1",
"enabled": true
}
}
} openclaw mcp add mtcontext-mtcontext --url https://mcp.mtcontext.com/mcp/v1 --transport streamable-http
mcp_servers:
mtcontext-mtcontext:
url: "https://mcp.mtcontext.com/mcp/v1" {
"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.
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.
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 |
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.
get_tick_history ~59
Returns a sequence of raw ticks for a symbol. Result: { ticks: [{ time, bid, ask, last, volume }] }.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | — | — |
| from_date | string | — | — |
| symbol | string | yes | — |
No output schema declared.
No examples provided.
get_trade_history ~41
Returns closed trades with optional date range filter.
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | — | — |
| limit | integer | — | — |
| to_date | string | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | — | — |
| symbol | string | — | — |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | — |
| expiry | integer | — | — |
| price | number | — | — |
| stop_loss | number | — | — |
| take_profit | number | — | — |
| ticket | integer | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | — |
| stop_loss | number | — | — |
| take_profit | number | — | — |
| ticket | integer | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | — |
| ticket | integer | yes | — |
| volume | number | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | — | — |
| dry_run | boolean | — | — |
| expiry | integer | — | Pending orders only: expiration as unix epoch seconds (UTC). Must be in the future. |
| magic | integer | — | — |
| order_type | string | yes | — |
| price | number | — | — |
| stop_loss | number | — | — |
| symbol | string | yes | — |
| take_profit | number | — | — |
| volume | number | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_delivered | boolean | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | — | ISO date |
| limit | integer | — | — |
| offset | integer | — | — |
| search | string | — | — |
| setup | string | — | — |
| tag | string | — | — |
| ticket | integer | — | — |
| to_date | string | — | ISO 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).
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | — | — |
| date | string | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | — |
| stop_loss | number | — | — |
| take_profit | number | — | — |
| ticket | integer | yes | — |
| volume | number | — | — |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | yes | — |
| limit | integer | — | — |
| sort_by | string | — | — |
| timeframe | string | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| buffer_points | integer | — | — |
| dry_run | boolean | — | — |
| ticket | integer | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| breach_action | string | yes | — |
| initial_balance | number | — | Alias for initial_equity. |
| initial_equity | number | — | Starting account equity for total drawdown calculation basis. |
| max_daily_loss_percent | number | yes | — |
| max_total_drawdown_percent | number | — | — |
| reset_timezone | string | — | IANA 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.
| Name | Type | Req | Description |
|---|---|---|---|
| currencies | array | yes | — |
| keywords | array | — | — |
| min_severity | string | — | — |
| poll_interval_seconds | integer | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| breach_action | string | — | — |
| consistency_max_day_share_percent | number | — | — |
| drawdown_basis | string | — | — |
| drawdown_mode | string | — | — |
| initial_balance | number | — | — |
| initial_equity | number | — | Alias for initial_balance. Starting account balance/equity for drawdown basis. |
| link_equity_guard | boolean | — | Install a matching equity guard for enforcement. |
| max_daily_loss_percent | number | — | — |
| max_total_drawdown_percent | number | — | — |
| min_trading_days | integer | — | — |
| preset | string | — | — |
| profit_target_percent | number | — | — |
| reset_timezone | string | — | IANA 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | — |
| ticket | integer | yes | — |
| trailing_points | integer | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amends_entry_id | string | — | — |
| setup | string | — | — |
| tags | array | — | — |
| text | string | yes | — |
| ticket | integer | — | — |
No output schema declared.
No examples provided.