클로드한테 “안녕"이라고 한 마디 쳤더니 AI의 작업 공간 절반이 그냥 사라졌습니다. 코드 한 줄 안 썼어요. 그냥 인사 한 번 했는데요. AI 쓰시는 분들 혹시 이거 알고 계셨어요? 설정 하나 잘못해 놓으면 AI가 실제로 일할 공간이 절반도 안 남아요. 아무것도 안 했는데요.
Sources
MCP란 무엇인가
요즘 클로드 코드(Claude Code)나 코덱스(Codex) 같은 AI 코딩 도구 쓰시는 분들 많잖아요. 이런 도구들에 MCP(Model Context Protocol)라는 걸 연결할 수 있어요.
- GitHub MCP 연결하면 AI가 코드 저장소를 직접 들여다보고
- Notion MCP 연결하면 문서를 읽어와요
- Slack MCP 연결하면 메시지도 보낼 수 있고요
- 심지어 내 컴퓨터 파일을 AI가 직접 열어보게 할 수도 있어요
MCP 이름은 복잡한데 그냥 AI한테 외부 앱을 연결해 주는 방식이에요. 처음엔 진짜 편해 보이거든요. 연결만 해 놓으면 AI가 알아서 다 해 주는 것 같고. 근데 있잖아요. 바로 거기서부터 문제가 시작돼요.
flowchart LR
subgraph AI["AI 코딩 도구"]
CC["Claude Code"]
CX["Codex"]
end
subgraph MCP["MCP 서버들"]
GH["GitHub MCP"]
NO["Notion MCP"]
SL["Slack MCP"]
DK["Docker MCP"]
FS["Filesystem MCP"]
end
CC --> GH
CC --> NO
CC --> SL
CC --> DK
CC --> FS
style CC fill:#f9f,stroke:#333
style CX fill:#f9f,stroke:#333
style MCP fill:#faa,stroke:#333문제의 핵심: Context Budget 고갈
AI한테는 한 번에 볼 수 있는 정보의 양이 정해져 있어요. 이 공간이 충분해야 AI도 제대로 일할 수 있어요. 쉽게 말하면 AI의 단기 기억 용량이에요.
MCP를 연결하면 대화가 시작되는 순간 연결된 모든 MCP의 도구 설명서가 이 공간에 통째로 쌓여요. 오늘 그 도구를 쓸지 안 쓸지랑 상관없이요.
- GitHub 관련 작업이 전혀 없어도 GitHub MCP가 연결돼 있으면 GitHub 설명서가 자동으로 다 로딩돼요
레스토랑 비유
레스토랑에 비유하면 이래요.
파스타 하나 시키려고 들어갔는데 웨이터가 메뉴 2박 자리를 처음부터 끝까지 전부 읽어 줘요.
그 낭비되는 시간이 MCP가 먹는 공간이에요.
flowchart TD
subgraph Before["MCP 연결 전"]
A1["AI 작업 공간 100%"]
A2["실제 업무 가능 공간: 100%"]
end
subgraph After["MCP 5개 연결 후"]
B1["AI 작업 공간 100%"]
B2["MCP 설명서: ~33%"]
B3["실제 업무 가능 공간: ~67%"]
end
A1 --> A2
B1 --> B2
B1 --> B3
style A2 fill:#afa,stroke:#333
style B2 fill:#faa,stroke:#333
style B3 fill:#ffa,stroke:#333더 심각한 건 MCP가 많을수록 이 낭비가 기하급수적으로 커진다는 거예요. GitHub MCP, Notion MCP, Slack MCP, Docker MCP 다 연결해 놓으면 AI가 진짜 일을 시작하기도 전에 이미 작업 공간 상당 부분이 사용 안 할 설명서로 꽉 차 있는 거예요.
구체적인 수치
| MCP 구성 | 도구 수 | 작업 공간 점유율 |
|---|---|---|
| MCP 1개 (도구 50개) | 50개 | 10~15% |
| MCP 5개 연결 | ~250개 | 약 33% |
| MCP 10개 연결 | ~500개 | 60% 이상 |
MCP 서버 다섯 개 연결해 놓으면 시작 전부터 작업 공간에 1/3 가까이가 없어져요. AI가 실제 작업할 공간이 그만큼 줄어드는 거예요.
왜 이게 치명적인가
이게 단순히 느려지는 문제가 아니에요. AI가 한 번에 볼 수 있는 공간이 줄어들수록:
- 긴 대화를 기억 못 하고
- 복잡한 작업을 중간에 놓치고
- 코드가 길어지면 앞부분을 잊어버려요
마치 사무실 책상 위에도 안 읽는 서류 박스를 잔뜩 쌓아두고 그 위에서 노트북으로 일하는 것처럼요.
flowchart LR
subgraph Impact["Context Budget 감소의 영향"]
direction TB
C1["대화 기억력 저하"]
C2["복잡한 작업 중단"]
C3["긴 코드 앞부분 망각"]
C4["응답 품질 저하"]
end
Budget["Context Budget 고갈"] --> Impact
style Budget fill:#f55,stroke:#333
style C1 fill:#faa,stroke:#333
style C2 fill:#faa,stroke:#333
style C3 fill:#faa,stroke:#333
style C4 fill:#faa,stroke:#333MCP의 실전 문제점들
공간 낭비 문제는 사실 시작일 뿐이에요. 실제로 MCP를 써본 개발자들이 겪는 문제는 더 구체적이에요.
1. MCP가 자주 죽어요
MCP는 AI 뒤에서 별도로 돌아가는 프로그램이에요. 근데 이게 생각보다 자주 꺼져요.
- 갑자기 연결이 끊기거나
- 아예 처음부터 실행이 안 되거나
그러면 클로드 코드 같은 AI 도구 전체를 껐다 켜야 되는 경우가 생겨요. 작업 중이던 흐름이 다 끊기는 거죠.
비유하자면 회의하다가 통역사가 갑자기 자리를 뜨는 것처럼요. 그냥 통역사 없이 진행하면 되는데 이 시스템에서는 통역사 없으면 아무것도 못 해요.
2. 계속 로그인을 다시 해야 돼요
Notion, GitHub, Slack 같은 서비스를 연결하려면 인증이 필요해요. 근데 MCP는 이 인증을 안정적으로 유지하는 게 생각보다 어려워요.
좀 쓰다 보면 “다시 로그인해 주세요"가 자주 뜨는 거예요. 번거롭죠?
3. 권한 제어가 불가능해요
AI한테 “이것만 봐” 하고 제한을 걸 수가 없어요.
- 예를 들어 AI한테 파일을 읽기만 하고 싶은데
- MCP는 읽기/쓰기 권한을 세밀하게 나눌 수가 있긴 한데
- 보통은 읽기/쓰기 권한 둘 다 열어 버리는 경우가 많아요
그냥 연결하면 AI가 다 접근할 수 있는 구조입니다. 보안적으로 찜찜한 부분이죠.
4. 디버깅이 너무 어려워요
뭔가 잘못됐을 때 원인을 찾기가 너무 어려워요.
- MCP에서 오류가 나면 JSON 형식의 로그를 직접 뒤져야 돼요
- 비개발자는 물론이고 개발자도 고통스러운 작업이에요
- 반면 일반 명령어는 화면에 로그가 그대로 뜨거든요
flowchart TD
subgraph Debug["디버깅 난이도 비교"]
direction LR
subgraph Easy["일반 명령어"]
E1["화면 로그 즉시 확인"]
E2["직관적 에러 메시지"]
end
subgraph Hard["MCP 디버깅"]
H1["JSON 로그 파일 탐색"]
H2["복잡한 에러 추적"]
H3["서버 상태 확인 필요"]
end
end
style Easy fill:#afa,stroke:#333
style Hard fill:#faa,stroke:#3335. 마케팅 체크리스트가 돼버린 MCP
최근에 이런 이야기도 나오고 있어요.
MCP를 지원한다는 게 이제 마케팅 체크리스트처럼 됐다.
무슨 말이냐면 회사들이 실제로 MCP가 필요해서 만드는 게 아니라 “우리도 MCP 됩니다"라는 말을 홍보에 쓰기 위해 만든다는 거예요. 실속은 없는데 타이틀만 붙이는 거죠.
실제로 일부 AI 도구들은 MCP 지원을 조용히 줄이거나 다른 방식으로 전환하는 추세예요. 클로드를 만든 Anthropic도 이 문제들을 인지하고 있는 상황입니다.
보안 문제: 5.5%의 악성 MCP
보안도 문제예요.
공개된 MCP 중 5.5%에서 악성 요소가 발견됐다는 보고서도 있어요.
사용자 모르게 정보를 빼가는 방식이 이미 실제로 발견됐다는 이야기예요. MCP는 외부 서버에 연결되어 그 서버가 뭘 하는지, 뭘 바꿨는지 사용자가 알기 어렵기 때문이에요.
pie title 공개 MCP 보안 현황 (보고서 기준)
"정상" : 94.5
"악성 요소 발견" : 5.5더 나은 대안: 스킬(Skills)
그러면 뭐가 더 나은 방법이냐? 그건 바로 스킬(Skills) 이라고 생각합니다.
도서관 사서 비유
도서관 사서로 비유하면 이해가 빨라요.
- 사서는 도서관에 있는 책 수만 권을 전부 외우고 있지 않아요
- 어느 서가에 어떤 분야 책이 있는지만 알아요
- 누군가 “요리책 필요해요"라고 하면 그때 요리 서가로 가서 딱 그 책만 꺼내 줘요
- 나머지 수만 권은 그냥 서가에 꽂혀 있어요
스킬의 작동 방식
스킬이 정확히 이 방식이에요.
- AI가 세션을 시작할 때 각 스킬의 이름과 한 줄 요약만 읽어요
- 실제로 그 스킬이 필요한 작업이 들어왔을 때 그때만 해당 스킬의 내용 전체를 꺼내 읽어요
- 그 외 스킬들은 서가에 꽂혀 있는 책처럼 공간을 거의 차지하지 않아요
flowchart LR
subgraph MCP["MCP 방식: 시작부터 전부 로딩"]
direction LR
M1["세션 시작"]
M2["모든 도구 설명서 로딩"]
M3["Context 33% 소진"]
M4["실제 작업 시작"]
end
subgraph Skill["스킬 방식: 필요할 때만 로딩"]
direction LR
S1["세션 시작"]
S2["스킬 이름/요약만 스캔"]
S3["Context 최소 사용"]
S4["실제 작업 시작"]
S5["필요 시 해당 스킬만 로딩"]
end
M1 --> M2 --> M3 --> M4
S1 --> S2 --> S3 --> S4 --> S5
style MCP fill:#faa,stroke:#333
style Skill fill:#afa,stroke:#333
style M3 fill:#f55,stroke:#333
style S3 fill:#5f5,stroke:#333결과적으로 AI의 작업 공간 대부분이 진짜 일을 위해 남아 있어요.
- 더 긴 대화를 기억하고
- 더 복잡한 코드를 다루고
- 더 정확하게 일해요
MCP가 “일단 다 꺼내 놓고 시작하는 방식"이라면 스킬은 “필요할 때만 꺼내는 방식"이라고 보시면 될 것 같아요.
스킬의 구조적 장점
스킬은 구조 자체가 달라요.
| 특성 | MCP | 스킬 |
|---|---|---|
| 위치 | 외부 서버 | 내 컴퓨터 폴더 |
| 투명성 | 알기 어려움 | 파일 직접 확인 가능 |
| 수정 | 서버 의존 | 언제든 수정 가능 |
| 삭제 | 복잡한 연결 해제 | 파일 삭제로 완료 |
| 디버깅 | JSON 로그 분석 | 일반 텍스트 확인 |
MCP가 AI 뒤에서 뭔가 돌아가는 복잡한 프로그램이라면 스킬은 AI한테 주는 업무 매뉴얼이에요.
실전 검증: MCP 없이 구축한 자동화 시스템
이게 이론이 아니라 실전에서 이미 증명이 됐어요.
GitHub에 MCP 없이 스킬만 써서 AI 자동화 시스템을 구축한 오픈소스 프로젝트가 있어요.
구축 내용
-
AI한테 줄 업무 지침서 14개
- 백엔드 만들 때는 이렇게
- PDF 처리할 때는 이렇게
- 테스트할 때는 이렇게
- 이런 것들이요
-
역할별 AI 도우미 10개
- 코드 검토 전문
- 오류 수정 전문
- 인터넷 리서치 전문
이게 다 MCP 없이 돌아가요.
flowchart LR
subgraph System["MCP 없는 AI 자동화 시스템"]
direction TB
subgraph Guides["업무 지침서 14개"]
G1["백엔드 가이드"]
G2["PDF 처리 가이드"]
G3["테스트 가이드"]
G4["... 외 11개"]
end
subgraph Agents["역할별 AI 도우미 10개"]
A1["코드 검토"]
A2["오류 수정"]
A3["리서치"]
A4["... 외 7개"]
end
end
style System fill:#afa,stroke:#333
style Guides fill:#aaf,stroke:#333
style Agents fill:#faf,stroke:#333
무거운 도구를 잔뜩 연결하는 게 아니라 AI한테 일하는 방법을 잘 가르쳐 주는 것. 이게 지금 AI를 잘 쓰는 팀들이 실제로 가는 방향이에요.
MCP가 여전히 유용한 경우
그렇다고 MCP를 꼭 안 쓰는 건 아닙니다. MCP가 진짜 빛나는 순간도 있거든요.
MCP가 필요한 상황
- AI가 실시간으로 데이터베이스에서 숫자를 가져와야 할 때
- 외부 API를 직접 호출해야 할 때
- 외부 시스템과 실시간 연결이 꼭 필요한 상황
스킬로 충분한 상황
하지만 대부분의 경우는 그렇지 않아요.
- AI한테 “이 방식으로 이래라"고 알려주는 거라면 스킬로도 충분히 가능해요
flowchart TD
Need["작업 요구사항"]
Need --> Q1{"실시간 외부 연결 필수?"}
Q1 -->|Yes| MCP["MCP 사용"]
Q1 -->|No| Q2{"단순 지침 전달?"}
Q2 -->|Yes| Skill["스킬 사용"]
Q2 -->|No| Both["상황에 따라 선택"]
style MCP fill:#ffa,stroke:#333
style Skill fill:#afa,stroke:#333핵심 요약
| 문제/해결 | 내용 |
|---|---|
| MCP의 근본 문제 | 연결된 모든 도구의 설명서를 세션 시작 시 전부 로딩하여 Context Budget 고갈 |
| 구체적 수치 | MCP 5개 연결 시 작업 공간 1/3 소진, 도구 50개당 10~15% 점유 |
| 실전 문제 | 잦은 크래시, 반복 인증 요구, 권한 제어 불가, 디버깅 난이도 높음 |
| 보안 이슈 | 공개 MCP의 5.5%에서 악성 요소 발견 |
| 스킬의 장점 | 필요할 때만 로딩, 폴더 기반 투명성, Context Budget 최소 사용 |
| 실전 검증 | MCP 없이 14개 지침서 + 10개 역할별 AI로 완전한 자동화 구축 가능 |
| 선택 기준 | 실시간 외부 연결 필수 시 MCP, 단순 지침 전달 시 스킬 |
결론
정리해 볼게요.
-
MCP를 잔뜩 연결해 놓으면 AI가 대화 시작하기도 전에 작업 공간이 설명서로 꽉 차요. 쓰지도 않을 도구 설명서를 매번 전부 읽는 구조니까요. 클로드 만든 회사도 이걸 버그가 아닌 정상 동작이라고 했어요.
-
거기다 MCP는 안정성 문제, 반복 인증, 권한 제어 부재, 디버깅 어려움까지 줄줄이 따라와요. 그래서 개발자들 사이에서 “MCP는 죽었다” 라는 말이 나오는 거고요.
-
보안도 문제예요. 공개된 MCP 중 5.5%에서 악성 요소가 발견됐다는 보고서도 있어요. 사용자 모르게 정보를 빼가는 방식이 이미 실제로 발견됐다는 이야기도 있고요.
-
스킬은 달라요. 필요할 때만 꺼내 봐요. 도서관 사서처럼 요청이 왔을 때 그 책만 가져와요. 외부 서버 없이 내 폴더, 내 파일로 투명하게 운영이 가능합니다.
-
실전에서도 이미 검증이 됐어요. MCP 없이도 복잡한 자동화를 전부 돌릴 수 있어요.
방향은 정해져 있습니다. 잔뜩 연결하는 게 아니라 잘 가르치는 스킬을 쓰는 게 핵심입니다.