mcpField
T
Trading212 Community Server

Trading212 Community Server

ローカル
github.com/RohanAnandPandit金融データ655 日前に更新

Trading212 Community Server について

Trading212 Community Serverは、Trading 212公開APIの口座、ポジション、注文、履歴データをMCPクライアントに公開します。AIワークフローで口座を確認・管理したい利用者向けで、口座通貨を考慮する分析プロンプトとキャッシュ制御を備えています。

主な機能

  1. 01口座、現金、ポジション、注文の取得
  2. 02注文の作成、変更、キャンセル
  3. 03Pie、銘柄メタデータ、口座履歴の参照
  4. 04口座通貨を考慮した分析プロンプト
  5. 05成功したGET応答を鮮度情報付きでキャッシュ

活用シーン

  1. 01口座残高、現金、ポジションの確認
  2. 02MCP経由で取引注文を発注またはキャンセル
  3. 03配当、取引一覧、過去の注文を確認

MCP 対応

stdio、SSE、Streamable HTTP経由でTrading 212のツール、リソース、分析プロンプトをMCPクライアントに公開します。ローカルの口座認証情報で公開APIに接続し、リアルタイムストリーミングは提供しません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"trading212": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TRADING212_API_KEY",
"mcp/trading212"
],
"env": {
"TRADING212_API_KEY": "<TRADING212_API_KEY>"
}
}
}
}
起動コマンドdocker run -i --rm -e TRADING212_API_KEY mcp/trading212
設定が必要な環境変数
TRADING212_API_KEYシークレット

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

パッケージ
ocimcp/trading212

ツール

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

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

詳細

Trading 212 MCP サーバー

ライセンス: MIT チェック

Trading 212 の公開 API向けの Model Context Protocol サーバーです。口座データ、ポジション、注文、パイ、金融商品のメタデータ、口座履歴を公開します。 また、口座通貨を考慮した分析プロンプトも含まれています。独自の市場データフィード、投資推奨、リアルタイムストリーミングは提供しません。

Python 3.11~3.14 に対応しています。現在のソースパッケージのバージョンは 0.2.0 です。アップグレードの詳細は変更履歴をご覧ください。このプロジェクトでは公式の MCP Python SDK 2.x を使用しています。

インストールと実行

以下の手順を自分で行うことも、Codex や Claude Code などのコーディングエージェントに依頼することもできます。次のプロンプトをエージェントのチャットに貼り付けてください。

Read https://github.com/RohanAnandPandit/trading212-mcp-server/blob/main/README.md#setup
and follow the setup process.
セットアップ
  1. 前提条件と依存関係をインストールします。 Git、 uv、Python 3.11~3.14 が必要です。安定したインストール先フォルダーを選び、次を実行します。

    git clone https://github.com/RohanAnandPandit/trading212-mcp-server.git
    cd trading212-mcp-server
    uv sync --frozen
    

    すでにチェックアウトがある場合は、ローカルの変更を上書きせずに再利用してください。 または、チェックアウトから pip install . でパッケージをインストールしてから、 trading212-mcp-server を実行します。ハッシュで固定した pip インストールの場合は、 pip install --require-hashes -r requirements.txt を実行してから、 pip install --no-deps . を実行してください。

  2. 認証情報をローカルで設定します。 まだ存在しない場合は、 .env.example から無視対象の .env ファイルを作成します。

    cp .env.example .env
    

    Trading 212 アカウントの API 設定で認証情報を生成し、必要な権限のみを付与してください。 .env を自分で編集し、TRADING212_API_KEY と、Basic 認証を使用する場合は TRADING212_API_SECRET を設定します。Trading 212 が受け付ける既存の連携では、 API キーのみの認証も引き続き利用できます。その方法を使用する場合は、サンプルのシークレット値を削除してください。 ENVIRONMENT=demo と TRANSPORT=stdio から始めてください。実口座での操作を有効にすると明示的に選択した場合にのみ、ライブ環境を使用してください。

    認証情報をチャット、コマンド、ログ、MCP クライアントの設定に含めないでください。 エージェントに手伝ってもらう場合は、値を自分で入力してください。エージェントはその間待機し、認証情報を読み取ったり、表示、記録、繰り返したりしてはいけません。

    サーバーは起動時に、作業ディレクトリにある .env を読み込みます。既存のプロセス環境変数が優先されます。

  3. MCP クライアントを接続します。 クライアントでサポートされている方法を使って、 trading212 という名前のローカル stdio サーバーを登録します。保存する前に、 接続をこのワークスペースのみで利用可能にするか、プロジェクト全体で利用可能にするかを選択してください。 mcpServers JSON を受け付けるクライアントでは、次を使用できます。

    {
      "mcpServers": {
        "trading212": {
          "command": "uv",
          "args": ["run", "--frozen", "--directory", "/absolute/path/to/trading212-mcp-server", "trading212-mcp-server"],
          "env": {
            "ENVIRONMENT": "demo",
            "TRANSPORT": "stdio"
          }
        }
      }
    }
    

    サンプルのパスを、チェックアウトの絶対パスに置き換えてください。認証情報はチェックアウト内の .env ファイルに保存します。チェックアウトからサーバーを直接起動するには、 uv run --frozen trading212-mcp-server を実行してください。

  4. 接続を確認します。 必要に応じて MCP クライアントを再起動し、サーバーに接続してツールを検出することを確認してください。検出に成功した時点でのみセットアップは完了です。インポートとツールの検出では Trading 212 へのリクエストは行われず、サーバーをインポートするだけで認証情報が必要になることもありません。セットアップ中に口座ツールや取引ツールを呼び出さないでください。MCP の設定を保存した場所と、残っている手順を記録してください。

src/server.py を参照する既存の設定は、uv sync --frozen の後も引き続き動作します。このスクリプトは Inspector のエントリーポイントとしても引き続き利用できます。

uv run --frozen mcp dev src/server.py

Inspector には Node.js と npx が必要です。Inspector でのツール呼び出しは、設定済みの口座を使用します。該当するツールを呼び出すと、変更操作も実行されます。

Docker
docker build -t trading212-mcp-server .
docker run --rm -i --env-file .env trading212-mcp-server

デスクトップクライアントでは、Docker に両方の認証情報変数を渡してください。

{
  "mcpServers": {
    "trading212": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "TRADING212_API_KEY", "-e", "TRADING212_API_SECRET", "-e", "ENVIRONMENT", "trading212-mcp-server"],
      "env": {
        "TRADING212_API_KEY": "YOUR_API_KEY",
        "TRADING212_API_SECRET": "YOUR_API_SECRET",
        "ENVIRONMENT": "demo"
      }
    }
  }
}

イメージは UID/GID 10001 で実行されます。認証情報、ローカルキャッシュ、開発用ファイルはイメージに含まれません。デフォルトのコンテナキャッシュは一時的です。キャッシュを永続化する場合は、UID 10001 が書き込み可能なプライベートディレクトリを /home/app/.cache にマウントしてください。Stdio ではポートを公開する必要はありません。

設定

変数デフォルト意味
TRADING212_API_KEY必須アカウント API キー
TRADING212_API_SECRET未設定Basic 認証用のシークレット
ENVIRONMENTdemodemo または live
TRANSPORTstdiostdio、sse、または streamable-http
TRADING212_CACHE_DIR.cache/trading212-v3キャッシュのルート。相対パスは作業ディレクトリを基準とします
TRADING212_ACCOUNT_TTL15アカウント、ポジション、注文、パイ、エクスポート状況のキャッシュ秒数
TRADING212_HISTORY_TTL300履歴のキャッシュ秒数
TRADING212_METADATA_TTL3600銘柄および取引所のキャッシュ秒数

TTL をゼロにすると、そのカテゴリのキャッシュが無効になります。値は有限かつ非負である必要があります。HTTP トランスポートは 127.0.0.1:8000 のみにバインドされ、Host/Origin は明示的に制限されます。これは単一アカウント向けのローカルサーバーです。ホスト型アクセス、パブリック HTTP バインド、複数ユーザー認証には対応していません。パブリックプロキシやトンネルを通じて公開しないでください。ツールのアノテーションは動作を説明するものであり、権限を実装するものではありません。アカウント変更を管理するには、API の権限と MCP クライアントの承認設定を使用してください。

ツール

以前のツール名はすべて維持されています。

分野ツール
アカウントfetch_account_summary、fetch_account_cash、fetch_account_info
ポジションfetch_positions、fetch_position_by_ticker、fetch_all_open_positions、fetch_open_position_by_ticker、search_specific_position_by_ticker
注文fetch_all_orders、fetch_order、place_market_order、place_limit_order、place_stop_order、place_stop_limit_order、cancel_order
パイfetch_pies、fetch_a_pie、create_pie、update_pie、duplicate_pie、delete_pie
メタデータsearch_instrument、search_exchange
履歴fetch_historical_order_data、fetch_paid_out_dividends、fetch_transaction_list、fetch_exports_list、request_csv_export

注文数量が正の場合は買い、負の場合は売りです。ゼロまたは有限でない数量、正でない価格、空のティッカーは拒否されます。パイの更新では、ドキュメントに記載された任意のフィールドを個別に指定できます。name は任意です。エクスポートの日付にはタイムゾーンを含め、順序どおりに指定する必要があります。パイは上流で非推奨になっていますが、関連ツールは維持されています。

fetch_account_info は fetch_account_summary のエイリアスです。以前のポジションツールは互換性エイリアスとして引き続き利用できます。履歴ツールは nextPagePath を含む単一ページを返します。次のページを取得するには、そのカーソルとほかのクエリパラメーターを渡してください。上限値は従来どおり 1~50 に制限されます。リクエストはすべてのページを自動でたどったり、エクスポートのダウンロードリンクを追跡したりしません。

リソースとプロンプト

リソースは従来の URI を維持しています。

  • trading212://account/summary、trading212://account/cash
  • trading212://positions、trading212://positions/{ticker}
  • trading212://orders、trading212://orders/{order_id}
  • trading212://pies、trading212://pies/{pie_id}
  • trading212://instruments、trading212://exchanges
  • trading212://history/exports

互換性 URI:trading212://account/info、 trading212://account/portfolio、trading212://account/positions、 trading212://account/portfolio/{ticker}、および trading212://account/positions/{ticker}。

analyse_trading212_data プロンプトには、利用可能な場合にアカウントの通貨が含まれ、GBX/GBP の単位について説明されます。アカウント情報の取得に失敗した場合も、基本プロンプトを返し、一般的な診断情報を stderr に出力します。

キャッシュとリクエストの保証

プライベートデータはキャッシュに残ります。認証情報とベース URL のフィンガープリントにより、アカウント、シークレットのローテーション、環境、API バージョンごとに SQLite ストレージが分離されます。認証情報と Cookie がキャッシュレイヤーに渡されることはありません。キャッシュされたレスポンスには金融データが平文で含まれます。ファイルシステムのアクセス権を制限しても、暗号化されるわけではありません。共有またはネットワークマウントされたキャッシュディレクトリではなく、プライベートなローカルディスクを使用してください。

成功したレスポンスは、キャッシュに保存する前にエンドポイントのモデルに照らして検証されます。キャッシュの対象は成功した GET リクエストのみで、期限切れのレスポンスが返されることはありません。変更操作はキャッシュされず、自動的に再試行されることもありません。変更操作を試みた後は、結果が不確かな場合も含めて、プライベートキャッシュの世代が更新されます。プロセス間で共有されるファイルロックが、読み取り、書き込み、本文の読み込み、無効化を対象とし、処理中の古い読み取りによって現在の世代にデータが再登録されるのを防ぎます。異なる認証情報の名前空間は互いに独立しています。別の API キーを使用した外部の取引や書き込みは、TTL が切れるまで反映されない場合があります。

MCP ツールの結果とリソースの内容には、_meta["io.github.RohanAnandPandit.trading212/cache"] に鮮度の詳細が含まれます。詳細は、cacheHit、retrievedAt(UTC)、ttlSeconds の各レコードからなる配列です。既存のデータフィールドはそのまま保持されます。

一時的な GET の失敗は、Retry-After とレート制限リセットヘッダーに従って、30 秒の再試行時間枠内で最大 2 回まで再試行される場合があります。各 HTTP 操作には明示的なタイムアウトが設定されています。他のプロセスが使用中のキャッシュロックを待つ時間には、別途 30 秒の上限があります。変更操作が失敗した場合、実際の結果が不明なことがあります。もう一度実行するかどうかを判断する前に、アカウントを確認してください。

0.1.x からのアップグレード

古いサーバープロセスを停止し、チェックアウトを更新して、uv sync --frozen を実行してください。新しいサーバーが .cache/hishel または .cache/trading212-v2 を読み取ったり、そこからデータを移行したりすることはありません。これらのディレクトリには、プライベートなレスポンスや Authorization ヘッダーが含まれている場合があります。パスがこのアプリケーションに属することを確認してから、古いキャッシュディレクトリを明示的に削除してください。アップグレードによってユーザーデータが削除されることはありません。Docker イメージを再構築し、ローカルファイルが含まれている可能性のある古いイメージをすべて置き換えてください。

開発とセキュリティ

アーキテクチャと検証用コマンドについてはCONTRIBUTING.mdを、非公開での報告についてはSECURITY.mdを、検証済みの動作についてはモダナイゼーション検証レポートを参照してください。

Trading 212 のスキーマを最新の状態に保つ

Trading 212 の公開中のOpenAPI 定義が正式な仕様です。docs/api.json は、レビュー可能なチェックイン済みスナップショットです。API に関わる変更を行う前、またはリリースを準備する前に、アカウントの認証情報を使わずに内容を確認してください。

uv run --with PyYAML python .agents/skills/trading212-api-sync/scripts/sync_api_schema.py --check

コマンドで差分が報告された場合は、スナップショットを更新してください。

uv run --with PyYAML python .agents/skills/trading212-api-sync/scripts/sync_api_schema.py --update

再生成だけで十分と判断せず、生成された差分を確認してください。必要に応じて、エンドポイント、パラメーター、リクエストモデルとレスポンスモデル、列挙型、非推奨項目、テスト、ドキュメントを更新し、検証スイート全体を実行してください。リポジトリ内の trading212-api-sync エージェントスキルに、ワークフローの全手順が記載されています。スキーマの確認でダウンロードするのは公開ドキュメントのみです。認証が必要なアカウントへのリクエストや取引の変更操作を行うことはありません。

このプロジェクトは独立して保守されており、Trading 212 との提携関係はなく、同社から推奨も受けていません。プロバイダーの最新のドキュメントと利用規約を確認してください。MITライセンスの下で公開されています。

コメント

MCP は初めてですか?

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

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