Claude Code context 소비를 98% 줄이는 MCP 서버, Context Mode
MCP server that reduces Claude Code context consumption by 98%
TL;DR Highlight
오픈소스 MCP 서버는 MCP 도구 호출 출력을 315KB에서 5.4KB로 압축하여 context window 압박을 해결하고 세션 지속 시간을 6배 연장한다.
Who Should Read
Claude Code에서 MCP 도구를 여러 개 연결해 쓰면서 context window가 금방 차서 세션이 끊기는 경험을 한 개발자. Playwright, GitHub CLI, 로그 분석 등 출력이 큰 도구를 자주 쓰는 사람.
Core Mechanics
- MCP 도구를 많이 쓰면 도구 정의(input)와 도구 출력(output) 양쪽에서 context window가 소모된다. 도구 81개 활성화 시 첫 메시지 전에 이미 143K 토큰(72%)이 사라지고, Playwright 스냅샷 한 번에 56KB, GitHub 이슈 20개 조회에 59KB가 추가로 날아간다.
- Context Mode는 도구 출력을 격리된 subprocess(sandbox)에서 실행하고, stdout만 대화 context에 넣는 방식으로 작동한다. raw 데이터(로그, API 응답, 스냅샷)는 sandbox 안에 남고 요약된 결과만 나온다. LLM 호출 없이 순수 알고리즘 기반이다.
- Knowledge Base 기능은 마크다운을 헤딩 기준으로 청킹하고 SQLite FTS5 테이블에 저장한다. BM25 랭킹과 Porter stemming을 적용해서 'running', 'runs', 'ran' 같은 변형도 같은 단어로 매칭한다. URL을 fetch해서 HTML→마크다운 변환 후 인덱싱하는 것도 가능하다.
- 실측 결과: Playwright 스냅샷 56KB→299B, GitHub 이슈 20개 59KB→1.1KB, 접근 로그 500건 45KB→155B, CSV 500행 85KB→222B. 전체 세션 기준 315KB가 5.4KB로 줄어들고, 세션 지속 시간이 ~30분에서 ~3시간으로 늘어났다.
- 설치는 Plugin Marketplace(`/plugin marketplace add mksglu/claude-context-mode`) 또는 MCP 직접 추가(`claude mcp add context-mode -- npx -y context-mode`) 두 가지 방식이 있다.
- PreToolUse hook으로 도구 출력을 자동 라우팅하기 때문에 사용자가 작업 방식을 바꿀 필요가 없다. Bash subagent를 general-purpose로 자동 업그레이드해서 batch_execute를 쓸 수 있게 한 것이 실사용에서 큰 차이를 만들었다고 한다.
- Cloudflare의 Code Mode가 도구 정의(input)를 99.9% 압축한 것에 영감받아, 반대 방향인 도구 출력(output) 압축을 구현한 프로젝트다. MIT 라이선스 오픈소스.
- JavaScript, TypeScript, Python, Shell, Ruby, Go, Rust, PHP, Perl, R 총 10개 런타임을 지원하며, Bun이 감지되면 JS/TS 실행이 3~5배 빨라진다. gh, aws, gcloud, kubectl 같은 인증된 CLI도 credential passthrough로 사용 가능하다.
Evidence
- 한 댓글에서 BM25만으로는 JSON, 테이블 같은 구조화된 데이터에서 키워드 매칭이 약하다는 지적이 나왔다. 본인이 15,800개 파일의 Obsidian vault를 검색하기 위해 Model2Vec 임베딩 + sqlite-vec 벡터검색 + FTS5 BM25를 Reciprocal Rank Fusion(RRF)으로 합친 하이브리드 검색을 만들었다고 소개했다. 49,746개 청크를 83MB DB에 담고, 증분 인덱싱은 10초 이내로 가능하다고 한다.
- hook이 너무 공격적이라는 비판이 있었다. curl로 200바이트짜리 health check 응답을 받는 것까지 sandbox로 우회하는 건 과하고, git log 153개 커밋을 107바이트로 압축하면 모델이 완벽한 추출 스크립트를 미리 작성해야 하는데 실제로는 그렇지 못할 때가 많다는 지적이다.
- 정보 손실과 hallucination 위험에 대한 우려도 있었다. 모델이 좋은 추출 스크립트와 검색 쿼리를 작성할 수 있다고 가정하지만, 불완전한 데이터로 인해 오히려 hallucination이 늘 수 있다는 의견이다.
- prompt caching과의 상호작용을 걱정하는 댓글이 있었다. 캐시된 full query가 정보도 많고 비용도 싼데, 이 도구가 캐시를 깨트리면 오히려 손해라는 지적이다. 다만 하이브리드 검색을 만든 댓글러는 압축된 출력이 결정적(deterministic)이라 오히려 캐싱에 도움이 된다고 반론했다.
- louie.ai에서는 비슷한 문제를 DB 쿼리 결과를 in-memory parquet 데이터프레임으로 만들고 토큰 최적화된 요약 뷰('... + 1M rows' 같은 힌트 포함)를 LLM에 넘기는 방식으로 해결한다는 경험 공유가 있었다. MCP 프로토콜이 바이너리 콘텐츠 타입을 지원하니 Apache Arrow 같은 포맷으로 전환하면 더 좋겠다는 아이디어도 나왔다.
How to Apply
- Claude Code에서 Playwright, GitHub CLI, 로그 파일 등 출력이 큰 MCP 도구를 3개 이상 사용 중이라면 `claude mcp add context-mode -- npx -y context-mode`로 설치해서 세션 지속 시간을 체감해본다. 특히 30분 내로 context가 차는 경험이 있다면 효과가 크다.
- Context Mode 적용 전후 토큰 소비량을 측정하고 싶으면 댓글에서 소개된 claude-trace(`https://github.com/vexorkai/claude-trace`)를 함께 설치해서 세션별, 도구별 토큰 사용량과 비용을 추적한다.
- MCP 도구 대신 CLI 도구(gh, git 등)를 직접 쓰는 것만으로도 토큰 절약 효과가 있다. 출력이 작은 단순 조회는 CLI로, 출력이 큰 복잡한 작업만 Context Mode sandbox를 타게 hook을 조정하면 정보 손실 없이 최적화할 수 있다.
- Knowledge Base 기능으로 프로젝트 문서나 외부 API 문서를 미리 인덱싱해두면, 매번 fetch하지 않고 FTS5 검색으로 필요한 부분만 context에 넣을 수 있다. `fetch_and_index`로 URL을 바로 인덱싱 가능하다.
Code Example
# MCP-only 설치 (도구만 사용)
claude mcp add context-mode -- npx -y context-mode
# Plugin Marketplace 설치 (auto-routing hook + slash command 포함)
/plugin marketplace add mksglu/claude-context-mode
/plugin install context-mode@claude-context-modeTerminology
관련 논문
Swift로 LLM 학습시키기 Part 1: 행렬 곱셈을 Gflop/s에서 Tflop/s로 끌어올리기
Apple Silicon에서 Swift로 직접 행렬 곱셈 커널을 구현하며 CPU, SIMD, AMX, GPU(Metal)를 단계별로 최적화해 Gflop/s에서 Tflop/s 수준까지 성능을 높이는 과정을 상세히 설명한 글이다. 프레임워크 없이 LLM 학습의 핵심 연산을 밑바닥부터 구현하고 싶은 개발자에게 Apple Silicon의 성능 한계를 체감할 수 있는 드문 자료다.
fsync 없이 로컬 스토리지 엔진을 crash-consistent하게 만든 방법
FractalBits가 fsync 없이 SSD 전용 KV 스토리지 엔진을 구현해 동일 조건 대비 약 65% 높은 쓰기 성능을 달성한 설계 방법을 공유했다. fsync의 메타데이터 오버헤드를 피하기 위해 사전 할당, O_DIRECT, SSD 원자 쓰기 단위 정렬 저널을 조합한 구조가 핵심이다.
Google Chrome, 사용자 동의 없이 4GB AI 모델(Gemini Nano)을 몰래 설치
Google Chrome이 사용자 동의 없이 Gemini Nano 4GB 모델 파일을 자동 다운로드하고, 삭제해도 재다운로드되는 문제가 발견됐다. GDPR 위반 가능성과 수십억 대 기기에 적용될 때의 환경 비용 문제가 제기되고 있다.
OpenAI가 대규모 저지연 Voice AI를 제공하는 방법
OpenAI가 9억 명 이상의 사용자에게 실시간 음성 AI를 제공하기 위해 WebRTC 스택을 어떻게 재설계했는지 설명하는 글로, relay + transceiver 분리 아키텍처의 설계 결정과 trade-off를 상세히 다룬다.
Truncated Decoding Tree의 결정론적 탐색을 통한 효율적인 Test-Time Inference
Self-consistency의 중복 샘플링 낭비를 없애는 결정론적 트리 탐색 디코딩 기법 DLE로 수학/코드 추론 성능과 속도를 동시에 개선
GoModel – Go로 작성된 오픈소스 AI Gateway
OpenAI, Anthropic, Gemini 등 여러 AI 프로바이더를 하나의 OpenAI 호환 API로 묶어주는 Go 기반 오픈소스 AI 게이트웨이로, LiteLLM의 컴파일 언어 대안이다.