Tech Wiki

TOPICSSERIES

[Hermes Agent 실전 07] Hermes에 MCP 서버 연결하고 검증하기

MCP 연결은 Hermes가 의도한 도구를 찾아야 준비된 상태입니다. 안전한 쓰기 결과도 다시 읽을 수 있어야 합니다. 등록 명령의 성공은 설정이 저장됐다는 뜻일 뿐입니다. server protocol, tool scope, data path의 동작까지 증명하지는 않습니다.

  • 등록 전에 server와 실행 명령을 읽어봅니다.
  • 넓은 접근을 허용하기 전에 tool list를 확인합니다.
  • 첫 쓰기는 일회용 profile이나 테스트 환경에서 실행합니다.
  • 정확히 같은 값을 readback한 뒤 fixture를 제거합니다.

1. 로컬 server 살펴보기

fixture는 Python 표준 라이브러리로 만든 JSON-RPC server이며 put_noteget_note 두 도구만 제공합니다. 메모 이름에는 소문자, 숫자, 하이픈만 쓸 수 있습니다. 저장 파일은 호출자가 정하므로 테스트 실행마다 격리할 수 있습니다.

server는 초기화, tools/list, tools/call을 구현합니다. 알 수 없는 method나 tool은 임의 명령으로 처리하지 않고 protocol error를 반환합니다.

2. 로컬에서 protocol 실행하기

Hermes 설정을 바꾸기 전에 검사기를 실행합니다.

python3 examples/chapter-07-mcp-server/verify_mcp.py
python3 -m unittest discover -s examples/chapter-07-mcp-server/tests -v

검사기는 임시 디렉터리에서 server를 시작하고 session을 초기화합니다. 이어서 tool list를 받고 hello를 쓴 뒤 같은 hello를 읽습니다. 테스트가 끝나면 저장소도 사라집니다.

{"readback": "hello", "status": "PASS", "tools": ["get_note", "put_note"]}

3. 검토한 명령 등록하기

예제 디렉터리로 이동합니다. 그다음 일회용 Hermes profile이나 별도 테스트 profile에서 실행하세요.

hermes mcp add tutorial-notes --command python3 --args mock_mcp_server.py --store notes.json
hermes mcp test tutorial-notes
hermes mcp configure tutorial-notes

add 명령은 stdio server를 기록합니다. --args 뒤의 값은 server 명령에 전달되므로 이 옵션을 마지막에 둬야 합니다. test는 연결과 discovery를 검사합니다. configure에서는 tool selection을 열어 이 profile에 필요한 도구만 남길 수 있습니다.

4. Hermes 쪽 경계 확인하기

hermes mcp list를 실행해 server 이름과 transport를 살펴봅니다. 설정을 바꿀 때 agent가 이미 실행 중이었다면 다시 시작해야 startup discovery가 도구를 등록합니다. MCP tool 이름은 호환되지 않는 문자를 정규화한 뒤 mcp_<server>_<tool> 형태로 만들어집니다.

운영 server에는 필요한 환경 변수만 전달하세요. Hermes는 stdio server가 상속할 환경을 걸러냅니다. 다만 명시적인 --env 항목은 그 값을 subprocess에 줍니다. 실제 token을 글, shell history, fixture, commit된 config에 넣으면 안 됩니다.

5. 정리하고 결과 해석하기

검사를 마치면 tutorial 등록을 제거합니다.

hermes mcp remove tutorial-notes

로컬 fixture가 증명하는 것은 protocol 초기화, 정확한 tool discovery, 잘못된 입력 거부, 쓰기 성공과 readback입니다. OAuth, 원격 HTTP transport, 운영 authorization, 제3자 server 동작은 검증하지 않습니다. 실제 서비스에는 최소 권한으로 별도의 acceptance test를 수행해야 합니다.

출처


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Tech Wiki

Built with WordPress · Learn in public.