PromptThrift MCP
Compresión inteligente de tokens para aplicaciones LLM. Ahorre entre un 70 y un 90 % en costos de API con compresión local de Gemma 4, seguimiento de costos multimodelo y enrutamiento inteligente de modelos.
Documentación
PromptThrift MCP: Compresión Inteligente de Tokens para Apps de LLM
Reduce entre un 70-90% los costos de API de LLM con compresión inteligente de conversaciones. Ahora con compresión local Gemma 4: resúmenes más inteligentes, costo de API cero.
⭐ ¡Si esto te ahorra dinero, dale una estrella a este repo! ⭐
El Problema
Cada llamada a la API de LLM reenvía tu historial de conversación completo. Un chat de 20 turnos cuesta 6 veces más por llamada que uno de 3 turnos, así que estás pagando por los mismos mensajes antiguos una y otra vez.
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
La Solución
PromptThrift es un servidor MCP con 4 herramientas para reducir drásticamente tus costos de API:
| Herramienta | Qué hace | Impacto |
|---|---|---|
promptthrift_compress_history | Comprime turnos antiguos en un resumen inteligente | 50-90% menos tokens de entrada |
promptthrift_count_tokens | Rastrea el uso de tokens y costos en 14 modelos | Saber a dónde va el dinero |
promptthrift_suggest_model | Recomienda el modelo más barato para la tarea | 60-80% en tareas simples |
promptthrift_pin_facts | Fija datos críticos que sobreviven a la compresión | Nunca pierdas contexto clave |
¿Por qué PromptThrift?
| PromptThrift | Context Mode | Headroom | |
|---|---|---|---|
| Licencia | MIT (uso comercial OK) | ELv2 (sin competencia) | Apache 2.0 |
| Tipo de compresión | Memoria de conversación | Virtualización de esquema de herramientas | Salida de herramientas |
| Soporte de LLM local | Gemma 4 vía Ollama | No | No |
| Rastreo de costos | Comparación multi-modelo | No | No |
| Enrutamiento de modelos | Integrado | No | No |
| Datos fijados | Lista de Nunca Comprimir | No | No |
Inicio Rápido
Instalación
Opción A: pip install (recomendado)
pip install git+https://github.com/woling-dev/promptthrift-mcp.git
Opción B: clonar e instalar
git clone https://github.com/woling-dev/promptthrift-mcp.git
cd promptthrift-mcp
pip install -e .
Opcional: Habilitar Compresión Gemma 4
Para compresión asistida por IA más inteligente (gratuita, se ejecuta localmente):
# Install Ollama: https://ollama.com
ollama pull gemma4:e4b
PromptThrift detecta Ollama automáticamente. Si está en ejecución → usa Gemma 4 para compresión. Si no → usa compresión heurística rápida. Configuración cero necesaria.
Claude Desktop
Añade a claude_desktop_config.json:
{
"mcpServers": {
"promptthrift": {
"command": "python",
"args": ["/path/to/promptthrift-mcp/server.py"]
}
}
}
Cursor / Windsurf
Añade a tu configuración de MCP:
{
"mcpServers": {
"promptthrift": {
"command": "python",
"args": ["/path/to/promptthrift-mcp/server.py"]
}
}
}
Ejemplo del Mundo Real
Un asistente de programación con IA depurando un problema complejo durante más de 30 turnos:
Antes de la compresión (enviado en cada llamada a la 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 después de 30 turnos, y creciendo en cada llamada a la API
Después de la compresión 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% ahorrado en cada llamada posterior
Impacto en costos a escala (Claude Sonnet @ $3/MTok):
| Escenario | Sin PromptThrift | Con PromptThrift | Ahorro Mensual |
|---|---|---|---|
| 1 desarrollador, 20 sesiones/día | $5.10/mes | $0.72/mes | $4.38 |
| Equipo de 10 desarrolladores | $51/mes | $7.20/mes | $43.80 |
| Bot de servicio al cliente (500 chats/día) | $255/mes | $36/mes | $219 |
| Plataforma de agentes de IA (5K sesiones/día) | $2.550/mes | $357/mes | $2.193 |
Datos Fijados (Lista de Nunca Comprimir)
Algunos datos nunca deben perderse durante la compresión: nombres de usuarios, preferencias críticas, decisiones clave. Fíjalos:
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 Soportados (precios de abril 2026)
| Modelo | Entrada $/MTok | Salida $/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 |
Cómo 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 Compresión
| Modo | Método | Calidad | Velocidad | Costo |
|---|---|---|---|---|
| Heurístico | Extracción basada en reglas | Buena (reducción del 50-60%) | Instantánea | Gratis |
| LLM (Gemma 4) | Comprensión impulsada por IA | Excelente (reducción del 70-90%) | ~10-15s | Gratis (local) |
PromptThrift usa automáticamente el mejor método disponible. Instala Ollama + Gemma 4 para máxima calidad de compresión.
¿Cuándo Brilla la Compresión?
La efectividad de la compresión escala con la longitud de la conversación y la redundancia:
| Longitud de Conversación | Reducción Típica | Mejor Para |
|---|---|---|
| Corta (< 5 turnos, mayormente técnica) | 15-25% | Ahorro mínimo: dejar como está |
| Media (10-20 turnos, chat mixto) | 50-70% | Punto óptimo: reducción clara de costos |
| Larga (30+ turnos, depuración/iteración) | 70-90% | Ahorro masivo: comprimir temprano y seguido |
¿Por qué? Las conversaciones cortas y densas tienen poco relleno que eliminar. Las conversaciones más largas acumulan saludos, contexto repetido, callejones sin salida exploratorios y explicaciones extensas, y eso es exactamente lo que el compresor elimina. Una sesión de depuración de 30 turnos con fragmentos de código, resolución de problemas de ida y vuelta y resolución final se comprime drásticamente porque solo la conclusión y las decisiones clave importan para el contexto futuro.
Regla práctica: Empieza a comprimir después de 8-10 turnos para mejores resultados.
Variables de Entorno
| Variable | Requerida | Predeterminada | Descripción |
|---|---|---|---|
PROMPTTHRIFT_OLLAMA_MODEL | No | gemma4:e4b | Modelo Ollama para compresión con LLM |
PROMPTTHRIFT_OLLAMA_URL | No | http://localhost:11434 | Endpoint de API de Ollama |
PROMPTTHRIFT_DEFAULT_MODEL | No | claude-sonnet-4.6 | Modelo predeterminado para estimaciones de costos |
Seguridad
- Todos los datos se procesan localmente por defecto. Nada sale de tu máquina
- La compresión Ollama se ejecuta 100% en tu hardware
- Saneador post-compresión elimina patrones de inyección de prompts de los resúmenes
- Las claves de API se leen solo de variables de entorno, nunca codificadas
- Sin almacenamiento persistente, sin telemetría, sin llamadas a terceros
Hoja de Ruta
- Compresión heurística de conversaciones
- Conteo de tokens multi-modelo (14 modelos)
- Enrutamiento inteligente de modelos
- Compresión LLM local Gemma 4 vía Ollama
- Datos fijados (Lista de Nunca Comprimir)
- Saneador de seguridad post-compresión
- Compresión en la nube (respaldo de API Anthropic/OpenAI)
- Asesor de optimización de caché de prompts
- Panel web para análisis de uso
- Extensión de VS Code
Contribuciones
¡Las PRs son bienvenidas! Este proyecto usa licencia MIT. Haz un fork, mejóralo, publícalo.
Acerca de BrandDefender.ai
BrandDefender.ai es la línea de productos de Wolin Global Media (沃嶺國際媒體), un estudio de infraestructura de IA con sede en Taiwán que ayuda a las marcas a ser descubiertas, entendidas y recomendadas por sistemas de IA.
Lo que construimos
🔍 Consultoría AEO (Optimización para Motores de Respuesta) Logra que tu marca sea citada correctamente por ChatGPT, Gemini, Perplexity y Claude. Implementamos esquema JSON-LD, optimizamos la estructura del contenido y monitoreamos la presencia en búsquedas de IA para marcas taiwanesas de comida, té, belleza y estilo de vida.
- Sitio web: https://aibranddefender.com/
- Escaneo gratuito de marca con IA: https://app.aibranddefender.com/
💬 Servicio al Cliente con IA (Bot de LINE) Chatbots de LINE de nivel de producción con memoria de 3 capas, toma de control por administrador y backend de Supabase. Ya sirviendo a marcas reales en retail y restaurantes.
🧠 Infraestructura de Memoria MCP para IA Servidores MCP de código abierto para Claude Code, Cursor y desarrolladores de LLM. Local-first, con privacidad preservada, construidos para ahorrar costos de API.
- Este repo es uno de ellos.
- Herramientas hermanas: promptforge · promptthrift-mcp
Contacto
- 📧 Correo: service@wolinglobal.com
- 💬 LINE: @886upktf
- 🌐 Sitio web: https://aibranddefender.com/
- 🐙 GitHub: https://github.com/woling-dev
¿Eres una marca de Taiwán que quiere un audit de AEO? Ofrecemos escaneo integral con ChatGPT / Gemini / Perplexity + reparación de JSON-LD + monitoreo mensual. Correo o LINE, contáctanos directamente.
Licencia
Licencia MIT. Gratis para uso personal y comercial.
© 2026 Wolin Global Media (沃嶺國際媒體).
¡Dale una estrella a este repo si te ahorra dinero!