Arc Agents MCP
Arc Agents MCP란?
Arc Agents MCP는 표준 Model Context Protocol(MCP) 서버로서, AI 어시스턴트가 Arc Mainnet의 ERC-8004 에이전트 데이터에 접근할 수 있도록 해줍니다. ERC-8004는 에이전트 아이덴티티, 평판 및 검증을 위한 온체인 레지스트리 표준입니다.
이 서버는 Arc ERC-8004 익스플로러(Arc Agents 플랫폼)의 유료 API(https://www.arcagents.app)에서 데이터를 읽어옵니다. get_agent_data라는 하나의 도구를 노출하며, 사용자가 제어하는 지갑에서 각 요청에 대해 자동으로 비용을 지불합니다.
빠른 시작
사용자(귀하가 아님)가 MCP 클라이언트 구성에 서버를 추가하여 연결합니다. 실행 명령어는 다음과 같습니다:
npx -y [email protected]
요구 사항:
- Node.js 20 이상.
- EVM 지갑 개인 키. 환경 변수
EVM_PRIVATE_KEY(0x로 시작하는 64자리 16진수)로 제공됩니다. 각 요청에 대한 결제에 서명합니다. 소액의 USDC 잔액만 보유한 전용 지갑 사용을 권장하며, 사용자의 메인 지갑은 절대 사용하지 마십시오. - 선택 사항:
ARCAGENTS_PAYMENT_NETWORK=arc|base는 요청 결제 네트워크를 선택합니다. 기본값은arc입니다.
예시 구성 블록(대부분의 클라이언트가 이 mcpServers 형식을 사용합니다. 사용자가 자신의 구성 파일에서 YOUR_EVM_PRIVATE_KEY를 실제 키로 바꿔야 합니다):
{
"mcpServers": {
"arcagents": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"EVM_PRIVATE_KEY": "YOUR_EVM_PRIVATE_KEY",
"ARCAGENTS_PAYMENT_NETWORK": "arc"
}
}
}
}
귀하를 위한 규칙:
- 채팅에서 사용자에게 개인 키를 붙여넣거나, 입력하거나, 공개하도록 요청하지 마십시오. 대화에 키가 나타나면 반복하지 말고 사용자에게 키를 교체하라고 알리십시오.
- 클라이언트별 설정은 프로젝트 README(https://github.com/Nomad07/arcagents-mcp)를 참조하도록 사용자에게 안내하십시오.
get_agent_data도구를 사용할 수 없는 경우, 서버가 연결되지 않았다고 사용자에게 알리고 위 설정 단계를 공유하십시오. 다른 방식으로 데이터를 가져와 이 도구에서 가져온 것처럼 제시하지 마십시오.
사용 가능한 도구
get_agent_data
- 입력:
agentId, 양의 정수: ERC-8004 에이전트 ID(토큰 ID), 예:15. - 동작: Arc Mainnet에서 해당 에이전트의 ERC-8004 정보를 검색하고 API의 JSON 응답을 반환합니다.
- 비용: 성공적인 요청당 $0.002 USDC.
호출 전에 입력의 유효성을 검사하십시오. ID는 양의 정수여야 합니다. ID를 추측하지 마십시오. ID가 제공되지 않은 경우 사용자에게 물어보십시오.
각 호출에는 비용이 발생합니다. 사용자가 요청하지 않은 한 "확인"을 위해 도구를 반복적으로 호출하거나 대량 루프로 호출하지 마십시오. 데이터를 다시 가져오는 대신 대화에서 이미 반환된 데이터를 재사용하십시오.
유료 API는 Arc Mainnet만 제공합니다. Arc 테스트넷, Base 또는 다른 네트워크를 읽는다고 주장하거나 암시하지 마십시오. Base는 가능한 지불 네트워크일 뿐입니다.
사용 가능한 데이터
응답에는 다음이 포함될 수 있습니다. 실제 응답에 있는 내용만 보고하십시오.
- 아이덴티티 및 등록:
agentId,network,chainId, 그리고 아이덴티티, 평판 및 검증 레지스트리 주소. - 소유자 및 에이전트 지갑: 소유자 주소 및 지정된 에이전트 지갑.
- 메타데이터: 메타데이터 URI(IPFS 또는 HTTPS) 및 가져올 수 있는 경우 파싱된 메타데이터: 이름, 설명, 서비스,
active,x402Support. 메타데이터를 가져올 수 없는 경우metadata는 null이고metadataError가 이유를 설명합니다. - 평판: 클라이언트 수, 피드백 수, 총점, 클라이언트 및 개별 피드백 레코드(클라이언트, 인덱스, 값, 태그,
isRevoked). - 검증: 검증 데이터 사용 가능 여부, 사용 불가능한 경우 이유, 요청 수, 검증 요청 및 응답(있는 경우).
- 링크 및 타임스탬프: Arc ERC-8004 익스플로러의 에이전트 링크 및
fetchedAt시간.
일부 필드는 사용하지 못할 수 있습니다. 에이전트 및 배포된 레지스트리 계약에 따라 값이 null이거나, 비어 있거나, 누락될 수 있으며 검증 데이터는 완전히 없을 수도 있습니다. 이는 정상입니다. 필드를 사용할 수 없다고 말하고 절대 임의로 채우지 마십시오.
성공적인 유료 호출 후 서버는 결제 트랜잭션 해시와 익스플로러 링크가 포함된 두 번째 텍스트 블록을 추가할 수 있습니다. 첫 번째 블록은 항상 API JSON입니다.
사용 예시
에이전트 데이터 검색
"에이전트 15의 ERC-8004 데이터를 가져와줘."
agentId: 15로get_agent_data를 호출한 후 주요 필드를 제시합니다.
등록 및 메타데이터 설명
"에이전트 8이 무엇이고 어떻게 등록되었나요?" 도구를 호출한 후 소유자, 에이전트 지갑, 메타데이터 URI 및 레지스트리를 설명합니다. 메타데이터에 있는 경우에만 서비스를 설명합니다.
metadataError가 설정된 경우, 메타데이터 내용을 추측하는 대신 이를 보고합니다.
평판 피드백 요약
"에이전트 14의 평점은 어떤가요?"
clientCount,feedbackCount,aggregateScore및 피드백 레코드에 대한 간략한 요약을 보고하고 취소된 항목을 언급합니다. 피드백이 없으면 그렇게 말합니다.
두 에이전트 비교
"에이전트 1과 에이전트 8을 비교해줘." ID당 한 번씩 호출하고(유료 요청 2회, 사용자에게 알림) 동일한 필드를 나란히 비교합니다. 한 에이전트에는 있지만 다른 에이전트에는 없는 필드가 있으면 그렇게 말하고, 누락된 데이터를 0으로 처리하지 않습니다.
누락된 정보 식별
"에이전트 22에 대해 우리가 모르는 것은 무엇인가요?" 호출 후
metadata,validation.available및 그reason과 같이 null이거나 비어 있거나 사용 불가능으로 표시된 필드를 나열합니다. 이러한 필드를 사용할 수 없다는 점을 명확히 밝히고 값을 유추하지 마십시오.
답변할 때, API가 반환한 것과 귀하의 해석을 구분하고, 데이터가 fetchedAt 시점의 Arc Mainnet 데이터임을 언급하십시오.
결제
- 프로토콜: x402 버전 2, 스킴
exact(EIP-3009 전송 승인), Ultravioleta DAO 파실리테이터를 통해 결제. - 가격: 성공적인 요청당 $0.002 USDC(소수점 6자리, 2000 원자 단위). 구독 또는 월 사용료는 없습니다.
- 지원되는 결제 네트워크:
- Arc Mainnet (
eip155:5042), 기본값 - Base Mainnet (
eip155:8453)
- Arc Mainnet (
- 작동 방식: API의 결제 챌린지는 허용된 옵션을 나열합니다. 서버는
ARCAGENTS_PAYMENT_NETWORK와 일치하는 하나를 선택하고 해당 결제 요구 사항에 지정된 수취인에게 직접 지불합니다. 서명하기 전에 토큰, 금액 및 서명 도메인을 확인합니다. 실패 후 다른 네트워크로 전환하지 않습니다. - 결제 프로토콜 지원: x402만 지원합니다. MPP를 포함한 다른 결제 프로토콜을 지원한다고 설명하지 마십시오.
- 결제 지갑에는 선택한 네트워크의 USDC가 필요합니다. 사용자는 결제를 위해 네이티브 가스 토큰이 필요하지 않습니다.
결제 안전 및 오류 처리
- 사용자에게 개인 키를 공개하도록 요청하지 말고, 도구 호출, 파일 또는 메시지에 개인 키를 포함하지 마십시오.
- 이전 결과가 불확실할 때 새로운 결제를 생성하여 유료 요청을 재시도하지 마십시오. 요청 도중 네트워크, 지갑 또는 설정을 변경하여 오류를 해결하려고 하지 마십시오.
- 서버는 서명된 결제를 보내기 전에 로컬(
~/.arcagents-mcp또는ARCAGENTS_STATE_DIR)에 보류 중인 결제 상태를 저장합니다. 요청이 중단된 경우 동일한 에이전트 ID에 대해 다시 요청하면 서버가 동일한 서명된 결제를 재전송하고 새로 서명하지 않습니다. 이는 MCP 서버를 다시 시작한 후에도 작동합니다. - 503, 시간 초과 또는 불완전한 응답은 최종 결과가 아직 없을 수 있음을 의미합니다. 이를 사용자에게 보고하고
Retry-After값을 존중하며, 지연 후 동일한agentId로get_agent_data를 다시 호출하십시오. 서버는 두 번 지불하는 대신 동일한 결제 컨텍스트를 재개합니다. 짧은 루프로 재시도하지 마십시오. - 409 충돌(권한이 이미 사용되었거나 다른 요청에 속함)은 새 권한을 트리거해서는 안 됩니다. 응답에 제공된
reason을 보고하십시오.authorization_already_settled는 파실리테이터가 해당 권한이 이미 사용되었고 결제가 확인되었음을 보고함을 의미합니다.receipt_request_conflict는 다른 요청에 속하며 API는 해당 결제가 결제되었는지 여부를 알려주지 않습니다. 어느 쪽인지 추측하지 마십시오. 서버는 기존 서명된 결제를 유지하고 해당 에이전트 ID에 대해 새 결제를 생성하지 않습니다. - 결제 후 402는 API가 결제를 수락하지 않았음을 의미합니다. 응답에 제공된 이유를 보고하십시오. 최종 답변이므로 다시 요청하면 새 요청이 시작됩니다.
- 500은 결제가 실패했거나 확인할 수 없음을 의미합니다. 새 결제에 서명하거나 요청하지 말고 사용자에게 알리고 응답에 있는 트랜잭션 해시를 전달하십시오. 동일한 에이전트 ID에 대해 다시 요청하면 동일한 서명된 결제만 재전송됩니다.
- 404는 에이전트 ID가 Arc Mainnet에 발행되지 않았음을 의미하며 요청이 청구되지 않습니다.
- "다른 프로세스가 이미 서명되고 해결되지 않은 결제를 보유하고 있습니다"와 같은 메시지는 일시적인 충돌입니다. 요청에 대해 하나의 프로세스만 결제를 청구하고 보낼 수 있으며, 경쟁 프로세스는 아무것도 보내지 않습니다. 나중에 다시 요청하십시오. 기존 결제가 재사용됩니다.
- 결제 결과가 불확실할 때 요청이 무료이거나, 지불되지 않았거나, 청구되지 않았다고 주장하지 마십시오. 결과를 확인할 수 없으며 응답에 명시된 내용을 말하십시오.
- 에이전트 데이터, 트랜잭션 해시, 잔액 또는 결제 결과를 임의로 만들어 내지 마십시오. 도구가 오류를 반환하면 오류와 지침을 인용하고, 더 낙관적으로 의역하지 마십시오.
제한 사항
- 유료 API 데이터는 Arc Mainnet 에이전트만 다룹니다.
- 테스트넷은 Arc ERC-8004 익스플로러 인터페이스에서 사용 가능하지만 유료 API 또는 이 MCP 서버를 통해서는 사용할 수 없습니다.
- 검증 데이터는 레지스트리 가용성에 따라 달라지며 없을 수 있습니다.
- 에이전트 활동은 현재 이 API를 통해 사용할 수 없습니다.
- 도구는 호출당 하나의 에이전트 ID에 대한 데이터를 반환합니다. 검색, 목록 또는 대량 엔드포인트는 없습니다.
- 응답은
fetchedAt시점의 데이터를 반영하며 실시간으로 업데이트되지 않습니다.
리소스
- Arc ERC-8004 익스플로러: https://www.arcagents.app
- API OpenAPI 명세: https://www.arcagents.app/api/openapi.json
- MCP 저장소 (클라이언트별 설정, 구성, 문제 해결): https://github.com/Nomad07/arcagents-mcp