Communitygithub.com

Scottcjn/iota-agent-mcp

IOTA 블록체인 MCP 서버로, 사람의 승인을 거치는 지갑 관리, Move 스마트 컨트랙트 빌드/테스트/배포, JSON-RPC와 GraphQL을 통한 온체인 조회 기능을 제공합니다. AI 코딩 에이전트에서 IOTA 네트워크와 상호작용하거나, IOTA 지갑을 관리하거나, Move 패키지를 빌드/배포하거나, 온체인 객체/트랜잭션을 조회하거나, 에포크 및 네트워크 통계를 확인할 때 사용하세요.

iota-agent-mcp란 무엇인가요?

IOTA Agent MCP는 AI 코딩 에이전트(Claude Code, Cursor, VS Code Copilot 등)를 IOTA 블록체인에 연결하는 MCP 서버입니다. 이 도구는 지갑 작업, Move 스마트 컨트랙트 개발, 온체인 데이터 조회를 위한 18개의 도구를 제공하며, 모든 통신은 stdio 전송을 통해 이루어지고 MCP 프로세스 내에 비밀 정보를 저장하지 않아 보안성이 뛰어납니다. 특히, 상태를 변경하는 트랜잭션의 경우 사람의 승인을 받는 '인간-인-더-루프(Human-in-the-loop)' 서명 방식을 채택하여, AI 에이전트가 자발적으로 중요한 작업을 수행하지 못하도록 제어합니다. 개발자는 이 서버를 통해 IOTA 지갑의 잔액 확인, 주소 생성, 네트워크 전환 등의 지갑 작업은 물론, Move CLI를 이용한 패키지 빌드/테스트/배포, 그리고 객체 조회, 트랜잭션 세부 정보 확인, 에포크 정보 조회 등 다양한 온체인 쿼리를 수행할 수 있습니다. 이러한 기능들은 AI 에이전트가 안전하고 효율적으로 IOTA 네트워크와 상호작용할 수 있게 해주어, dApp 개발 및 블록체인 상호작용을 자동화하는 데 매우 유용합니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add Scottcjn/iota-agent-mcp

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

IOTA Agent MCP

AI 코딩 에이전트를 IOTA 블록체인에 연결하는 MCP 서버입니다. 지갑 작업, Move 스마트 컨트랙트 개발, 온체인 데이터 조회를 위한 18개의 도구를 제공하며, 모든 통신은 stdio 전송을 통해 이루어지고 MCP 프로세스 내에 비밀 정보가 저장되지 않습니다.

워크플로우

  1. 에이전트 설정에 MCP 서버 구성 (Claude Code, Cursor, VS Code Copilot)
  2. 온체인 데이터 조회 — 객체, 트랜잭션, 코인, 에포크 정보 조회 또는 모듈 디컴파일
  3. Move 컨트랙트 개발 — 빌드, 커버리지 테스트, 서명되지 않은 배포 트랜잭션 생성
  4. 서명 및 배포 — 서명되지 않은 트랜잭션을 생성하고 iota_wallet_sign_execute로 제출, iota_wallet_pending으로 승인 상태 확인, iota_transaction으로 온체인 확인

서명 흐름 (인간-인-더-루프)

상태를 변경하는 지갑 작업은 사람의 승인이 필요합니다:

  1. Base64로 인코딩된 트랜잭션 바이트를 iota_wallet_sign_execute로 호출 — 대기 중인 요청 생성
  2. iota_wallet_pending을 호출하여 요청이 대기열에 추가되었는지 확인
  3. 사람이 iota_wallet_approve(승인) 또는 iota_wallet_reject(거부)를 통해 에이전트-지갑 서버에서 승인
  4. 승인 시, 반환된 다이제스트로 iota_transaction을 호출하여 트랜잭션이 온체인에 기록되었는지 확인
  5. 거부된 경우 사용자에게 알리고 명시적인 지시 없이 재시도하지 않음

도구

지갑 (8개 도구)

  • iota_wallet_address — 활성 지갑 주소 가져오기
  • iota_wallet_balance — 활성 지갑의 IOTA 잔액 확인
  • iota_wallet_accounts — 파생된 모든 지갑 계정 목록
  • iota_wallet_sign_execute — 트랜잭션 서명 및 실행 (에이전트-지갑 서버를 통한 사람의 승인 필요)
  • iota_wallet_pending — 승인을 기다리는 대기 중인 서명 요청 목록
  • iota_wallet_approve — ID로 대기 중인 서명 요청 승인
  • iota_wallet_reject — ID로 대기 중인 서명 요청 거부
  • iota_wallet_switch_network — 메인넷, 테스트넷, 데브넷 간 전환

Move CLI (4개 도구)

  • iota_cli — 모든 IOTA CLI 명령어 실행 (예: client gas, move new my_project)
  • iota_move_build — Move 패키지 컴파일 및 빌드 결과 보고
  • iota_move_test_coverage — 커버리지 분석 및 요약과 함께 Move 테스트 실행
  • iota_move_publish_unsigned — 에이전트-지갑 서명을 위한 서명되지 않은 배포 트랜잭션 생성

온체인 조회 (6개 도구)

  • iota_object — ID로 객체 데이터 조회 (소유자, 유형, 버전, 콘텐츠)
  • iota_objects_by_owner — 주소가 소유한 객체 목록
  • iota_transaction — 다이제스트로 트랜잭션 세부 정보 조회 (입력, 효과, 이벤트)
  • iota_coins — 가스 추정 및 토큰 조회를 위한 코인 객체 가져오기
  • iota_epoch_info — GraphQL을 통한 현재 에포크, 체크포인트 및 네트워크 통계
  • iota_decompile — 배포된 Move 모듈의 ABI를 검색 및 디컴파일

예제

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"

온체인 객체 조회:

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

지갑 서명을 사용하여 Move 패키지 배포:

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

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

구성

기본값을 덮어쓰려면 환경 변수를 설정하십시오:

  • IOTA_WALLET_SERVER — 에이전트 지갑 서버 URL (기본값: http://localhost:3847)
  • IOTA_RPC_URL — IOTA JSON-RPC 엔드포인트 (기본값: 메인넷)
  • IOTA_GRAPHQL_URL — IOTA GraphQL 인덱서 (기본값: 메인넷)

설정

npm install -g iota-agent-mcp
// Claude Code: ~/.claude/settings.json
{
  "mcpServers": {
    "iota": { "command": "iota-agent-mcp" }
  }
}
// Cursor / VS Code: .cursor/mcp.json 또는 .vscode/mcp.json
{
  "servers": {
    "iota": { "command": "npx", "args": ["iota-agent-mcp"] }
  }
}

관련 스킬