Binance MCP Server について
Binance MCP ServerはBinance取引所APIをAIアシスタントに接続し、相場、アカウント、ウォレットの照会や注文管理を可能にします。読み取り専用のアカウントツールに加え、注文やキャンセルなどの取引操作も提供します。
主な機能
- 01価格と市場データの取得
- 02アカウント、ウォレット、残高の確認
- 03取引と注文状況の照会
- 04注文の発注とキャンセル
- 05入出金履歴の確認
活用シーン
- 01取引ペアの価格やローソク足の確認
- 02残高とAPI権限の確認
- 03未約定注文や取引履歴の調査
- 04アシスタント経由での注文やキャンセル
MCP 対応
MCPサーバーはBinanceの市場、アカウント、ウォレット、取引ツールをMCPクライアントに公開します。アカウントへのアクセスや取引にはBinance API認証情報が必要で、API権限の制約を受けます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Binance MCP Server
Binance 暗号資産取引所 API と連携するためのツールを提供する Model Context Protocol(MCP)サーバーです。このサーバーを使うと、Claude などの AI アシスタントがリアルタイムの暗号資産データにアクセスし、ユーザーに代わって取引操作を実行できます。
目次
概要
この MCP サーバーは、AI アシスタントと Binance 暗号資産取引所をつなぐブリッジとして機能します。AI アシスタントが次の操作を行えるツールを提供します。
- 暗号資産の現在価格を確認する
- アカウントの残高と情報を確認する
- 買い注文と売り注文を出す
このサーバーは Model Context Protocol を実装しており、Cline および Claude Desktop と互換性があります。
前提条件
- Node.js(v16 以降)
- npm または yarn
- API アクセスが有効な Binance アカウント
- Cline CLI または Claude Desktop
インストール
- このリポジトリをクローンします。
git clone https://github.com/py7hagoras/binance-mcp.git
cd binance-mcp
- 依存関係をインストールします。
npm install
- プロジェクトをビルドします。
npm run build
設定
サーバーを動作させるには、Binance API 認証情報が必要です。次の環境変数を設定してください。
BINANCE_API_KEY:Binance API キーBINANCE_API_SECRET:Binance API シークレット
Binance API キーの作成
- Binance アカウントにログインします
- API Management に移動します
- 新しい API キーを作成します(
place_orderツールを使用する場合は、取引権限を有効にすることを検討してください) - API キーとシークレットを安全に保存します
使い方
Cline での使用
Cline は、Claude などの AI モデルとやり取りするためのコマンドラインインターフェースです。
- まだインストールしていない場合は、Cline をインストールします。
npm install -g @cline-ai/cline
- Binance API 認証情報を環境変数として設定します。
# On Windows (Command Prompt)
set BINANCE_API_KEY=your_api_key
set BINANCE_API_SECRET=your_api_secret
# On Windows (PowerShell)
$env:BINANCE_API_KEY="your_api_key"
$env:BINANCE_API_SECRET="your_api_secret"
# On macOS/Linux
export BINANCE_API_KEY=your_api_key
export BINANCE_API_SECRET=your_api_secret
- Binance MCP サーバーを指定して Cline を起動します。
cline --mcp-server "node path/to/binance-server/build/index.js"
- Cline のセッションで、Binance ツールを使用できるようになります。例:
You can now check the price of Bitcoin by using the get_price tool from the binance-server.
Claude Desktop での使用
Claude Desktop は、Claude 用のデスクトップアプリケーションです。
-
Binance API 認証情報を環境変数として設定します(上記を参照)
-
Binance MCP サーバーを使用するように Claude Desktop を設定します。
a. Claude Desktop を開きます
b. Settings > MCP Servers に移動します
c. 「Add Server」をクリックします
d. 名前を入力します(例:「Binance Server」)
e. コマンドに
node path/to/binance-server/build/index.jsと入力しますf. 「Save」をクリックします
-
Claude Desktop で新しい会話を開始し、MCP Servers メニューから Binance Server を有効にします
-
Claude に Binance ツールの使用を依頼できるようになります。例:
Can you check the current price of Ethereum using the Binance API?
利用可能なツール
このサーバーは、Binance API と連携するための包括的なツールセットを、次のカテゴリに分けて提供します。
マーケットデータツール
get_price
暗号資産の現在価格を取得します。
パラメーター:
symbol:取引ペアのシンボル(例:「BTCUSDT」、「ETHUSDT」)
応答例:
{
"symbol": "BTCUSDT",
"price": "50123.45"
}
get_24hr_ticker
24 時間のティッカー価格変動統計を取得します。
パラメーター:
symbol(任意):取引ペアのシンボル(例:「BTCUSDT」、「ETHUSDT」)。指定しない場合は、すべてのシンボルのデータを返します。
応答例:
{
"symbol": "BTCUSDT",
"priceChange": "100.00",
"priceChangePercent": "0.2",
"weightedAvgPrice": "50150.25",
"prevClosePrice": "50050.00",
"lastPrice": "50150.00",
"lastQty": "0.5",
"bidPrice": "50145.00",
"bidQty": "2.5",
"askPrice": "50155.00",
"askQty": "1.8",
"openPrice": "50050.00",
"highPrice": "50200.00",
"lowPrice": "49900.00",
"volume": "10000.5",
"quoteVolume": "500750000.25",
"openTime": 1619712000000,
"closeTime": 1619798400000,
"firstId": 100000,
"lastId": 100500,
"count": 500
}
get_klines
ローソク足データ(Kline)を取得します。
パラメーター:
symbol:取引ペアのシンボル(例:「BTCUSDT」、「ETHUSDT」)interval:Kline の間隔(例:「1m」、「3m」、「5m」、「15m」、「30m」、「1h」、「2h」、「4h」、「6h」、「8h」、「12h」、「1d」、「3d」、「1w」、「1M」)limit(任意):返すエントリー数(デフォルトは 500、最大は 1000)startTime(任意):開始時刻(ミリ秒)endTime(任意):終了時刻(ミリ秒)
応答例:
[
{
"openTime": 1619712000000,
"open": "50050.00",
"high": "50100.00",
"low": "50000.00",
"close": "50080.00",
"volume": "100.5",
"closeTime": 1619715600000,
"quoteAssetVolume": "5030000.00",
"numberOfTrades": 1000,
"takerBuyBaseAssetVolume": "60.5",
"takerBuyQuoteAssetVolume": "3030000.00"
},
// Additional klines...
]
get_order_book
シンボルの注文板を取得します。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")limit(任意):注文板の深さ(デフォルトは100、最大は5000)
レスポンス例:
{
"lastUpdateId": 1027024,
"bids": [
{
"price": "50145.00",
"quantity": "2.5"
},
{
"price": "50140.00",
"quantity": "3.2"
}
],
"asks": [
{
"price": "50155.00",
"quantity": "1.8"
},
{
"price": "50160.00",
"quantity": "2.1"
}
]
}
get_recent_trades
シンボルの最近の取引を取得します。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")limit(任意):返す取引数(デフォルトは500、最大は1000)
レスポンス例:
[
{
"id": 28457,
"price": "50145.00",
"qty": "0.1",
"quoteQty": "5014.50",
"time": 1619712000000,
"isBuyerMaker": false,
"isBestMatch": true
},
// Additional trades...
]
アカウントツール
get_account
残高などのアカウント情報を取得します。
パラメーター: なし
レスポンス例:
{
"makerCommission": 10,
"takerCommission": 10,
"buyerCommission": 0,
"sellerCommission": 0,
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"updateTime": 1619712000000,
"accountType": "SPOT",
"balances": [
{
"asset": "BTC",
"free": "0.001",
"locked": "0.0"
},
{
"asset": "ETH",
"free": "0.05",
"locked": "0.0"
}
],
"permissions": ["SPOT"]
}
読み取り専用のウォレットおよび権限ツール
get_wallet_balances:Binance GlobalのすべてのウォレットのBTC換算サマリー。get_api_restrictions:APIキーの読み取り、取引、先物、マージン、振替、出金の権限。get_funding_wallet:ファンディングウォレットの残高。任意でassetによる絞り込みが可能です。get_simple_earn_account:Simple Earnの合計残高。get_simple_earn_flexible_positions:Flexible Earnのポジション。asset、productId、current、sizeによる絞り込みに対応しています。get_simple_earn_locked_positions:Locked Earnのポジション。asset、positionId、projectId、current、sizeによる絞り込みに対応しています。get_usdm_futures_balances:USDⓈ-M Futuresの資産残高。get_coinm_futures_balances:COIN-M Futuresの資産残高。get_cross_margin_account:クロスマージンの残高と負債。get_isolated_margin_account:分離マージンの残高と負債。任意でカンマ区切りのsymbolsによる絞り込みが可能です。
これらのツールは、注文の発注、資産の振替、Earn商品への申し込み、アカウント設定の変更を行いません。商品固有のAPI権限が引き続き必要な場合があります。
get_my_trades
特定のシンボルの取引を取得します。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")orderId(任意):取引を絞り込む注文IDstartTime(任意):開始時刻(ミリ秒)endTime(任意):終了時刻(ミリ秒)fromId(任意):取得開始位置となる取引IDlimit(任意):返す取引数(デフォルトは500、最大は1000)
レスポンス例:
[
{
"id": 28457,
"orderId": 100234,
"price": "50145.00",
"qty": "0.1",
"quoteQty": "5014.50",
"commission": "5.01",
"commissionAsset": "USDT",
"time": 1619712000000,
"isBuyer": true,
"isMaker": false,
"isBestMatch": true
},
// Additional trades...
]
get_open_orders
シンボルまたはすべてのシンボルの現在の未約定注文を取得します。
パラメーター:
symbol(任意):取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")。指定しない場合は、すべてのシンボルの未約定注文を返します。
レスポンス例:
[
{
"symbol": "BTCUSDT",
"orderId": 100234,
"orderListId": -1,
"clientOrderId": "myOrder1",
"price": "50000.00",
"origQty": "0.1",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1619712000000,
"updateTime": 1619712000000,
"isWorking": true,
"origQuoteOrderQty": "0.0"
},
// Additional orders...
]
get_all_orders
シンボルのすべての注文(有効、キャンセル済み、または約定済み)を取得します。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")orderId(任意):取得開始位置となる注文IDstartTime(任意):開始時刻(ミリ秒)endTime(任意):終了時刻(ミリ秒)limit(任意):返すエントリー数(デフォルトは500、最大は1000)
レスポンス例:
[
{
"symbol": "BTCUSDT",
"orderId": 100234,
"orderListId": -1,
"clientOrderId": "myOrder1",
"price": "50000.00",
"origQty": "0.1",
"executedQty": "0.1",
"cummulativeQuoteQty": "5000.00",
"status": "FILLED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1619712000000,
"updateTime": 1619712100000,
"isWorking": true,
"origQuoteOrderQty": "0.0"
},
// Additional orders...
]
取引ツール
place_order
買い注文または売り注文を発注します。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")side:注文側("BUY"または"SELL")type:注文タイプ("LIMIT"、"MARKET"、"STOP_LOSS"、"STOP_LOSS_LIMIT"、"TAKE_PROFIT"、"TAKE_PROFIT_LIMIT"、"LIMIT_MAKER")quantity:注文数量price(任意):注文価格(LIMIT注文では必須)timeInForce(任意):有効期間(LIMIT注文では必須。"GTC"、"IOC"、"FOK"のいずれか)newClientOrderId(任意):注文の一意なID(指定しない場合は自動生成されます)stopPrice(任意):ストップ価格(STOP_LOSS、STOP_LOSS_LIMIT、TAKE_PROFIT、TAKE_PROFIT_LIMIT注文では必須)icebergQty(任意):LIMIT、STOP_LOSS_LIMIT、TAKE_PROFIT_LIMITと併用し、アイスバーグ注文を作成しますnewOrderRespType(任意):レスポンスJSONを設定します("ACK"、"RESULT"、"FULL"のいずれか)
リクエスト例:
{
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"quantity": "0.001",
"price": "50000",
"timeInForce": "GTC"
}
レスポンス例:
{
"symbol": "BTCUSDT",
"orderId": 100234,
"orderListId": -1,
"clientOrderId": "myOrder1",
"transactTime": 1619712000000,
"price": "50000.00",
"origQty": "0.001",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
cancel_order
有効な注文をキャンセルします。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")orderId(省略可):注文 IDclientOrderId(省略可):クライアント注文 ID
レスポンス例:
{
"symbol": "BTCUSDT",
"origClientOrderId": "myOrder1",
"orderId": 100234,
"orderListId": -1,
"clientOrderId": "cancelMyOrder1",
"price": "50000.00",
"origQty": "0.001",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
cancel_all_orders
指定したシンボルの未決済注文をすべてキャンセルします。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")
レスポンス例:
[
{
"symbol": "BTCUSDT",
"origClientOrderId": "myOrder1",
"orderId": 100234,
"orderListId": -1,
"clientOrderId": "cancelMyOrder1",
"price": "50000.00",
"origQty": "0.001",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
},
// Additional canceled orders...
]
get_order
注文のステータスを確認します。
パラメーター:
symbol:取引ペアのシンボル(例:"BTCUSDT"、"ETHUSDT")orderId(省略可):注文 IDclientOrderId(省略可):クライアント注文 ID
レスポンス例:
{
"symbol": "BTCUSDT",
"orderId": 100234,
"orderListId": -1,
"clientOrderId": "myOrder1",
"price": "50000.00",
"origQty": "0.001",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1619712000000,
"updateTime": 1619712000000,
"isWorking": true,
"origQuoteOrderQty": "0.0"
}
ウォレットツール
get_deposit_address
コインの入金アドレスを取得します。
パラメーター:
coin:コインのシンボル(例:"BTC"、"ETH")network(省略可):ネットワーク(例:"BSC"、"ETH")
レスポンス例:
{
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
"coin": "BTC",
"tag": "",
"url": "",
"network": "BTC"
}
get_deposit_history
入金履歴を取得します。
パラメーター:
coin(省略可):コインのシンボル(例:"BTC"、"ETH")status(省略可):ステータス(0:保留中、1:成功)startTime(省略可):開始時刻(ミリ秒)endTime(省略可):終了時刻(ミリ秒)offset(省略可):オフセットlimit(省略可):上限数
レスポンス例:
[
{
"amount": "0.001",
"coin": "BTC",
"network": "BTC",
"status": 1,
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
"addressTag": "",
"txId": "b3c6219639cf0d8e56a47bf1c57a124a256a0379c79cc72c6a341b4ce6f32626",
"insertTime": 1619712000000,
"transferType": 0,
"confirmTimes": "1/1"
},
// Additional deposits...
]
get_withdraw_history
出金履歴を取得します。
パラメーター:
coin(省略可):コインのシンボル(例:"BTC"、"ETH")status(省略可):ステータス(0:メール送信済み、1:キャンセル済み、2:承認待ち、3:却下、4:処理中、5:失敗、6:完了)startTime(省略可):開始時刻(ミリ秒)endTime(省略可):終了時刻(ミリ秒)offset(省略可):オフセットlimit(省略可):上限数
レスポンス例:
[
{
"id": "b3c6219639cf0d8e56a47bf1c57a124a",
"amount": "0.001",
"transactionFee": "0.0005",
"coin": "BTC",
"status": 6,
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
"txId": "b3c6219639cf0d8e56a47bf1c57a124a256a0379c79cc72c6a341b4ce6f32626",
"applyTime": 1619712000000,
"network": "BTC",
"transferType": 0,
"info": "Withdrawal completed successfully"
},
// Additional withdrawals...
]
withdraw
出金リクエストを送信します。
パラメーター:
coin:コインのシンボル(例:"BTC"、"ETH")address:出金先アドレスamount:出金額network(省略可):ネットワーク(例:"BSC"、"ETH")name(省略可):アドレスの説明addressTag(省略可):XRP、XMR などのコインで使用する補助アドレス識別子
レスポンス例:
{
"id": "b3c6219639cf0d8e56a47bf1c57a124a"
}
デプロイ方法
ローカルデプロイ
サーバーを使用する最も簡単な方法は、「使用方法」セクションの説明に従ってローカルで実行することです。
永続的なデプロイ
より永続的な構成にするには:
-
環境変数を設定してサーバーを起動するスタートアップスクリプトまたはサービスを作成します
-
Windows の場合は、バッチファイルを作成できます:
@echo off
set BINANCE_API_KEY=your_api_key
set BINANCE_API_SECRET=your_api_secret
node path/to/binance-server/build/index.js
- macOS/Linux の場合は、シェルスクリプトを作成できます:
#!/bin/bash
export BINANCE_API_KEY=your_api_key
export BINANCE_API_SECRET=your_api_secret
node /path/to/binance-server/build/index.js
Docker デプロイ
Docker を使用してサーバーをコンテナ化することもできます:
- Dockerfile を作成します:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["node", "build/index.js"]
- Docker コンテナをビルドして実行します:
docker build -t binance-mcp-server .
docker run -e BINANCE_API_KEY=your_api_key -e BINANCE_API_SECRET=your_api_secret binance-mcp-server
セキュリティに関する考慮事項
API キーのセキュリティ
- API キーを共有したり、コードに直接記述したりすることは絶対に避けてください
- 環境変数または安全なシークレット管理ソリューションを使用してください
- 制限付きの権限を持つ API キーの使用を検討してください(例:取引が不要な場合は読み取り専用)
- 可能であれば、Binance API キーに IP 制限を設定してください
取引のリスク
place_orderツールを有効にすると実際の取引が実行されるため、注意してください- まず Binance のテストネットアカウントでテストすることを検討してください
- Binance アカウントに適切な取引上限を設定してください
- 不審なアクティビティがないか、アカウントを定期的に監視してください
トラブルシューティング
よくある問題
-
"BINANCE_API_KEY and BINANCE_API_SECRET environment variables are required"
- 両方の環境変数が正しく設定されていることを確認してください
-
API キーのエラー
- API キーに必要な権限があることを確認してください
- リクエストを妨げている可能性のある IP 制限が API キーに設定されていないか確認してください
-
接続の問題
- 安定したインターネット接続があることを確認してください
- お使いの地域から Binance API にアクセスできるか確認してください(VPN が必要な場合があります)
ログ
サーバーはコンソールにエラーを記録します。トラブルシューティングの際は、これらのログを確認してください。
コントリビューション
コントリビューションを歓迎します。お気軽に Pull Request を送信してください。
ライセンス
このプロジェクトは ISC ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。