モナドMCPサーバー
このMCP(モデルコンテキストプロトコル)サーバーは、Monadテストネットと連携するように設計されています。開発者がMonadブロックチェーンにアクセスするためのツールと機能一式を提供し、MONトークン残高の確認、トランザクションの送信、スマートコントラクトのデプロイ、ブロックチェーンイベントの監視などが可能です。
MCPとは何ですか?
モデルコンテキストプロトコル(MCP)は、AIモデルが外部ツール、サービス、データソースと安全かつ効果的に連携できるようにする標準化されたインターフェースです。このサーバーはMCPを実装し、Monadブロックチェーンの機能を互換性のあるAIエージェントまたはアプリケーションに公開します。
Related MCP server: TON Access MCP Server
プロジェクト構造
プロジェクトは次のように構成されています。
monad-mcp-server/
├── .env.example # Example environment variables file
├── .gitignore # Specifies intentionally untracked files that Git should ignore
├── LICENSE # Project's software license
├── README.md # This file, providing an overview and instructions
├── package-lock.json # Records the exact versions of dependencies
├── package.json # Lists project dependencies and scripts
├── pnpm-lock.yaml # PNPM lockfile for dependency resolution
├── src/ # Source code directory
│ ├── config/ # Configuration files
│ │ └── server.ts # Server setup and Viem client initialization
│ ├── index.ts # Main entry point of the application
│ └── tools/ # MCP tools for interacting with Monad
│ ├── block/ # Tools related to blockchain blocks (e.g., get-latest-block)
│ ├── contract/ # Tools for smart contract interactions (e.g., deploy, watch events)
│ ├── nft/ # Tools for Non-Fungible Tokens (e.g., query-mon-nft)
│ └── wallet/ # Tools for wallet operations (e.g., get balance, send transactions)
└── tsconfig.json # TypeScript compiler configuration主要コンポーネント
src/index.ts: これはサーバーのメインエントリポイントです。MCPサーバーインスタンスを初期化し、利用可能なすべてのツール(ウォレット、コントラクト、NFT、ブロック)を登録します。src/config/server.ts: このファイルはMcpServerサーバーの設定を行います。McpServerインスタンスの名前、バージョン、および機能リストを設定します。また、Monadテストネットと通信するためのViemパブリッククライアントを初期化し、環境変数から取得した秘密鍵を使用してViemウォレットクライアントを作成する関数を提供します。サーバーは通信にStdioServerTransportを使用します。src/tools/: このディレクトリには、様々なMCPツールの実装が含まれています。各サブディレクトリは通常、モナドの相互作用の特定の側面に焦点を当てています。walletProvider: MON トークンの残高と取引を管理します。contractProvider: スマート コントラクトのデプロイメントとイベントの監視を処理します。nftProvider: Monad ネットワーク上の NFT を照会するための機能を提供します。blockProvider: ブロック情報を取得するためのツールを提供します。
前提条件
始める前に、以下がインストールされていることを確認してください。
Node.js (バージョン 16 以降)
Node.js パッケージ マネージャー:
npm、yarn、またはpnpm(このプロジェクトの例ではpnpmを使用しています)Claude Desktop (または任意の MCP 互換クライアント) を使用してサーバーと対話します。
環境変数 (.env)
このプロジェクトでは、環境変数を使用して機密情報(主に Monad アカウントの秘密鍵)を管理します。
サンプル ファイルをコピーします
.env.exampleのコピーを作成し、名前を.envに変更します。cp .env.example .env.env: 新しく作成された.envファイルをテキスト エディターで開きます。PRIVATE_KEY:PRIVATE_KEY変数に Monad アカウントの秘密鍵を入力します。この鍵は、トランザクションの送信やコントラクトのデプロイなどの操作に必要です。PRIVATE_KEY="0xyourprivatekeyhere"重要: 秘密鍵が
0xで始まっていることを確認してください。セキュリティ:
.envファイル.gitignore既にこれを防ぐように設定されていますが、秘密鍵の保護には常に注意してください。
はじめる
Monad MCP サーバーをセットアップして実行するには、次の手順に従います。
リポジトリのクローンを作成します:
まだクローンしていない場合は、GitHub からプロジェクトをクローンします。
git clone https://github.com/lispking/monad-mcp-server.git cd monad-mcp-server依存関係をインストール:
pnpm(またはお好みのパッケージ マネージャー) を使用して、package.jsonにリストされているプロジェクトの依存関係をインストールします。pnpm installプロジェクトのビルド:
サーバーはTypeScriptで記述されており、JavaScriptにコンパイルする必要があります。ビルドスクリプトを実行してください。
pnpm buildこのコマンドは、
package.jsonで定義されているtsc(TypeScript コンパイラ) を使用して、srcディレクトリのソース ファイルをbuildディレクトリにコンパイルします。
これでサーバーが構築され、MCP クライアントが使用できるようになりました。
サーバー機能
src/config/server.tsで定義されているように、サーバーは次の機能を公開します。
get-mon-balance: アカウントの MON トークン残高を取得します。send-mon-transaction: あるアカウントから別のアカウントに MON トークンを送信します。deploy-mon-contract: スマート コントラクトを Monad テストネットにデプロイします。watch-contract-events: 特定のスマート コントラクトによって発行されたイベントを監視および報告します。query-mon-nft: Monad ネットワーク上の非代替トークンに関する情報を照会します。get-latest-block: Monad テストネット上の最新のブロックの詳細を取得します。get-block-by-number: ブロック番号で特定のブロックを取得します。
クライアントにMCPサーバー構成を追加する
このサーバーをMCP対応クライアント(Claude Desktopなど)で使用するには、クライアントの設定にサーバーの設定を追加する必要があります。具体的な方法はクライアントによって異なりますが、通常はサーバーの実行方法を指定します。
以下に構成スニペットの例を示します。
{
"mcpServers": {
// ... other server configurations ...
"monad-mcp": {
"command": "node",
"args": [
"/absolute/path/to/your/project/monad-mcp-server/build/index.js"
],
"env": {
"PRIVATE_KEY": "<your_monad_private_key_if_not_using_dotenv_or_to_override>"
}
}
// ... other server configurations ...
}
}構成フィールドの説明:
"monad-mcp": クライアント内でこのサーバー構成に割り当てる一意の名前。"command": "node": サーバーが Node.js アプリケーションであることを指定します。"args":nodeコマンドに渡す引数の配列。最初の引数は、サーバーのコンパイル済みエントリポイントへのパスです:
/absolute/path/to/your/project/monad-mcp-server/build/index.js。/absolute/path/to/your/project//absolute/path/to/your/project/``monad-mcp-server
"env": サーバープロセスの環境変数を設定するオブジェクト。"PRIVATE_KEY": ここで秘密鍵を設定できます。ただし、セキュリティ強化のため、通常は.env``.envの値が上書きされる可能性があります。
注: "args"のパスが正しく、プロジェクト ディレクトリ内のbuild/index.jsファイルを指していることを確認してください。
その他のリソース
使用されるテクノロジーと関連する概念の詳細については、次の公式ドキュメントを参照してください。
Viem ドキュメント(Viem はこのプロジェクトで使用される Ethereum/Monad クライアント ライブラリです)
この包括的な README は、Monad MCP サーバー、そのセットアップ、および使用方法についての確かな理解を提供します。