CCXT MCP サーバー
このプロジェクトは、 CCXTライブラリのさまざまな関数を大規模言語モデル (LLM) のツールとして公開するモデル コンテキスト プロトコル (MCP) サーバーを提供します。
これにより、LLM は、残高や市場データの取得、注文の作成などのタスクについて、標準化された非同期方式で暗号通貨取引所と対話できるようになります。
このサーバーはFastMCPを使用して構築されており、Python で MCP サーバーを作成するプロセスが簡素化されます。
特徴
CCXT 統合: 交換相互作用のために共通の CCXT 関数をラップします。
非同期: 効率的な非ブロッキング操作のために
asyncioとccxt.async_supportを使用して構築されています。明確なツール定義: 明確なパラメータの説明と制約のために
typing.Annotatedとpydantic.Fieldを使用し、LLM (および開発者) がツールを理解して使用しやすくなります。認証処理: プライベート エンドポイントの API キー、シークレット、およびパスフレーズ認証をサポートします。
パブリックおよびプライベート ツール: パブリック マーケット データとプライベート アカウント アクションに個別のツールを提供します。
Related MCP server: MCP Ethers Wallet
インストール
リポジトリのクローンを作成します (まだ作成していない場合)。
git clone https://github.com/jcwleo/ccxt-mcp-server.git cd ccxt-mcp-server仮想環境を作成してアクティブ化します (推奨):
python -m venv .venv source .venv/bin/activate # On Windows use `.venv\Scripts\activate`**依存関係をインストールします。**必要なライブラリは
requirements.txtに記載されています。pip またはuv``pip使用してインストールできます。pippip install -r requirements.txtuvuv pip install -r requirements.txt # Or, if you prefer uv's environment management: # uv sync
サーバーの実行
依存関係がインストールされると、MCP サーバーを直接実行できます。
次のような、サーバーが起動したことを示す出力が表示されます。
その後、MCP クライアントはサーバーに接続できるようになります (通常は、別途設定されていない限り、FastMCP によって管理されるデフォルトのポートで接続されます)。
MCP サーバー構成 (MCP クライアント用)
手動によるサーバー構成が必要な MCP クライアント (Claude デスクトップ アプリなど) を使用している場合は、次の JSON のような構成を提供する必要があります。
次の構造を持つclaude_desktop_config.jsonファイル (または MCP クライアントの同等のファイル) を作成します。
重要:
"/path/to/your/ccxt-mcp-server"このccxt-mcp-serverプロジェクトを複製またはダウンロードしたディレクトリ (つまり、mcp_server.pyを含むディレクトリ) への実際の絶対パスに置き換えます。"command"と"args"Pythonプロジェクトの実行方法と、uv使用しているか仮想環境を使用しているかによって異なります。上記の例ではuvを使用しています。pythonで仮想環境を直接使用している場合、コマンドは次のようになります。{ "mcpServers": { "ccxt-mcp-server": { "command": "/path/to/your/.venv/bin/python", // Or `python.exe` on Windows "args": [ "mcp_server.py" ], "workingDirectory": "/path/to/your/ccxt-mcp-server" } } }command仮想環境内の Python 実行可能ファイルを指していること、およびworkingDirectoryプロジェクトのルートに設定されていることを確認します。
この構成は、MCP クライアントに CCXT MCP サーバーの起動方法と通信方法を指示します。
利用可能なMCPツール
このサーバーは、API 認証が必要かどうかによって分類された次のツールを公開します。
API認証を必要とするツール(非公開)
fetch_account_balance: 現在の口座残高を取得します。fetch_deposit_address: 通貨の入金アドレスを取得します。withdraw_cryptocurrency: 指定されたアドレスに暗号通貨を引き出します。fetch_open_positions: オープンポジションを取得します(主に先物/デリバティブ)。set_trading_leverage: 取引シンボルのレバレッジを設定します (主に先物)。create_spot_limit_order: 新しいスポット指値注文を配置します。create_spot_market_order: 新しいスポット市場注文を配置します。create_futures_limit_order: 新しい先物指値注文を配置します。create_futures_market_order: 新しい先物市場注文を配置します。cancel_order: 既存のオープン注文をキャンセルします。fetch_order_history: 注文の履歴(オープン/クローズ)を取得します。fetch_my_trade_history: ユーザーが実行した取引の履歴を取得します。
公開データ用ツール(認証不要)
fetch_ohlcv: 過去の OHLCV (ローソク足) データを取得します。fetch_funding_rate: 永久先物契約の資金調達率を取得します。fetch_long_short_ratio: ロング/ショート比率を取得します (取引所固有のparamsが必要です)。fetch_option_contract_data: オプション契約の市場データを取得します。fetch_market_ticker: シンボルの最新の価格ティッカーデータを取得します。fetch_public_market_trades: シンボルの最近の公開取引を取得します。
各ツールには、 Annotatedとpydantic.Fieldの使用により、MCP プロトコル自体を介して利用できる詳細なパラメータの説明があります。
使用上の注意
先物/オプション: 先物またはオプションに関連するツール (例:
fetch_open_positions、create_futures_limit_order、fetch_funding_rate) を使用する場合は、params引数を介して CCXT クライアントを正しく構成し、取引所で必要な場合、または目的の市場タイプがデフォルトで設定されていない場合は、具体的には{'options': {'defaultType': 'future'}}(または必要に応じて'swap'、'option') を渡します。fetch_long_short_ratio: これはCCXT標準の統合メソッドではありません。params引数内に特定の取引所メソッド名とそのparamsを指定する必要があります(例:Binance先物の場合、params={'method_name': 'fapiPublicGetGlobalLongShortAccountRatio', 'method_params': {'symbol': 'BTCUSDT', 'period': '5m'}})。エラー処理: CCXT 呼び出し中に問題が発生した場合、ツールは
"error"キーを含む辞書を返します。