1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bitcoin MCPとStrands Agentを使ってBitcoin AIエージェントを作ろう!

1
Posted at

title.jpeg

この記事は Model Context Protocol Advent Calendar 2025 の記事です。

こんにちは!エンジニアの皆さん、MCP (Model Context Protocol) はもう触っていますか?

最近、Linux Foundationに移管したことも大きな話題になりましたよね!

これからももっと利用シーンが増加していくことが想定されます!

MCPが登場するまでは、AIモデルに外部ツール(データベース、API、ファイルシステムなど)を使わせるには、各モデル固有の実装が必要でした。

しかし、MCPを使えば一度作ったツールをClaudeやその他のMCP対応クライアントで共通して使えるようになるのです。

MCPについては以下の資料がわかりやすいです!

今回は、このMCPを使って 「Bitcoinを操作できるAIエージェント」 を爆速で作ってみました!!

今回採用した bitcoin-mcp

バックエンドには軽量で高速な Hono、エージェントフレームワークには Strands Agent を採用しています!

Mastraよりも簡単に実装できたのでAWSユーザーの方はこちらの方が良いのではないかと感じました!

この記事では、実際のコードを交えながら、MCPサーバーをAIエージェントに統合する方法を解説します。

ぜひ最後まで読んでいってください!

作ったもの:BitcoinAgent

今回作成したのは、チャット形式でBitcoinのネットワーク情報を取得したり、アドレスを生成したりできるAIエージェントです。

GitHubリポジトリ

プロジェクト構成

フロントエンドとバックエンドを一つのリポジトリで管理する モノレポ構成 を採用しています。

bitcoin-agent/
├── packages/
│   ├── backend/         # Hono + Strands Agent TypeScript SDK
│   └── frontend/        # React + Vite 
├── biome.json          # Biome設定
├── tsconfig.base.json  # TypeScript共通設定
├── tsconfig.json       # TypeScriptプロジェクト参照設定
└── pnpm-workspace.yaml # pnpmワークスペース設定

システムアーキテクチャ

全体的なアーキテクチャは以下の通りです。
フロントエンドからHonoサーバーへリクエストを送り、Honoサーバー内のStrands AgentがMCPクライアントを通じて bitcoin-mcp サーバーと通信します。

ポイントは、Bitcoinの操作ロジックを自前で実装していない点です。既存の bitcoin-mcp というMCPサーバーを、npx 経由で呼び出して利用しています。これがMCPの強力なところです!

ちなみに、図中の Stdio Transport は標準入出力を使った通信方式、RPC (Remote Procedure Call) は外部のBitcoinノードと通信するためのプロトコルです。これらを意識せずに使えるのがMCPの利点ですね。

処理シーケンス

ユーザーがメッセージを送信してから、AIがBitcoinネットワークを操作し、応答を返すまでの流れは以下のようになります。

API仕様 (OpenAPI)

バックエンドのAPIはOpenAPI仕様に基づいて定義されています。
主要なエンドポイントは /api/chat (通常応答) と /api/chat/stream (ストリーミング応答) です。

openapi: 3.0.3
info:
  title: Bitcoin Agent API
  description: |
    Bitcoin Agent APIは、Bitcoin MCP(Model Context Protocol)を使用して構築されたAIエージェントのバックエンドAPIです。
  version: 0.1.0

paths:
  /api/chat:
    post:
      summary: 非ストリーミングチャット
      description: エージェントに問い合わせを行い、完全なレスポンスを一度に受け取ります。
      tags:
        - chat
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string
  
  /api/chat/stream:
    post:
      summary: ストリーミングチャット
      description: エージェントからの応答をリアルタイムにストリーミングで受け取ります。
      tags:
        - chat
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string

実装のポイント

1. MCPクライアントのセットアップ

まず、バックエンドでMCPサーバー(今回は bitcoin-mcp)に接続するためのクライアントを作成します。
@modelcontextprotocol/sdk@strands-agents/sdk を使用します。

packages/backend/src/lib/bitconMcp.ts
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { McpClient } from '@strands-agents/sdk';

export function createBitcoinMCPTools() {
  // Stdio転送を使って、ローカルで動作するMCPサーバーに接続
  const bitcoinMcpTools = new McpClient({
    transport: new StdioClientTransport({
      command: 'npx',
      args: ['-y', 'bitcoin-mcp@latest'], // 既存のMCPサーバーをそのまま利用!
    }),
  });

  return bitcoinMcpTools;
}

たったこれだけで、Bitcoinの複雑なRPC操作などをカプセル化したツール群がAIから使えるようになります。

2. エージェントの初期化

次に、このツールをエージェントに渡します。
ここで使用している Strands Agent は、TypeScriptで型安全にエージェントを構築できるフレームワークです。

3. HonoでのストリーミングAPI

AIの応答は時間がかかることがあるため、UX向上のためにストリーミングレスポンスを実装します。Honoの stream ヘルパーを使うと非常に簡単に書けます。

実際に動かしてみる

それでは実際に動かしてみましょう!!

動かす前にAWS CLIで認証済みであることが必要です!

依存関係をインストールしましょう!

pnpm install

次にバックエンド側を起動します!

pnpm backend run dev

別タブでフロントエンドを起動します!

pnpm frontend run dev

これでアクセス可能になりました!

以下のような画面にアクセスできるはずです!

0.png

鍵ペアを作ってもらったり(テスト用です!!)

1.png

最新のブロック高の情報を取得したりすることができました!!

2.png

実際にテストネットのブロックエクスプローラーを確認してみると一致していました!!

3.png

これは良さげですね!!

まとめ

MCPを使うことで、「車輪の再発明」をせずに、既存の強力なツール群をAIエージェントに組み込むことができました。

  • Hono:
    高速なWebサーバーとストリーミング対応
  • Strands Agent:
    柔軟なエージェント構築
  • MCP:
    外部ツールとの標準化された接続

この3つを組み合わせることで、実用的なAIアプリケーションが驚くほど簡単に作れます!!

皆さんもぜひ、色々なMCPサーバーを組み合わせて、独自のAIエージェントを作ってみてください!

ここまで読んでいただきありがとうございました!!

良いお年を!!

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?