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 install (推奨)
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エージェントプラットフォーム (5Kセッション/日) | $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%ローカルハードウェアで実行されます
圧縮後のサニタイザーが、要約からプロンプトインジェクションパターンを取り除きます
APIキーは環境変数からのみ読み込まれ、ハードコードされることはありません
永続ストレージ、テレメトリ、サードパーティへの呼び出しはありません
ロードマップ
[x] ヒューリスティックな会話圧縮
[x] マルチモデルトークンカウント (14モデル)
[x] インテリジェントなモデルルーティング
[x] Ollama経由のGemma 4ローカルLLM圧縮
[x] 固定ファクト(圧縮除外リスト)
[x] 圧縮後のセキュリティサニタイザー
[ ] クラウドベースの圧縮 (Anthropic/OpenAI APIフォールバック)
[ ] プロンプトキャッシュ最適化アドバイザー
[ ] 使用状況分析用Webダッシュボード
[ ] VS Code拡張機能
貢献
プルリクエストを歓迎します!このプロジェクトはMITライセンスを使用しています。フォークして改善し、リリースしてください。
BrandDefender.aiについて
BrandDefender.aiは、台湾を拠点とするAIインフラストラクチャスタジオである**Wolin Global Media (沃嶺國際媒體)**の製品ラインであり、ブランドがAIシステムによって発見され、理解され、推奨されるよう支援しています。
私たちが構築しているもの
🔍 AEOコンサルティング (Answer Engine Optimization) ChatGPT、Gemini、Perplexity、Claudeによってブランドが正しく引用されるようにします。JSON-LDスキーマの実装、コンテンツ構造の最適化、台湾の食品、茶、美容、ライフスタイルブランドのAI検索プレゼンスの監視を行います。
ウェブサイト: https://aibranddefender.com/
無料AIブランドスキャン: https://app.aibranddefender.com/
💬 AIカスタマーサービス (LINEボット) 3層メモリ、管理者による乗っ取り機能、Supabaseバックエンドを備えたプロダクショングレードのLINEチャットボット。小売および飲食業界の実際のブランドで既に稼働中です。
🧠 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 License。個人および商用利用は無料です。
© 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
