Bitcoin SV MCP Server について
BSV MCP は、AI アシスタントを Bitcoin SV に接続する MCP サーバーです。トランザクションの確認、残高の表示、支払いの送信、オーディナルズの作成と取引を自然言語で実行できます。ローカルで stdio により動作し、外部の BRC-100 ウォレットまたはローカルの Vault で鍵を管理します。
主な機能
- 01トランザクションの照会と残高確認
- 02支払いの送信
- 03オーディナルズの作成と取引
- 04ローカル Vault ウォレットの設定
- 05BRC-100 署名インターフェースとの連携
- 06プレビュー付きのソーシャル投稿ツール
活用シーン
- 01AI アシスタントに BSV トランザクションの状態を確認させる
- 02クライアントから BSV 支払いを送信する
- 03チェーン上のオーディナルズを作成し取引する
MCP 対応
本プロジェクトは MCP サーバーであり、ウォレット、トランザクション、オーディナルズ、ソーシャル機能のツールを MCP クライアントに公開します。既定では stdio で動作し、HTTP も選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
BSV MCP
BSV MCP は AI アシスタントを Bitcoin SV に接続します。トランザクションの確認、残高の表示、支払いの送信、オーディナル(ブロックチェーンに記録されたコンテンツ)の作成や取引を依頼できます。
インストール
サーバーを実行するために Bun を、以下の npx コマンドを実行するために Node.js をインストールし、クライアントに追加します。
# Codex
codex mcp add bsv-mcp -- npx -y bsv-mcp@latest --stdio
# Claude Code
claude mcp add --transport stdio bsv-mcp -- npx -y bsv-mcp@latest --stdio
# Grok Build
grok plugin install b-open-io/bsv-mcp --trust
コマンドを1つ選択します。Cursor または Claude Desktop の場合は、このサーバー設定を使用します。
{
"mcpServers": {
"bsv-mcp": {
"command": "npx",
"args": ["-y", "bsv-mcp@latest", "--stdio"]
}
}
}
クライアントを再起動し、「bsv_status を実行して、利用可能なものを説明してください。」と尋ねます。
ローカル stdio では Sigma アカウントも OAuth サインインも不要です。トランスポートが指定されていない場合も、これがデフォルトです。既存のセルフホスト型 HTTP は TRANSPORT=http で引き続きオプトインできます。デプロイ済みのホスト型エンドポイントに変更はありません。
Codex デスクトッププラグインの場合は、プラグインマーケットプレイスに b-open-io/claude-plugins を追加し、BSV MCP をインストールします。このプラグインはローカルの npm 実行ファイルを起動し、Node.js と Bun が必要です。Claude Code と Grok のプラグインにはローカルサーバーがバンドルされており、Bun が必要です。ツールが重複しないよう、登録は1つだけ選択してください。
ウォレットを接続する
アシスタントに wallet_onboarding の実行を依頼します。ローカルブラウザーで Vault を作成、インポート、またはロック解除します。資金を入れる前にバックアップしてください。パスワードはローカルのセットアップ UI にのみ入力し、チャットには決して入力しないでください。サーバーを再起動した後は、再度ロックを解除してください。
既存の BRC-100 ウォレットを使用するには、代わりに署名 API を設定します。
{
"mcpServers": {
"bsv-mcp": {
"command": "npx",
"args": ["-y", "bsv-mcp@latest", "--stdio"],
"env": {
"BRC100_WALLET_URL": "http://127.0.0.1:3321",
"BRC100_WALLET_ORIGINATOR": "bsv-mcp.local"
}
}
}
}
ウォレットはキーを保持し、権限リクエストを制御します。署名 API はウォレットストレージのエンドポイントとは別のものです。ネットワーク設定、アカウントの選択、プロジェクトのロールについては、ウォレットのセットアップを参照してください。
このパッケージには、外部構成、レガシーな組み込み構成、プロジェクト構成を明示的に使用するための、Bun ベースの bsv-mcp-local ランチャーも含まれています。ソースチェックアウトの例はインストールガイドにあります。
MCP プロトコルの互換性
プロトコルリビジョン 2026-07-28 を推奨します。サポート対象の 2025 クライアントも、stdio と HTTP で自動的に受け入れられます。互換性の上書き設定は不要です。最新のクライアントのみを必須にする場合に限り、MCP_LEGACY_COMPATIBILITY=false を設定してください。この設定はローカルランチャーにも引き継がれます。インストール済みのデスクトップクライアントはレガシーリクエストを使って検証済みです。最新のクライアントのサポートは別途テストされています。
最新のクライアントは、ウォレット操作とリクエスト単位の承認をサポートします。承認の継続情報は元の操作を保持し、認証済みのユーザー、その引数、有効期限に紐づけられます。拒否、キャンセル、またはセッションの取り消しによって操作は停止します。継続情報を再利用しても、トランザクションは繰り返されません。フォームによる情報要求機能を備えていないクライアントは、支出を承認できません。外部ウォレットでは、引き続き独自の署名者権限フローが使用されます。ホストされたルートでは、公開読み取りのみが可能です。
分割 SDK v2 クライアントの場合:
const client = new Client(
{ name: "my-app", version: "1" },
{ versionNegotiation: { mode: "auto" }, capabilities: { elicitation: { form: {} } } },
);
承認に依存するツールを使う前に、実際の人間による承認ハンドラーを登録してください。レガシープロトコルとの互換性はデフォルトで有効です。接続先のクライアントは、要求されたツールに必要な承認フローをサポートしている必要があります。
完全なツールカタログが引き続きデフォルトで、機能に基づいて決まります。ウォレットモード、有効なモジュール、アカウントコンテキスト、選択したプロファイルによって、tools/list が返す内容が決まります。チェックイン済みのマニフェストは、設定済みサーバー 1 台分の合成ベースラインであり、デフォルトの件数を固定するものではありません。範囲を限定した読み取りファミリーを選択する場合に限り、MCP_TOOL_CATALOG=compact を設定してください。コンパクトモードでは、同じ基盤ハンドラーが使われます。ツールを利用できるかどうかは、引き続きウォレットモードと有効なモジュールによって決まります。読み取りファミリーのベースラインは bsv_read、ordinals_read、wallet_read、utility で、それぞれ範囲が限定された操作 enum を使います。不明な操作は拒否されます。対象となるセッションでは、別個の変更用ファミリー wallet_setup と wallet_payments も公開されます。ファミリーごとの操作範囲、エンドポイントのコントラクト、MCP Apps との互換性、検証状況については、MCP クライアントのプロトコルサポートガイドを参照してください。
ソーシャル
完全なカタログとコンパクトカタログの両方で、ソーシャル操作を扱う 2 つのツールを利用できます。
bsocial_read:投稿、返信、検索、いいね、友達、チャンネル、メッセージ、動画、生のアクション履歴。bsocial_publish:投稿/返信、リポスト、いいね/いいね解除、フォロー/フォロー解除、友達追加/解除の記録、メッセージ、動画の記録。タグと添付ファイルは、個別に署名された別々の出力として扱われます。
{"action":{"type":"post","content":"Hello Bitcoin","tags":["bitcoin"]},"preview":true}
プレビューでは、キーを使ったり支出したりせずに、未署名の出力が返されます。選択した ID ウォレットの既存の権限を使って公開するには、preview を削除してください。事前にコンテンツを暗号化していない限り、メッセージは公開されます。受信者コンテキストを指定しても、メッセージは暗号化されません。友達の記録には、確立済みの鍵合意ワークフローで得られた通信公開鍵が含まれます。
例と、以前のツール名からの移行方法については、ソーシャルガイドを参照してください。PUBLIC_BMAP_URL はインデクサーサーバーのルート(/social および /q ルートを含む)であり、ウォレット API や ID API ではありません。生のフォロー/フォロー解除の記録はイベント履歴であり、現在の関係性を示すものではありません。
ローカルウォレットモード
外部モードは、既存の BRC-100 署名者に接続します。秘密鍵、ウォレットストレージ、権限の判断は署名者が保持し、BSV MCP が受け取るのは SDK 署名者インターフェースのみです。埋め込みモードでは、暗号化されたローカル Vault ウォレットを使用します。ウォレットの準備完了画面には、接続中のセッションで利用可能なツールをライブカタログから生成した、操作可能なクラウドが表示されます。
セットアップが必要な場合は、wallet_onboarding を使ってプライベートブラウザーフローを開き、ウォレットを作成、インポート、またはロック解除します。選択したアカウントのデータベースとストレージの設定は引き続き使用されます。ランチャーの既存アカウント向け埋め込みモードでは、実行時に BSV_MCP_PASSWORD も指定する必要があります。
プロジェクトモードでは、明示的に割り当てられたすべてのロール(payments、identity-signing、one-sat、encryption)を開きます。ペアになったプロジェクトセレクターと、実行時の BSV_MCP_PASSWORD が必要です。Vault モジュールがデフォルトパスを提供しない場合は、VAULT_PATH を設定してください。バインディングでは選択した公開鍵が固定され、直接鍵、BRC-42 子鍵、BRC-157/Yours プロファイルのリーフがサポートされます。プロジェクトのバインディングを変更するか、セッションが期限切れになると、取得済みのハンドルは無効になります。派生鍵は個別に保存されます。アカウントの支払い用ルートを選択すると、既存のデータベースと入金プレフィックスが引き続き使用されます。
BRC-100 ツールは walletRole(payments、identity、ordinals、encryption のいずれか)を受け付けます。メソッドのデフォルトでは対応するロールが選択され、署名/中止アクションの継続処理では、開始時のウォレットと認証済みユーザーが引き継がれます。割り当てられていないロールは、別の鍵を代わりに使わずにエラーになります。BAP ツールは公開、ローテーション、証明、プロファイルに ID ウォレットを使用し、xprv をエクスポートしません。このウォレットはそれらのトランザクションの手数料も負担し、BAP レコードを保持します。署名付き BSocial 投稿と SIGMA インスクリプションには、設定済みの ID が使われます。
外部登録では、同じプロジェクトのルート/ID の組み合わせを使って、Vault パスワードなしで分離された権限オリジンを導出できます。任意設定の BRC100_WALLET_PUBLIC_KEY では、署名者の ID を固定できます。BRC100_WALLET_ROLES は、独立したロールエンドポイントと公開鍵の固定を選択する JSON オブジェクトです。詳しくは外部署名者の設定を参照してください。ソースランチャーでは external --project-root /absolute/project --project-id project.example を指定できます。ブロードキャストはデフォルトで無効です。署名者の承認を伴うトランザクションツールを有効にするには、実行環境で DISABLE_BROADCASTING=false を設定してください。
各モードはそれぞれ独自のプロセス環境を持ち、切り替えが必要な場合は別々のサーバーとして登録してください。プロジェクトに必要な登録のみを使用してください。
埋め込みウォレットでは、保留中の PeerPay 支払いを一覧表示し、選択した支払いを wallet_peerPayments で受け取れます。受け取りにはメッセージ ID が必要で、ウォレットが受け入れた後にのみメッセージが確認されます。これらの操作に MessageBox サービス手数料はかかりません。外部署名者と Droplit では、このツールは公開されません。プロジェクトセッションでは、支払いロールの割り当てが必要です。
スキルを探す
utils_find_skills に短いキーワードクエリを渡して、bOpen カタログ内のスキルを探します。最大 5 件の説明と、バージョン管理された SKILL.md ファイルへのリンクが返されます。スキルの内容をダウンロードしたり、プラグインをインストールしたりすることはありません。コンパクトモードでは、utility ツールから utils_find_skills を選択してください。
静的なチュートリアルプロンプトと BRC/BitCom リソースカタログは廃止されました。これらの情報を参照するには、スキル検索を使用してください。変更履歴、JungleBus ドキュメント、ダッシュボードアプリのリソースは引き続き利用できます。
ウォレットとインフラストラクチャを用意する
BRC100_WALLET_URL を使用して互換性のある既存のウォレットに接続するか、ローカルの Vault ブラウザーセットアップ(wallet_onboarding)を使用してください。BSV_MCP_PASSWORD はヘッドレスエージェント専用です。そのセッションのプロセス環境に設定し、MCP クライアントの設定には決して記載しないでください。PRIVATE_KEY_WIF と IDENTITY_KEY_WIF は移行元であり、署名に使用するキーではありません。Vault にインポートし、平文のコピーは削除してください。起動時にキーが作成されることはありません。必要なウォレット API と設定については、ウォレットセットアップガイドを参照してください。
デフォルトの 1Sat API バックエンドは https://api.1sat.app です。新しいメインネットの埋め込みアカウントでは、デフォルトでウォレットストレージに https://wallet.1sat.app が使用されます。テストネットアカウントでは、設定しない限りリモートストレージプロバイダーは選択されません。API サービスには ONESAT_API_URL を、ウォレットストレージには REMOTE_STORAGE_URL を設定して上書きしてください。これらは別々の設定です。利用できるツールは、ウォレットモードと有効なモジュールによって異なります。
開発
bun install
bun run dev # Website
bun run build:all # MCP server and dashboard
# Supply BRC100_WALLET_URL in the host environment before this launch.
bun --no-env-file scripts/local-mcp-launcher.ts external # Source-checkout local launch
bun test
実験的なソフトウェアのため、API は変更される場合があります。ウォレットをバックアップしてください。トランザクションリクエストがタイムアウトした場合は、再送信する前に処理が成功しているか確認してください。MIT ライセンスです。
リリースパッケージの準備
package.json の "files" が tarball の内容になります。prepack は bun run build:all を実行します。bun publish で公開してください。コンパイル時のライブラリは devDependencies に含まれます。利用者に提供されるのはバンドル済みの dist/ ファイルであり、ソースツリーのコピーではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。