Claude Code 확장 메커니즘 완전 정리: MCP, Skills, Plugins, Hooks 그리고 그 너머
Claude Code를 커스터마이징하는 8가지 확장 포인트를 비교하고 각각의 역할과 사용법을 정리한다.
Claude Code를 쓰다 보면 MCP, Skills, Plugins 같은 용어가 자연스럽게 등장한다. 처음엔 비슷해 보이지만, 각각의 역할과 목적이 명확히 다르다. 이 글에서는 Claude Code의 8가지 확장 메커니즘을 정리한다.
핵심 3가지: MCP, Skills, Plugins
MCP (Model Context Protocol)
외부 서비스와의 연결 프로토콜이다.
MCP는 Claude가 외부 도구나 데이터 소스에 접근하는 표준 인터페이스다. GitHub, Notion, Playwright, 파일시스템 등 다양한 서비스를 Claude에 연결할 수 있다. 각 MCP 서버는 tools(실행 가능한 액션)와 resources(읽기 가능한 데이터)를 제공한다.
- 형태: stdio 프로세스 또는 SSE 서버
- 설정:
~/.claude/settings.json의mcpServers에 등록 - 비유: API 클라이언트
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-github"]
}
}
}
MCP 서버를 등록하면 Claude가 대화 중 필요할 때 자동으로 해당 도구를 호출한다. 사용자가 명시적으로 호출할 필요가 없다.
Skills
재사용 가능한 프롬프트 템플릿이다.
Skills는 코드를 실행하는 게 아니라, Claude에게 행동 지침을 주입하는 것이다. /commit, /code-review 같은 슬래시 커맨드로 호출하면 해당 프롬프트가 컨텍스트에 로드된다.
- 형태: 마크다운 파일 (name, description, trigger 조건 + 지침)
- 위치:
~/.claude/skills/또는 플러그인이 제공 - 비유: 매크로 또는 레시피
---
name: commit
description: Create a git commit with conventional format
---
1. Run git status to check changes
2. Stage relevant files
3. Write a conventional commit message
...
Skills의 본질은 “이 상황에서 이렇게 행동해라”라는 지침이다. Claude의 행동 패턴을 정형화할 때 유용하다.
Plugins
Skills와 MCP를 번들로 패키징한 것이다.
하나의 플러그인이 Skills와 MCP 서버를 동시에 제공할 수 있다. npm 패키지처럼 설치하고 관리한다.
- 형태: npm 패키지
- 설정:
~/.claude/settings.json의plugins에 등록 - 캐시:
~/.claude/plugins/cache/에 저장 - 비유: 확장 패키지
예를 들어 oh-my-claudecode 플러그인은 수십 개의 Skills(autopilot, ralph, ultrawork 등)과 MCP 도구(LSP, AST, notepad 등)를 한꺼번에 제공한다. context7 플러그인은 라이브러리 문서 조회용 MCP 도구를 제공한다.
3가지 비교
| 구분 | MCP | Skills | Plugins |
|---|---|---|---|
| 본질 | 외부 도구 연결 프로토콜 | 프롬프트 템플릿 | Skills + MCP 번들 |
| 제공하는 것 | tools, resources | 행동 지침 | 둘 다 |
| 호출 방식 | Claude가 자동 tool call | /name으로 사용자 호출 | 설치하면 둘 다 활성화 |
| 형태 | 서버 프로세스 | 마크다운 파일 | npm 패키지 |
간단히 말하면: MCP = 도구, Skills = 지침, Plugins = 둘을 묶은 패키지.
나머지 5가지: 설정과 자동화
Hooks
특정 이벤트에 자동 실행되는 셸 명령이다.
Git hooks와 같은 개념으로, Claude Code의 특정 시점에 셸 스크립트를 자동 실행한다.
- 이벤트:
PreToolUse,PostToolUse,UserPromptSubmit,SessionStart등 - 설정:
~/.claude/settings.json의hooks - 용도: 파일 저장 시 자동 포맷팅, 커밋 전 린트, 세션 시작 시 컨텍스트 주입
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "prettier --write $CLAUDE_FILE_PATH"
}
]
}
]
}
}
Hooks는 Claude의 행동을 강제하는 유일한 방법이다. CLAUDE.md는 지침이라 무시될 수 있지만, Hooks는 셸 명령이 실제로 실행되기 때문에 확실한 보장이 된다.
CLAUDE.md
프로젝트/글로벌 지침 파일이다.
Claude가 대화 시작 시 자동으로 읽는 설정 파일로, 코딩 컨벤션, 워크플로 규칙, 프로젝트 구조 등을 정의한다.
- 위치:
~/.claude/CLAUDE.md(글로벌), 프로젝트 루트CLAUDE.md,.claude/CLAUDE.md - 우선순위: 사용자 명시적 지시 > CLAUDE.md > 기본 동작
- 비유:
.editorconfig또는.eslintrc
# CLAUDE.md
## Coding Style
- TypeScript strict mode 사용
- 함수명은 camelCase
- 테스트 파일은 *.test.ts
## Project Structure
- src/components/ 에 UI 컴포넌트
- src/lib/ 에 유틸리티
프로젝트별로 다른 CLAUDE.md를 두면, 같은 Claude Code가 프로젝트마다 다른 규칙으로 동작한다.
AGENTS.md
서브에이전트용 지침 파일이다.
Claude Code는 복잡한 작업을 서브에이전트에게 위임할 수 있다. AGENTS.md는 이 서브에이전트들이 읽는 별도의 지침이다.
- CLAUDE.md가 “나”를 위한 지침이라면, AGENTS.md는 “내가 시킨 사람”을 위한 지침
- 디렉토리별로 배치 가능 (계층적)
- 서브에이전트의 역할, 권한, 작업 범위를 정의
# AGENTS.md
## Code Review Agent
- 보안 취약점 우선 체크
- OWASP Top 10 기준 적용
## Test Agent
- 커버리지 80% 이상 유지
- E2E 테스트 필수
Keybindings
키보드 단축키 커스터마이징이다.
Claude Code의 키 입력을 원하는 대로 바꿀 수 있다.
- 설정:
~/.claude/keybindings.json - 용도: 제출 키 변경, 코드 바인딩 추가 등
Settings (Permissions)
도구 허용/차단 규칙이다.
MCP 도구 포함, Claude가 사용할 수 있는 도구를 세밀하게 제어한다.
allowedTools: 자동 허용할 도구 목록denyTools: 차단할 도구 목록- 범위: 글로벌(
~/.claude/settings.json) 또는 프로젝트별(.claude/settings.json)
{
"allowedTools": ["Read", "Glob", "Grep"],
"denyTools": ["Bash(rm *)"]
}
보안 민감한 환경에서는 Settings로 Claude의 행동 범위를 제한할 수 있다.
전체 구조 한눈에 보기
Claude Code 확장 메커니즘
├── 기능 확장 (무엇을 할 수 있는가)
│ ├── MCP → 외부 도구 연결
│ ├── Skills → 행동 패턴 정의
│ └── Plugins → MCP + Skills 번들
├── 자동화 (언제 실행되는가)
│ └── Hooks → 이벤트 기반 셸 명령
└── 설정/지침 (어떻게 행동하는가)
├── CLAUDE.md → 프로젝트 지침
├── AGENTS.md → 서브에이전트 지침
├── Keybindings → 키보드 단축키
└── Settings → 권한/동작 제어
| 메커니즘 | 역할 | 비유 |
|---|---|---|
| MCP | 외부 도구 연결 | API 클라이언트 |
| Skills | 프롬프트 템플릿 | 매크로/레시피 |
| Plugins | Skills + MCP 번들 | VSCode 확장 |
| Hooks | 이벤트 트리거 셸 명령 | Git hooks |
| CLAUDE.md | 글로벌/프로젝트 지침 | .editorconfig |
| AGENTS.md | 서브에이전트 지침 | 팀 가이드라인 |
| Keybindings | 단축키 설정 | IDE 키맵 |
| Settings | 권한/동작 제어 | 방화벽 규칙 |
어떤 걸 써야 하나?
“Claude가 새로운 서비스에 접근해야 한다” → MCP 서버 추가
“반복되는 워크플로를 정형화하고 싶다” → Skills 작성
“여러 도구와 워크플로를 한 번에 설치하고 싶다” → Plugin 설치
“파일 저장마다 자동 포맷팅이 필요하다” → Hooks 설정
“프로젝트별 코딩 규칙을 적용하고 싶다” → CLAUDE.md 작성
“서브에이전트의 동작을 통제하고 싶다” → AGENTS.md 작성
“특정 도구를 차단하고 싶다” → Settings에서 denyTools 설정
대부분의 사용자는 CLAUDE.md부터 시작하고, 필요에 따라 MCP와 Skills를 추가하는 순서가 자연스럽다. Plugins는 커뮤니티가 만든 검증된 조합을 한 번에 가져오고 싶을 때 유용하다.
← All posts