PromptThrift MCP
Compressão inteligente de tokens para aplicações LLM. Economize 70-90% nos custos de API com compressão local Gemma 4, rastreamento de custos multi-modelo e roteamento inteligente de modelos.
Documentação
PromptThrift MCP: Compressão Inteligente de Tokens para Apps de LLM
Reduza 70-90% dos seus custos de API de LLM com compressão inteligente de conversas. Agora com compressão local Gemma 4: resumos mais inteligentes, custo zero de API.
⭐ Se isso economizar seu dinheiro, dê uma estrela neste repositório! ⭐
O Problema
Toda chamada de API de LLM reenvia seu histórico completo de conversa. Um chat de 20 turnos custa 6x mais por chamada do que um de 3 turnos, então você está pagando pelas mesmas mensagens antigas repetidamente.
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 call
A Solução
PromptThrift é um servidor MCP com 4 ferramentas para reduzir drasticamente seus custos de API:
| Ferramenta | O que faz | Impacto |
|---|---|---|
promptthrift_compress_history | Comprimir turnos antigos em um resumo inteligente | 50-90% menos tokens de entrada |
promptthrift_count_tokens | Rastrear uso de tokens e custos em 14 modelos | Saiba para onde vai o dinheiro |
promptthrift_suggest_model | Recomendar o modelo mais barato para a tarefa | 60-80% em tarefas simples |
promptthrift_pin_facts | Fixar fatos críticos que sobrevivem à compressão | Nunca perca contexto-chave |
Por que PromptThrift?
| PromptThrift | Context Mode | Headroom | |
|---|---|---|---|
| Licença | MIT (comercial OK) | ELv2 (sem concorrência) | Apache 2.0 |
| Tipo de compressão | Memória de conversa | Virtualização de schema de ferramentas | Saída de ferramentas |
| Suporte a LLM local | Gemma 4 via Ollama | Não | Não |
| Rastreamento de custos | Comparação multi-modelo | Não | Não |
| Roteamento de modelos | Integrado | Não | Não |
| Fatos fixados | Lista Never-Compress | Não | Não |
Início Rápido
Instalação
Opção A: pip install (recomendado)
pip install git+https://github.com/woling-dev/promptthrift-mcp.git
Opção B: clonar e instalar
git clone https://github.com/woling-dev/promptthrift-mcp.git
cd promptthrift-mcp
pip install -e .
Opcional: Ativar Compressão Gemma 4
Para compressão mais inteligente com IA (gratuita, roda localmente):
# Install Ollama: https://ollama.com
ollama pull gemma4:e4b
PromptThrift detecta automaticamente o Ollama. Se estiver em execução → usa Gemma 4 para compressão. Se não → usa compressão heurística rápida. Zero configuração necessária.
Claude Desktop
Adicione em claude_desktop_config.json:
{
"mcpServers": {
"promptthrift": {
"command": "python",
"args": ["/path/to/promptthrift-mcp/server.py"]
}
}
}
Cursor / Windsurf
Adicione às suas configurações MCP:
{
"mcpServers": {
"promptthrift": {
"command": "python",
"args": ["/path/to/promptthrift-mcp/server.py"]
}
}
}
Exemplo do Mundo Real
Um assistente de codificação com IA depurando um problema complexo ao longo de 30+ turnos:
Antes da compressão (enviado em toda chamada de 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...
~8.500 tokens após 30 turnos, e crescendo a cada chamada de API
Após compressão 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 tokens. 86% economizados em cada chamada subsequente
Impacto de custo em escala (Claude Sonnet @ $3/MTok):
| Cenário | Sem PromptThrift | Com PromptThrift | Economia Mensal |
|---|---|---|---|
| 1 dev, 20 sessões/dia | $5.10/mês | $0.72/mês | $4.38 |
| Time de 10 devs | $51/mês | $7.20/mês | $43.80 |
| Bot de atendimento (500 chats/dia) | $255/mês | $36/mês | $219 |
| Plataforma de agentes de IA (5K sessões/dia) | $2,550/mês | $357/mês | $2,193 |
Fatos Fixados (Lista Never-Compress)
Alguns fatos nunca devem ser perdidos durante a compressão: nomes de usuários, preferências críticas, decisões-chave. Fixe-os:
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.
Modelos Suportados (preços de abril de 2026)
| Modelo | Entrada $/MTok | Saída $/MTok | Local? |
|---|---|---|---|
| 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 |
Como Funciona
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!)
Modos de Compressão
| Modo | Método | Qualidade | Velocidade | Custo |
|---|---|---|---|---|
| Heurístico | Extração baseada em regras | Boa (redução de 50-60%) | Instantânea | Grátis |
| LLM (Gemma 4) | Compreensão com IA | Excelente (redução de 70-90%) | ~10-15s | Grátis (local) |
PromptThrift usa automaticamente o melhor método disponível. Instale Ollama + Gemma 4 para máxima qualidade de compressão.
Quando a Compressão se Destaca?
A eficácia da compressão escala com o tamanho da conversa e a redundância:
| Tamanho da Conversa | Redução Típica | Melhor Para |
|---|---|---|
| Curta (< 5 turnos, majoritariamente técnica) | 15-25% | Economia mínima: mantenha como está |
| Média (10-20 turnos, chat misto) | 50-70% | Ponto ideal: redução clara de custos |
| Longa (30+ turnos, depuração/iteração) | 70-90% | Economia massiva: comprima cedo e com frequência |
Por quê? Conversas curtas e densas têm pouco conteúdo supérfluo para remover. Conversas mais longas acumulam saudações, contexto repetido, becos sem saída exploratórios e explicações verbosas, e são exatamente esses elementos que o compressor remove. Uma sessão de depuração de 30 turnos com trechos de código, solução de problemas de ida e volta e resolução final comprime drasticamente porque apenas a conclusão e as decisões-chave importam para o contexto futuro.
Regra prática: Comece a comprimir após 8-10 turnos para melhores resultados.
Variáveis de Ambiente
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
PROMPTTHRIFT_OLLAMA_MODEL | Não | gemma4:e4b | Modelo Ollama para compressão por LLM |
PROMPTTHRIFT_OLLAMA_URL | Não | http://localhost:11434 | Endpoint da API Ollama |
PROMPTTHRIFT_DEFAULT_MODEL | Não | claude-sonnet-4.6 | Modelo padrão para estimativas de custo |
Segurança
- Todos os dados processados localmente por padrão. Nada sai da sua máquina
- A compressão Ollama roda 100% no seu hardware
- Sanitizador pós-compressão remove padrões de injeção de prompt dos resumos
- Chaves de API lidas apenas de variáveis de ambiente, nunca codificadas
- Sem armazenamento persistente, sem telemetria, sem chamadas de terceiros
Roadmap
- Compressão heurística de conversas
- Contagem de tokens multi-modelo (14 modelos)
- Roteamento inteligente de modelos
- Compressão local por LLM Gemma 4 via Ollama
- Fatos fixados (Lista Never-Compress)
- Sanitizador de segurança pós-compressão
- Compressão baseada em nuvem (fallback para API Anthropic/OpenAI)
- Consultor de otimização de cache de prompts
- Dashboard web para análise de uso
- Extensão para VS Code
Contribuindo
PRs são bem-vindos! Este projeto usa licença MIT. Faça um fork, melhore, publique.
Sobre a BrandDefender.ai
BrandDefender.ai é a linha de produtos da Wolin Global Media (沃嶺國際媒體), um estúdio de infraestrutura de IA sediado em Taiwan que ajuda marcas a serem descobertas, compreendidas e recomendadas por sistemas de IA.
O que construímos
🔍 Consultoria AEO (Answer Engine Optimization) Faça sua marca ser citada corretamente por ChatGPT, Gemini, Perplexity e Claude. Implementamos schema JSON-LD, otimizamos a estrutura de conteúdo e monitoramos a presença em buscas de IA para marcas de comida, chá, beleza e estilo de vida de Taiwan.
- Site: https://aibranddefender.com/
- Scan gratuito de marca com IA: https://app.aibranddefender.com/
💬 Atendimento ao Cliente com IA (LINE Bot) Chatbots LINE de nível de produção com memória de 3 camadas, controle administrativo e backend Supabase. Já atendendo marcas reais no varejo e no setor de alimentos e bebidas.
🧠 Infraestrutura MCP de Memória para IA Servidores MCP de código aberto para Claude Code, Cursor e desenvolvedores de LLM. Local-first, preservando a privacidade, construídos para economizar custos de API.
- Este repositório é um deles.
- Ferramentas irmãs: promptforge · promptthrift-mcp
Contato
- 📧 Email: service@wolinglobal.com
- 💬 LINE: @886upktf
- 🌐 Site: https://aibranddefender.com/
- 🐙 GitHub: https://github.com/woling-dev
Marcas taiwanesas querem auditoria AEO: oferecemos varredura completa ChatGPT / Gemini / Perplexity + correção JSON-LD + monitoramento mensal. Email ou LINE fale diretamente conosco.
Licença
Licença MIT. Gratuito para uso pessoal e comercial.
© 2026 Wolin Global Media (沃嶺國際媒體).
Dê uma estrela neste repositório se ele economizar seu dinheiro!