PromptThrift MCP: LLM 앱을 위한 스마트 토큰 압축
지능형 대화 압축으로 LLM API 비용을 70-90% 절감하세요. 이제 Gemma 4 로컬 압축을 지원합니다: 더 똑똑한 요약, API 비용 제로.
👁 License: MIT
👁 Python 3.10+
👁 MCP Compatible
👁 Gemma 4
⭐ 이 도구가 비용 절감에 도움이 되었다면, 이 저장소에 별을 눌러주세요! ⭐
문제점
모든 LLM API 호출은 전체 대화 기록을 다시 전송합니다. 20번 주고받은 대화는 3번 주고받은 대화보다 호출당 6배 더 많은 비용이 발생하므로, 동일한 이전 메시지들에 대해 계속해서 비용을 지불하고 있는 셈입니다.
Turn 1: ████ 700 tokens ($0.002)
Turn 5: ████████████████ 4,300 tokens ($0.013)
Turn 20: ████████████████████████████████████████ 12,500 tokens ($0.038)
↑ You're paying for THIS every callRelated MCP server: SlimContext MCP Server
해결책
PromptThrift는 API 비용을 대폭 절감하기 위한 4가지 도구를 갖춘 MCP 서버입니다:
도구 | 기능 | 효과 |
| 이전 대화를 스마트 요약으로 압축 | 입력 토큰 50-90% 감소 |
| 14개 모델에 걸친 토큰 사용량 및 비용 추적 | 비용 발생 지점 파악 |
| 작업에 가장 저렴한 모델 추천 | 단순 작업 시 60-80% 절감 |
| 압축 후에도 유지될 핵심 사실 고정 | 중요한 맥락 손실 방지 |
왜 PromptThrift인가?
PromptThrift | Context Mode | Headroom | |
라이선스 | MIT (상업적 이용 가능) | ELv2 (경쟁 불가) | Apache 2.0 |
압축 유형 | 대화 메모리 | 도구 스키마 가상화 | 도구 출력 |
로컬 LLM 지원 | Ollama를 통한 Gemma 4 | 없음 | 없음 |
비용 추적 | 다중 모델 비교 | 없음 | 없음 |
모델 라우팅 | 내장 | 없음 | 없음 |
고정된 사실 | 압축 제외 목록 | 없음 | 없음 |
빠른 시작
설치
옵션 A: pip 설치 (권장)
pip install git+https://github.com/woling-dev/promptthrift-mcp.git옵션 B: 복제 및 설치
git clone https://github.com/woling-dev/promptthrift-mcp.git
cd promptthrift-mcp
pip install -e .선택 사항: Gemma 4 압축 활성화
더 똑똑한 AI 기반 압축을 위해 (무료, 로컬 실행):
# Install Ollama: https://ollama.com
ollama pull gemma4:e4bPromptThrift는 Ollama를 자동으로 감지합니다. 실행 중이면 → 압축에 Gemma 4를 사용합니다. 그렇지 않으면 → 빠른 휴리스틱 압축으로 대체합니다. 별도의 설정이 필요 없습니다.
Claude Desktop
claude_desktop_config.json에 추가하세요:
{
"mcpServers": {
"promptthrift": {
"command": "python",
"args": ["/path/to/promptthrift-mcp/server.py"]
}
}
}Cursor / Windsurf
MCP 설정에 추가하세요:
{
"mcpServers": {
"promptthrift": {
"command": "python",
"args": ["/path/to/promptthrift-mcp/server.py"]
}
}
}실제 사례
30회 이상 대화를 주고받으며 복잡한 문제를 디버깅하는 AI 코딩 어시스턴트:
압축 전 (매 API 호출마다 전송):
User: My Next.js app throws a hydration error on the /dashboard page.
Asst: That usually means server and client HTML don't match. Can you share the component?
User: [pastes 50 lines of DashboardLayout.tsx]
Asst: I see the issue, you're using `new Date()` directly in render, which differs
between server and client. Let me also check your data fetching...
User: I also get a warning about useEffect running twice.
Asst: That's React 18 Strict Mode. Not related to hydration. Let me trace the real bug...
User: Wait, there's also a flash of unstyled content on first load.
Asst: That's a separate CSS loading order issue. Let me address both...
[... 25 more turns of debugging, trying fixes, checking logs ...]
User: OK it's fixed now! But I want to add dark mode next.
Asst: Great! For dark mode with Next.js + Tailwind, here are three approaches...30회 대화 후 약 8,500 토큰, 매 API 호출마다 증가함
Gemma 4 압축 후:
[Compressed history]
Resolved Next.js hydration error in DashboardLayout.tsx caused by
Date() in render (fixed with useEffect). Unrelated: React 18 Strict Mode
double-fire (expected), CSS flash (fixed via loading order).
User now wants to add dark mode to Next.js + Tailwind app.
[End compressed history]
[Recent turns preserved, last 4 turns intact]약 1,200 토큰. 이후 모든 호출에서 86% 절감
규모별 비용 영향 (Claude Sonnet @ $3/MTok):
시나리오 | PromptThrift 미사용 | PromptThrift 사용 | 월간 절감액 |
개발자 1명, 일 20세션 | $5.10/월 | $0.72/월 | $4.38 |
개발자 10명 팀 | $51/월 | $7.20/월 | $43.80 |
고객 서비스 봇 (일 500건) | $255/월 | $36/월 | $219 |
AI 에이전트 플랫폼 (일 5천건) | $2,550/월 | $357/월 | $2,193 |
고정된 사실 (압축 제외 목록)
사용자 이름, 중요한 선호도, 핵심 결정 사항 등 압축 중에 절대 손실되어서는 안 되는 사실들이 있습니다. 이들을 고정하세요:
You: "Pin the fact that this customer is allergic to nuts"
→ promptthrift_pin_facts(action="add", facts=["Customer is allergic to nuts"])
→ This fact will appear in ALL future compressed summaries, guaranteed.지원 모델 (2026년 4월 가격 기준)
모델 | 입력 $/MTok | 출력 $/MTok | 로컬? |
gemma-4-e2b | $0.00 | $0.00 | Ollama |
gemma-4-e4b | $0.00 | $0.00 | Ollama |
gemma-4-27b | $0.00 | $0.00 | Ollama |
gemini-2.0-flash | $0.10 | $0.40 | |
gpt-4.1-nano | $0.10 | $0.40 | |
gpt-4o-mini | $0.15 | $0.60 | |
gemini-2.5-flash | $0.15 | $0.60 | |
gpt-4.1-mini | $0.40 | $1.60 | |
claude-haiku-4.5 | $1.00 | $5.00 | |
gemini-2.5-pro | $1.25 | $10.00 | |
gpt-4.1 | $2.00 | $8.00 | |
gpt-4o | $2.50 | $10.00 | |
claude-sonnet-4.6 | $3.00 | $15.00 | |
claude-opus-4.6 | $5.00 | $25.00 |
작동 원리
Before (every API call sends ALL of this):
┌──────────────────────────────────┐
│ System prompt (500 tokens) │
│ Turn 1: user+asst (600 tokens) │ ← Repeated every call
│ Turn 2: user+asst (600 tokens) │ ← Repeated every call
│ ... │
│ Turn 8: user+asst (600 tokens) │ ← Repeated every call
│ Turn 9: user+asst (new) │
│ Turn 10: user (new) │
└──────────────────────────────────┘
Total: ~6,500 tokens per call
After PromptThrift compression:
┌──────────────────────────────────┐
│ System prompt (500 tokens) │
│ [Pinned facts] (50 tokens) │ ← Always preserved
│ [Compressed summary](200 tokens) │ ← Turns 1-8 in 200 tokens!
│ Turn 9: user+asst (kept) │
│ Turn 10: user (kept) │
└──────────────────────────────────┘
Total: ~1,750 tokens per call (73% saved!)압축 모드
모드 | 방식 | 품질 | 속도 | 비용 |
휴리스틱 | 규칙 기반 추출 | 좋음 (50-60% 감소) | 즉시 | 무료 |
LLM (Gemma 4) | AI 기반 이해 | 우수 (70-90% 감소) | ~10-15초 | 무료 (로컬) |
PromptThrift는 사용 가능한 최상의 방법을 자동으로 사용합니다. 최대 압축 품질을 위해 Ollama + Gemma 4를 설치하세요.
압축이 효과적인 경우
압축 효율은 대화 길이와 중복성에 비례합니다:
대화 길이 | 일반적인 감소율 | 추천 대상 |
짧음 (< 5회, 주로 기술적) | 15-25% | 절감 효과 미미: 그대로 유지 |
중간 (10-20회, 혼합 대화) | 50-70% | 적정 수준: 확실한 비용 절감 |
김 (30회 이상, 디버깅/반복) | 70-90% | 대폭 절감: 조기에 자주 압축 |
이유: 짧고 밀도 높은 대화는 제거할 군더더기가 거의 없습니다. 긴 대화는 인사말, 반복된 맥락, 탐색적 막다른 길, 장황한 설명이 쌓이게 되며, 압축기는 바로 이러한 부분을 제거합니다. 코드 스니펫, 반복적인 문제 해결, 최종 해결책이 포함된 30회 디버깅 세션은 향후 맥락을 위해 결론과 핵심 결정 사항만 중요하기 때문에 극적으로 압축됩니다.
경험칙: 최상의 결과를 위해 8-10회 대화 후 압축을 시작하세요.
환경 변수
변수 | 필수 | 기본값 | 설명 |
| 아니오 |
| LLM 압축을 위한 Ollama 모델 |
| 아니오 |
| Ollama API 엔드포인트 |
| 아니오 |
| 비용 추정을 위한 기본 모델 |
보안
모든 데이터는 기본적으로 로컬에서 처리됩니다. 기기 밖으로 나가는 데이터는 없습니다.
Ollama 압축은 100% 사용자의 하드웨어에서 실행됩니다.
**압축 후 살균기(Sanitizer)**가 요약에서 프롬프트 주입 패턴을 제거합니다.
API 키는 환경 변수에서만 읽으며, 코드에 하드코딩되지 않습니다.
영구 저장소, 텔레메트리, 타사 호출이 없습니다.
로드맵
[x] 휴리스틱 대화 압축
[x] 다중 모델 토큰 계산 (14개 모델)
[x] 지능형 모델 라우팅
[x] Ollama를 통한 Gemma 4 로컬 LLM 압축
[x] 고정된 사실 (압축 제외 목록)
[x] 압축 후 보안 살균기
[ ] 클라우드 기반 압축 (Anthropic/OpenAI API 대체)
[ ] 프롬프트 캐싱 최적화 조언자
[ ] 사용량 분석을 위한 웹 대시보드
[ ] VS Code 확장 프로그램
기여
PR을 환영합니다! 이 프로젝트는 MIT 라이선스를 사용합니다. 포크하고, 개선하고, 배포하세요.
BrandDefender.ai 소개
BrandDefender.ai는 대만 기반의 AI 인프라 스튜디오인 **Wolin Global Media (沃嶺國際媒體)**의 제품 라인으로, 브랜드가 AI 시스템에 의해 발견되고, 이해되고, 추천받을 수 있도록 돕습니다.
우리가 만드는 것
🔍 AEO 컨설팅 (Answer Engine Optimization) ChatGPT, Gemini, Perplexity, Claude에서 브랜드가 올바르게 인용되도록 합니다. JSON-LD 스키마를 구현하고, 콘텐츠 구조를 최적화하며, 대만 식품, 차, 뷰티 및 라이프스타일 브랜드의 AI 검색 노출을 모니터링합니다.
무료 AI 브랜드 스캔: https://app.aibranddefender.com/
💬 AI 고객 서비스 (LINE 봇) 3계층 메모리, 관리자 개입, Supabase 백엔드를 갖춘 프로덕션급 LINE 챗봇입니다. 이미 소매 및 F&B 분야의 실제 브랜드에 서비스를 제공하고 있습니다.
가이드: LINE AI 챗봇 가이드
🧠 AI 메모리 MCP 인프라 Claude Code, Cursor 및 LLM 빌더를 위한 오픈 소스 MCP 서버입니다. 로컬 우선, 개인정보 보호, API 비용 절감을 위해 구축되었습니다.
이 저장소가 그중 하나입니다.
관련 도구: promptforge · promptthrift-mcp
연락처
📧 이메일: service@wolinglobal.com
💬 LINE: @886upktf
🌐 웹사이트: https://aibranddefender.com/
🐙 GitHub: https://github.com/woling-dev
대만 브랜드 AEO 감사 문의: ChatGPT / Gemini / Perplexity 전체 스캔 + JSON-LD 수정 + 월간 모니터링을 제공합니다. 이메일 또는 LINE으로 직접 문의해 주세요.
라이선스
MIT 라이선스. 개인 및 상업적 용도로 무료 사용 가능.
© 2026 Wolin Global Media (沃嶺國際媒體).
비용 절감에 도움이 되었다면 이 저장소에 별을 눌러주세요!
This server cannot be installed
Maintenance
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/woling-dev/promptthrift-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
