# MCP 확인 방법

## 등록

quickstart에서 팀 설정을 저장하고 지갑 연결을 완료한 뒤 `npm run mcp:config`를 실행하세요. 출력 JSON을 AI 클라이언트의 MCP 설정에 등록하면 같은 로컬 스타터를 사용해요. 별도의 원격 MCP 서버나 테넌트를 참가자가 배포할 필요는 없어요. 연결 토큰과 키를 설정 JSON에 복사하지 마세요.

## 도구와 결과

| 도구 | 하는 일 | 확인할 결과 |
| --- | --- | --- |
| policy_preview | 로그인 없이 지원하는 정책 범위 확인 | 미리보기이며 권한 생성 없음 |
| wallet_status | 이름에 해당하는 주소·잔액·동결 상태 조회 | 실제 응답과 체인 ID |
| wallet_request | 생성·충전·동결·회수의 승인 요청 | owner_approval_required는 대기 |
| policy_request | 지출 권한 승인 요청 | enabled 전 실행 금지 |
| wallet_execute | 저장된 정확한 호출 실행 | succeeded와 transactionHash |
| operation_status | 원래 요청의 결과 조회 | pending·unknown과 완료 구분 |
| policy_revoke | 정책 철회 승인 요청 | revoked 전 완료 보고 금지 |

`node examples/call.mjs --list`는 실제 stdio MCP 서버에 접속해 도구 목록을 받아요. `node examples/call.mjs policy_preview '<정책JSON>'`도 실제 MCP 통신이지만 체인 거래나 모델 추론은 아니에요. wallet_status 등의 네트워크 도구에는 정상 팀 설정과 지갑 연결이 필요해요.

## 정책 입력 예시

아래 주소는 이 리허설에서 주최자가 지정한 테스트 수신자예요. 실제 행사에서는 주최자가 제공한 주소를 확인하세요.

```sh
node examples/call.mjs policy_preview '{"name":"my-agent","recipient":"0x9a8f75E2e57DA3Ed3Fc0b26858C3205D216cE672","purpose":"작업 완료 보상","maxCalls":1}'
```

예상 결과는 preview_only, 회당0.1 테스트 OKRW, 최대1회·총0.1, 기간3600초, managementPermission:false, approved:false예요. maxCalls를2로 바꾸면 총0.2예요. amountOkrw·durationSeconds·dailyReset 같은 필드는 현재 정책 입력에 없어요. AI가 지원하지 않는 요청을 이 기본 정책으로 몰래 바꾸면 안 돼요.

## 동작 증거

도구 검색은 서버 실행과 스키마를, 미리보기 호출은 입력과 제한 표시를 증명해요. wallet_status는 실제 연결된 지갑 조회이고, transactionHash와 영수증 확인은 체인 실행 증거예요. 하나가 통과했다고 나머지를 통과로 표시하면 안 돼요. 실제 LLM의 호출은 MCP를 사용하는 에이전트에서 별도로 확인해요.

스타터 업무 오류에는 code와 nextAction이 있어요. SDK의 스키마 오류는 원래 MCP 프로토콜 오류(-32602)로 올 수 있어요. 제공한 examples/call.mjs는 이를 INVALID_TOOL_INPUT과 다음 행동으로 정리하고 원문도 보존해요. 다른 MCP 클라이언트는 자체 표시 방식이 다를 수 있어요.

| 오류 코드 | 필요한 조치 |
| --- | --- |
| TEAM_CONFIGURATION_REQUIRED | 주최자에게 팀 설정 요청 |
| TEAM_NOT_PROVISIONED | 주최자가 실제 tenant/client 등록 확인 |
| REGISTERED_CLIENT_MISMATCH | 이름·scope·승인 URL 등 등록 정보 대조 |
| EXECUTION_NETWORK_DENIED | 현재 실행 환경의 네트워크 허용 확인 |
| DNS_LOOKUP_FAILED | DNS·네트워크 접근 확인, 서비스 장애로 단정하지 않기 |
| SETTINGS_ACCESS_DENIED | 설정 조회 접근 상태를 주최자에게 확인 |
| CHAIN_HEAD_STALE | 테스트넷 RPC의 최신 블록 상태 확인 |
| SETUP_REQUIRED·CONNECTION_EXPIRED | 같은 설정과 상태 경로로 지갑 연결 |
| TEST_FUNDS_REQUIRED | 부모 원금 요청, 가스와 구분 |

미확정 거래는 operation_status로 원래 ID를 조회하세요. 응답을 못 받았다는 이유로 새 ID를 만들거나 같은 돈을 다시 보내지 마세요.
