IOTA Agent MCP
AI 코딩 에이전트를 IOTA 블록체인에 연결하는 MCP 서버입니다. 지갑 작업, Move 스마트 컨트랙트 개발, 온체인 데이터 조회를 위한 18개의 도구를 제공하며, 모든 통신은 stdio 전송을 통해 이루어지고 MCP 프로세스 내에 비밀 정보가 저장되지 않습니다.
워크플로우
- 에이전트 설정에 MCP 서버 구성 (Claude Code, Cursor, VS Code Copilot)
- 온체인 데이터 조회 — 객체, 트랜잭션, 코인, 에포크 정보 조회 또는 모듈 디컴파일
- Move 컨트랙트 개발 — 빌드, 커버리지 테스트, 서명되지 않은 배포 트랜잭션 생성
- 서명 및 배포 — 서명되지 않은 트랜잭션을 생성하고
iota_wallet_sign_execute로 제출,iota_wallet_pending으로 승인 상태 확인,iota_transaction으로 온체인 확인
서명 흐름 (인간-인-더-루프)
상태를 변경하는 지갑 작업은 사람의 승인이 필요합니다:
- Base64로 인코딩된 트랜잭션 바이트를
iota_wallet_sign_execute로 호출 — 대기 중인 요청 생성 iota_wallet_pending을 호출하여 요청이 대기열에 추가되었는지 확인- 사람이
iota_wallet_approve(승인) 또는iota_wallet_reject(거부)를 통해 에이전트-지갑 서버에서 승인 - 승인 시, 반환된 다이제스트로
iota_transaction을 호출하여 트랜잭션이 온체인에 기록되었는지 확인 - 거부된 경우 사용자에게 알리고 명시적인 지시 없이 재시도하지 않음
도구
지갑 (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"] }
}
}