MCP Moni について
MCP Moniは、AIアシスタントやアプリ向けのMonadテストネット用MCPサーバーです。トークンやNFTの操作、チェーン情報の照会、自然言語によるリクエストに対応し、取引にはローカル設定のテストウォレットを使います。
主な機能
- 01トークン残高とポートフォリオの確認
- 02トークンの送金、交換、ラップ、ステーキング
- 03ブロック、取引、ガス価格の照会
- 04NFT画像の生成とコレクション作成
- 05自然言語によるブロックチェーン操作
活用シーン
- 01Monadテストネット上のアドレス資産の確認
- 02テストウォレットでの交換や送金
- 03MonadテストネットでのNFTコレクション作成
MCP 対応
残高照会、取引、ステーキング、交換、NFT操作などのMonadテストネット用ツールをMCPクライアントに提供します。Claude Desktopに設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Moni
注: すべてのアクションとクエリは Monad テストネット上で実行されます。
MCP Moni は、Monad テストネットと統合された MCP(Model Context Protocol)サーバーです。MON やその他のトークン残高の確認、トークンの送金、MON のラップ/アンラップ、ブロックやトランザクションの照会、NFT 機能、自然言語によるリクエストのためのツールを提供します。Claude Desktop とのシームレスな統合を目的に設計されています。
プロジェクト概要
MCP Moni は Model Context Protocol を活用し、Claude などの AI アシスタントが Monad ブロックチェーンと直接やり取りできるようにします。これにより、ユーザーがコードを書いたり、複雑なブロックチェーン操作を理解したりすることなく、会話形式でブロックチェーンを操作できます。
Model Context Protocol(MCP)とは?
Model Context Protocol は、AI モデルが外部のツールやデータソースにアクセスできるようにする標準規格です。MCP Moni はこのプロトコルを実装し、AI アシスタントにブロックチェーン機能を提供します。
Monad とは?
Monad は、スケーラビリティと効率性を重視して設計された高性能なレイヤー 1 ブロックチェーンです。テストネット環境では、実際の資産を使わずにブロックチェーン機能を試すことができます。
主な機能
- 残高確認:任意のアドレスにある MON やその他のトークンの残高を確認
- トークンポートフォリオ:任意のアドレスが保有するトークンを一覧表示
- トークン送金:簡単なコマンドでトークンを送金(手順の確認と直接実行)
- ラップ/アンラップ:ネイティブ MON とラップ済み MON(WMON)を相互に変換
- ブロックチェーンの探索:最新のブロックやトランザクションの詳細を照会
- NFT の作成:Magic Eden(Monad テストネット)で NFT コレクションを作成して公開
- NFT 画像の生成:テキストによる説明から NFT アートワークを生成
- トークンのスワップ:統合された DEX 機能を使って異なるトークンを交換
- ステーキング:MON をステーキングして aprMON トークンを受け取る(リキッドステーキング)
- 自然言語インターフェース:簡単な自然言語コマンドでブロックチェーン操作を実行
利用可能なツール
| ツール名 | 説明 |
|---|---|
| get-mon-balance | Monad テストネット上のアドレスの MON 残高を取得します |
| get-token-balance | Monad テストネット上のアドレスにある特定のトークンの残高を取得します |
| get-token-portfolio | Monad テストネット上のアドレスにあるすべてのトークン残高を取得します |
| transfer-token | Monad テストネットでトークンを送金する方法を案内します |
| get-latest-blocks | Monad テストネットの最新ブロックを取得します |
| get-transaction | Monad テストネット上のトランザクションの詳細を取得します |
| execute-transfer | 設定済みのテストウォレットを使用して、Monad テストネット上で実際にトークンを送金します |
| execute-wrap | ネイティブ MON を WMON(Wrapped MON)トークンにラップします |
| execute-unwrap | WMON(Wrapped MON)をネイティブ MON トークンにアンラップします |
| deposit | ネイティブ MON を WMON に預け入れます(ラップ)(wrap の別名) |
| withdraw | WMON を MON に引き出します(アンラップ)(unwrap の別名) |
| get-gas-price | Monad テストネットの現在のガス価格を取得します |
| generate-nft-image | テキストの説明から NFT 画像を生成します |
| create-nft-collection | Magic Eden(Monad テストネット)で NFT コレクションを作成して公開します |
| get-swap-quote | Monad テストネットでトークンをスワップする際の価格見積もりを取得します |
| execute-swap | 設定済みのスワップルーターを使用して、Monad テストネット上でトークンをスワップします |
| execute-stake | MON をステーキングして aprMON トークンを受け取ります(リキッドステーキング) |
| execute-unstake | aprMON を MON に戻すためのアンステーキングをリクエストします(アンステーキング処理を開始します) |
| get-pending-withdrawals | aprMON のアンステーキングに関する保留中の出金リクエスト一覧を取得します |
| execute-claim | 完了した aprMON のアンステーキングリクエストから MON を受け取ります |
| natural-language-request | 「0.01 MON を warp」や「0.02 WMON を unwrap」のような自然言語のリクエストを処理します |
技術的な詳細
アーキテクチャ
MCP Moni は TypeScript で構築されており、複数の主要コンポーネントを統合しています。
- MCP サーバー:AI アシスタントとブロックチェーンツール間の通信を処理します
- Viem Library:Ethereum/Monad ブロックチェーンとの低レベルなやり取りを提供します
- Monad SDK:ブロックチェーン操作のために Monad テストネットに接続します
- Token Standards:ERC-20 トークンと NFT 規格(ERC-721/ERC-1155)をサポートします
セキュリティに関する考慮事項
- すべての操作は Monad テストネット上でのみ実行されます
- 秘密鍵はローカルの
.envファイルに保存され、外部に送信されることはありません - テスト用ウォレットのみを使用してください(実際の資産がある本番用ウォレットは絶対に使用しないでください)
- トランザクションの署名はリモートサーバーではなく、ローカルで行われます
機能の詳細な説明
トークンスワップ
MCP Moni は、分散型取引所(DEX)の完全な利用体験を提供します。
- スワップを実行する前に価格見積もりを取得できます
- 複数のトークンペアをサポートします
- スリッページ許容範囲を設定できます
- スワップルーターコントラクトを通じて直接実行します
- 複雑なパスを持つトークンペアを特別に処理します
NFT 作成のワークフロー
MCP Moni で NFT を作成する手順は次のとおりです。
- テキストの説明から NFT アートワークを生成します
- コレクションのパラメーター(名前、シンボル、ロイヤリティなど)を設定します
- ミントのパラメーター(価格、供給上限、日付など)を設定します
- Monad テストネットにコレクションをデプロイします
- 作成したコレクションを管理します
リキッドステーキングシステム
ステーキングシステムでは、次の操作を行えます。
- ネイティブ MON をステーキングして、aprMON トークンを受け取る
- タイムロックの仕組みを通じて、aprMON を MON に戻す
- 保留中の出金リクエストを表示する
- ステーキング解除期間の終了後に MON を受け取る
ツールの使用例
MON 残高を確認する
{
"name": "get-mon-balance",
"arguments": { "address": "<address>" }
}
応答:
Balance for <address>: 0 MON
トークンポートフォリオを表示する
{
"name": "get-token-portfolio",
"arguments": { "address": "<address>" }
}
応答:
Portfolio for <address> (Popular tokens):
- MON: 10.96 (decimals: 18)
- USDC: 0.86 (decimals: 6)
- ...
トークンを送金する(手順のみ)
{
"name": "transfer-token",
"arguments": {
"from": "<from_address>",
"to": "<to_address>",
"amount": "0.1",
"token": "MON"
}
}
応答:
Transfer Instructions for MON
To transfer 0.1 MON from <from_address> to <to_address>, you'll need to:
1. Connect your wallet (containing address <from_address>)
2. Send a transaction with the following parameters:
- To: <to_address>
- Value: 0.1 MON
- Gas Limit: Auto (or ~21000)
Please note: This tool provides instructions only. The actual transfer needs to be executed by you using a wallet that controls the sender address.
Alternatively, you can use the 'execute-transfer' tool with your private key (only use test wallets, never your main wallet) to execute the transfer directly.
トークンを送金する(直接実行)
{
"name": "execute-transfer",
"arguments": {
"to": "<to_address>",
"amount": "0.1",
"token": "MON"
}
}
応答:
✅ Transfer Successful!
0.1 MON has been sent to address:
<to_address>
Transaction Details:
- From: <from_address>
- Hash: <tx_hash>
[View Transaction on Monad Explorer](https://testnet.monadexplorer.com/tx/<tx_hash>)
トークンのスワップ例
{
"name": "get-swap-quote",
"arguments": {
"fromToken": "MON",
"toToken": "USDC",
"amount": "1.0"
}
}
応答:
## Swap Quote: MON to USDC
- Input: 1.0 MON
- Expected Output: 3.45 USDC
- Rate: 1 MON ≈ 3.450000 USDC
To execute this swap, use the `execute-swap` tool with the same parameters.
Note: Actual swap values may vary slightly due to price movements and slippage.
スワップを実行する
{
"name": "execute-swap",
"arguments": {
"fromToken": "MON",
"toToken": "USDC",
"amount": "1.0",
"slippage": 2.0
}
}
応答:
## ✅ Swap Executed Successfully
Your 1.0 MON has been successfully swapped to approximately 3.45 USDC. The transaction is complete and has been confirmed on the blockchain.
### Transaction Details
- From: <wallet_address>
- Transaction Hash: <tx_hash>
- Block Number: 13845721
- Swapped: 1.0 MON ➡️ 3.45 USDC
### [🔍 View Transaction on Monad Explorer](https://testnet.monadexplorer.com/tx/<tx_hash>)
You can now use your USDC tokens for other operations on Monad testnet.
ステーキングの例
{
"name": "execute-stake",
"arguments": {
"amount": "5.0"
}
}
応答:
## ✅ Staking Successful
Your 5.0 MON has been successfully staked and you received 4.98 aprMON. The transaction is complete and has been confirmed on the blockchain.
### Transaction Details
- From: <wallet_address>
- Transaction Hash: <tx_hash>
- Block Number: 13846982
- Staked: 5.0 MON ➡️ 4.98 aprMON
### [🔍 View Transaction on Monad Explorer](https://testnet.monadexplorer.com/tx/<tx_hash>)
Your aprMON represents your staked MON and can be unstaked when needed.
MON を WMON にラップする
{
"name": "execute-wrap",
"arguments": { "amount": "0.2" }
}
応答:
✅ Successfully wrapped 0.2 MON to WMON.
Transaction Hash: <tx_hash>
Block Number: <block_number>
[View on Explorer](https://testnet.monadexplorer.com/tx/<tx_hash>)
自然言語によるリクエスト
{
"name": "natural-language-request",
"arguments": { "request": "warp 0.2 MON to WMON" }
}
応答:
✅ Successfully wrapped 0.2 MON to WMON.
Transaction Hash: <tx_hash>
Block Number: <block_number>
[View on Explorer](https://testnet.monadexplorer.com/tx/<tx_hash>)
NFT:コレクションを作成して画像を生成する
{
"name": "create-nft-collection",
"arguments": { "name": "MyNFT", "symbol": "MYN", "image": "<base64>", "artType": "SAME_ARTWORK", ... }
}
応答:
NFT Collection created on Magic Eden (Monad Testnet)...
{
"name": "generate-nft-image",
"arguments": { "description": "A cute pixel cat", "style": "pixel art" }
}
応答:
[Base64 image data or image URL]
MCP Moni のインストールと実行
- このリポジトリをクローンします
git clone https://github.com/deseti/mcp-moni.git
cd mcp-moni
- 依存関係をインストールします
npm install
- プロジェクトのルートに
.envファイルを作成し、テストウォレットの秘密鍵を設定します。
TEST_WALLET_PRIVATE_KEY=your_test_wallet_private_key_here
- プロジェクトをビルドします
npm run build
- MCP サーバーを実行します
node build/index.js
Claude Desktop との統合
- Claude Desktop を開きます
- 「設定」>「開発者」に移動します
claude_desktop_config.jsonを編集して、次の内容を追加します。
{
"mcpServers": {
"mcp-moni": {
"command": "node",
"args": ["/<path-to-project>/build/index.js"]
}
}
}
- Claude Desktop を再起動します
- Claude で「@mcp-moni」と入力して、MCP サーバーを有効にします
Claude Desktop の設定について
claude_desktop_config.json ファイルでは、Claude Desktop が連携する外部ツールやサーバーを設定します。MCP Moni の設定は、次のような構成です。
{
"mcpServers": {
"mcp-moni": {
"command": "node",
"args": ["your project directory/index.js"]
}
}
}
- mcpServers:Claude が連携できるすべての Model Context Protocol サーバーを定義するセクションです
- mcp-moni:Claude で「@mcp-moni」と入力してサーバーを有効にする際に使用する識別子です
- command:実行する実行可能ファイルです(この場合は Node.js)
- args:コマンドに渡す引数です。ビルド済みの MCP Moni サーバーファイルを指定してください
Windows では、通常、ファイルは C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json にあります。
macOS では、通常、ファイルは ~/Library/Application Support/Claude/claude_desktop_config.json にあります。
設定が完了すると、Claude Desktop は MCP Moni サーバーを起動して通信できるようになり、Claude が Monad ブロックチェーンを操作できるようになります。
設定オプション
MCP Moni サーバーは、次の環境変数を使用して設定できます。
TEST_WALLET_PRIVATE_KEY:テストウォレットの秘密鍵(トランザクションに必須)RPC_URL:Monad テストネット用のカスタム RPC URL(任意。既定値はパブリックエンドポイント)CHAIN_ID:Monad ネットワークのチェーン ID(任意。既定値はテストネット)
トラブルシューティング
よくある問題と解決方法:
- 接続エラー:Monad テストネットの RPC にアクセスできることを確認してください
- トランザクションの失敗:テストウォレットにガス代として十分な MON があることを確認してください
- 秘密鍵が見つからない:
.envファイルにテストウォレットの鍵が正しく設定されていることを確認してください - ツールが見つからない:Claude Desktop の設定で正しいビルドパスが指定されていることを確認してください
今後の開発
予定している機能と改善:
- より多くのトークンや DeFi プロトコルとの統合
- 追加の NFT マーケットプレイスへの対応
- 分析機能と可視化ツールの強化
- 複数ウォレットの管理機能
- クロスチェーン操作
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
注意事項
- 「Moni MCP とウォレットを操作するには、秘密鍵を
.envファイルに追加できます。ただし、セキュリティ上の理由から、テストネット用ウォレットのみを使用し、メインウォレットは絶対に使用しないでください。 - 直接実行機能にはテストウォレットを使用してください(メインウォレットは絶対に使用しないでください!)。
- NFT を作成するには、画像を base64 でエンコードする必要があります。
リソース
お問い合わせ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。