Skip to main content
Glama
Riffmax2030-hub

metatrader-mcp-server

README.md
# UT Bot MetaTrader 5 Webhook Bridge & AI Agent

Automate your TradingView Pine Script alerts directly into MetaTrader 5 (MT5) with custom Stop Loss (SL) and Take Profit (TP) levels using FastAPI, ngrok, and the Antigravity developer agent.

---

## 🌟 How It Works
```
[TradingView Strategy Alert] 
          │ (Triggers & sends JSON payload)
          â–¼
[ngrok Tunnel (Public URL)]
          │ (Forwards to local machine)
          â–¼
[FastAPI Webhook Server]
          │ (Parses payload & gets current price)
          â–¼
[MetaTrader 5 Client]
          │ (Executes market order with SL & TP)
          â–¼
   [MT5 Terminal]
```

---

## 📋 Prerequisites
1. **Windows OS** (required for the MetaTrader 5 Python SDK).
2. **Python 3.10+** installed.
3. **MetaTrader 5 Desktop Terminal** installed and logged into your broker account.
4. **Algorithmic Trading Enabled**:
   * Open MT5.
   * Go to **Tools** âž” **Options** âž” **Expert Advisors**.
   * Check **"Allow algorithmic trading"** and click **OK**.

---

## 🚀 Quick Start & Installation

### Step 1: Install Dependencies
Install the required Python packages:
```bash
pip install fastapi uvicorn metatrader-mcp-server pydantic
```

### Step 2: Configure Antigravity MCP Server
To allow Antigravity to check your balances, open positions, and manage trades using natural language, update your global Antigravity configuration file:

**File Path:** `C:\Users\DATA ENG. OLA\.gemini\config\mcp_config.json`

Add the `"metatrader"` server configuration:
```json
{
  "mcpServers": {
    "metatrader": {
      "command": "C:\\Users\\DATA ENG. OLA\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python313\\Scripts\\metatrader-mcp-server.exe",
      "args": [
        "--login", "YOUR_MT5_LOGIN",
        "--password", "YOUR_MT5_PASSWORD",
        "--server", "YOUR_MT5_SERVER",
        "--transport", "stdio"
      ]
    }
  }
}
```
*(Make sure to adjust the path to your python local-packages directory if it differs).*

---

### Step 3: Set Up the Webhook Bridge
Create the `webhook_bridge.py` file to receive and process alerts from TradingView. The script automatically handles symbol cleaning (removing exchange prefixes like `EXNESS:`) and resolves library-specific SL/TP validation bugs.

#### Running the Server
Run the webhook bridge on port `5001`:
```bash
python webhook_bridge.py
```

### Step 4: Expose the Port Using ngrok
Expose port `5001` to the internet to get a public URL for TradingView:
```bash
ngrok http 5001
```
Copy the generated `Forwarding` URL (e.g. `https://your-subdomain.ngrok-free.dev`).

---

## 📊 TradingView Integration

### Step 1: Save the Pine Script
Create a new Pine Editor script in TradingView and paste the code from [ut_bot_strategy.pine](ut_bot_strategy.pine). Click **Save** and **Add to chart**.

### Step 2: Set Up the Alert
1. Press `Alt + A` to open the **Create Alert** dialog.
2. **Condition**: Select `UT Bot Strategy – Buy & Sell with SL/TP`.
3. **Trigger**: Select `Alert() function calls only` (crucial for sending dynamic JSON parameters).
4. **Webhook URL**: Under the **Notifications** tab, check Webhook URL and paste your public ngrok URL with `/webhook` at the end:
   `https://your-subdomain.ngrok-free.dev/webhook`
5. **Alert Name**: `UT Bot MT5 Automation`.
6. Clear the **Message** box.
7. Click **Create**.

---

## 🔒 Security Recommendations
* **Demo First**: Always test with a demo/trial account before using real money.
* **Firewalling**: Use an authentication mechanism or limit ngrok access if deploying to a production VPS.