mcp-growi について
mcp-growiは、AIエージェントや自動化ボットがArbitrum上のGrowiHFVaultを操作するためのMCPサーバーです。読み取りツールと制限付きの入出金用トランザクションツールを備え、モデルがウォレット署名を開始できる点を明示しています。
主な機能
- 01Arbitrum上のGrowiHFVault操作
- 02トランザクションの署名と送信
- 034種類のコントラクト呼び出しに限定
- 04承認先と金額の検証
- 05全ツールを対象とするバージョン確認
活用シーン
- 01GrowiHFVaultの確認
- 02金庫へのUSDC預け入れ
- 03金庫からの資産引き出し
- 04MCPクライアントから許可された金庫取引を実行
MCP 対応
GrowiHFVaultの読み取り操作とexecute_transactionツールをMCPクライアントに公開します。取引ツールはローカル設定のウォレットで署名し、トランザクションを送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
mcp-growi
Growi Finance 向けの MCP(Model Context Protocol)サーバーです。AI エージェントや自律型ボットが、Arbitrum 上の GrowiHFVault スマートコントラクトとプログラムからやり取りできるようにします。
セキュリティ
キーストアまたは秘密鍵を設定する前に、必ずお読みください。
mcp-growi は execute_transaction を公開します。このツールは、ローカルで設定されたウォレットを使って Arbitrum のトランザクションに署名し、ブロードキャストします。MCP クライアント(Claude Desktop、Claude Code など)内では、LLM が署名対象を完全に制御します。すべてのツール呼び出しは、プロンプト および LLM がアクセスできるその他の情報に応じて、モデルによって開始されます。
このため、MCP は「混乱した代理人」になります。信頼できないコンテンツ(別のツールが取得したウェブページ、セッションで開いたドキュメント、攻撃者が制御する別の MCP サーバーなど)がモデルに届くと、そのコンテンツ内のプロンプトインジェクションによって、設定済みウォレットの資金を引き出すようモデルに指示できます。
推奨事項
- 信頼できないコンテンツにアクセスできるセッションでは、
KEYSTORE_PATHやPRIVATE_KEYを設定しないでください。 同じクライアントにブラウジングツール、ドキュメントリーダー、その他の MCP サーバーがある場合、そのセッションはデフォルトで侵害されているものとして扱ってください。 - 専用の「ボット」ウォレットを使用してください。
mcp-growi専用の新しい Ethereum アドレスを作成し、預け入れる予定の金額だけを入金してください。メインのカストディウォレットを再利用しないでください。 - ガス代用の ETH は少額に抑えてください。 数ドル相当で十分です。次の操作に必要な額を超えてボットウォレットに保有するメリットはありません。
mcp-growi@latestを実行してください。 セキュリティリリースが公開されると、内蔵のバージョンチェックにより、アップグレードするまであらゆる操作がブロックされます。古いバージョンに固定すると、この保護が無効になります。
このサーバーが適用する保護策
サーバーには最も直接的な資金流出経路を防ぐための独自の保護策がありますが、あらゆる悪用を防げるわけではありません。
- 許可リスト。
execute_transactionが署名するのは、4 つの(contract, selector)の組み合わせ(USDC.approve、GWHF.approve、vault.deposit、vault.withdraw)に対する呼び出しだけです。USDC.transfer(attacker, balance)を呼び出すプロンプトインジェクションは、署名前に拒否されます。 - デコード後の検証。
approveの呼び出しは、spender が GrowiHFVault のアドレスである場合にのみ受け付けられます。depositとwithdrawの金額は 0 より大きい必要があります。 - バージョンゲート。 ローカルの MCP バージョンを npm レジストリと照合して確認できない場合、または公開中の最新バージョンと一致しない場合、読み取り・書き込みを問わず、すべてのツールが動作を拒否します。
こうした保護策により簡単な攻撃は防げますが、あらゆるセッションでキーストアの安全を保証するものではありません。カストディ用ではなく、ホットウォレットとして扱ってください。
コントラクトの詳細
| 項目 | 値 |
|---|---|
| ネットワーク | Arbitrum One |
| コントラクト | 0x928ed672e6eabb7a565c5eb9aac15e3cf6a18388 |
| Vault トークン | GWHF |
| 預け入れトークン | USDC |
コントラクトは Arbiscan で検証済みです。ソースコードと ABI は次の場所で確認できます。 https://arbiscan.io/address/0x928ed672e6eabb7a565c5eb9aac15e3cf6a18388#code
ABI はこのパッケージに含まれているため(src/contract/abi.ts)、実行時に外部呼び出しを行う必要はありません。
プロジェクト構成
src/
├── index.ts # Server entrypoint + npm version check
├── contract/ # On-chain interaction layer (viem)
│ ├── abi.ts # GrowiHFVault + ERC20 ABIs
│ ├── client.ts # Arbitrum public client + contract/token/HL addresses
│ └── index.ts
├── locks/
│ └── lock-period.ts # Arbitrum deposit lock + Hyperliquid 24h withdraw lockup
└── tools/ # MCP tool definitions
├── read.ts # Read-only on-chain queries
├── write.ts # Transaction prep + signing (keystore/privkey)
└── index.ts
セットアップ — Claude Desktop / Claude Code
以下を Claude の MCP 設定(claude_desktop_config.json または .mcp.json)に追加してください。
{
"mcpServers": {
"growi": {
"command": "npx",
"args": ["-y", "mcp-growi@latest"],
"env": {
"KEYSTORE_PATH": "/path/to/your/wallet.json",
"KEYSTORE_PASSPHRASE": "your_passphrase"
}
}
}
}
重要: Claude の起動時に MCP が自動更新されるよう、
mcp-growiだけでなくmcp-growi@latestを使用してください。バージョンが古い場合、または npm レジストリに接続できない場合、検証に成功するまで、すべてのツール(読み取り・書き込み)がブロックされます。
代替方法 — 通常の秘密鍵(安全性は低くなります):
"env": { "PRIVATE_KEY": "0x..." }
オプション — カスタム RPC エンドポイント:
"env": { "RPC_URL": "https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY" }
保存後、Claude Desktop/Code を再起動してください。バージョンチェックに合格するとツールを利用できます。呼び出しでバージョンによるブロックエラーが返された場合は、上記の「セキュリティ」セクションを参照してください。
セットアップ — 開発(ソースから)
npm install
npm run build
npm start
技術スタック
- TypeScript + Node.js
- @modelcontextprotocol/sdk — MCP サーバーの実装
- viem — Ethereum/Arbitrum の RPC 操作
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。