MCP ブロックチェーンサーバー & DApp
AI アシスタントがブロックチェーン スマート コントラクトと対話し、ユーザーが秘密鍵とトランザクション署名を完全に制御できるようにする安全なシステム。
概要
このプロジェクトは、AI とブロックチェーンの統合における重要な課題に取り組んでいます。つまり、ユーザーがトランザクションの署名と秘密鍵を排他的に制御できるようにしながら、AI アシスタントがブロックチェーン データを読み取り、トランザクションを準備できるようにします。
このシステムは以下から構成されます:
MCP サーバー: AI アシスタントが使用できるツールとしてブロックチェーン操作を公開するモデル コンテキスト プロトコル サーバー
Web DApp : ウォレット接続とトランザクション署名のためのユーザーインターフェースを提供するReactアプリケーション
データベース: ユーザー、API キー、トランザクション レコードを保存するための PostgreSQL データベース
キャッシュ: 頻繁にアクセスされるデータをキャッシュするためのRedis
Related MCP server: Multichain MCP Server
特徴
MCP サーバーの機能
ブロックチェーンデータアクセス: 残高、契約状態、その他のオンチェーンデータを読み取る
トランザクションの準備: ユーザーの承認のために署名されていないトランザクションを作成する
マルチチェーンサポート: Ethereum、Polygon、その他のEVM互換チェーンで動作します
スマートコントラクトインタラクション: サポートされているネットワーク上の検証済みスマートコントラクトから読み取ります
セキュリティ第一の設計: 秘密鍵はユーザーのウォレットから出ません
Web DAppの機能
ウォレット統合: MetaMaskや他のWeb3ウォレットと接続
取引レビュー: 署名前に取引の詳細を確認するための明確なUI
トランザクション署名: 接続されたウォレットでトランザクションに署名する
トランザクション追跡: 送信されたトランザクションのステータスを監視する
モバイル互換性: レスポンシブデザインはすべてのデバイスで動作します
セキュリティ原則
秘密鍵の分離: 鍵はユーザーのウォレットから出ない
取引検証: 取引の詳細を確認するための明確なUI
API認証:安全なAPIキー管理
レート制限:不正使用を防ぐ
入力検証: すべての入力をサニタイズする
監査ログ: すべての操作を追跡
HTTPSのみ: 安全な通信
コンテンツセキュリティポリシー: XSSの防止
取引フロー
AIアシスタントがMCPサーバーを介してトランザクションを要求する
MCPサーバーはUUIDを使用して署名されていないトランザクションを準備します
MCPサーバーはAIアシスタントにトランザクションURLを返します
AIアシスタントがユーザーにURLを提供
ユーザーがブラウザでURLを開く
ユーザーはウォレットを接続し、取引の詳細を確認します
ユーザーはウォレットで取引を承認し署名する
Web DAppが署名されたトランザクションをブロックチェーンに送信する
取引ステータスが更新され追跡されます
はじめる
前提条件
Node.js (v18以上)
npmまたはyarn
PostgreSQL
Redis(オプション、キャッシュ用)
Infura APIキー(ブロックチェーンアクセス用)
Etherscan API キー(コントラクト ABI 用)
インストール
リポジトリをクローンします。
git clone https://github.com/zhangzhongnan928/mcp-blockchain-server.git
cd mcp-blockchain-server依存関係をインストールします:
npm install
# or
yarn install環境変数を設定します。ルート ディレクトリに
.envファイルを作成します (または.env.exampleからコピーします)。
cp .env.example .env
# Edit .env with your configurationsデータベースを設定します。
# For detailed instructions, see the Database Setup Guide
# docs/database-setup.md
# Create the PostgreSQL database
createdb mcp_blockchain
# Run database migrations
npm run db:migrate
# or
yarn db:migratePostgreSQL のインストールと構成の詳細な手順については、データベース セットアップ ガイドを参照してください。
サーバーを起動します。
npm run dev
# or
yarn devDocker Composeの使用
Docker をすぐに使い始めるには:
# Create .env file with required environment variables
cp .env.example .env
# Edit .env with your configurations
# Start the services
docker-compose up -dこれは次のように始まります:
PostgreSQLデータベース
Redisキャッシュ
MCPサーバー
ウェブDApp
発達
サーバー構造
src/mcp: MCP サーバーの実装src/services: コアビジネスロジックサービスsrc/utils: ユーティリティ関数src/index.ts: メインエントリポイント
Web DAppの構造
web/src/components: Reactコンポーネントweb/src/hooks: カスタム React フックweb/src/services: API サービスweb/src/pages: ページコンポーネント
MCPサーバーの使用
MCP サーバーは、AI アシスタントが使用できるいくつかのツールを公開します。
get-chains: サポートされているブロックチェーンネットワークのリストを取得するget-balance: アドレスのアカウント残高を取得するread-contract: スマートコントラクトからデータを読み取るprepare-transaction: ユーザーの承認を得るために署名されていないトランザクションを準備するget-transaction-status: トランザクションの現在のステータスを取得する
ツールの使用例
// Example of using the get-balance tool
const result = await callTool("get-balance", {
chainId: "1",
address: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
});トラブルシューティング
依存関係に関する問題が発生した場合:
# MCP SDK issue - install directly from GitHub
npm uninstall @modelcontextprotocol/sdk
npm install modelcontextprotocol/typescript-sdkデータベース接続の問題については、データベース設定ガイドを参照してください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.