Binance MCPサーバー
Binanceの暗号通貨取引データを大規模言語モデル(LLM)エージェントに公開するモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、LLMは標準化されたインターフェースを通じてBinanceのリアルタイムおよび過去の市場データにアクセスできるようになります。
特徴
ライブ価格データ:Binanceのあらゆる取引ペアの現在の価格を取得します
注文帳アクセス: さまざまな価格レベルでの売買関心を示す注文帳のスナップショットを取得します。
過去の価格データ: 任意の時間枠の OHLCV (始値、高値、安値、終値、出来高) ローソク足データを取得します。
リアルタイム WebSocket ストリーム: WebSocket 経由でリアルタイムの取引、ティッカー、注文書の更新を購読します
包括的な市場データ: 取引、24時間統計、集計取引、ローリングウィンドウデータなどにアクセスします
取引所情報: 取引ルール、銘柄情報、手数料体系にアクセス
読み取り専用操作: すべてのデータはBinanceのパブリックREST APIを介して取得されます(APIキーは不要)
MCP標準準拠:MCP互換のLLMクライアントで動作します
Related MCP server: BSC MCP Server
要件
Python 3.8以上
CLIツールを含む
mcpパッケージ(mcp[cli])REST API の
requestsライブラリWebSocket ストリーム用の
websocketsライブラリ盛り付け用の
uvicorn(オプション)
インストール
このリポジトリをクローンします:
依存関係をインストールします:
使用法
サーバーを直接実行する
サーバーをスタンドアロン モードで実行するには:
これにより、MCP サーバーが起動し、STDIO 経由の接続をリッスンします。
MCP Inspectorを使用した開発モード
開発とテストには、MCP Inspector を使用します。
これにより、MCP Inspector インターフェイスが開き、サーバーのツールを対話型でテストできるようになります。
Claude Desktopへのインストール
このサーバーをClaude Desktopで使用するには:
MCP CLI ツールをまだインストールしていない場合はインストールします。
Claude Desktop にサーバーをインストールします。
Claude Desktop の会話内で Binance データに直接アクセスできるようになりました。
クライアントの例
プログラムによる使用方法を示すサンプル クライアント スクリプトが提供されています。
このスクリプトはサーバーに接続し、さまざまな種類の市場データを取得します。
利用可能なツール
接続と基本情報
ping_binance() : Binance APIサーバーへの接続をテストする
例:
ping_binance()
get_server_time() : Binanceから現在のサーバー時刻を取得する
例:
get_server_time()
市場データ
get_price(symbol) : 取引ペアの現在の価格を取得する
例:
get_price(symbol="BTCUSDT")
get_order_book(symbol, depth=10) : 現在の注文書を取得する
例:
get_order_book(symbol="ETHUSDT", depth=5)
get_historical_prices(symbol, interval="1d", limit=100) : 過去のOHLCVデータを取得する
例:
get_historical_prices(symbol="BTCUSDT", interval="1h", limit=24)有効な間隔: 「1m」、「3m」、「5m」、「15m」、「30m」、「1h」、「2h」、「4h」、「6h」、「8h」、「12h」、「1d」、「3d」、「1w」、「1M」
get_ui_klines(symbol, interval="1d", limit=100) : UIに最適化されたローソク足データを取得する
例:
get_ui_klines(symbol="BTCUSDT", interval="1h", limit=24)
get_recent_trades(symbol, limit=20) : シンボルの最新の取引を取得する
例:
get_recent_trades(symbol="BTCUSDT", limit=50)
get_historical_trades(symbol, limit=20, from_id=None) : シンボルの古い取引を取得する
例:
get_historical_trades(symbol="BTCUSDT", limit=100, from_id=12345)
get_aggregate_trades(symbol, limit=20) : 圧縮/集約された取引を取得する
例:
get_aggregate_trades(symbol="ETHUSDT", limit=30)
get_24hr_ticker(symbol) : 24時間の価格変動統計を取得する
例:
get_24hr_ticker(symbol="BNBUSDT")
get_all_24hr_tickers() : すべての銘柄の24時間統計を取得する
例:
get_all_24hr_tickers()
get_trading_day_ticker(symbol, type="FULL") : 取引日の価格変動統計を取得する
例:
get_trading_day_ticker(symbol="BTCUSDT", type="FULL")
get_all_trading_day_tickers(type="FULL") : すべての銘柄の取引日統計を取得します。
例:
get_all_trading_day_tickers(type="MINI")
get_rolling_window_ticker(symbol, window_size="1d", type="FULL") : ローリングウィンドウ価格統計を取得する
例:
get_rolling_window_ticker(symbol="BTCUSDT", window_size="4h")
get_all_rolling_window_tickers(window_size="1d", type="FULL") : すべてのシンボルのローリングウィンドウ統計を取得します。
例:
get_all_rolling_window_tickers(window_size="4h", type="MINI")
get_average_price(symbol) : 現在の平均価格(5分加重平均)を取得します。
例:
get_average_price(symbol="BTCUSDT")
get_book_ticker(symbol) : 最良の売買価格と数量を取得する
例:
get_book_ticker(symbol="ETHBTC")
get_all_book_tickers() : すべてのシンボルの最良のビッド/アスクを取得する
例:
get_all_book_tickers()
市場情報
get_exchange_info() : 取引ルールや銘柄リストを含む包括的な取引所情報を取得します。
get_trading_fees() : デフォルトの取引手数料を取得します(注: デモ目的で、デフォルトの公開手数料を返します)
WebSocket ストリーム
subscribe_to_trade_stream(symbol) : リアルタイムトレードイベントを購読する
例:
subscribe_to_trade_stream(symbol="BTCUSDT")
subscribe_to_kline_stream(symbol, interval="1m") : ローソク足/klineの更新を購読する
例:
subscribe_to_kline_stream(symbol="BTCUSDT", interval="5m")
subscribe_to_ticker_stream(シンボル) : 24時間ティッカー更新を購読する
例:
subscribe_to_ticker_stream(symbol="ETHUSDT")
subscribe_to_book_ticker_stream(symbol) : 最良の売買更新を購読する
例:
subscribe_to_book_ticker_stream(symbol="BNBUSDT")
subscribe_to_depth_stream(symbol, levels=10) : 注文書の更新を購読する
例:
subscribe_to_depth_stream(symbol="BTCUSDT", levels=5)
list_active_subscriptions() : アクティブなWebSocketサブスクリプションをすべて一覧表示する
例:
list_active_subscriptions()
get_latest_stream_data(stream_name) : ストリームから最新のデータを取得する
例:
get_latest_stream_data(stream_name="btcusdt@trade")
unsubscribe_from_stream(stream_name) : ストリームの購読を解除する
例:
unsubscribe_from_stream(stream_name="btcusdt@kline_1m")
cleanup_all_streams() : すべてのWebSocket接続を閉じてリソースをクリーンアップする
例:
cleanup_all_streams()
プロジェクト構造
例
基本的な接続
最新の市場データを取得する
WebSocketストリームの操作
実施状況
実装済みおよび計画中の API エンドポイントの詳細な概要については、 API 実装ステータスのドキュメントを参照してください。
サーバーの拡張
新しいツールの追加
新しいツールを追加するには、Binance API モジュールで適切な関数を作成し、コマンド モジュールの 1 つで MCP ツールとして登録します。
プライベートAPIエンドポイントのサポート
認証された API 呼び出しをサポートするには:
binance_api.pyを修正して認証を組み込む取引操作用の追加コマンドモジュールを作成する
server.pyに新しいコマンドを登録する
トラブルシューティング
接続の問題: クライアントとの接続を試みる前に、サーバーが実行中であることを確認してください
レート制限: Binance は過剰な API 呼び出しをレート制限する場合があります。高トラフィックのデプロイメントではキャッシュの実装を検討してください。
WebSocketの安定性: WebSocket接続は24時間後に切断される可能性があります(Binanceの制限)。サーバーは自動的に再接続を試みます。
データ形式: 異なるシンボルまたは間隔では、若干異なる形式でデータが返される場合があります。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
謝辞
包括的なパブリックAPIを提供するBinance
LLMツールのインタラクション標準化のためのMCPプロジェクト