Claude Skills는 MCP보다 더 큰 혁신일 수 있다
Claude Skills are awesome, maybe a bigger deal than MCP
TL;DR Highlight
Anthropic이 출시한 Claude Skills는 마크다운 파일과 스크립트 묶음으로 LLM에 새 능력을 부여하는 패턴인데, MCP보다 훨씬 단순하면서도 강력해서 개발자 워크플로우를 바꿀 수 있다.
Who Should Read
Claude Code나 Cursor 같은 코딩 에이전트를 쓰고 있고, MCP 서버 설정이나 컨텍스트 관리에 불편을 느끼는 개발자. 또는 팀 내 반복 작업을 자동화하고 싶은 DevOps/플랫폼 엔지니어.
Core Mechanics
- Claude Skills는 마크다운 파일 + 스크립트 + 리소스를 폴더에 묶어놓으면 Claude가 필요할 때 알아서 로드하는 구조다. 개념 자체가 극도로 단순하다.
- 토큰 효율이 핵심이다. 세션 시작 시 각 스킬의 YAML 프론트매터(설명 몇 줄)만 읽고, 실제로 관련 작업이 요청될 때만 전체 내용을 로드한다. 스킬 하나당 수십 토큰만 차지.
- Claude의 문서 생성 기능(PDF, DOCX, XLSX, PPTX)이 실은 전부 Skills로 구현되어 있었다. Anthropic이 anthropics/skills GitHub 리포에 공개했다.
- 예시로 Slack GIF 생성 스킬이 있는데, Python 스크립트로 GIF를 만들고 Slack 업로드 제한(2MB)에 맞는지 검증 함수까지 포함한다. 실패하면 모델이 다시 시도할 수 있다.
- Skills는 파일시스템 접근과 코드 실행 환경이 필수다. MCP나 ChatGPT Plugin과 달리 로컬 코딩 환경(Claude Code, Cursor 등)에 의존하는 게 가장 큰 차이점이자 강점.
- MCP의 가장 큰 한계는 토큰 소비다. GitHub MCP는 수만 토큰, Supabase MCP는 search_docs 도구 하나 로드에 8K, 실제 사용 시 30K+ 토큰을 먹는다. Skills는 이 문제를 JIT(Just-In-Time) 로딩으로 해결한다.
- Simon Willison은 Skills가 MCP보다 더 큰 패러다임 변화일 수 있다고 주장한다. 핵심 근거는 '안전한 코딩 환경을 LLM에 제공하면 단순한 마크다운+스크립트만으로도 엄청난 능력 확장이 가능하다'는 것.
- Skills는 사실상 개발자 문서를 태스크 지향적으로 잘 쓴 것과 같다. 기존에 문서를 안 쓴 이유는 피드백 루프가 길었기 때문인데, 이제 작성→테스트→개선을 분 단위로 반복할 수 있다.
Evidence
- 한 사용자는 사내 모노레포에서 비슷한 방식을 이미 쓰고 있다고 공유했다. 컨텍스트 파일이 너무 커서 태스크별로 조각낸 프래그먼트 트리를 만들었는데, Skills와 같은 개념이었다. 좋은 문서를 안 만든 이유로 '피드백 루프가 너무 길었다', '도구가 문서 작성을 도와준다', '남을 위한 문서는 동기부여가 안 되지만 내 AI 미니언을 위한 건 된다'는 세 가지를 제시했다.
- MCP 옹호 측에서는 'MCP는 터미널 밖에서도 쓸 수 있고(ChatGPT, n8n, LibreChat 등), OAuth 인증이나 UI까지 커버한다. CRM, 세일즈, 재무 등 비개발 워크플로우에는 MCP가 더 적합하다. 둘은 경쟁이 아니라 보완 관계'라는 반론이 있었다.
- 회의적인 의견도 많았다. '일반 사용자에게 이걸 설정하라고 하면 어이없어 할 것. 사람들은 로그인해서 시키면 알아서 되길 원한다', 'MCP, Apps, Skills, Gems 다 표면적 반복일 뿐 깊은 문제는 안 풀린다'는 비판이 있었다.
- 실제 사용 경험으로, '배시 스크립트 작성 시 사용하라'고 명확히 설명한 커스텀 스킬을 만들었는데 Claude가 자동으로 호출하지 않았다는 사례가 공유됐다. 자동 매칭 정확도가 아직 부족하다는 지적.
- 한 댓글은 'Skills는 결국 JIT 컨텍스트 인젝션'이라고 요약했고, 다른 사용자는 '이미 커스텀 MCP + mkdocs 인덱싱으로 같은 걸 하고 있어서 크게 흥분되지 않는다. Skills라는 이름도 나쁘다. 선택적 컨텍스트 로딩 시스템이 더 정확한 이름'이라고 평가했다.
How to Apply
- 팀 내 반복되는 코딩 패턴(예: API 엔드포인트 생성, DB 마이그레이션, 특정 포맷 파일 생성)이 있다면 마크다운 설명 + 템플릿 스크립트를 스킬 폴더로 만들어서 Claude Code에 등록하면 매번 프롬프트를 길게 쓸 필요가 없어진다.
- MCP 서버가 컨텍스트를 너무 많이 잡아먹어 성능이 떨어지는 경우, 해당 MCP의 핵심 기능을 CLI 래퍼 + 마크다운 스킬로 대체하면 토큰 사용량을 대폭 줄일 수 있다. Supabase MCP처럼 도구 선택 옵션이 없는 경우 특히 유효하다.
- 사내 온보딩용 문서를 스킬 형태로 전환하면, 신규 개발자가 Claude에게 '배포 프로세스 알려줘'라고 물어볼 때 정확한 사내 절차가 컨텍스트로 주입된다. 기존 위키와 달리 즉시 실행 가능한 형태로 제공된다.
- 자동 매칭이 아직 불안정하므로, 중요한 스킬은 CLAUDE.md에 '이 작업 시 /스킬명 호출할 것'처럼 명시적 트리거를 설정해두는 게 현시점에서는 더 안정적이다.
Code Example
snippet
# 스킬 디렉토리 구조 예시
# my-skill/
# SKILL.md <- 프론트매터에 설명, 트리거 조건 기술
# core/
# helper.py <- 모델이 호출할 수 있는 유틸리티
# templates/
# boilerplate.py <- 템플릿 파일
# SKILL.md 프론트매터 예시:
# ---
# description: "Toolkit for creating animated GIFs optimized for Slack"
# trigger: "users request animated GIFs or emoji animations for Slack"
# ---
# 스킬 내 Python에서 활용하는 패턴:
import sys
sys.path.insert(0, '/mnt/skills/examples/slack-gif-creator')
from core.gif_builder import GIFBuilder
# GIF 생성 후 Slack 크기 제한 검증
passes, info = check_slack_size('output.gif', is_emoji=False)
if not passes:
print(f"⚠ {info['size_kb']:.1f}KB > {info['limit_kb']}KB limit")Terminology
MCPModel Context Protocol. LLM이 외부 서비스(GitHub, DB 등)와 통신하는 표준 프로토콜. USB 포트처럼 어떤 도구든 꽂으면 AI가 쓸 수 있게 해주는 규격.
JIT Context InjectionJust-In-Time 컨텍스트 주입. 필요한 순간에만 정보를 로드하는 방식. 앱의 lazy loading과 같은 개념으로, 토큰을 아끼면서 필요한 정보만 제공한다.
Frontmatter마크다운 파일 맨 위에 ---로 감싼 YAML 메타데이터. HTML의 <head> 같은 역할로, 스킬의 설명과 트리거 조건을 여기에 적는다.
Context WindowLLM이 한 번에 처리할 수 있는 텍스트 총량. 책상 크기에 비유할 수 있는데, MCP 도구 설명이 책상의 대부분을 차지하면 실제 작업 공간이 줄어든다.
TokenLLM이 텍스트를 처리하는 단위. 대략 영어 단어 0.75개, 한글 0.5~1글자 정도. 많이 쓸수록 비용이 올라가고 응답 품질이 떨어진다.