Skip to main content
Glama
Marco7734

mt5-remote-reader-mcp

by Marco7734

mt5-remote-reader-mcp

PyPI version Python 3.10+ MCP License: MIT

Read-only MCP server to monitor MetaTrader 5 accounts on remote Windows VPS via SSH.
Never executes trading operations — pure monitoring only.


What it does

mt5-remote-reader-mcp lets any MCP-compatible AI agent (Claude, Cursor, Windsurf, etc.) connect to a Windows VPS running MetaTrader 5 and answer questions about your trading accounts — all via SSH, with no permanent connection and no risk of accidental trades.

Example prompt:

"Use mt5-remote-reader-mcp, connect to VPS 107.x.x.x with password XXXX and tell me what positions are currently open"

The AI will:

  1. Connect to your VPS via SSH

  2. Query MetaTrader 5

  3. Return the data in natural language


Related MCP server: MCP SSH SRE

Installation

pip install mt5-remote-reader-mcp

Quick Start

1. Set up your VPS (one time only)

On your Mac/Linux, run:

python setup_vps.py YOUR_VPS_IP YOUR_VPS_PASSWORD

This installs Python, required libraries, and mt5_tool.py on the VPS automatically.

2. Configure your MCP client

Add to your MCP client config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "mt5-remote-reader": {
      "command": "mt5-remote-reader-mcp"
    }
  }
}

3. Talk to your AI

"Connect to my VPS at 1.2.3.4 with password XXXX and show me open positions"
"What trades did mt5_5 close in the last 7 days?"
"Is the expert advisor on axi_mt5_5_terminal logging any errors?"

Available Tools

Tool

Description

Parameters

list_terminals

List all active MT5 terminals on the VPS

ip, password

get_open_positions

Get currently open positions

ip, password, terminal

get_trade_history

Get closed trades history

ip, password, terminal, days (default: 30)

get_expert_log

Get Expert Advisor log entries

ip, password, terminal, lines (default: 100)

get_symbols

List all available trading symbols

ip, password, terminal

get_symbol_info

Get detailed info for a specific symbol

ip, password, terminal, symbol

Always start with list_terminals to discover what terminals are available, then use the short terminal name (e.g. mt5_5) for all subsequent calls.


Environment Variables (optional)

Variable

Default

Description

MT5_TOOL_PATH

C:\Users\Administrator\Desktop\mt5_tool.py

Path to mt5_tool.py on the VPS

VPS_USER

Administrator

SSH username for the VPS

Example with custom path:

MT5_TOOL_PATH="C:\trade_monitor\mt5_tool.py" mt5-remote-reader-mcp

VPS Requirements

  • Windows Server 2012 R2 or later

  • MetaTrader 5 installed and logged in

  • Python 3.8+ installed and in PATH

  • OpenSSH Server active with password authentication

  • mt5_tool.py deployed on the VPS (handled by setup_vps.py)


Architecture

AI Agent
    ↓
mt5-remote-reader-mcp  (MCP stdio, runs on your local machine)
    ↓
SSH + password  (paramiko, no pre-configured keys needed)
    ↓
Windows VPS
    ↓
mt5_tool.py + MetaTrader5 Python library
    ↓
JSON  →  natural language response

Why stdio?
No background process needed. The MCP server launches on demand, completes the request, and exits. SSH is fast and stateless — there's nothing to keep alive between calls.

Why paramiko?
Pure Python SSH library — works on any Mac, Linux, or Windows without system-level SSH dependencies.


Security

  • Read-only by design — no trading operations are ever executed

  • Credentials are passed per-call and never stored to disk

  • SSH connection opens and closes for each request

  • Works over standard SSH port 22 — no custom firewall rules needed


Troubleshooting

"Authentication failed"
→ Check the IP and password. Make sure OpenSSH is running on the VPS (net start sshd).

"No output from VPS"
→ Make sure mt5_tool.py is at the expected path. Run setup_vps.py again to redeploy it.

"MT5 terminal not found"
→ Make sure MetaTrader 5 is open and logged in on the VPS before querying.

"Module MetaTrader5 not found"
→ Run setup_vps.py again — it will reinstall the required Python libraries.


License

MIT — see LICENSE


Available Tools

16 tools
check_vps_statusA

Verifica se una o tutte le VPS sono raggiungibili via SSH (health check leggero). Non interroga MT5 — è solo un ping SSH con timeout breve (5 secondi).

Utile per:

  • Diagnostica rapida prima di operazioni più complesse

  • Capire subito se un problema è di rete o di MT5

  • Monitoraggio dello stato delle VPS

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsNoNome della VPS da controllare (es. "ftmo"). Se omesso, controlla tutte le VPS in parallelo.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool performs an SSH ping with a 5-second timeout, does not query MT5, and is a read-only health check. This provides adequate behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: three sentences plus bullet points. Every sentence adds value, no fluff. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter) and the existence of an output schema, the description covers the essential aspects: purpose, limitations, and use cases. It misses nothing critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema description already explains the parameter (including default behavior). The tool description does not add new information beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'verifica' (checks) and the resource 'VPS raggiungibili via SSH'. It distinguishes from sibling tools by specifying it's a light health check that does not query MT5, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists when to use the tool (quick diagnosis, network vs MT5 distinction, monitoring) and what it does not do (does not query MT5). While it does not explicitly state when not to use it, the context is clear enough for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connect_vpsA

Configura una VPS Windows per l'uso con mt5-remote-reader. Va chiamato la prima volta che si usa una VPS nuova.

Fa tutto automaticamente:

  • Verifica se Python è installato, altrimenti lo installa

  • Installa le librerie necessarie (MetaTrader5, psutil)

  • Copia mt5_tool.py sulla VPS

  • Testa la connessione con MT5 e ritorna i terminali trovati

Se SSH non è raggiungibile (VPS vergine), scarica automaticamente setup_mt5_vps.exe in ~/Downloads e fornisce le istruzioni per eseguirlo.

MetaTrader 5 deve essere già installato e loggato sulla VPS.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo"). Usa list_vps per vedere quelle disponibili.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details all automatic behaviors: checking/installing Python, installing libraries, copying files, testing MT5 connection, and handling unreachable SSH. It also notes the prerequisite that MT5 must already be installed and logged in.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with line breaks separating the overview from detailed steps. Every sentence is informative, though it is slightly long; still, it maintains clarity without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's multi-step automation and conditional logic, the description covers prerequisites, success path, and failure handling (SSH unreachable). It also mentions the return value (found terminals).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'vps' is described as a friendly name from a list, with a reference to list_vps for available options. This adds valuable context beyond the schema's type and required flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'configura' with resource 'VPS' and the explicit mention of first-time use clearly defines the tool's role. It distinguishes from siblings like check_vps_status or list_vps by specifying it's for initial setup of a VPS for mt5-remote-reader.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states explicitly that this tool should be called the first time a new VPS is used. It does not mention alternatives or when not to use, but the condition is clear and sufficient for the agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_vpsA

Rimuove una VPS dalla rubrica.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome amichevole della VPS da rimuovere (es. "ftmo")

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It only states the removal action but does not address consequences (e.g., stopping a running VPS, data loss, or authorization requirements).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It front-loads the core action and is easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with one parameter and an output schema, the description is reasonably complete. It lacks details about the output or side effects, but the presence of an output schema partially compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds no extra meaning beyond the schema's parameter description. The schema already specifies 'Friendly name of the VPS to remove (e.g. "ftmo")' – the description merely restates the action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Removes a VPS from the address book,' specifying the verb (removes), resource (VPS), and context (address book). This distinguishes it from siblings like 'save_vps' (create/update) and 'list_vps' (list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'save_vps' or 'connect_vps.' It is implied that deletion is appropriate when a VPS is no longer needed, but no prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_account_infoB

Ritorna le informazioni del conto MT5: balance, equity, margin, free margin, margin level, profit flottante, valuta, leva, login, broker.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo")
terminalYesNome corto del terminale, ottenuto da list_terminals

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must cover behavioral traits. It only states what is returned, omitting side effects, required state (e.g., terminal must be running), or read-only nature. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence listing output fields. No wasted words; efficiently conveys core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full return details are structured. However, the description lacks context on tool prerequisites (e.g., connection state), relation to siblings, or limitations. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions for both parameters are provided (vps and terminal), achieving 100% coverage. The tool description adds no further meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns MT5 account information, listing specific fields like balance, equity, margin, etc. The verb 'Ritorna' (returns) and resource 'conto MT5' are precise, distinguishing it from siblings like get_all_account_info which likely returns all accounts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_all_account_info, get_open_positions). No context about prerequisites or scenarios where this tool is appropriate, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_account_infoA

Legge le informazioni di conto su TUTTE le VPS in rubrica in parallelo. Non serve specificare nulla: recupera automaticamente tutte le VPS salvate e tutti i terminali MT5 attivi su ciascuna.

Per ogni terminale restituisce: login, name, balance, equity, profit, margin, free_margin, margin_level, currency, leverage, server, broker.

Usare questo tool invece di get_account_info quando si vuole una panoramica completa di tutti i conti monitorati.

Ritorna: {nome_vps: {nome_terminale: {info_conto}}} per ogni VPS raggiungibile. Le VPS non raggiungibili compaiono con status "error" invece delle info conto.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully discloses behavior: parallel reading, automatic retrieval of all VPS and terminals, return format (nested object), fields returned, and error handling (unreachable VPS shown with status 'error').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive: first sentence states purpose, then explains behavior, return structure, and error handling. Every sentence adds value, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the complexity of parallel VPS retrieval, the description covers return format, field list, and error handling. The output schema exists, so detailed return structure is provided. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters (0), so baseline is 4. The description adds value by explaining that no input is needed (automatically retrieves all saved VPS).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads account information on all VPS in parallel (specific verb and resource). It explicitly distinguishes from sibling get_account_info by noting it provides a complete overview of all monitored accounts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool instead of get_account_info (for a complete overview). It also states no input is required. However, it does not explicitly mention when not to use it, though the context implies it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_open_positionsA

Legge le posizioni aperte su TUTTE le VPS in rubrica in parallelo. Non serve specificare nulla: recupera automaticamente tutte le VPS salvate e tutti i terminali MT5 attivi su ciascuna.

Usare questo tool invece di get_open_positions quando si vuole una panoramica completa di tutti i conti monitorati.

Ritorna: {nome_vps: {nome_terminale: [posizioni]}} per ogni VPS raggiungibile. Le VPS non raggiungibili compaiono con status "error" invece delle posizioni.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses parallel execution, automatic retrieval of all VPS and MT5 terminals, and the return format with error handling for unreachable VPS. No annotations exist, so the description adequately covers behavioral traits, though it could mention potential rate limits or authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at ~5 sentences, with each sentence adding relevant information. It is front-loaded with the core purpose. However, the structure could be slightly improved for readability (e.g., bullet points).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema, the description provides complete context: it explains the return format as a nested dict, error handling for unreachable VPS, and the scope (all VPS and terminals). No missing information for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters and 100% coverage. The description confirms no input is needed ('non serve specificare nulla'). No additional parameter semantics are required beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads open positions from all VPS in the address book in parallel. It specifies the action ('legge'), the resource ('posizioni aperte su TUTTE le VPS in rubrica'), and distinguishes it from the sibling get_open_positions by indicating it provides a complete overview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this tool instead of get_open_positions when a complete overview of all monitored accounts is needed. Provides a clear alternative and context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expert_logA

Ritorna le ultime N righe del log dell'Expert Advisor del terminale. Utile per diagnosticare problemi o verificare l'attività dell'EA.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo")
terminalYesNome corto del terminale, ottenuto da list_terminals
linesNoNumero di righe di log da ritornare (default: 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the purpose without disclosing behavioral traits such as read-only nature, side effects, authentication requirements, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words, front-loading the action and resource. It earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and simple parameters, the description is mostly complete for a basic log retrieval tool. Minor missing context like prerequisites or limitations does not significantly hinder understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter adequately. The description adds no additional semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Ritorna le ultime N righe del log dell'Expert Advisor del terminale', specifying the verb 'return', the resource 'log of EA', and the scope 'last N lines'. It is distinct from sibling tools like get_account_info or get_open_positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions usefulness for diagnosing problems or verifying EA activity, providing context but no explicit guidelines on when to use versus alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_open_positionsA

Ritorna le posizioni aperte sul terminale specificato. Ogni posizione include: ticket, symbol, type (buy/sell), volume, open_price, current_price, sl, tp, profit, swap, open_time, comment, magic.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo")
terminalYesNome corto del terminale (es. "mt5_5"), ottenuto da list_terminals

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description discloses returned fields but lacks details on side effects (none expected), authentication needs, or behavior if terminal is disconnected. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the main purpose, second lists returned fields. No extraneous information, efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description adequately covers return values. Missing some contextual details like prerequisite terminal connection status, but overall complete for a simple read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The tool description adds no additional parameter meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'returns open positions on the specified terminal', specifying the verb, resource, and scope. It implicitly distinguishes from the sibling 'get_all_open_positions' which operates across all terminals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'get_all_open_positions' or 'get_trade_history'. Usage is implied by the parameter 'terminal', but without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_symbol_infoA

Ritorna i dettagli completi di uno strumento specifico. Include: contract_size, volume_min/max/step, swap_long/short, bid, ask, spread.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo")
terminalYesNome corto del terminale, ottenuto da list_terminals
symbolYesNome dello strumento (es. "EURUSD", "XAUUSD")

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It lists returned fields (contract_size, volume, swap, bid, ask, spread) but does not disclose potential side effects, authentication needs, or rate limits. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action and a concise list of included fields. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to detail return values. However, given no annotations and no usage guidelines, it is slightly incomplete but sufficient for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with three parameters already described clearly. The description adds no additional parameter semantics beyond what the schema provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Ritorna' (returns) and the resource 'dettagli completi di uno strumento specifico', distinguishing it from sibling tools like 'get_symbols' which lists symbols.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing details of a specific instrument, but lacks explicit when-to-use, when-not-to-use, or alternative tool guidance. No exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_symbolsC

Ritorna tutti gli strumenti di trading disponibili sul terminale.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo")
terminalYesNome corto del terminale, ottenuto da list_terminals

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It only states the function without mentioning side effects, permissions, or any constraints. The tool likely performs a read operation, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that clearly states the main purpose. It is concise and front-loaded, but the use of Italian may limit understanding for English-only agents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description is minimally adequate. However, it lacks details about the returned data structure or usage context, which could be important for an agent selecting this tool among siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The tool description does not add additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns all trading instruments available on the terminal. It uses a specific verb ('ritorna') and resource ('strumenti di trading'), and distinguishes from sibling tools like get_symbol_info by implying a list rather than a single item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when or when not to use this tool. With multiple sibling tools like get_symbol_info and get_all_account_info, the description does not clarify the context or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trade_historyA

Ritorna lo storico dei trade chiusi negli ultimi N giorni. Ogni trade include: symbol, type, volume, open_price, close_price, open_time, close_time, profit, swap, commission, net_profit.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo")
terminalYesNome corto del terminale, ottenuto da list_terminals
daysNoNumero di giorni di storico (default: 30)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full burden. It describes the output structure but does not mention read-only behavior, data freshness, rate limits, or authentication requirements. As a read operation, it is partially transparent but lacks some behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with one main sentence and a bullet list of fields. No unnecessary words, and the key purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 parameters, output schema exists), the description is fairly complete. It explains what is returned but omits details like pagination or maximum days. Adequate for a straightforward retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description does not add additional meaning beyond what is in the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns closed trade history with a specific time range (last N days) and lists all included fields. It effectively distinguishes from sibling tools like 'get_open_positions' by focusing on closed trades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for historical closed trades but does not explicitly state when not to use it or mention alternative tools. However, the clear focus on 'chiusi' (closed) provides contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionA

Restituisce la versione installata di mt5-remote-reader-mcp. Utile per verificare che il package sia aggiornato.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the output (version number) but does not mention whether the operation involves network calls, requires authentication, or has side effects. For a tool this simple, a statement like 'read-only, no side effects' would be helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise, focused sentences: the first states the core function, the second adds a practical use case. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, output schema likely available), the description is largely complete. It covers purpose and usage context. A minor improvement would be to note that the operation is local and safe, but overall it suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the input schema is fully covered by the empty schema. The description adds no parameter details but does not need to. Score is baseline 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('restituisce la versione installata') and the specific resource ('mt5-remote-reader-mcp'). It also distinguishes itself from sibling tools which deal with accounts, terminals, and VPS rather than version info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a practical use case ('verificare che il package sia aggiornato'), providing implicit guidance. However, it does not explicitly state when not to use it or compare with alternatives, though such distinctions are unnecessary given the tool's simplicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vps_installerA

Scarica setup_mt5_vps_{version}.exe in ~/Downloads e restituisce il percorso.

Usare quando connect_vps fallisce perché SSH non è ancora attivo sulla VPS. L'exe va copiato sulla VPS Windows ed eseguito come amministratore: tasto destro → "Esegui come amministratore".

L'exe installa automaticamente sulla VPS:

  • OpenSSH Server (abilita la connessione SSH)

  • Python 3.8

  • Librerie MetaTrader5 e psutil

  • mt5_tool.py sul Desktop della VPS

Dopo aver eseguito l'exe, tornare qui e richiamare connect_vps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It explains the side effects of the downloaded exe (installs OpenSSH, Python, etc.) and what the tool returns. Lacks details on potential failures or overwrite behavior, but overall transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with the primary action and includes multiple useful details. A few sentences are present, each providing value. Could be slightly more concise but still well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, an output schema exists (not shown), and the description covers the return type and side effects, it is fairly complete. Minor gaps (error handling, download idempotency) but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%. Baseline is 4; description does not need to add parameter information beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool downloads a specific file to a specified directory and returns the path. It uses specific verbs ('Scarica', 'restituisce') and a specific resource name, distinguishing it from siblings like 'connect_vps'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when connect_vps fails because SSH is not yet active') and provides a step-by-step workflow after execution, including calling 'connect_vps' afterward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_terminalsA

Elenca tutti i terminali MetaTrader 5 attivi sulla VPS. Ritorna nome, login, broker, server e stato connessione per ogni terminale. Usare sempre questo tool prima degli altri per scoprire i nomi dei terminali disponibili.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpsYesNome amichevole della VPS in rubrica (es. "ftmo"). Usa list_vps per vedere quelle disponibili.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It indicates a read operation (listing) and specifies output fields, but does not disclose any side effects, authentication requirements, rate limits, or error behavior. Adequate but not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding value: the first states the action, the second specifies output, the third provides usage guidance. No unnecessary words; front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it's a simple list tool with one required parameter, the description covers the output fields and usage guidance. It lacks mention of error handling (e.g., invalid VPS name), but overall it is fairly complete for the agent's needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'vps' with a description. The tool description goes beyond the schema by referencing a sibling tool list_vps to discover valid VPS names, which helps the agent understand how to populate the parameter correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists all active MT5 terminals on a VPS, and specifies the returned fields (name, login, broker, server, connection status). It implicitly distinguishes itself from siblings by advising to use this tool before others to discover terminal names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Usare sempre questo tool prima degli altri per scoprire i nomi dei terminali disponibili' (Use this tool before others to discover available terminal names), providing clear when-to-use context and implying not to use other tools first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vpsA

Elenca tutte le VPS salvate in rubrica. Mostra nome, IP e username — mai le password. Chiamare sempre questo tool per primo per vedere le VPS disponibili.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavior: it list VPS, shows specific fields, and never returns passwords. This transparently sets user expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: purpose, shown data (with explicit exclusion), and usage guidance. Every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters, the description is complete enough. It covers what the tool does, what it returns, and when to call it. Could mention potential empty list but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description needs no additional parameter details. It appropriately avoids adding unnecessary semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Elenca') and resource ('VPS'), clearly distinguishing it from sibling tools like 'connect_vps' or 'delete_vps'. It also states what fields are shown (nome, IP, username) and explicitly excludes passwords.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Chiamare sempre questo tool per primo' (always call this tool first), providing clear guidance on when to use it. However, it does not mention when not to use it or alternatives beyond implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_vpsA

Aggiunge o aggiorna una VPS nella rubrica locale sicura. Le credenziali sono salvate cifrate in ~/.mt5-reader/vps.json. Dopo questa chiamata non sarà mai più necessario inserire ip, username e password.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome amichevole da assegnare alla VPS (es. "ftmo", "axi", "mia_vps")
ipYesIndirizzo IP pubblico della VPS
usernameYesUsername SSH della VPS (solitamente "Administrator")
passwordYesPassword SSH della VPS

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that credentials are saved encrypted in ~/.mt5-reader/vps.json and that after call, re-entry is never needed. Provides valuable behavioral context beyond schema, though could mention overwrite behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with key verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given high schema coverage and output schema existence, description covers purpose, persistence, and encryption. Minor gap: no mention of update overwrite behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description does not add parameter-level meaning beyond listing the four fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'aggiunge o aggiorna' (adds or updates) and resource 'VPS nella rubrica locale sicura'. Distinguishes from siblings like list_vps and delete_vps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for storing or updating VPS credentials, but does not explicitly compare with connect_vps or other operations. Lack of when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, covering different aspects of VPS management and MT5 data retrieval. Overlap between single and aggregate tools (e.g., get_account_info vs get_all_account_info) is intentional and well-documented.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, such as check_vps_status, get_account_info, list_terminals. The naming is predictable and makes the function of each tool immediately clear.

Tool Count5/5

16 tools is well-scoped for the server's purpose of remote MT5 reading and VPS management. Each tool serves a specific need without redundancy or oversaturation.

Completeness5/5

The tool set covers all essential operations: VPS lifecycle management (save, list, delete, connect), account info retrieval (single and aggregate), positions, symbols, trade history, logs, and diagnostics. No obvious gaps for the stated read-only domain.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to MetaTrader 5 market data, trading history, and technical analysis through Python execution. Supports querying price data, calculating indicators, creating charts, and generating forecasts with Prophet and ML models.
    3
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides read-only server monitoring and diagnostic tools for AI assistants to manage Linux and Unraid systems via SSH. It enables natural language interactions for container management, storage health checks, and system log analysis while keeping credentials secure.
    17
    ISC
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to trade on MetaTrader 5 using natural language, supporting account management, order placement, and real-time market data.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables read and execution access to multiple MetaTrader 5 accounts, allowing an AI assistant to manage positions, P&L, prices, indicators, history, logs, and trades across accounts.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Marco7734/mt5-remote-reader-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server