mcpField
M
MetaTrader 5 MCP Server

MetaTrader 5 MCP Server

ローカル
pypi.org金融データ238今日更新

MetaTrader 5 MCP Server について

MetaTrader 5 MCP Server は、MetaTrader 5 取引プラットフォーム向けの MCP サーバーです。AI アシスタントからマーケットデータの取得、注文の実行、取引履歴の分析を行えます。MT5 での取引やマーケット分析に AI を活用したいユーザー向けです。

主な機能

  1. 01MetaTrader 5 ターミナルと取引口座への接続
  2. 02銘柄、ローソク足、ティックデータの取得
  3. 03注文の発注とポジション・未約定注文の照会
  4. 04注文および約定履歴の照会

活用シーン

  1. 01AI アシスタントによる銘柄の相場とヒストリカルデータの確認
  2. 02チャットからの取引注文の確認と送信
  3. 03指定期間の取引履歴の振り返り

MCP 対応

このプロジェクトは MCP サーバーであり、MetaTrader 5 の接続、マーケットデータ、取引、履歴照会の機能をツールとリソースとして MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"metatrader5-server": {
"command": "uvx",
"args": [
"mcp-metatrader5-server"
]
}
}
}
起動コマンドuvx mcp-metatrader5-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-metatrader5-server

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Ask DeepWiki

MseeP.ai Security Assessment Badge

codecov

PyPI version

MetaTrader 5 MCP サーバー

MetaTrader 5 向けの Model Context Protocol(MCP)サーバーです。AI アシスタントが MetaTrader 5 プラットフォームと連携し、取引や市場データの分析を行えます。ドキュメント

機能

  • MetaTrader 5 ターミナルに接続します
  • 市場データ(シンボル、レート、ティック)にアクセスします
  • 取引を発注・管理します
  • 取引履歴を分析します
  • Model Context Protocol を通じて AI アシスタントと連携します

インストール

PyPI から
uvx --from mcp-metatrader5-server mt5mcp
ソースから
git clone https://github.com/Qoyyuum/mcp-metatrader5-server.git
cd mcp-metatrader5-server
uv sync
uv run mt5mcp

要件

  • uv(推奨)または pip
  • Python 3.11 以降
  • Windows にインストールされた MetaTrader 5 ターミナル
  • MetaTrader 5 アカウント(デモまたはリアル)

使い方

クイックスタート

このサーバーは、Claude Desktop などの MCP クライアント向けに、デフォルトで stdio モードで実行されます。

uv run mt5mcp
開発モード(HTTP)

HTTP トランスポートでテストするには、.env ファイルを作成します。

MT5_MCP_TRANSPORT=http
MT5_MCP_HOST=127.0.0.1
MT5_MCP_PORT=8000

次に、以下を実行します。

uv run mt5mcp

サーバーは http://127.0.0.1:8000 で起動します。

MCP クライアント向けのインストール
方法 1:uvx を使う(最も簡単 — インストール不要)⭐

以下の設定を MCP クライアントの設定ファイルに追加します。

Claude Desktop の場合(claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-metatrader5-server": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Qoyyuum/mcp-metatrader5-server",
        "mt5mcp"
      ]
    }
  }
}
方法 2:FastMCP Install を使う(推奨)
git clone https://github.com/Qoyyuum/mcp-metatrader5-server
cd mcp-metatrader5-server

リポジトリを Git クローンした後、以下のコマンドを実行します。

MCP JSON 形式の場合

uv run fastmcp install mcp-json src/mcp_mt5/main.py

Claude Desktop の場合

uv run fastmcp install claude-desktop src/mcp_mt5/main.py

Claude Code の場合

uv run fastmcp install claude-code src/mcp_mt5/main.py

Cursor の場合

uv run fastmcp install cursor src/mcp_mt5/main.py

Gemini CLI の場合

uv run fastmcp install gemini-cli src/mcp_mt5/main.py
方法 3:手動設定

これを claude_desktop_config.json または任意の LLM 設定ファイルに追加します。

{
  "mcpServers": {
    "mcp-metatrader5-server": {
      "command": "uvx",
      "args": [
        "--from",
        "mcp-metatrader5-server",
        "mt5mcp"
      ]
    }
  }
}

API リファレンス

接続管理
  • initialize(): MT5 ターミナルを初期化します
  • login(account, password, server): 取引アカウントにログインします
  • shutdown(): MT5 ターミナルへの接続を終了します
市場データ関数
  • get_symbols(): 利用可能なすべてのシンボルを取得します
  • get_symbols_by_group(group): グループ別にシンボルを取得します
  • get_symbol_info(symbol): 指定したシンボルの情報を取得します
  • get_symbol_info_tick(symbol): シンボルの最新ティックを取得します
  • copy_rates_from_pos(symbol, timeframe, start_pos, count): 指定位置からバーを取得します
  • copy_rates_from_date(symbol, timeframe, date_from, count): 指定日時からバーを取得します
  • copy_rates_range(symbol, timeframe, date_from, date_to): 指定した期間内のバーを取得します
  • copy_ticks_from_pos(symbol, start_pos, count): 指定位置からティックを取得します
  • copy_ticks_from_date(symbol, date_from, count): 指定日時からティックを取得します
  • copy_ticks_range(symbol, date_from, date_to): 指定した期間内のティックを取得します
取引関数
  • order_send(request): 取引サーバーに注文を送信します
  • order_check(request): 指定したパラメーターで注文を発注できるか確認します
  • positions_get(symbol, group): オープンポジションを取得します
  • positions_get_by_ticket(ticket): チケット番号でオープンポジションを取得します
  • orders_get(symbol, group): 有効な注文を取得します
  • orders_get_by_ticket(ticket): チケット番号で有効な注文を取得します
  • history_orders_get(symbol, group, ticket, position, from_date, to_date): 履歴から注文を取得します
  • history_deals_get(symbol, group, ticket, position, from_date, to_date): 履歴から取引を取得します

ワークフローの例

接続して市場データを取得する
# Initialize MT5
initialize()

# Log in to your trading account
login(account=123456, password="your_password", server="your_server")

# Get available symbols
symbols = get_symbols()

# Get recent price data for EURUSD
rates = copy_rates_from_pos(symbol="EURUSD", timeframe=15, start_pos=0, count=100)

# Shut down the connection
shutdown()
取引を発注する
# Initialize and log in
initialize()
login(account=123456, password="your_password", server="your_server")

# Create an order request
request = OrderRequest(
    action=mt5.TRADE_ACTION_DEAL,
    symbol="EURUSD",
    volume=0.1,
    type=mt5.ORDER_TYPE_BUY,
    price=mt5.symbol_info_tick("EURUSD").ask,
    deviation=20,
    magic=123456,
    comment="Buy order",
    type_time=mt5.ORDER_TIME_GTC,
    type_filling=mt5.ORDER_FILLING_IOC
)

# Send the order
result = order_send(request)

# Shut down the connection
shutdown()

リソース

サーバーは、AI アシスタントが MetaTrader 5 API の使い方を理解できるよう、以下のリソースを提供します。

  • mt5://getting_started:MetaTrader 5 API を使用する基本的なワークフロー
  • mt5://trading_guide:取引の発注と管理に関するガイド
  • mt5://market_data_guide:市場データへのアクセスと分析に関するガイド
  • mt5://order_types:注文タイプに関する情報
  • mt5://order_filling_types:注文の執行タイプに関する情報
  • mt5://order_time_types:注文の有効期限タイプに関する情報
  • mt5://trade_actions:取引リクエストのアクションに関する情報

プロンプト

サーバーは、AI アシスタントがユーザーとやり取りできるよう、以下のプロンプトを提供します。

  • connect_to_mt5(account, password, server):MetaTrader 5 に接続してログインします
  • analyze_market_data(symbol, timeframe):特定の銘柄の市場データを分析します
  • place_trade(symbol, order_type, volume):特定の銘柄の取引を発注します
  • manage_positions():オープンポジションを管理します
  • analyze_trading_history(days):取引履歴を分析します

開発

プロジェクト構成
mcp-metatrader5-server/
├── src/
│   └── mcp_mt5/
│       ├── __init__.py      # Entry point with main()
│       ├── main.py          # FastMCP server with all tools
│       └── test_client.py   # Test client for development
├── docs/
│   ├── getting_started.md
│   ├── market_data_guide.md
│   ├── trading_guide.md
│   └── publishing.md
├── .env                     # Environment configuration (create from .env.example)
├── README.md
├── pyproject.toml           # Project metadata (using hatchling)
└── uv.lock                  # Dependency lock file
パッケージのビルド

uv を使用する場合(推奨):

uv build

これにより、dist/ ディレクトリに wheel とソースディストリビューションが作成されます。

PyPI への公開

uv を使用する場合:

# Build first
uv build

# Publish to PyPI
uv publish

# Or publish to TestPyPI first
uv publish --publish-url https://test.pypi.org/legacy/

ライセンス

MIT

謝辞

  • MetaTrader 5 プラットフォームを提供する MetaQuotes
  • MCP サーバーの実装を提供する FastMCP

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。