Files
dap-was-dapms/docs/decisions/ADR-0005-standard-tool-name.md
koseokmin 58d3014a0f
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m52s
저장소 문서를 다시 추적하고 계약 예제를 복원한다
계약 테스트는 docs/contracts 아래 예제를 golden example로 읽는다.
docs/와 README.md가 ignore되어 있어 예제 파일이 사라졌고 9건이
실패하고 있었다. 문서가 온전했던 마지막 상태(3de052a)에서 복원하고
.gitignore에서 두 항목을 제거한다. 에이전트 산출물인
docs/superpowers/ 제외는 유지한다.

initialize 응답의 capabilities.tools.listChanged를 문서는 true로
적고 있었으나 InitializeHandler는 false를 낸다. 현재 HTTP 단발 응답
transport가 notification을 push할 수 없으므로 false가 맞다. 예제와
architecture.md를 코드에 맞추고, ToolListChangedEvent가 발행되지만
아직 소비되지 않는다는 점과 SSE 도입 시 true로 바꾼다는 조건을
남긴다.

169개 테스트 전부 통과.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 17:16:13 +09:00

1.4 KiB

ADR-0005 표준 MCP Tool name을 실행 식별자로 사용

  • 상태: Accepted
  • 결정일: 2026-07-30
  • 대체 대상: ADR-0003

배경

Tool의 원천 정보는 각 Tool Service가 소유하고 MCP Server가 매니페스트를 pull한다. Agent Builder의 UID는 Agent Builder 내부 관리 개념이므로 MCP와 Tool Service 사이의 계약으로 전파하면 표준 tools/listtools/call 외에 별도 식별자 동기화가 필요해진다.

결정

  • tools/list가 노출하고 tools/call.params.name이 전달하는 표준 MCP Tool name을 실행 식별자로 사용한다.
  • Tool Service가 전체 MCP 범위에서 고유한 namespaced name을 직접 선언한다.
  • 허용 형식은 MCP 표준에 맞춘 1~64자의 영문·숫자와 _, -, ., /다.
  • MCP Server는 이름을 재작성하지 않고 형식, bundle의 namePrefix, 전체 중복을 검증한다.
  • Agent Builder 내부 UID는 Agent Builder가 자체 관리하며 MCP metadata와 실행 요청에 요구하지 않는다.

결과

  • 표준 MCP 계약만으로 목록과 실행 대상을 연결한다.
  • Tool 이름 변경은 식별자 변경이므로 Tool Service와 Agent Builder의 rolling 호환 기간이 필요하다.
  • 이름 충돌이나 전체 Tool 수 상한 초과 시 일부 목록을 노출하지 않고 기존 정상 snapshot을 유지한다.