metatrader-mcp-server
AIアシスタントに自然言語で取引を代行させましょう

📑 目次
Related MCP server: Financial Datasets MCP Server
🌟 これは何ですか?
MetaTrader MCP Serverは、AIアシスタント(Claude、ChatGPTなど)とMetaTrader 5取引プラットフォームを接続するブリッジです。ボタンをクリックする代わりに、AIアシスタントに指示を出すだけで取引が可能です:
「口座残高を見せて」 「EUR/USDを0.01ロット買い」 「利益が出ているポジションをすべて決済して」
AIがあなたのリクエストを理解し、MetaTrader 5上で自動的に実行します。
仕組み
You → AI Assistant → MCP Server → MetaTrader 5 → Your Trades✨ 機能
🗣️ 自然言語取引 - AIと日常会話をするだけで取引を実行
🤖 マルチAIサポート - Claude Desktop、ChatGPT(Open WebUI経由)などで動作
📊 完全な市場アクセス - リアルタイム価格、ヒストリカルデータ、シンボル情報の取得
💼 完全な口座管理 - 残高、有効証拠金、証拠金、取引統計の確認
⚡ 注文管理 - 簡単なコマンドで注文の発注、変更、決済
🔒 安全性 - 認証情報はすべてローカルマシン内に保持
🌐 柔軟なインターフェース - MCPサーバー、REST API、またはWebSocketストリームとして利用可能
📖 充実したドキュメント - 包括的なガイドと例
🎯 対象ユーザー
トレーダー - AIを使って取引を自動化したい方
開発者 - 取引ボットや分析ツールを構築している方
アナリスト - 市場データへの迅速なアクセスが必要な方
金融市場とAIの融合に興味があるすべての方
⚠️ 重要な免責事項
必ずお読みください:
金融商品の取引には重大な損失リスクが伴います。本ソフトウェアは現状有姿で提供され、開発者は本ソフトウェアの使用による取引損失、利益、または結果に対して一切の責任を負いません。
本ソフトウェアを使用することにより、以下に同意したものとみなされます:
金融取引のリスクを理解していること
本システムを通じて実行されたすべての取引に対して責任を負うこと
いかなる結果に対しても開発者を免責すること
自己責任で本ソフトウェアを使用すること
これは投資助言ではありません。常に責任を持って取引を行ってください。
📋 前提条件
始める前に、以下が準備されていることを確認してください:
Python 3.10以上 - こちらからダウンロード
MetaTrader 5ターミナル - こちらからダウンロード
MT5取引口座 - デモまたはライブ口座の認証情報
口座番号
パスワード
サーバー名(例: "MetaQuotes-Demo")
🚀 クイックスタート
ステップ 1: パッケージのインストール
ターミナルまたはコマンドプロンプトを開き、以下を実行します:
pip install metatrader-mcp-serverステップ 2: アルゴリズム取引の有効化
MetaTrader 5を開く
ツール→オプションに移動エキスパートアドバイザタブをクリックアルゴリズム取引を許可するにチェックを入れるOKをクリック
ステップ 3: インターフェースの選択
利用方法に合わせて選択してください:
オプション A: Claude Desktopで使用する (ローカル STDIO)
Claude Desktopの設定ファイルを見つける:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMac:
~/Library/Application Support/Claude/claude_desktop_config.json
ファイルを開き、以下の設定を追加します:
{
"mcpServers": {
"metatrader": {
"command": "metatrader-mcp-server",
"args": [
"--login", "YOUR_MT5_LOGIN",
"--password", "YOUR_MT5_PASSWORD",
"--server", "YOUR_MT5_SERVER",
"--transport", "stdio"
]
}
}
}オプション: MT5ターミナルのパスを指定する
MT5ターミナルが標準以外の場所にインストールされている場合は、--path 引数を追加します:
{
"mcpServers": {
"metatrader": {
"command": "metatrader-mcp-server",
"args": [
"--login", "YOUR_MT5_LOGIN",
"--password", "YOUR_MT5_PASSWORD",
"--server", "YOUR_MT5_SERVER",
"--transport", "stdio",
"--path", "C:\\Program Files\\MetaTrader 5\\terminal64.exe"
]
}
}
}YOUR_MT5_LOGIN、YOUR_MT5_PASSWORD、YOUR_MT5_SERVERを実際の認証情報に置き換えますClaude Desktopを再起動します
チャットを開始しましょう!例: "口座残高はいくら?"
オプション B: Open WebUIで使用する (ChatGPTおよびその他のLLM用)
HTTPサーバーを起動します:
metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 0.0.0.0 --port 8000オプション: MT5ターミナルのパスを指定する
MT5ターミナルが標準以外の場所にインストールされている場合は、--path 引数を追加します:
metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --path "C:\Program Files\MetaTrader 5\terminal64.exe" --host 0.0.0.0 --port 8000ブラウザで
http://localhost:8000/docsを開き、APIドキュメントを確認しますOpen WebUIで:
設定 → ツール に移動
ツールサーバーを追加 をクリック
http://localhost:8000を入力保存
これでOpen WebUIのチャットで取引ツールが使用できます!
オプション C: WebSocket経由のリアルタイム相場
ダッシュボード、ボット、監視用に、ライブティックデータ(買値、売値、スプレッド、出来高)をWebSocketでストリーミングします:
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER任意のWebSocketクライアントで接続します:
websocat ws://localhost:8765connected メッセージの後に、JSON形式でティック更新が継続的に送信されます。詳細は WebSocket相場サーバー を参照してください。
オプション D: リモートMCPサーバー (SSE)
Windows VPS(MT5がインストールされている場所)でMCPサーバーを実行し、ローカルのClaude DesktopやClaude Codeからリモート接続します。
サーバー側 (Windows VPS上):
metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVERこれにより、デフォルトで 0.0.0.0:8080 でSSEサーバーが起動します。--host と --port でカスタマイズ可能です:
metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 127.0.0.1 --port 9000クライアント側 (ローカルマシンのClaude Desktop設定):
{
"mcpServers": {
"metatrader": {
"url": "http://VPS_IP:8080/sse"
}
}
}VPS_IP をサーバーのIPアドレスに置き換えてください。
セキュリティ警告: MCPプロトコルには認証が含まれていません。SSEサーバーをネットワークに公開する場合は、ファイアウォールでIP制限をかけるか、認証付きのリバースプロキシの背後に配置するか、SSHトンネルを使用してください。
🤖 取引アシスタントスキル (Claude Code / Claude Desktop)
claude-skill/ ディレクトリに、構築済みの Trading Terminal Assistant スキルが含まれています。これにより、32個のすべての取引ツール、出力フォーマット、MetaTrader 5のドメイン知識がClaudeに提供されます。
Claude Codeへのインストール
オプション 1: シンボリックリンク (推奨)
標準のClaude Codeスキルディレクトリから claude-skill/ へのシンボリックリンクを作成します:
cd metatrader-mcp-server
mkdir -p .claude
ln -s ../claude-skill .claude/skillsスキルは自動的に検出され、/trading として利用可能になります。
オプション 2: コピー
スキルファイルをClaude Codeのスキルディレクトリにコピーします:
cd metatrader-mcp-server
mkdir -p .claude/skills
cp -r claude-skill/trading .claude/skills/tradingClaude Desktopへのインストール
Claude Desktopの場合は、スキルをグローバルなClaudeスキルディレクトリにコピーします:
# macOS
mkdir -p ~/Library/Application\ Support/Claude/skills
cp -r claude-skill/trading ~/Library/Application\ Support/Claude/skills/trading
# Windows
mkdir "%APPDATA%\Claude\skills"
xcopy /E claude-skill\trading "%APPDATA%\Claude\skills\trading\"スキルの機能
直接実行: リクエスト時に即座に取引を実行(追加確認不要)
ワークフロー: 複雑な操作のためにツールを連鎖させる方法を理解(例: 成行注文後にSL/TPを設定)
フォーマット: 口座データ、ポジション、注文、価格をきれいなターミナル形式の表で表示
ドメイン知識: MT5の注文タイプ、時間枠、シンボル形式、約定モードを理解
使用方法
インストール後、/trading で呼び出すか、自然に取引関連の質問をしてください:
/trading
> Show me my account dashboard
> Buy 0.1 lots of EURUSD with SL at 1.0800
> Close all profitable positions
> Show me GBPUSD H4 candles📡 WebSocket相場サーバー
WebSocket相場サーバーは、MetaTrader 5からリアルタイムのティックデータを任意のWebSocketクライアントにストリーミングします。ライブダッシュボード、アルゴリズム取引フロントエンド、リアルタイム監視に最適です。
サーバーの起動
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVERサーバーはデフォルトで ws://0.0.0.0:8765 で起動します。
カスタマイズ
metatrader-quote-server \
--login YOUR_LOGIN \
--password YOUR_PASSWORD \
--server YOUR_SERVER \
--host 127.0.0.1 \
--port 9000 \
--symbols "EURUSD,GBPUSD,XAUUSD" \
--poll-interval 200設定
フラグ | 環境変数 | デフォルト | 説明 |
|
|
| バインドするホスト |
|
|
| バインドするポート |
|
|
| ストリーミングするシンボル(カンマ区切り) |
|
|
| ティックポーリング間隔(ミリ秒) |
CLIフラグは環境変数よりも優先され、環境変数はデフォルトよりも優先されます。
メッセージ形式
接続時 — サーバーはシンボルリストを含む connected メッセージを送信し、続いてキャッシュされたティックを送信します:
{"type": "connected", "symbols": ["XAUUSD", "EURUSD", "GBPUSD"], "poll_interval_ms": 100}ティック更新 — 買値、売値、または出来高が変更されるたびに送信されます:
{"type": "tick", "symbol": "XAUUSD", "bid": 2345.67, "ask": 2345.89, "spread": 0.22, "volume": 1234, "time": "2026-03-14T10:30:45+00:00"}エラー — シンボルが取得できない場合に送信されます:
{"type": "error", "symbol": "INVALID", "message": "Symbol not found or data unavailable"}例: Pythonでの接続
import asyncio
import json
from websockets.asyncio.client import connect
async def main():
async with connect("ws://localhost:8765") as ws:
async for message in ws:
tick = json.loads(message)
if tick["type"] == "tick":
print(f"{tick['symbol']}: {tick['bid']}/{tick['ask']} (spread: {tick['spread']})")
asyncio.run(main())設計上の注意
変更検知: 買値、売値、出来高が実際に変更された場合のみブロードキャストし、不要なトラフィックを削減します。
途中参加: 新しいクライアントは接続時にキャッシュされたティックを即座に受信するため、次の変更を待つ必要はありません。
MT5スレッドセーフ: すべてのMT5 SDK呼び出しは、同時アクセス問題を回避するためにシングルスレッドエグゼキューターを通じてシリアル化されます。
マルチクライアント: 任意の数のWebSocketクライアントが同時に接続可能です。
💡 使用例
Claude Desktopでの使用
設定が完了すると、自然にチャットできます:
口座確認:
あなた: 「口座情報を表示して」
Claude: 残高、有効証拠金、証拠金、レバレッジなどを返します
市場データの取得:
あなた: 「EUR/USDの現在の価格は?」
Claude: 買値、売値、スプレッドを表示します
取引の発注:
あなた: 「GBP/USDを0.01ロット買い、ストップロスを1.2500、テイクプロフィットを1.2700に設定して」
Claude: 取引を実行し、確認します
ポジション管理:
あなた: 「損失が出ているポジションをすべて決済して」
Claude: ポジションを決済し、結果を報告します
履歴分析:
あなた: 「先週のEUR/USDの取引をすべて見せて」
Claude: 取引履歴を表形式で返します
HTTP APIでの使用
# Get account info
curl http://localhost:8000/api/v1/account/info
# Get current price
curl "http://localhost:8000/api/v1/market/price?symbol_name=EURUSD"
# Place a market order
curl -X POST http://localhost:8000/api/v1/order/market \
-H "Content-Type: application/json" \
-d '{
"symbol": "EURUSD",
"volume": 0.01,
"type": "BUY",
"stop_loss": 1.0990,
"take_profit": 1.1010
}'
# Get all open positions
curl http://localhost:8000/api/v1/positions
# Close a specific position
curl -X DELETE http://localhost:8000/api/v1/positions/12345Pythonライブラリとしての使用
from metatrader_client import MT5Client
# Connect to MT5
config = {
"login": 12345678,
"password": "your_password",
"server": "MetaQuotes-Demo"
}
client = MT5Client(config)
client.connect()
# Get account statistics
stats = client.account.get_trade_statistics()
print(f"Balance: ${stats['balance']}")
print(f"Equity: ${stats['equity']}")
# Get current price
price = client.market.get_symbol_price("EURUSD")
print(f"EUR/USD Bid: {price['bid']}, Ask: {price['ask']}")
# Place a market order
result = client.order.place_market_order(
type="BUY",
symbol="EURUSD",
volume=0.01,
stop_loss=1.0990,
take_profit=1.1010
)
print(result['message'])
# Close all positions
client.order.close_all_positions()
# Disconnect
client.disconnect()📚 利用可能な操作
口座管理
get_account_info- 残高、有効証拠金、利益、証拠金維持率、レバレッジ、通貨の取得
市場データ
get_symbols- 利用可能なすべての取引シンボルをリストアップget_symbol_price- シンボルの現在の買値/売値を取得get_candles_latest- 最新の価格ローソク足(OHLCVデータ)を取得get_candles_by_date- 指定期間のヒストリカルローソク足を取得get_symbol_info- 詳細なシンボル情報を取得
注文実行
place_market_order- 成行買い/売り注文を実行place_pending_order- 将来実行のための指値/逆指値注文を発注modify_position- ストップロスまたはテイクプロフィットを更新modify_pending_order- 待機注文のパラメータを変更
ポジション管理
get_all_positions- すべてのオープンポジションを表示get_positions_by_symbol- 通貨ペアでポジションをフィルタリングget_positions_by_id- 特定のポジション詳細を取得close_position- 特定のポジションを決済close_all_positions- すべてのオープンポジションを決済close_all_positions_by_symbol- 特定シンボルの全ポジションを決済close_all_profitable_positions- 利益が出ている取引のみ決済close_all_losing_positions- 損失が出ている取引のみ決済
待機注文
get_all_pending_orders- すべての待機注文をリストアップget_pending_orders_by_symbol- シンボルで待機注文をフィルタリングcancel_pending_order- 特定の待機注文をキャンセルcancel_all_pending_orders- すべての待機注文をキャンセルcancel_pending_orders_by_symbol- 特定シンボルの待機注文をキャンセル
取引履歴
get_deals- 完了した過去の取引を取得get_orders
This server cannot be installed
Maintenance
Appeared in Searches
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