MCP와 도구
기준일: 2026-06-06
난이도: 중급
공식 기준: Use MCP with Hermes
MCP(Model Context Protocol)는 Hermes가 외부 도구 서버를 사용할 수 있게 해주는 어댑터입니다. GitHub, 파일 시스템, 데이터베이스, 사내 API처럼 이미 MCP 서버가 있는 시스템은 Hermes 코어를 수정하지 않고 연결할 수 있습니다.
핵심 개념
| 항목 | 의미 |
|---|---|
| MCP server | 외부 도구를 제공하는 프로세스 또는 HTTP 서버 |
| tool filtering | Hermes가 볼 수 있는 도구만 제한 |
| stdio transport | 로컬 명령으로 서버 실행 |
| HTTP transport | 원격 MCP 서버 연결 |
| toolset | MCP 서버 단위로 생성되는 실행 표면 |
중요한 원칙은 “연결할 수 있는 모든 도구를 연결하지 않는다”입니다. 도구가 많거나 위험하면 whitelist로 필요한 것만 노출합니다.
선택 기준
MCP를 쓰기 좋은 경우:
- 이미 MCP 서버가 존재한다.
- 외부 시스템 접근을 표준 인터페이스로 제한하고 싶다.
- 사내 API, GitHub, DB 같은 시스템을 Hermes와 연결해야 한다.
- 도구 노출 범위를 서버별로 제어해야 한다.
MCP가 과한 경우:
- 내장 도구로 충분하다.
- 단순한 한 번짜리 파일 읽기만 필요하다.
- 서버가 너무 위험한 도구를 많이 노출하고 필터링할 준비가 안 됐다.
실습
파일 시스템 MCP를 하나만 연결하는 예:
mcp_servers:
project_fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/project"]
Hermes 실행 후 확인:
현재 로드된 MCP-backed tools를 알려줘.
각 도구가 어떤 서버에서 왔는지와 위험도를 함께 설명해줘.
민감한 서버는 필요한 도구만 노출합니다.
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code]
prompts: false
resources: false
Hermes에 입력할 프롬프트
이 MCP 설정을 보안 관점에서 검토해줘.
노출된 도구가 너무 넓은지, env가 안전한지, whitelist가 필요한지,
첫 검증 프롬프트는 무엇이 좋은지 알려줘.
체크리스트
- MCP가 필요한 이유가 내장 도구보다 명확하다.
- 서버를 하나씩 추가하고 바로 검증한다.
- 민감한 서버는 include whitelist를 사용한다.
- 토큰은 설정 파일에 직접 쓰지 않는다.
- MCP 변경 후 도구 목록과 로그를 확인한다.