클로드 코드 MCP 서버와 Hooks 설정 가이드 - 워크플로우 자동화

6 조회

MCP와 Hooks: 클로드 코드 확장의 두 축

클로드 코드의 핵심 기능 중 하나는 확장성입니다. MCP(Model Context Protocol)로 외부 도구와 서비스를 연결하고, Hooks로 특정 이벤트에 자동 동작을 설정할 수 있습니다.

MCP는 Anthropic이 발표한 오픈 프로토콜로, AI 모델이 외부 도구와 표준화된 방식으로 통신할 수 있게 합니다. 클로드 코드는 MCP 클라이언트(외부 서버의 도구를 사용)이자 동시에 MCP 서버(자신의 도구를 외부에 제공)로 동작할 수 있습니다.

MCP 서버 추가하기

기본 명령어

claude mcp add <서버이름> -- <명령어> [인자...]

전송 방식 3가지

클로드 코드는 세 가지 MCP 전송 방식을 지원합니다:

  1. 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
  1. HTTP (원격 서비스)

원격 HTTP 서버와 통신합니다:

claude mcp add my-remote-server --transport http https://api.example.com/mcp
  1. 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를 조합하면 강력한 자동화 워크플로우를 구축할 수 있습니다:

  1. MCP로 DB, API, 외부 서비스 연결
  2. Hooks로 코드 변경 시 자동 검증
  3. CLAUDE.md로 프로젝트 규칙 유지

예를 들어 데이터베이스 MCP 서버를 연결하고, API 코드 수정 시 자동으로 DB 스키마와의 정합성을 체크하는 Hook을 설정하는 식입니다.

설정 관리 팁

  • .mcp.json은 Git에 커밋해 팀과 공유
  • 민감한 정보(API 키 등)는 환경 변수로 분리
  • Hooks는 .claude/settings.json에서 관리
  • 복잡한 Hook 로직은 별도 스크립트 파일로 분리하는 것이 유지보수에 유리

마무리

MCP와 Hooks는 클로드 코드를 단순한 AI 코딩 도우미에서 팀 맞춤형 개발 자동화 플랫폼으로 확장하는 핵심 기능입니다. 프로젝트에 맞는 외부 도구 연결과 자동화 규칙을 설정하면, 반복적인 검증 작업을 줄이고 개발에만 집중할 수 있습니다.


이 포스트가 도움이 되셨다면, CLAUDE.md 작성법과 Agent SDK 가이드도 확인해보세요.

공유