Skip to main content
Glama

metatrader-mcp-server

test_account.py4.47 kB
import os import pytest from dotenv import load_dotenv from metatrader_client import MT5Client import platform def print_header(): if platform.system() == "Windows": os.system('cls') else: os.system('clear') print("\n🧪 MetaTrader 5 MCP Account System Full Test Suite 🧪\n") @pytest.fixture(scope="module") def mt5_account(): print_header() print("🔑 Loading credentials and connecting to MetaTrader 5...") load_dotenv() login = os.getenv("LOGIN") password = os.getenv("PASSWORD") server = os.getenv("SERVER") if not login or not password or not server: print("❌ Error: Missing required environment variables!") print("Please create a .env file with LOGIN, PASSWORD, and SERVER variables.") pytest.skip("Missing environment variables for MetaTrader 5 connection") config = { "login": int(login), "password": password, "server": server } client = MT5Client(config) client.connect() print("✅ Connected!\n") account = client.account yield account print("\n🔌 Disconnecting from MetaTrader 5...") client.disconnect() print("👋 Disconnected!") def test_get_account_info(mt5_account): print("\n📋 Testing get_account_info...") info = mt5_account.get_account_info() print(f"Account info: {info}") assert isinstance(info, dict) assert "login" in info assert "balance" in info assert "currency" in info print("✅ get_account_info passed!") def test_get_balance(mt5_account): print("\n💰 Testing get_balance...") balance = mt5_account.get_balance() print(f"Balance: {balance}") assert isinstance(balance, (float, int)) assert balance >= 0 print("✅ get_balance passed!") def test_get_equity(mt5_account): print("\n⚖️ Testing get_equity...") equity = mt5_account.get_equity() print(f"Equity: {equity}") assert isinstance(equity, (float, int)) assert equity >= 0 print("✅ get_equity passed!") def test_get_margin(mt5_account): print("\n📊 Testing get_margin...") margin = mt5_account.get_margin() print(f"Margin: {margin}") assert isinstance(margin, (float, int)) assert margin >= 0 print("✅ get_margin passed!") def test_get_free_margin(mt5_account): print("\n🆓 Testing get_free_margin...") free_margin = mt5_account.get_free_margin() print(f"Free Margin: {free_margin}") assert isinstance(free_margin, (float, int)) assert free_margin >= 0 print("✅ get_free_margin passed!") def test_get_margin_level(mt5_account): print("\n📈 Testing get_margin_level...") margin_level = mt5_account.get_margin_level() print(f"Margin Level: {margin_level}") assert isinstance(margin_level, (float, int)) assert margin_level >= 0 print("✅ get_margin_level passed!") def test_get_currency(mt5_account): print("\n💱 Testing get_currency...") currency = mt5_account.get_currency() print(f"Currency: {currency}") assert isinstance(currency, str) assert len(currency) > 0 print("✅ get_currency passed!") def test_get_leverage(mt5_account): print("\n🔢 Testing get_leverage...") leverage = mt5_account.get_leverage() print(f"Leverage: {leverage}") assert isinstance(leverage, int) assert leverage > 0 print("✅ get_leverage passed!") def test_get_account_type(mt5_account): print("\n🏦 Testing get_account_type...") acc_type = mt5_account.get_account_type() print(f"Account Type: {acc_type}") assert isinstance(acc_type, str) assert len(acc_type) > 0 print("✅ get_account_type passed!") def test_is_trade_allowed(mt5_account): print("\n✅ Testing is_trade_allowed...") allowed = mt5_account.is_trade_allowed() print(f"Is trade allowed? {allowed}") assert isinstance(allowed, bool) print("✅ is_trade_allowed passed!") def test_check_margin_level(mt5_account): print("\n🧮 Testing check_margin_level...") result = mt5_account.check_margin_level(0) print(f"Margin level check (min 0): {result}") assert isinstance(result, bool) print("✅ check_margin_level passed!") def test_get_trade_statistics(mt5_account): print("\n📊 Testing get_trade_statistics...") stats = mt5_account.get_trade_statistics() print(f"Trade statistics: {stats}") assert isinstance(stats, dict) print("✅ get_trade_statistics passed!")

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/ariadng/metatrader-mcp-server'

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