MCP와 도구
기준일: 2026-06-19
난이도: 중급
공식 기준: MCP
MCP(Model Context Protocol)는 Hermes가 외부 도구 서버를 사용할 수 있게 해주는 어댑터입니다. GitHub, 파일 시스템, 데이터베이스, 사내 API처럼 이미 MCP 서버가 있는 시스템은 Hermes 코어를 수정하지 않고 연결할 수 있습니다.
핵심 개념
| 항목 | 의미 |
|---|---|
| MCP server | 외부 도구를 제공하는 프로세스 또는 HTTP 서버 |
| tool filtering | Hermes가 볼 수 있는 도구만 제한 |
| stdio transport | 로컬 명령으로 서버 실행 |
| HTTP transport | 원격 MCP 서버 연결 |
| toolset | MCP 서버 단위로 생성되는 실행 표면 |
| catalog | Nous가 검토한 MCP 서버를 대화형 picker로 설치하는 경로 |
중요한 원칙은 “연결할 수 있는 모든 도구를 연결하지 않는다”입니다. 도구가 많거나 위험하면 whitelist로 필요한 것만 노출합니다.
선택 기준
MCP를 쓰기 좋은 경우:
- 이미 MCP 서버가 존재한다.
- 외부 시스템 접근을 표준 인터페이스로 제한하고 싶다.
- 사내 API, GitHub, DB 같은 시스템을 Hermes와 연결해야 한다.
- 도구 노출 범위를 서버별로 제어해야 한다.
MCP가 과한 경우:
- 내장 도구로 충분하다.
- 단순한 한 번짜리 파일 읽기만 필요하다.
- 서버가 너무 위험한 도구를 많이 노출하고 필터링할 준비가 안 됐다.
실습
공식 catalog에서 검토된 MCP를 먼저 확인합니다.
hermes mcp
hermes mcp catalog
hermes mcp install n8n
Catalog 항목은 기본적으로 비활성 상태에서 시작하므로, 필요한 서버만 설치하고 credential 요구사항을 확인합니다.
파일 시스템 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
원격 MCP나 사내 API MCP를 연결할 때는 trust model을 별도 검토합니다. 원격 서버가 제공하는 도구 이름, 설명, 입력 스키마도 실행 권한의 일부로 취급하고, 처음에는 읽기 전용 도구만 노출하는 편이 안전합니다.
Hermes에 입력할 프롬프트
이 MCP 설정을 보안 관점에서 검토해줘.
노출된 도구가 너무 넓은지, env가 안전한지, whitelist가 필요한지,
첫 검증 프롬프트는 무엇이 좋은지 알려줘.
체크리스트
- MCP가 필요한 이유가 내장 도구보다 명확하다.
- 서버를 하나씩 추가하고 바로 검증한다.
- catalog 항목은 필요한 것만 설치하고 enable 상태를 확인한다.
- 민감한 서버는 include whitelist를 사용한다.
- 토큰은 설정 파일에 직접 쓰지 않는다.
- MCP 변경 후 도구 목록과 로그를 확인한다.
- 원격 MCP는 도구 설명과 credential 범위를 신뢰할 수 있는지 검토한다.