🚀 バイナンスMCPサーバー
バイナンスフューチャーズAPIエンドポイントへの包括的なアクセスを提供するモデルコンテキストプロトコル(MCP)サーバーです。このサーバーは、バイナンスフューチャーズAPIに記載されているすべての主要な取引、アカウント管理、および市場データ機能を実装しています。
🚀 クイックスタート
-
パッケージのインストール:
pip install binance_futures_mcp
-
サーバーの起動:
uvx binance_futures_mcp --binance-api-key "your_key" --binance-secret-key "your_secret"
-
MCPクライアントでの設定 (詳細な設定については設定セクションを参照)
✨ 主な機能
- 2つのカテゴリ(アカウント情報と市場データ)にまたがる11の重要な取引ツール
- 適切な認証処理(認証されていないリクエストを拒否)
- エラーハンドリングと緩やかな性能劣化
- リアルタイムの市場データアクセス
📦 インストール
オプション1: PyPI経由のインストール(推奨)
PyPIからパッケージをインストールします。
pip install binance_futures_mcp
オプション2: Dockerを使用したデプロイ
コンテナ化されたデプロイの場合は、以下の手順を実行します。
git clone https://github.com/alexcandrabersiva/bin-mcp.git
cd binance-mcp-server
docker build -t binance-mcp-server .
docker run -e BINANCE_API_KEY="your_api_key" -e BINANCE_SECRET_KEY="your_secret_key" \
binance-mcp-server --binance-api-key "$BINANCE_API_KEY" --binance-secret-key "$BINANCE_SECRET_KEY"
Docker Compose(オプション)
docker-compose.ymlを作成します。
version: '3.8'
services:
binance-mcp:
build: .
environment:
- BINANCE_API_KEY=${BINANCE_API_KEY}
- BINANCE_SECRET_KEY=${BINANCE_SECRET_KEY}
command: [
"--binance-api-key", "${BINANCE_API_KEY}",
"--binance-secret-key", "${BINANCE_SECRET_KEY}"
]
次に、以下のコマンドを実行します。
docker-compose up
開発用のインストール
開発用には、ソースからインストールすることができます。
git clone https://github.com/bin-mcp/binance-mcp-server.git
cd binance-mcp-server
pip install -e ".[dev]"
⚙️ 設定
APIの要件
あなたのバイナンスAPIキーには、以下の権限が必要です。
- 先物取引:注文の発行と管理
- 先物データ閲覧:アカウントおよび市場データへのアクセス
MCPクライアントの設定
このサーバーは、様々なMCPクライアントと統合することができます。以下は設定例です。
VS Code
VS Codeのsettings.jsonに以下を追加します。
{
"mcp": {
"servers": {
"binance": {
"command": "uvx",
"args": ["--from", "binance_futures_mcp", "binance-mcp-server.exe", "--binance-api-key", "your_api_key", "--binance-secret-key", "your_secret_key"]
}
}
}
}
Cursor
Cursorの設定ファイル(.cursor/mcp.json)に以下を追加します。
{
"servers": {
"binance": {
"command": "uvx",
"args": ["--from", "binance_futures_mcp", "binance-mcp-server.exe", "--binance-api-key", "your_api_key", "--binance-secret-key", "your_secret_key"]
}
}
}
Windsurf
Windsurfの設定(.windsurf/mcp.json)に以下を追加します。
{
"mcpServers": {
"binance": {
"command": "uvx",
"args": ["--from", "binance_futures_mcp", "binance-mcp-server.exe", "--binance-api-key", "your_api_key", "--binance-secret-key", "your_secret_key"]
}
}
}
Claude Desktop
Claude Desktopの設定ファイルに以下を追加します。
macOSの場合: ~/Library/Application Support/Claude/claude_desktop_config.json
Windowsの場合: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"binance": {
"command": "uvx",
"args": ["--from", "binance_futures_mcp", "binance-mcp-server.exe", "--binance-api-key", "your_api_key", "--binance-secret-key", "your_secret_key"]
}
}
}
設定に関する注意事項
- パスの指定不要:PyPI経由でインストールする場合、パスや作業ディレクトリを指定する必要はありません。
- API資格情報の設定:
your_api_keyとyour_secret_keyを、あなたの実際のバイナンスAPI資格情報に置き換えてください。
- 代替コマンド:
uvx binance_futures_mcpまたはpython -m binance_mcpを使用することもできます。
- セキュリティ:本番環境で使用する場合は、資格情報を環境変数に保存することを検討してください。
🛠️ 利用可能なツール
サーバーは、以下のカテゴリに分類された11の重要なツールを提供します。
アカウント情報
(5つのツール)
get_account_info - アカウント情報を取得
get_balance - アカウント残高を取得
get_position_info - ポジション情報を取得
get_position_mode - ポジションモード(ヘッジ vs. ワンウェイ)を取得
get_commission_rate - 手数料率を取得
市場データ
(6つのツール)
get_exchange_info - 取引所の取引規則を取得
get_book_ticker - オーダーブックの最良価格/数量を取得
get_price_ticker - シンボルの最新価格を取得
get_order_book - オーダーブックの深さを取得
get_klines - ローソク足データを取得
get_mark_price - マーク価格と資金レートを取得
💻 使用例
成行注文の発行
{
"tool": "place_order",
"arguments": {
"symbol": "BTCUSDT",
"side": "BUY",
"order_type": "MARKET",
"quantity": 0.001
}
}
指値注文の発行
{
"tool": "place_order",
"arguments": {
"symbol": "BTCUSDT",
"side": "BUY",
"order_type": "LIMIT",
"quantity": 0.001,
"price": 50000.0,
"time_in_force": "GTC"
}
}
アカウント情報の取得
{
"tool": "get_account_info",
"arguments": {}
}
市場データの取得
{
"tool": "get_klines",
"arguments": {
"symbol": "BTCUSDT",
"interval": "1h",
"limit": 100
}
}
24時間の価格統計情報の取得
{
"tool": "get_24hr_ticker",
"arguments": {
"symbol": "BTCUSDT"
}
}
テイカーの買い/売りボリューム比率の取得
{
"tool": "get_taker_buy_sell_volume",
"arguments": {
"symbol": "BTCUSDT"
}
}
🔒 セキュリティ
APIキーのセキュリティ
🔐 あなたのバイナンスAPIキーとシークレットは、完全にあなたのコンピューターにローカルに保持されます。 MCPサーバーはあなたのマシン上で完全に実行され、パッケージの作者や第三者のリモートサービスはあなたの資格情報にアクセスすることはできません。
キーのセキュリティポイント:
- ✅ 資格情報を環境変数(推奨)またはローカルの設定ファイルに保存する
- ✅ あなたが公開しない限り、キーは送信されない
- ❌ 資格情報をバージョン管理システムにコミットしない
- ❌ 資格情報を含むスクリーンショットやログを共有しない
- ✅ 必要最小限の権限を持つAPIキーを使用する
- ✅ 可能な場合は、キーにIPホワイトリストを設定する
- ✅ 開発用にはバイナンステストネットを使用することを検討する
動作原理:
-
ローカル起動:エディタまたはターミナルからMCPサーバーをローカルで起動します。
uvx binance_futures_mcp --binance-api-key $BINANCE_API_KEY --binance-secret-key $BINANCE_SECRET_KEY
-
キーはローカルに留まる:あなたの資格情報は以下の場所にのみ存在します。
- あなたの環境変数またはローカルの設定ファイル
- あなたのコンピューターのコマンドライン/プロセステーブル
- MCPプロセスのメモリ内(バイナンスへのHTTPS呼び出し中)
-
テレメトリなし:パッケージにはテレメトリまたは分析コードは含まれていません。
レート制限とエラーハンドリング
- ⚡ バイナンスのウェイトベースのレート制限を遵守する
- 🔄 注文発行の自動レート制限
- 🔐 自動的なHMAC SHA256署名の生成
- 🛡️ 明確なメッセージを伴う包括的なエラーハンドリング
- ✅ API呼び出し前のパラメーター検証
📚 ドキュメント
このサーバーは、バイナンスフューチャーズAPIに記載されているすべてのエンドポイントを実装しています。
- ベースURL:
https://fapi.binance.com
- APIタイプ: バイナンスUSD-Sマージン先物
- 認証: APIキー + HMAC SHA256署名
- レート制限: 自動的に遵守されます。
詳細なパラメーター仕様については、バイナンスフューチャーズAPIドキュメントを参照してください。
🔧 開発
プロジェクト構造
binance-mcp-server/
├── src/
│ └── binance_mcp/
│ ├── __init__.py # パッケージの初期化
│ ├── __main__.py # CLIのエントリポイント
│ ├── server.py # 主要なMCPサーバーの実装
│ ├── client.py # バイナンスAPIクライアント
│ ├── handlers.py # ツール実行ハンドラー
│ ├── tools.py # ツールの定義(11の取引ツール)
│ └── config.py # 設定管理
├── Dockerfile # Dockerコンテナ化
├── .dockerignore # Dockerビルドの最適化
├── pyproject.toml # プロジェクト設定
├── mcp-config.json # MCPクライアントの設定例
└── README.md # ドキュメント
アーキテクチャの概要
- モジュール化設計:複数のコンポーネントに関心事を分離
- 認証:環境変数を使用した安全なAPIキーの処理
- エラーハンドリング:緩やかな性能劣化と包括的なエラー管理
テストの実行
pytest
コードフォーマット
black src/
ruff check src/
❗ エラーコード
遭遇する可能性のある一般的なバイナンスAPIエラーコードは以下の通りです。
| コード |
説明 |
-1121 |
無効なシンボル |
-2019 |
証拠金が不足しています |
-1116 |
無効な注文タイプ |
-1013 |
フィルターエラー(PRICE_FILTER、LOT_SIZEなど) |
-1102 |
必須パラメーターが送信されていません |
-1003 |
リクエストが多すぎます(レート制限を超えました) |
完全なリストについては、バイナンスAPIエラーコードを参照してください。
🤝 コントリビューション
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更を加える
- 必要に応じてテストを追加する
- プルリクエストを送信する
📄 ライセンス
MITライセンス - 詳細についてはLICENSEファイルを参照してください。
⚠️ 免責事項
⚠️ 重要: このソフトウェアは教育および開発目的で提供されています。暗号通貨の取引には大きなリスクが伴います。自己責任で使用し、失うことのできないお金で取引しないでください。
💬 サポート
問題や質問については、以下を参照してください。
- バイナンスAPIドキュメントを確認する
- APIドキュメント内のエラーコードを確認する
- あなたのAPI資格情報が正しい権限を持っていることを確認する