Claude Codecode.claude.com
Claude Code 스킬·MCP·플러그인 비교무엇을 언제 붙이나
Claude Code의 스킬, MCP, 플러그인 가운데 내 문제에 맞는 쪽을 세 가지 사례로 고르고, 각각 어디에 설정하고 어떻게 확인하는지 알 수 있습니다.
안녕하세요, muaco입니다.
셋 중 무엇을 고르나
같은 설명을 매번 다시 하고 있다면 스킬을, Claude가 다른 프로그램의 자료를 직접 봐야 한다면 MCP를 고르세요. 이 둘을 묶어 여러 사람에게 똑같이 나눠 줘야 한다면 플러그인입니다.
Claude Code는 터미널(글자로 명령을 쳐서 컴퓨터를 다루는 창)에서 Claude에게 일을 맡기는 도구입니다. 스킬, MCP, 플러그인은 모두 여기에 무언가를 더합니다. 플러그인 안에 나머지 둘이 들어가기도 해서 처음엔 셋이 겹쳐 보입니다.
기준은 2026년 10월에 읽은 Claude Code 공식 문서입니다.
고르는 기준 셋
1. 무엇을 더하나
새로 온 직원을 떠올려 보세요. 일을 잘하려면 "우리 팀은 이렇게 한다"는 요령도, 사내 시스템에 들어갈 출입증도 있어야 합니다.
요령에 해당하는 쪽이 스킬입니다. SKILL.md 파일 하나에 지시문을 적어 두면 Claude가 관련 있는 일에서 꺼내 씁니다. 사람이 /skill-name 꼴로 직접 부를 수도 있습니다.
출입증에 해당하는 쪽이 MCP입니다. MCP(Model Context Protocol)는 AI와 여러 도구를 잇는 공개 표준이고, 이 규격대로 만든 연결 프로그램을 MCP 서버라고 부릅니다. 서버를 붙이면 Claude가 이슈 관리 도구나 데이터베이스에 직접 들어갑니다.
플러그인은 성격이 다릅니다. 새 능력이라기보다 포장 방식에 가깝습니다. 스킬, 서브에이전트(일을 떼어 맡기는 보조 일꾼), 훅(정해진 순간마다 자동으로 도는 명령), MCP 서버를 한 단위로 묶어 설치합니다.
2. 언제 책상에 올라가나
Claude가 한 번에 펼쳐 놓고 보는 내용을 문맥(context window)이라고 합니다. 책상이라고 생각하면 쉽습니다. 올려 둔 만큼 사용량에 잡히고, 대화에 쓸 자리는 줄어듭니다.
스킬은 이름과 설명만 늘 책상에 있고, 본문은 쓸 때 펼칩니다. 그래서 긴 참고 자료를 넣어도 쓰기 전까지는 비용이 거의 들지 않는다고 문서는 설명합니다.
MCP는 설명서를 서랍에 넣어 두었다가 꺼내 보는 방식, 곧 도구 검색이 기본입니다. 세션을 시작할 때는 도구 이름과 서버 안내문만 올라가고, 자세한 정의는 Claude가 필요할 때 불러옵니다. Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5 이후 모델 기준입니다.
스킬 설명은 플러그인으로 묶든 개인 폴더에 따로 두든 말을 주고받을 때마다 책상에 오릅니다. 묶어서 늘어나는 부담은 다른 데 있습니다. 안에 든 MCP 서버와 훅이 함께 돌고, 묶음 전체가 한 번에 켜집니다.
3. 누구와 나누나
누구와 함께 쓸까요? 혼자인지, 저장소(팀이 함께 관리하는 프로젝트 폴더)의 동료인지에 따라 설정 위치가 갈립니다. 스킬과 MCP도 혼자용과 팀 공유용을 따로 둘 수 있습니다.
플러그인은 그다음 단계입니다. 문서는 한 프로젝트에서만 쓰거나 나만 쓴다면 지금처럼 따로 두라고 권합니다. 동료와 나누거나, 여러 프로젝트에 깔거나, 버전을 매겨 배포할 때 플러그인을 씁니다.
한눈에 비교하기
| 구분 | 하는 일 | 문맥에 올라가는 때 | 설정이 저장되는 곳 |
|---|---|---|---|
| 스킬 | 절차와 요령을 적은 지시문 | 설명은 늘, 본문은 쓸 때 | 나: ~/.claude/skills/저장소: .claude/skills/ |
| MCP | 외부 도구, 데이터베이스, API에 접근 | 도구 이름과 서버 안내문은 늘, 정의는 필요할 때 | local·user: ~/.claude.jsonproject: .mcp.json |
| 플러그인 | 스킬, 에이전트, 훅, MCP 서버를 한 묶음으로 | 안에 든 스킬, MCP와 같음. 묶음 전체가 함께 켜짐 | user: ~/.claude/settings.jsonproject: .claude/settings.jsonlocal: .claude/settings.local.json |
이런 경우엔 이 도구입니다
사례 1. 매주 같은 양식을 설명한다면 스킬
주간 보고를 맡길 때마다 "항목은 셋, 항목마다 세 줄"을 다시 붙여 넣는 경우입니다. 같은 절차를 채팅에 자꾸 붙여 넣게 되면 스킬로 만들라고 문서는 권합니다. 한 번 적어 두면 Claude가 알아서 꺼내 씁니다.
폴더 하나에 SKILL.md 파일 하나면 됩니다. 혼자 쓴다면 아래 경로에 파일을 만드세요. 이 컴퓨터의 모든 프로젝트에서 쓸 수 있습니다.
~/.claude/skills/weekly-report/SKILL.md
동료와 같이 쓰려면 저장소 안의 .claude/skills/weekly-report/SKILL.md에 두고 커밋(변경 내용을 저장소에 기록하는 일)합니다. 내용은 이 정도로 시작해도 충분합니다.
--- description: 주간 보고를 팀 양식으로 정리합니다. 주간 보고나 이번 주 정리를 요청받으면 씁니다. ---
이번 주 한 일, 막힌 일, 다음 주 할 일 세 항목으로 나눕니다. 항목마다 세 줄을 넘기지 않습니다.
맨 위 description을 보고 Claude가 이 스킬을 언제 꺼낼지 정합니다. 문서가 적으라고 권하는 항목은 이 하나뿐이고 나머지는 모두 선택입니다. 이름을 따로 적지 않으면 폴더 이름을 따라 /weekly-report가 됩니다.
확인하는 법. Claude Code 안에서 /skills를 실행해 목록에 weekly-report가 보이면 됩니다. 세션을 연 뒤 skills 폴더를 처음 만들었다면 Claude Code가 그 폴더의 변화를 알아채지 못합니다. /reload-skills를 실행하고, SKILL.md를 고칠 때마다 다시 실행하세요.
사례 2. 다른 도구의 자료를 복사해 붙인다면 MCP
이슈 관리 도구나 Notion 문서를 매번 복사해 Claude에게 붙여 넣는 경우입니다. 다른 도구에서 채팅으로 자료를 옮기고 있다면 서버를 연결하라고 문서도 권합니다. 연결하면 Claude는 붙여 넣은 조각 대신 원래 시스템을 직접 읽고 다룹니다.
문서가 권하는 방식은 원격 HTTP 서버입니다. Claude Code 안이 아니라 터미널에서 아래 명령을 칩니다. 문서에 실린 Notion 예시입니다.
claude mcp add --transport http notion https://mcp.notion.com/mcp
옵션 없이 추가하면 지금 프로젝트에서 나만 쓰는 local 범위가 되고, 설정은 ~/.claude.json에 저장됩니다. 동료와 나누려면 --scope project를 붙이세요. 프로젝트 맨 위 폴더의 .mcp.json에 기록되고, 이 파일을 커밋하면 공유됩니다.
이 파일을 받은 동료가 Claude Code를 열면, 그 서버를 쓰기 전에 승인할지 먼저 묻습니다.
로그인이 필요한 서버도 있습니다. 그럴 때는 Claude Code 안에서 /mcp를 실행하고 브라우저에 뜨는 로그인 단계를 따라가면 됩니다.
확인하는 법. 터미널에서 claude mcp list를 치면 등록된 서버가 모두 나옵니다. Claude Code 안에서는 /mcp로 서버 상태를 봅니다.
붙이기 전에 그 서버를 믿을 수 있는지 먼저 확인하세요. 외부 내용을 가져오는 서버는 프롬프트 주입에 노출될 수 있다고 문서가 경고합니다. 프롬프트 주입은 읽어 온 글에 지시를 숨겨 두어 AI를 엉뚱하게 움직이는 공격입니다.
사례 3. 팀 전체에 같은 도구 상자를 깔아야 한다면 플러그인
사례 1의 스킬 두세 개와 사례 2의 MCP 서버를 팀원 모두가 여러 프로젝트에서 똑같이 써야 하는 경우입니다. 사람마다 따로 설정하면 하나씩 빠뜨리기 쉽습니다. 플러그인은 이 묶음을 한 번에 설치하고, 마켓플레이스(플러그인 목록을 모은 카탈로그)에서 업데이트를 받습니다.
남이 만든 플러그인부터 써 보려면 Claude Code 안에서 /plugin을 실행하고 Discover 탭에서 고릅니다. 이름을 안다면 바로 칠 수도 있습니다. 커밋 관련 명령을 더해 주는 commit-commands라면 이렇게 칩니다.
/plugin install commit-commands@claude-plugins-official
세션 안에서 이 명령을 치면 바로 설치되지 않고 상세 화면이 열립니다. Will install 목록에서 무엇이 깔리는지 보고 범위를 고르세요. 모든 프로젝트에서 나만 쓰는 user, 저장소 동료 모두가 쓰는 project, 이 저장소에서 나만 쓰는 local이 있습니다.
project 범위에는 함정이 하나 있습니다. 설정을 커밋해도 동료 컴퓨터에 플러그인이 내려받아지지는 않습니다. 동료가 각자 터미널에서 claude plugin install <name>@<marketplace> --scope project를 한 번 실행해야 합니다.
직접 만든다면 폴더 하나에 이름표 파일과 구성 요소를 넣습니다. 이름표는 .claude-plugin/plugin.json입니다. 스킬과 MCP 설정은 .claude-plugin/ 폴더 안이 아니라 플러그인 맨 위 폴더에 둡니다.
my-plugin/
├── .claude-plugin/plugin.json
├── skills/weekly-report/SKILL.md
└── .mcp.json
이름표에 꼭 적을 항목은 명령 앞에 붙을 name 하나이고, 띄어쓰기 없이 적습니다. 설명과 버전을 더하면 이렇습니다.
{
"name": "my-plugin",
"description": "팀 주간 보고 양식과 Notion 연결",
"version": "1.0.0"
}
.mcp.json은 사례 2를 --scope project로 했다면 생긴 파일을 복사하고, 옵션 없이 했다면 파일이 없으니 아래처럼 만드세요.
{
"mcpServers": {
"notion": {
"type": "http",
"url": "https://mcp.notion.com/mcp"
}
}
}
설치하지 않고 시험하려면 터미널에서 claude --plugin-dir ./my-plugin으로 Claude Code를 띄웁니다. 그 세션에서만 플러그인이 불러와집니다.
확인하는 법. /를 쳐서 플러그인 스킬이 /<plugin>:<skill> 꼴로 뜨는지 봅니다. commit-commands라면 /commit-commands:commit이 보입니다. /plugin의 Installed 탭이나 터미널의 claude plugin list로 범위와 상태도 확인할 수 있습니다.
설치하기 전에 누가 만들었는지 확인하세요. 어느 마켓플레이스에서 받았든, 설치한 플러그인은 내 사용자 권한으로 코드를 실행할 수 있습니다.
갈아탈 때 주의할 점
명령 이름이 바뀝니다. .claude/에 두던 스킬을 플러그인으로 옮기면 /deploy가 /my-plugin:deploy가 됩니다. 옛 이름에 익숙한 동료에게 새 이름을 알려 주세요.
원본을 지우기 전까지는 둘 다 살아 있습니다. 스킬은 앞에 붙는 이름이 달라 겹치지 않지만, 훅은 이름이 없어 같은 작업이 두 번 실행됩니다. 플러그인이 제대로 도는지 확인한 뒤 .claude/의 원본과 설정 파일의 hooks 항목을 지우라고 문서는 안내합니다.
플러그인에 든 MCP 서버는 /mcp로 지우지 못합니다. 플러그인을 설치하거나 제거해야 넣고 뺄 수 있고, /mcp에서는 끄기만 됩니다. 잠시 멈추고 싶을 뿐이라면 제거 대신 claude plugin disable <plugin>@<marketplace>로 꺼 두세요.
처음이라면 가장 자주 되풀이하는 설명 하나를 스킬로 적어 보세요. MCP와 플러그인은 사례 2, 3 같은 일이 생겼을 때 더해도 늦지 않습니다.
이상으로 글 마치겠습니다.
같은 분류의 글
Claude Code · cursor.com
Cursor 에이전트 사용법: 여러 파일 수정 맡기고 검토·되돌리기
Cursor 에이전트에게 여러 파일 수정을 한 번에 맡기고, 바뀐 내용을 검토해 거절하거나 체크포인트로 되돌리는 순서를 따라 합니다.
Claude Code · code.claude.com
Claude Code가 안 될 때: 설치·로그인·권한 오류 확인 순서
Claude Code가 설치, 로그인, 권한 가운데 어디서 막혔는지 가리고, 갈래별 순서대로 확인해 직접 푸는 법을 정리했습니다.
Claude Code · github.com
Claude Code 훅 onFailure 설정: 훅이 고장 나면 작업을 막는 법
Claude Code 2.1.295에 새로 생긴 onFailure: "block"을 settings 파일에 넣어 두면, 훅이 실행되지 않거나 시간을 넘기거나 예상하지 못한 종료 코드로 끝났을 때 작업이 막힙니다.