Skip to main content
Glama
katunet

Dukascopy MCP Server

by katunet

Dukascopy MCP Server

Dukascopy の無料公開データフィードからティックデータ・1分足OHLCを取得する MCP (Model Context Protocol) サーバー。

Claude Code / Claude Desktop から直接呼び出して、FX・CFDのヒストリカルデータを取得・分析できる。

MT5_mcp と組み合わせることで、実ブローカーのティック特性(スプレッド・遅延)を Dukascopy データに重畳した「較正済みティック」を生成できる。

機能一覧

データ取得・キャッシュ(6ツール)

ツール

用途

get_ticks

指定シンボル・日時の1時間分ティックデータをJSON返却(キャッシュなし)

get_candles

指定シンボル・日時の1時間分1分足OHLCをJSON返却(キャッシュ優先)

download_ticks

期間指定でティックデータをCSVに一括保存

download_candles

期間指定で1分足OHLCをCSVに一括保存

cache_status

保存済みデータの一覧表示(シンボル・期間・サイズ)

clear_cache

キャッシュ削除(シンボル・期間指定可)

キャリブレーションパイプライン(4ツール)

ツール

用途

calibrate

MT5ティック ↔ Dukascopyティックを照合し、時間帯別スプレッドプロファイルを生成・保存

reshape

較正モデルを使って Dukascopy ティックをブローカー特性に近似変換

calibration_status

保存済み較正モデル(profile.json)の一覧と概要を確認

get_reshaped_ticks

成形済みティックをJSON取得(アドホック分析・精度確認用)

Related MCP server: MCP Financial Datasets Server

キャリブレーションの仕組み

[前提データ準備]
  MT5_mcp: download_ticks_bulk  → WD_Black/MT5_cache/{broker}/{symbol}/ticks/
  Dukascopy: download_ticks     → WD_Black/Dukascopy_mcp/cache/{symbol}/ticks/

[較正モデル生成]
  calibrate(symbol, broker, start, end)
    → TickAligner: 時刻±tolerance_msでMT5↔Dukascopyのティックペアを照合
    → SpreadProfiler: 時間帯(0-23)ごとにスプレッド差・中値オフセットを集計
    → CalibrationModel: profile.json として WD_Black/calibration/{broker}/{symbol}/ に保存
    ※ ForexFactory 高インパクトニュース前後はサンプルから除外可(use_calendar=true)

[ティック成形]
  reshape(symbol, broker, start, end)
    → Reshaper: 較正モデルの時間帯プロファイルを使い Dukascopy のbid/askを補正
    → 出力: WD_Black/reshaped/{broker}/{symbol}/ticks/{date}.csv

ファイル構成

Dukascopy_mcp/
  server.py              # MCPサーバー (10ツール定義)
  dukascopy_client.py    # データ取得・パース・キャッシュ管理
  requirements.txt
  calibration/
    model.py             # CalibrationModel (JSON保存/読み込み)
    tick_aligner.py      # TickAligner (MT5↔Dukascopy ミリ秒アライメント)
    spread_profiler.py   # SpreadProfiler (時間帯別プロファイル集計)
    reshaper.py          # Reshaper (較正モデル適用)
    calendar_loader.py   # CalendarLoader (ForexFactory ニュース除外)
  tests/
    test_client.py
    test_server.py
    test_tick_aligner.py
    test_spread_profiler.py
    test_reshaper.py
    test_calendar_loader.py

キャッシュパス(WD_Black SSD 優先)

種別

WD_Black パス

ローカルフォールバック

Dukascopy ティック/ローソク

/Volumes/WD_Black/Dukascopy_mcp/cache/

./cache/

MT5 ティック(MT5_mcpと共有)

/Volumes/WD_Black/MT5_cache/

./MT5_cache/

較正モデル

/Volumes/WD_Black/calibration/

./calibration_cache/

成形済みティック

/Volumes/WD_Black/reshaped/

./reshaped_cache/

ForexFactory カレンダー

/Volumes/WD_Black/ForexFactory/calendar/

使用しない

WD_Black が接続中であれば自動的にそちらに書き込む。未接続時はローカルにフォールバック。

対応シンボル (デフォルトプリセット 16ペア)

メイン: XAUUSD

クロス通貨: USDJPY, EURUSD, GBPJPY, EURJPY, EURCHF, EURAUD, EURNZD, GBPCAD, GBPCHF, GBPAUD, GBPNZD, NZDCHF, AUDNZD, AUDCAD, CHFJPY

プリセット外の任意シンボルも指定可能。

セットアップ

cd Dukascopy_mcp
pip install -r requirements.txt

Claude Code (.mcp.json):

{
  "mcpServers": {
    "dukascopy": {
      "command": "python3",
      "args": ["server.py"],
      "cwd": "/path/to/Dukascopy_mcp"
    }
  }
}

使い方

アドホック分析

「XAUUSD の 2024-01-15 10:00 UTC のティックデータを見せて」
→ get_ticks(symbol="XAUUSD", date="2024-01-15", hour=10)

「EURUSD の 2024-03-01 15時台の1分足を取得して」
→ get_candles(symbol="EURUSD", date="2024-03-01", hour=15)

バックテスト用データ一括取得

「XAUUSD の 2023年1月〜12月のティックをダウンロードして」
→ download_ticks(symbol="XAUUSD", start="2023-01-01", end="2023-12-31")

「今キャッシュにどれくらいデータがある?」
→ cache_status()

キャリブレーション(WiFi接続・WD_Black接続が必要)

# 1. Dukascopy ティックをダウンロード
download_ticks(symbol="XAUUSD", start="2025-01-01", end="2025-03-31")

# 2. MT5 ティックをダウンロード(MT5_mcp で実行)
download_ticks_bulk(symbol="XAUUSD", start="2025-01-01", end="2025-03-31", account="ICMarkets")

# 3. 較正モデルを生成
calibrate(symbol="XAUUSD", broker="ICMarkets", start="2025-01-01", end="2025-03-31")

# 4. Dukascopy ティックをブローカー特性に成形
reshape(symbol="XAUUSD", broker="ICMarkets", start="2025-01-01", end="2025-03-31")

# 5. 成形済みティックを確認
get_reshaped_ticks(symbol="XAUUSD", broker="ICMarkets", date="2025-01-15", hour=10)

データソース

  • URL: https://datafeed.dukascopy.com/datafeed/

  • 形式: LZMA圧縮バイナリ (.bi5)

  • 認証: 不要 (無料公開データ)

  • 利用可能期間: 2003-2004年頃〜現在 (通貨ペアにより異なる)

テスト

python3 -m pytest tests/ -v

技術スタック

  • Python 3, asyncio

  • httpx — 非同期HTTPクライアント

  • MCP — Model Context Protocol (stdio)

  • lzma, struct — 標準ライブラリ (bi5解凍・バイナリパース)

ライセンス

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables access to MetaTrader5 market data and trading functionality, including real-time quotes, historical OHLCV data, tick data, symbol information, and technical indicators for forex and other trading instruments.
    22
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Unified real-time & historical market data API for Forex, stocks (US/HK/A-share), crypto, indices & precious metals. Tick, order book depth & K-line via REST + WebSocket. AI-native: MCP server, Skill & CLI.
    817
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Provides professional market data access via DataBento API, including real-time futures quotes, historical timeseries, batch downloads, symbol resolution, metadata discovery, and reference data.
    17
    12 npm
    9
    MIT