mt5-remote-reader-mcp
# mt5-remote-reader-mcp
[](https://pypi.org/project/mt5-remote-reader-mcp/)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io)
[](LICENSE)
> **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
---
## Installation
```bash
pip install mt5-remote-reader-mcp
```
---
## Quick Start
### 1. Set up your VPS (one time only)
On your Mac/Linux, run:
```bash
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`):
```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` |
### Recommended flow
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:
```bash
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](LICENSE)
---
## Related Projects
- [mt5_tool.py](mt5_tool.py) — the core VPS-side script
- [setup_vps.py](setup_vps.py) — automated VPS setup from your local machine
TDQS
Scored across 16 tools
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.
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.
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.
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.