IOTA Agent MCP
Serveur MCP qui connecte les agents de codage IA à la blockchain IOTA. Fournit 18 outils couvrant les opérations de portefeuille, le développement de contrats intelligents Move, et les requêtes de données on-chain — le tout via un transport stdio sans secrets dans le processus MCP.
Workflow
- Configurez le serveur MCP dans les paramètres de votre agent (Claude Code, Cursor, VS Code Copilot)
- Interrogez les données on-chain — récupérez objets, transactions, pièces, informations d'époque, ou décompilez des modules
- Développez des contrats Move — construisez, testez avec couverture, générez des transactions de publication non signées
- Signez et publiez — générez une transaction non signée, soumettez via
iota_wallet_sign_execute, vérifieziota_wallet_pendingpour l'état d'approbation, confirmez on-chain aveciota_transaction
Flux de signature (humain-dans-la-boucle)
Les opérations de portefeuille qui modifient l'état nécessitent une approbation humaine :
- Appelez
iota_wallet_sign_executeavec les octets de transaction encodés en base64 — crée une demande en attente - Appelez
iota_wallet_pendingpour confirmer que la demande a été mise en file d'attente - L'humain approuve (
iota_wallet_approve) ou rejette (iota_wallet_reject) via le serveur agent-wallet - En cas d'approbation, vérifiez que la transaction est bien on-chain : appelez
iota_transactionavec le digest retourné - En cas de rejet, informez l'utilisateur et ne réessayez pas sans instruction explicite
Outils
Portefeuille (8 outils)
iota_wallet_address— Obtenez l'adresse active du portefeuilleiota_wallet_balance— Vérifiez le solde IOTA du portefeuille actifiota_wallet_accounts— Listez tous les comptes de portefeuille dérivésiota_wallet_sign_execute— Signez et exécutez une transaction (nécessite approbation humaine via le serveur agent-wallet)iota_wallet_pending— Listez les demandes de signature en attente d'approbationiota_wallet_approve— Approuvez une demande de signature en attente par son IDiota_wallet_reject— Rejetez une demande de signature en attente par son IDiota_wallet_switch_network— Basculez entre mainnet, testnet et devnet
Move CLI (4 outils)
iota_cli— Exécutez n'importe quelle commande CLI IOTA (ex.client gas,move new my_project)iota_move_build— Compilez un package Move et rapportez les résultats de buildiota_move_test_coverage— Exécutez les tests Move avec analyse de couverture et résuméiota_move_publish_unsigned— Générez une transaction de publication non signée pour signature via agent-wallet
Requête On-Chain (6 outils)
iota_object— Récupérez les données d'un objet par son ID (propriétaire, type, version, contenu)iota_objects_by_owner— Listez les objets possédés par une adresseiota_transaction— Récupérez les détails d'une transaction par son digest (entrée, effets, événements)iota_coins— Obtenez les objets pièces pour estimation de gas et requêtes de jetonsiota_epoch_info— Époque actuelle, checkpoint et statistiques réseau via GraphQLiota_decompile— Récupérez et décompilez l'ABI d'un module Move déployé
Exemples
Construire et tester un package Move :
iota_move_build(path: "./my_move_project")
→ "BUILDING my_move_project ... Build Successful"
iota_move_test_coverage(path: "./my_move_project")
→ "## Résultats des tests\nExécution des tests unitaires Move ... 5 tests réussis\n\n## Résumé de couverture\nCouverture de 85.7%"
Interroger un objet on-chain :
iota_object(object_id: "0xabc123...")
→ { "owner": "0xdef456...", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "version": 42, "content": {...} }
Publier un package Move avec signature de portefeuille :
iota_move_publish_unsigned(path: "./my_move_project", gas_budget: "500000000")
→ "AAACAQBk..." (octets tx base64)
iota_wallet_sign_execute(tx_bytes: "AAACAQBk...")
→ "Demande mise en file (id: req-1). En attente d'approbation humaine."
Configuration
Définissez des variables d'environnement pour remplacer les valeurs par défaut :
IOTA_WALLET_SERVER— URL du serveur agent-wallet (défaut :http://localhost:3847)IOTA_RPC_URL— Point d'accès JSON-RPC IOTA (défaut : mainnet)IOTA_GRAPHQL_URL— Indexeur GraphQL IOTA (défaut : mainnet)
Installation
npm install -g iota-agent-mcp
// Claude Code : ~/.claude/settings.json
{
"mcpServers": {
"iota": { "command": "iota-agent-mcp" }
}
}
// Cursor / VS Code : .cursor/mcp.json ou .vscode/mcp.json
{
"servers": {
"iota": { "command": "npx", "args": ["iota-agent-mcp"] }
}
}