Bitcoin MCP Server

by AbdelStark
Verified
MIT License
103
18
  • Apple

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables interaction with the Bitcoin blockchain, providing tools for generating keys, validating addresses, decoding transactions, querying latest blocks, and retrieving transaction details.

₿itcoin & Lightning Network MCP サーバー

概要

AI モデルが Bitcoin および Lightning Network と対話して、キーの生成、アドレスの検証、トランザクションのデコード、ブロックチェーンのクエリなどを実行できるようにする Model Context Protocol (MCP) サーバー。

🎮 デモ

クロードのデモビデオGooseデモビデオ

💼 目次

🔧 機能

  • キー生成: アドレス、公開キー、秘密キー (WIF) を含む新しい Bitcoin キー ペアを作成します。
  • アドレス検証: Bitcoin アドレスの正確性を検証します。
  • トランザクションのデコード: 生の Bitcoin トランザクションを解析し、その詳細を人間が読める形式で表示します。
  • ブロックチェーンクエリ:
    • 最新のブロック: 最新のブロックの詳細 (ハッシュ、高さ、タイムスタンプ、トランザクション数など) を取得します。
    • トランザクションの詳細: TXID を使用してトランザクションの詳細情報を取得します。
  • ライトニングネットワーク:
    • 請求書のデコード: BOLT11 Lightning 請求書を解析し、人間が読める形式で情報を表示します。
    • 支払い: LNBits ウォレットから Lightning 請求書を直接支払います。

🔑 クロード デスクトップ統合

Claude Desktop (Claude 用の Anthropic のデスクトップ アプリ) で Bitcoin MCP サーバーを使用するには、次の手順に従います。

  1. Claude Desktopのダウンロードとインストール: Claude Desktopの公式ダウンロードページにアクセスし、お使いのオペレーティングシステム(macOSまたはWindows)用のアプリを入手してください( Claude for Desktopのインストール | Anthropicヘルプセンター)。アプリをインストールし、最新バージョンを使用していることを確認してください(アプリメニューでアップデートを確認できます)。
  2. Claude Desktop を Bitcoin MCP サーバーを使用するように構成します。Claude Desktop 構成ファイルを開きます (Claude Desktop で最初に設定を編集したときに作成されます)。
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
      このJSON設定の"mcpServers"セクションに、Bitcoin MCPサーバーのエントリを追加します。例:
    { "mcpServers": { "bitcoin-mcp": { "command": "npx", "args": ["-y", "bitcoin-mcp@latest"] } } }

    上記のスニペットでは、 "bitcoin-mcp"はサーバーの識別子です(任意の名前を付けることができます)。 commandnpxコマンドを実行するように設定されており、 args Bitcoin MCPサーバースクリプトのパス、またはサーバーを実行するコマンドを指します。

  3. Claude Desktopを再起動します。claude_desktop_config.jsonファイルを保存し、 Claude Desktopを閉じて再度開きます。次回起動時に、Claudeは設定通りにBitcoin MCPサーバーclaude_desktop_config.json自動的に起動します。Claude Desktopが起動していた場合は、変更を有効にするために再起動する必要があります。

Claudeデスクトップ統合のテスト

Claude Desktop を再起動すると、Bitcoin MCP サーバーが正しく動作しているかどうかをテストできます。

  • **クロードにビットコインに関するサンプル質問をしてみましょう。**例えば、 *「ビットコインネットワークの最新のブロックは何ですか?」*と尋ねてみましょう。統合が成功すれば、クロードの回答には「わかりません」や一般的な回答ではなく、MCPサーバー経由で取得した最新のブロックが含まれるはずです。また、 *「TXIDがabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890のトランザクションに関する情報をください」といったクエリも試すことができます。*クロードはMCPサーバーのツールを使用してデータを取得し、クエリに回答するはずです。
  • レスポンスを確認してください。Claudeはエラーのない詳細な回答(例:Bitcoinネットワークの最新ブロック)を返すはずです。エラーメッセージが表示された、または有効なレスポンスがない場合は、MCPサーバーに正しく接続されていない可能性があります。
  • Claude のログを確認する(必要な場合): Claude Desktop は、MCP 統合のデバッグに役立つログファイルを提供します。ツールが応答しない場合は、以下のログファイルを確認してください。
    • macOS: ~/Library/Logs/Claude/
    • Windows: %APPDATA%\Claude\logs\
      一般的なMCP接続メッセージはmcp.logファイルに、MCPサーバーの出力/エラーはmcp-server-bitcoin-mcp.log (または任意の名前)ファイルに記録されます。これらのログには、サーバーが起動したかどうか、またはエラー(パスの誤りやサーバー内の例外など)が発生したかどうかが表示されます。エラーが発生した場合は、必要に応じて設定または環境を修正し、Claude Desktopを再起動して再度テストしてください。

🦆 Goose 統合

Gooseは、Block社によるオープンソースのAIエージェントフレームワークで、モデルコンテキストプロトコル(Model Context Protocol)を介した拡張機能をサポートしています。Bitcoin MCPサーバーをGoose拡張機能として統合することで、GooseがBitcoinブロックチェーンと連携できるようになります。Gooseは、MCPサーバーの統合方法として、サーバーをローカルプロセス(STDIO)として実行するか、Server-Sent Events(SSE)を介してリモートサービスとして接続するかの2つの方法をサポートしています。それぞれの方法については、以下をご覧ください。

STDIO (ローカル拡張) の使用

このメソッドは、標準入出力を介して通信しながら、Bitcoin MCP サーバーを Goose のサブプロセスとしてローカルで実行します。

  1. Gooseで新しい拡張機能を追加するには、 Gooseの設定インターフェースを開きます。コマンドラインからgoose configureを実行するか、Gooseデスクトップアプリから設定 > 拡張機能にアクセスして**拡張機能を追加できます。メニューから「拡張機能を追加」**を選択します。( 拡張機能の使用 | goose
  2. **拡張機能の種類を選択します - コマンドライン拡張機能:**拡張機能の種類を尋ねられたら、コマンドライン拡張機能(CLI メニューまたは UI) を選択して、Goose がローカル コマンド ( 拡張機能の使用 | goose ) (組み込み拡張機能またはリモート拡張機能ではなく) を起動する必要があることを認識できるようにします。
  3. 拡張機能の詳細を入力します。Bitcoin MCP サーバーの名前とコマンドを入力します。
    • 名前: 「bitcoin」または任意の識別子で呼ぶことができます (これが拡張機能の参照方法になります)。
    • コマンド: MCPサーバーの実行方法を指定します。例えば、Pythonスクリプトがある場合は、それを実行するコマンドを入力します。CLIコンフィギュレータでは「どのコマンドを実行しますか?」と尋ねられることがあります。その場合は次のように入力します。
      npx -y bitcoin-mcp@latest
      これは、Goose に Bitcoin MCP サーバー ( GitHub - AbdelStark/bitcoin-mcp: Bitcoin MCP Server ) を起動するように指示します。(Claude の設定と同様に、サーバースクリプトへの正しいパス、またはサーバーを実行するための正しいコマンドを使用してください。)
    • 通常、スクリプトパス以外に引数を追加する必要はありません(サーバー側で特別なフラグが必要な場合を除く)。上記のコマンドは、Gooseがコマンドライン拡張機能として想定しているデフォルトのSTDIOトランスポートを使用しています。(Goose設定ファイルでは、これはcmd: "npx"args: ["-y", "bitcoin-mcp@latest"]type: stdio (標準I/Oモードを示す)のエントリに相当します( 拡張機能の使用 | goose )。)
  4. 最終処理と有効化:拡張機能の追加を完了します。Goose はこの新しい拡張機能を自身の設定(通常は~/.config/goose/config.yaml )に追加します。拡張機能が有効になっていることを確認してください(CLI ウィザードを使用している場合は、追加後すぐにデフォルトで有効になります。Goose デスクトップアプリでは、拡張機能リストを確認し、まだ有効になっていない場合は有効にすることができます ( 拡張機能の使用 | goose ) ( 拡張機能の使用 | goose ))。
  5. **新しい拡張機能を使ってGooseセッションを開始します。**これで、Gooseで拡張機能を使用できるようになりました。CLI経由でGooseを実行している場合は、次のコマンドを実行して、拡張機能を含むセッションを開始します。
    goose session --with-extension "bitcoin"

「bitcoin」を拡張機能に付けた名前( 拡張機能の使用 | goose )に置き換えます。(これにより、セッションで拡張機能が確実に読み込まれます。また、拡張機能がグローバルに有効になっている場合は、Goose Desktop または CLI によってすべてのセッションで自動的に拡張機能が利用できるようになります。)

SSE (リモート拡張) の使用

このメソッドは、HTTP SSEストリームを介してGooseを既に実行中のMCPサーバーに接続します。Bitcoin MCPサーバーをスタンドアロンサービスとして(別のマシン上、あるいはGooseとは独立して)実行したい場合に使用します。

  1. MCPサーバーをスタンドアロンサービスとして起動します。Bitcoin MCPサーバーを接続待ち状態になるように起動します。実際には、サーバーをMCPのHTTPエンドポイントを提供するモードで起動する必要があります。例えば、特定のポートを待ち受けるためのコマンドやオプションを指定してサーバーを実行する場合(MCPライブラリに組み込まれたWebサーバー機能を使用する、またはWebフレームワークで実行するなど)、サーバーが既知のURL(例: http://localhost:9000 )でアクセス可能であり、SSE経由のMCPプロトコルをサポートしていることを確認してください。
  2. Goose(リモート)で新しい拡張機能を追加します。これまでと同様に、 goose configure実行するか、Goose UI を使用して拡張機能を追加します(拡張機能の使用 | goose )。今回は、拡張機能の種類を尋ねられたら**「リモート拡張機能」**を選択します( 拡張機能の使用 | goose )。これにより、Goose は SSE 経由で外部サーバーに接続します。
  3. リモート拡張機能の詳細を入力します。拡張機能に名前(例:"bitcoin")を付け、サーバーのURLを指定します。URLは、MCPサーバーが稼働しているベースアドレスを入力します。例えば、サーバーがローカルマシンのポート9000でリッスンしている場合は、 http://localhost:9000と入力します。Gooseは、そのアドレスにあるMCPサーバーのSSEエンドポイントへの接続を試みます。(Gooseは標準のMCP SSEパスを使用します。これは慣例的にサーバーの/mcp/sseルート配下にあります。通常はホストとポート番号を指定するだけで、残りはGooseが処理します。)
  4. **拡張機能の有効化:**リモート拡張機能を追加したら、Gooseの設定で有効化されていることを確認してください(STDIOの場合と同様)。STDIOまたはSSE拡張機能(同じツールを使用)のいずれか一方のみを有効化すれば十分です。誤って同じサーバーのローカルバージョンとリモートバージョンの両方を有効化してしまった場合は、混乱を避けるためにどちらか一方を無効化することをお勧めします。

**Goose の Bitcoin MCP 拡張機能の使用:**拡張機能を(上記のいずれかの方法で)セットアップして有効化すると、Goose とやり取りし、Bitcoin データを照会できるようになります。Goose の新しいチャットまたはセッションで、通常どおりに質問してください。Goose は、リクエストに応じて Bitcoin MCP ツールを使用するタイミングを認識します。例:

  • 「最新のビットコインブロックは何ですか?」
  • 「TXID abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890のトランザクションに関する情報を教えてください。」

これらの質問をすると、GooseはMCPサーバーのツールを呼び出して回答(例:最新のビットコインブロック情報)を返します。GooseがMCPサーバー経由でビットコインブロックチェーンから取得した最新情報を返すのが確認できるはずです。

Goose が拡張機能を使用していないように見える場合(例えば、情報が見つからないという応答が返される場合)、拡張機能が有効になっていること、およびサーバーが稼働していることを確認してください(リモートの場合は SSE モードで実行)。また、Goose の CLI を詳細ログ付きで実行し、拡張機能の呼び出しが試行されたかどうかを確認することもできます。通常、正しく設定されていれば、Goose は MCP サーバーの機能を自動的に検出し、必要に応じて使用します。

その他のリソース: Goose拡張機能とMCPの詳細については、Gooseの公式ドキュメント( 拡張機能の使用 | goose )を参照してください。このドキュメントには、組み込み拡張機能とコミュニティ拡張機能のリストが含まれており、MCPサーバーをGooseに統合する方法が説明されています。また、Gooseドキュメントとモデルコンテキストプロトコルのドキュメントには、利用可能なMCPサーバーのディレクトリと追加の設定ヒントが記載されています。これらのドキュメントは、他の拡張機能を調べたり、独自の拡張機能を開発したりする場合に役立ちます。

📦 開発セットアップ

セットアップ手順については、開発セットアップガイドをご覧ください。

Lightning ネットワーク構成(オプション)

Lightning Network機能を使用するには、LNBits接続の詳細を設定する必要があります。これはオプションであり、Lightning Networkツールを使用する場合にのみ必要です。

{ "lnbitsUrl": "https://demo.lnbits.com", "lnbitsAdminKey": "your_admin_key", // Required for making payments "lnbitsReadKey": "your_read_key" // Required for wallet information }

これらの値は次のように取得できます。

  1. LNBitsでアカウントを作成する
  2. 新しいウォレットを作成する
  3. API情報にアクセスしてAPIキーを見つけます

📦 利用可能なツール

利用可能なツールについては、 API リファレンスガイドをご覧ください。

🚨 エラー処理

サーバーは、ビットコイン操作とブロックチェーンクエリを処理するためにカスタムエラータイプを採用しています。詳細なエラーメッセージはPinoを使用して記録され、クライアントのレスポンスに含まれるため、デバッグが容易になります。

🤝 貢献する

貢献や機能リクエストは大歓迎です! お気軽に GitHub でプルリクエストを送信したり、問題を報告してください。

📝 ライセンス

このプロジェクトはMIT ライセンスに基づいてライセンスされています。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

モデルコンテキスト プロトコルを介して Bitcoin ネットワークとのやり取りを容易にし、キー生成、アドレス検証、トランザクションのデコード、ブロックチェーン データの取得を可能にします。

  1. Overview
    1. 🎮 Demo
      1. 💼 Table of Contents
        1. 🔧 Features
          1. 🔑 Claude Desktop Integration
            1. Testing the Claude Desktop Integration
          2. 🦆 Goose Integration
            1. Using STDIO (Local Extension)
          3. 📦 Development Setup
            1. Lightning Network Configuration (Optional)
          4. 📦 Available Tools
            1. 🚨 Error Handling
              1. 🤝 Contributing
                1. 📝 License
                  ID: y42jsc8cig