IOTA MCP Server について
IOTA MCP Serverは、AIエージェントがIOTAや30以上のEVM互換ネットワークを読み取り、操作するための共通インターフェースです。トークン、コントラクト、ステーキング、クロスチェーン機能を提供します。
主な機能
- 01IOTAと30以上のEVMネットワークに対応
- 02残高、ブロック、トランザクションの読み取り
- 03ERC20、ERC721、ERC1155トークンの転送
- 04スマートコントラクトの操作とデプロイ
- 05IOTAのステーキング、状態、ガス分析
- 06クロスチェーン価格とアービトラージ用ツール
活用シーン
- 01対応チェーンの残高やトランザクション詳細の確認
- 02トークンの転送やIOTAへのSolidityコントラクトのデプロイ
- 03IOTAのネットワーク状態、ステーキング、ガス費用の確認
- 04トークン価格を監視してクロスチェーンの機会を調査
MCP 対応
MCPツールとリソースを通じてAIエージェントにブロックチェーン機能を提供します。IOTA専用ツールやURIで参照できるネットワークデータも公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
IOTA MCP サーバー
IOTA と複数の EVM 互換ネットワーク向けにブロックチェーンサービスを提供する、包括的な Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、AI エージェントは統一されたインターフェースを通じて、IOTA、Shimmer、Ethereum、Optimism、Arbitrum、Base、Polygon、その他多くの EVM チェーンとやり取りできます。
📋 目次
- 概要
- 機能
- IOTA の統合
- サポート対象ネットワーク
- 前提条件
- インストール
- サーバー設定
- 使い方
- インタラクティブデモ
- API リファレンス
- セキュリティに関する考慮事項
- プロジェクト構成
- 開発
- ライセンス
🏆 IOTA APAC AngelHack 2025 への応募作品
このプロジェクトは、IOTA APAC AngelHack 2025 ハッカソンへの応募作品として開発されました。Model Context Protocol(MCP)を通じて、IOTA ネットワークと AI システムとの統合を強化することに重点を置いています。
ハッカソンのトラック
- メイン:AI エージェント
- サブ:開発者ツール
- その他:クロスチェーン
🔭 概要
IOTA MCP サーバーは、Model Context Protocol を活用して AI エージェントにブロックチェーンサービスを提供します。特に IOTA とそのエコシステムに重点を置いています。次のような幅広いサービスをサポートしています。
- ブロックチェーンの状態(残高、トランザクション、ブロックなど)の読み取り
- スマートコントラクトとのやり取り
- トークンの送金(ネイティブ、ERC20、ERC721、ERC1155)
- IOTA 固有のサービス(ステーキング、ネットワーク状態、ガス推定など)
- トークンのメタデータと残高の照会
- IOTA ネットワークを含む 30 以上の EVM ネットワークにおける、チェーン固有のサービス
- すべてのアドレスパラメーターに対する ENS 名の解決(アドレスの代わりに人が読みやすい名前を使用)
すべてのサービスは、一貫した MCP ツールとリソースのインターフェースを通じて提供されます。これにより、AI エージェントは IOTA、Shimmer、その他すべての EVM 互換チェーンを含む複数のネットワークにわたって、ブロックチェーン機能を簡単に検出して利用できます。
✨ 機能
IOTA 固有の機能
- IOTA ネットワークのサポート:IOTA EVM、IOTA Testnet、Shimmer ネットワークに対応
- IOTA トークン情報:名前、シンボル、小数桁数、総供給量など
- IOTA ネットワーク指標:TPS、ブロック時間、ガス使用量など
- IOTA ネットワーク状態の監視とヘルスチェック
- IOTA 残高の照会:ネイティブトークンの残高を確認
- IOTA トランザクション分析:ガス使用量、種別の検出、経過時間の分析
- IOTA スマートコントラクトのデプロイ:Solidity コントラクトを直接デプロイ
- IOTA スマートコントラクトの分析:関数の検出、標準規格の検証、セキュリティ評価
- IOTA DeFi 統合:流動性プール、レンディング市場、ステーキングに対応
- IOTA ステーキング情報:ステーキング活動を監視
- IOTA トランザクション履歴と分析
- ガス価格の推定:ネットワーク混雑の分析とトランザクションコストの予測
- クロスチェーン裁定取引の監視:IOTA と他のネットワーク間で利益を得られる取引機会を検出
- クロスチェーン比較:IOTA と他のネットワークを比較
ブロックチェーンデータへのアクセス
- IOTA を含む 30 以上の EVM 互換ネットワークをサポートするマルチチェーン対応
- blockNumber、chainId、RPC などのチェーン情報
- 番号、ハッシュ、または最新のブロックによるブロックデータへのアクセス
- デコード済みログを含むトランザクションの詳細とレシート
- ネイティブトークンおよびすべてのトークン規格のアドレス残高
- 人が読みやすい Ethereum アドレスへのENS 解決
トークンサービス
-
ERC20 トークン
- トークンメタデータ(名前、シンボル、小数桁数、供給量)の取得
- トークン残高の確認
- アドレス間でのトークンの送金
- 使用許可の承認
-
NFT(ERC721)
- コレクションとトークンのメタデータの取得
- トークンの所有権の確認
- アドレス間での NFT の送金
- トークン URI と保有数の取得
-
マルチトークン(ERC1155)
- トークン残高とメタデータの取得
- 数量を指定したトークンの送金
- トークン URI へのアクセス
スマートコントラクトとの連携
- view/pure 関数によるコントラクト状態の読み取り
- 秘密鍵で署名する書き込みサービス
- EOA と区別するためのコントラクト検証
- イベントログの取得とフィルタリング
🌐 対応ネットワーク
IOTA ネットワーク
- IOTA EVM メインネット
- IOTA テストネット
- Shimmer
メインネット
- Ethereum(ETH)
- Optimism(OP)
- Arbitrum(ARB)
- Arbitrum Nova
- Base
- Polygon(MATIC)
- Polygon zkEVM
- Avalanche(AVAX)
- Binance Smart Chain(BSC)
- zkSync Era
- Linea
- Celo
- Gnosis(xDai)
- Fantom(FTM)
- Filecoin(FIL)
- Moonbeam
- Moonriver
- Cronos
- Scroll
- Mantle
- Manta
- Blast
- Fraxtal
- Mode
- Metis
- Kroma
- Zora
- Aurora
- Canto
- その他...
テストネット
- Sepolia
- Optimism Sepolia
- Arbitrum Sepolia
- Base Sepolia
- Polygon Amoy
- その他...
🛠️ 前提条件
- Bun 1.0.0 以降
- Node.js 18.0.0 以降(Bun を使用しない場合)
📦 インストール
リポジトリをクローンする
まず、リポジトリをローカルマシンにクローンします。
git clone https://github.com/Danielmark001/iota_evm_mcp_server.git
cd iota_evm_mcp_server
依存関係をインストールする
Bun を使用する場合(推奨):
bun install
npm を使用する場合:
npm install
環境のセットアップ
- 環境設定ファイルのサンプルをコピーします。
cp .env.example .env
.envファイルを設定に合わせて更新します。
# Server Configuration
PORT=3001
HOST=0.0.0.0
DEFAULT_CHAIN_ID=1074 # IOTA EVM Mainnet
# IOTA Configuration
IOTA_JWT_TOKEN=your_jwt_token_here
IOTA_NODE_URL=https://api.iota.org
IOTA_MNEMONIC=your_mnemonic_here # Required for sending transactions
# SSL Configuration (optional for development)
SSL_CERT_PATH=./certs/client.crt
SSL_KEY_PATH=./certs/client.key
SSL_CA_PATH=./certs/iota-root-ca.crt
⚙️ 設定
サーバーでは以下のデフォルト設定が使用されます。.env ファイルで変更できます。
# Create a .env file in the root directory
touch .env
# Add configuration values
echo "PORT=3001" >> .env
echo "HOST=0.0.0.0" >> .env
echo "DEFAULT_CHAIN_ID=1074" >> .env # IOTA EVM Mainnet
🚀 使用方法
サーバーを起動する
stdio を使用する場合(CLI ツールへの組み込み用)
# Start the server
bun start
# Development mode with auto-reload
bun dev
HTTP サーバーを使用する場合(ウェブアプリケーション用)
# Start the HTTP server
bun start:http
# Development mode with auto-reload
bun dev:http
本番環境用にビルドする
# Build the project
bun run build
# Build the HTTP server
bun run build:http
Docker でデプロイする
# Build the Docker image
docker build -t iota_evm_mcp_server .
# Run the container
docker run -p 3001:3001 iota_evm_mcp_server
🔌 AI システムとの連携
インタラクティブデモ
Claude などの AI アシスタントが IOTA ブロックチェーンのデータとどのように連携できるかを紹介する、視覚的なデモインターフェースが含まれています。デモでは、以下の機能を紹介します。
- ネットワーク状況の分析 — AI が現在の IOTA ネットワークの状況とガス料金を分析する方法を紹介します
- クロスチェーンのアービトラージ — IOTA と他のネットワーク間の価格差を監視する方法を実演します
- スマートコントラクトのデプロイ — 最適なスマートコントラクトのデプロイに関する AI のガイダンスを紹介します
デモを実行するには:
# Install demo dependencies
npm run demo:install
# Start both the MCP server and demo interface
npm run demo:start
# For development with hot-reloading
npm run demo:dev
次に、ブラウザーで http://localhost:3006 を開きます。
例:Claude、GPT-4、その他の AI アシスタントでの使用
Model Context Protocol をサポートする AI プラットフォームは、IOTA MCP Server に直接接続できます。たとえば、MCP 対応の AI を適切に設定すると、次のように使用できます。
User: "Check the balance of address 0x1234... on the IOTA network"
AI Assistant: [Uses IOTA MCP Server to check balance and returns]
"The balance of address 0x1234... on the IOTA network is 15.75 MIOTA"
例:カスタム AI エージェントでサーバーを使用する
// Connect to MCP server
const mcpClient = new McpClient({
endpoint: "http://localhost:3001",
});
// Call IOTA-specific tool
const response = await mcpClient.callTool("get_iota_balance", {
address: "0x1234...",
network: "iota",
});
console.log(response);
📚 API リファレンス
このサーバーは、IOTA やその他のブロックチェーンネットワークと連携するための包括的なツールとリソースを提供します。API の詳細については、API リファレンスをご覧ください。
主な IOTA ツール
get_iota_network_info:IOTA ネットワークに関する情報を取得しますget_iota_balance:アドレスのトークン残高を取得しますtransfer_iota:別のアドレスに IOTA トークンを送金しますget_iota_staking_info:ステーキング情報を取得しますverify_iota_network_status:ネットワークの健全性とステータスを確認しますget_iota_gas_prices:ネットワークの混雑状況を分析し、現在のガス価格を取得しますestimate_iota_transaction_cost:速度オプションごとにトランザクションのコストを見積もりますdeploy_iota_smart_contract:Solidity スマートコントラクトを IOTA ネットワークにデプロイしますanalyze_iota_smart_contract:デプロイ済みのスマートコントラクトのセキュリティ分析を実施します
アービトラージツール
get_cross_chain_token_price:IOTA を含む各ネットワークのトークン価格を取得しますfind_arbitrage_opportunities:IOTA と他のチェーン間で利益を得られる取引機会を検出しますlist_arbitrage_tokens:アービトラージ監視の対象となるすべてのトークンを表示します
主な IOTA リソース
iota://{network}/info:IOTA ネットワークに関する情報iota://{network}/block/latest:IOTA ネットワークの最新ブロックiota://{network}/address/{address}/balance:アドレスのトークン残高iota://{network}/status:ネットワークの健全性とステータス
🧪 テスト
テストスイートを実行します:
# Using Bun (recommended)
bun test
# Using npm
npm test
特定のテストファイルを実行します:
bun test test/iota-defi-agent.test.ts
🤝 貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
適宜テストを更新し、行動規範に従ってください。
🐛 トラブルシューティング
よくある問題
-
Node バージョンエラー
- Node.js 18.0.0 以降がインストールされていることを確認してください
- Node.js のバージョン管理には
nvmを使用してください
-
Bun のインストールに関する問題
- 公式の Bun インストールガイドに従ってください
- 問題が発生した場合は、Bun を再インストールしてみてください
-
IOTA 接続の問題
- IOTA ノードの URL が正しいことを確認してください
- JWT トークンが有効であることを確認してください
- ネットワーク接続が安定していることを確認してください
-
ビルドエラー
bun installを実行し、すべての依存関係がインストールされていることを確認してください- ビルドディレクトリをクリアします:
rm -rf build/ tsconfig.jsonの TypeScript 設定を確認してください
ヘルプを得る
- GitHub で Issue を作成してください
- FAQを確認してください
📝 ライセンス
このプロジェクトは MIT ライセンスのもとで公開されています。詳細は LICENSE ファイルをご覧ください。
🙏 謝辞
- 優れたテクノロジーを提供する IOTA Foundation
- AI とブロックチェーンの連携を可能にする Model Context Protocol
- EVM 連携ライブラリを提供する Viem
- IOTA APAC AngelHack 2025 の主催者およびメンター
- すべての貢献者と支援者
IOTA コミュニティに ❤️ を込めて開発
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
