Communitygithub.com

Scottcjn/iota-agent-mcp

Servidor MCP para blockchain IOTA que oferece gerenciamento de carteira com assinatura humana no loop, construção/teste/publicação de contratos inteligentes Move e consultas on-chain via JSON-RPC e GraphQL.

O que é iota-agent-mcp?

O IOTA Agent MCP é um servidor MCP que conecta agentes de codificação de IA à blockchain IOTA, fornecendo 18 ferramentas abrangentes para operações de carteira, desenvolvimento de contratos inteligentes Move e consultas de dados on-chain. Ele se comunica via stdio transport, garantindo que nenhum segredo seja exposto no processo MCP. As ferramentas de carteira exigem aprovação humana no loop para transações de modificação de estado, garantindo segurança: o agente gera bytes de transação não assinados, que são submetidos para assinatura, e o humano aprova ou rejeita via servidor de carteira agente. O suporte inclui implantação em agentes populares como Claude Code, Cursor e VS Code Copilot, e a configuração é simples através de variáveis de ambiente para personalizar URLs do servidor de carteira, endpoints JSON-RPC e GraphQL. Este MCP é ideal para desenvolvedores que desejam interagir de forma segura e eficiente com a rede IOTA, gerenciar carteiras, construir e publicar pacotes Move, ou consultar objetos e transações on-chain.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add Scottcjn/iota-agent-mcp

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

IOTA Agent MCP

Servidor MCP que conecta agentes de codificação de IA à blockchain IOTA. Fornece 18 ferramentas para operações de carteira, desenvolvimento de contratos inteligentes Move e consultas de dados on-chain — tudo via transporte stdio, sem segredos no processo MCP.

Fluxo de Trabalho

  1. Configure o servidor MCP nas configurações do seu agente (Claude Code, Cursor, VS Code Copilot)
  2. Consulte dados on-chain — busque objetos, transações, moedas, informações de época ou descompile módulos
  3. Desenvolva contratos Move — crie, teste com cobertura, gere transações de publicação não assinadas
  4. Assine e publique — gere transação não assinada, submeta via iota_wallet_sign_execute, verifique iota_wallet_pending para status de aprovação, confirme on-chain com iota_transaction

Fluxo de assinatura (humano no loop)

Operações de carteira que modificam o estado exigem aprovação humana:

  1. Chame iota_wallet_sign_execute com bytes de transação codificados em base64 — cria uma solicitação pendente
  2. Chame iota_wallet_pending para confirmar que a solicitação foi enfileirada
  3. O humano aprova (iota_wallet_approve) ou rejeita (iota_wallet_reject) via servidor de carteira agente
  4. Após aprovação, verifique se a transação foi registrada on-chain: chame iota_transaction com o digest retornado
  5. Se rejeitada, informe o usuário e não tente novamente sem instrução explícita

Ferramentas

Carteira (8 ferramentas)

  • iota_wallet_address — Obter o endereço da carteira ativa
  • iota_wallet_balance — Verificar saldo de IOTA da carteira ativa
  • iota_wallet_accounts — Listar todas as contas de carteira derivadas
  • iota_wallet_sign_execute — Assinar e executar uma transação (requer aprovação humana via servidor de carteira agente)
  • iota_wallet_pending — Listar solicitações de assinatura pendentes aguardando aprovação
  • iota_wallet_approve — Aprovar uma solicitação de assinatura pendente por ID
  • iota_wallet_reject — Rejeitar uma solicitação de assinatura pendente por ID
  • iota_wallet_switch_network — Alternar entre mainnet, testnet e devnet

CLI Move (4 ferramentas)

  • iota_cli — Executar qualquer comando da CLI IOTA (ex.: client gas, move new my_project)
  • iota_move_build — Compilar um pacote Move e relatar resultados da compilação
  • iota_move_test_coverage — Executar testes Move com análise de cobertura e resumo
  • iota_move_publish_unsigned — Gerar transação de publicação não assinada para assinatura via servidor de carteira agente

Consulta On-Chain (6 ferramentas)

  • iota_object — Buscar dados de objeto por ID (proprietário, tipo, versão, conteúdo)
  • iota_objects_by_owner — Listar objetos pertencentes a um endereço
  • iota_transaction — Buscar detalhes da transação por digest (entrada, efeitos, eventos)
  • iota_coins — Obter objetos de moeda para estimativa de gás e consultas de token
  • iota_epoch_info — Época atual, checkpoint e estatísticas de rede via GraphQL
  • iota_decompile — Recuperar e descompilar o ABI de um módulo Move implantado

Exemplos

Criar e testar um pacote Move:


iota_move_build(path: "./my_move_project")
→ "BUILDING my_move_project ... Build Successful"

iota_move_test_coverage(path: "./my_move_project")
→ "## Test Results\nRunning Move unit tests ... 5 tests passed\n\n## Coverage Summary\n85.7% coverage"

Consultar um objeto on-chain:


iota_object(object_id: "0xabc123...")
→ { "owner": "0xdef456...", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "version": 42, "content": {...} }

Publicar um pacote Move com assinatura de carteira:


iota_move_publish_unsigned(path: "./my_move_project", gas_budget: "500000000")
→ "AAACAQBk..." (bytes tx em base64)

iota_wallet_sign_execute(tx_bytes: "AAACAQBk...")
→ "Request queued (id: req-1). Awaiting human approval."

Configuração

Defina variáveis de ambiente para substituir os padrões:

  • IOTA_WALLET_SERVER — URL do servidor de carteira agente (padrão: http://localhost:3847)
  • IOTA_RPC_URL — Endpoint JSON-RPC IOTA (padrão: mainnet)
  • IOTA_GRAPHQL_URL — Indexador GraphQL IOTA (padrão: mainnet)

Configuração

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"] }
  }
}

Habilidades Relacionadas