Hedera MCP Server について
Hederaネットワークと連携し、ウォレット作成、残高確認、トランザクション構築と送信を行うデモ用MCPサーバーです。サーバー側での処理を示すもので、READMEでは本番利用に適さないと警告しています。
主な機能
- 01Hederaウォレットを作成
- 02アカウント残高を確認
- 03未署名の送金トランザクションを構築
- 04署名済みトランザクションを送信
- 05サーバー側でトランザクションを構築
活用シーン
- 01テスト用のHederaアカウントを作成
- 02アカウント残高を確認
- 03署名済み送金を構築して送信
MCP 対応
ウォレット作成、残高確認、未署名送金の構築、署名済みトランザクションのHederaへの送信ツールを提供します。構築済みトランザクションにはクライアント側で署名します。セキュリティ上の問題があるデモ実装と明記されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Hedera MCP サーバー
Hedera ネットワークとやり取りするための Model Context Protocol(MCP)サーバーです。このサーバーは、Hedera ウォレットの作成、アカウント残高の確認、トランザクションの構築、署名済みトランザクションの送信を行うツールを提供します。
⚠️ セキュリティに関する警告
これはデモ実装であり、本番環境では使用しないでください。 現在の実装には、次のようなセキュリティ上の脆弱性があります。
- 秘密鍵がレスポンスボディで送信されます
- 機密データが暗号化されていません
- トランザクションの検証メカニズムがありません
この実装は MCP の概念を示すことを目的としています。本番環境で使用する前に、適切なセキュリティ対策を施す必要があります。
主な目的
この MCP サーバーの主な目的は、トランザクションの構築と実行を MCP サーバー側で処理し、クライアントはトランザクションを検証するだけで済む仕組みを示すことです。具体的には、次のとおりです。
- トランザクションの構築はすべて MCP サーバー上で行われます
- クライアントが構築済みのトランザクションに署名します
- MCP サーバーが Hedera ネットワークへのトランザクション送信を処理します
- このアーキテクチャにより、トランザクション処理を一元化し、クライアント側の複雑さを軽減できます
前提条件
- Node.js(v18 以上)
- npm または yarn
- Hedera アカウント(テストネットまたはメインネット用)
インストール
-
このリポジトリをクローンします。
git clone https://github.com/hedera-dev/hedera-mcp-server.git cd hedera-mcp-server -
依存関係をインストールします。
npm install -
ルートディレクトリに Hedera の認証情報を記載した
.envファイルを作成します。HEDERA_OPERATOR_ID=your-operator-account-id HEDERA_OPERATOR_KEY=your-operator-private-key HEDERA_NETWORK=testnet # or mainnet PORT=3000 # optional, defaults to 3000
アプリケーションのビルド
TypeScript コードをコンパイルします。
npm run build
自動で再コンパイルする開発モードでは、次を実行します。
npm run dev
サーバーの起動
サーバーを起動します。
npm start
サーバーは http://localhost:3000(または .env ファイルで指定されたポート)で利用できます。
テストクライアントでのテスト
このリポジトリには、MCP サーバーへの接続方法とツールの使用方法を示すテストクライアントスクリプトが含まれています。このクライアントでは、利用可能なすべてのツールを使った、完全なエンドツーエンドのフローを実行できます。
テストクライアントを実行します。
node test-client.js
テストクライアントは次の処理を行います。
- MCP サーバーに接続します
- 利用可能なツールを一覧表示します
- 新しい Hedera ウォレットを作成します(create-wallet ツール)
- 新しいアカウントの残高を確認します(check-balance ツール)
- アカウントの全残高をオペレーターアカウントに送金するトランザクションを構築します(build-transaction ツール)
- Hedera SDK を使用して、クライアント側でトランザクションに署名します
- 署名済みトランザクションを Hedera ネットワークに送信します(send-transaction ツール)
- トランザクションの結果を表示します
これは、アカウントの作成からトランザクションの送信まで、MCP サーバーを介して Hedera ネットワークとやり取りする一連の流れを示しています。
利用可能な MCP ツール
サーバーは次のツールを提供します。
-
create-wallet:最小限の初期残高を持つ新しい Hedera アカウントを作成します
- 入力パラメーターは不要です
- アカウント ID、公開鍵、秘密鍵を返します
-
check-balance:Hedera アカウントの残高を確認します
- 入力:
accountId(文字列) - tinybar 単位のアカウント残高を返します
- 入力:
-
build-transaction:送金トランザクションを(署名せずに)構築します
- 入力:
senderAccountId(文字列)recipientAccountId(文字列)amount(数値、tinybar 単位)
- base64 でエンコードされたトランザクションを返します
- 入力:
-
send-transaction:署名済みトランザクションを Hedera ネットワークに送信します
- 入力:
signedTransaction(文字列、base64 エンコード) - トランザクションのステータスと ID を返します
- 入力:
デプロイ
シンプルなデプロイスクリプトが含まれています。
./deploy.sh
まず、実行可能にしてください。
chmod +x deploy.sh
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。