클로드 코드 MCP 서버와 Hooks 설정 가이드 - 워크플로우 자동화
MCP와 Hooks: 클로드 코드 확장의 두 축
클로드 코드의 핵심 기능 중 하나는 확장성입니다. MCP(Model Context Protocol)로 외부 도구와 서비스를 연결하고, Hooks로 특정 이벤트에 자동 동작을 설정할 수 있습니다.
MCP는 Anthropic이 발표한 오픈 프로토콜로, AI 모델이 외부 도구와 표준화된 방식으로 통신할 수 있게 합니다. 클로드 코드는 MCP 클라이언트(외부 서버의 도구를 사용)이자 동시에 MCP 서버(자신의 도구를 외부에 제공)로 동작할 수 있습니다.
MCP 서버 추가하기
기본 명령어
claude mcp add <서버이름> -- <명령어> [인자...]
전송 방식 3가지
클로드 코드는 세 가지 MCP 전송 방식을 지원합니다:
- stdio (로컬 프로세스)
로컬에서 실행되는 프로세스와 표준 입출력으로 통신합니다:
# GitHub MCP 서버 추가
claude mcp add github -- npx -y @modelcontextprotocol/server-github
# 파일시스템 MCP 서버 추가
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/dir
- HTTP (원격 서비스)
원격 HTTP 서버와 통신합니다:
claude mcp add my-remote-server --transport http https://api.example.com/mcp
- SSE (Server-Sent Events)
실시간 스트리밍이 필요한 서비스와 연결합니다:
claude mcp add my-sse-server --transport sse https://api.example.com/sse
스코프 설정
MCP 서버는 사용 범위(스코프)를 지정할 수 있습니다:
# 사용자 전역 설정 (모든 프로젝트)
claude mcp add github --scope user -- npx -y @modelcontextprotocol/server-github
# 프로젝트 설정 (해당 프로젝트만)
claude mcp add my-db --scope project -- npx -y @modelcontextprotocol/server-postgres
프로젝트 설정 파일
프로젝트 루트에 .mcp.json 파일을 생성하면 팀 전체가 동일한 MCP 설정을 공유할 수 있습니다:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://..."
}
}
}
}
클로드 코드를 MCP 서버로 사용
클로드 코드 자체를 MCP 서버로 노출할 수도 있습니다:
claude mcp serve
이 모드에서 클로드 코드는 다음 도구들을 MCP 프로토콜로 제공합니다:
- Bash: 명령어 실행
- Read/Write/Edit: 파일 조작
- GlobTool/GrepTool: 파일 검색
- LS: 디렉토리 목록
이를 통해 Claude Desktop, Cursor, Windsurf 등 다른 MCP 클라이언트에서 클로드 코드의 기능을 원격으로 호출할 수 있습니다.
Hooks 설정
Hooks는 클로드 코드의 에이전트 라이프사이클 중 특정 시점에 자동으로 실행되는 명령어입니다.
설정 위치
.claude/settings.json 파일에서 Hooks를 설정합니다:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit",
"command": "echo 'File modification detected'"
}
],
"PostToolUse": [
{
"matcher": "Bash",
"command": "echo 'Command executed'"
}
]
}
}
주요 Hook 이벤트
| 이벤트 | 실행 시점 | 활용 사례 |
|---|---|---|
| PreToolUse | 도구 실행 직전 | 파일 수정 전 린트 체크 |
| PostToolUse | 도구 실행 직후 | 코드 변경 후 자동 테스트 |
| SessionStart | 세션 시작 시 | 환경 변수 로드, 상태 체크 |
| UserPromptSubmit | 사용자 입력 후 | 입력 검증, 로깅 |
실전 Hooks 활용 예시
코드 변경 후 자동 린트
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx eslint --fix ${FILE_PATH} 2>/dev/null || true"
}
]
}
}
커밋 전 자동 테스트
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "if echo \"$TOOL_INPUT\" | grep -q 'git commit'; then npm test; fi"
}
]
}
}
Hook 응답 옵션
Hook은 실행 결과에 따라 다양한 동작을 지정할 수 있습니다:
- block: true로 설정하면 도구 실행을 중단
- message: 클로드 코드에 표시할 메시지
- feedback: 클로드 코드의 다음 동작에 영향을 주는 피드백
- suppressOutput: 출력 숨김
- continue: 다음 Hook으로 진행 여부
MCP + Hooks 조합 활용
MCP와 Hooks를 조합하면 강력한 자동화 워크플로우를 구축할 수 있습니다:
- MCP로 DB, API, 외부 서비스 연결
- Hooks로 코드 변경 시 자동 검증
- CLAUDE.md로 프로젝트 규칙 유지
예를 들어 데이터베이스 MCP 서버를 연결하고, API 코드 수정 시 자동으로 DB 스키마와의 정합성을 체크하는 Hook을 설정하는 식입니다.
설정 관리 팁
.mcp.json은 Git에 커밋해 팀과 공유- 민감한 정보(API 키 등)는 환경 변수로 분리
- Hooks는
.claude/settings.json에서 관리 - 복잡한 Hook 로직은 별도 스크립트 파일로 분리하는 것이 유지보수에 유리
마무리
MCP와 Hooks는 클로드 코드를 단순한 AI 코딩 도우미에서 팀 맞춤형 개발 자동화 플랫폼으로 확장하는 핵심 기능입니다. 프로젝트에 맞는 외부 도구 연결과 자동화 규칙을 설정하면, 반복적인 검증 작업을 줄이고 개발에만 집중할 수 있습니다.
이 포스트가 도움이 되셨다면, CLAUDE.md 작성법과 Agent SDK 가이드도 확인해보세요.