Context Optimizer MCP について
Context Optimizer MCPは、AnthropicのClaudeモデルを使うアプリケーション向けに、長いチャット履歴を管理するMCPサーバーです。メモリとRedisのキャッシュに古いメッセージの自動要約を組み合わせ、トークン上限内で会話を維持します。
主な機能
- 01メモリLRUとRedisの二層キャッシュ
- 02古いメッセージの自動要約
- 03Redisベースのレート制限
- 04Anthropic API互換エンドポイント
- 05パフォーマンス指標とログ
活用シーン
- 01長いClaudeの会話をトークン上限内に維持
- 02複数のサーバーインスタンス間で会話データを共有
- 03トークン数とサーバーの稼働状況を確認
- 04リクエストのパフォーマンスを監視
MCP 対応
アプリケーションとLLMプロバイダーの間でミドルウェアとして動作し、MCPクライアント向けに会話コンテキストを管理します。コンテキスト最適化機能を備えたClaude API互換エンドポイントを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Context Optimizer MCP
大規模なチャット履歴向けに、Redis とインメモリーキャッシュを使用してコンテキストウィンドウを最適化・拡張する MCP(Model Context Protocol)サーバーです。
機能
- 2 層キャッシュ:高速なインメモリー LRU キャッシュと永続的な Redis ストレージを組み合わせます
- スマートなコンテキスト管理:古いメッセージを自動的に要約し、トークン制限内にコンテキストを維持します
- レート制限:バースト保護機能を備えた Redis ベースのレート制限です
- API 互換性:コンテキスト処理を強化した、Anthropic API のドロップイン置き換えです
- メトリクス収集:パフォーマンスの監視とログ記録機能を内蔵しています
仕組み
この MCP サーバーは、アプリケーションと LLM プロバイダー(現在は Anthropic の Claude モデルに対応)の間のミドルウェアとして動作します。次の方法で会話のコンテキストをインテリジェントに管理します。
-
コンテキストウィンドウの最適化:会話がモデルのトークン制限に近づくと、重要な情報を保持しながら古いメッセージを自動的に要約します。
-
効率的なキャッシュ:
- 頻繁にアクセスされる会話の要約には、インメモリー LRU キャッシュを使用します
- 会話履歴と要約の永続的な分散ストレージには、Redis を使用します
-
透過的な処理:標準 API との互換性を維持しながら、サーバーがすべてのコンテキスト管理を自動的に処理します。
はじめに
前提条件
- Node.js 18+
- Redis サーバー(ローカルまたはリモート)
- Anthropic API キー
インストール方法
1. MCP クライアントを使用する
このサーバーをインストールして実行する最も簡単な方法は、MCP クライアントを使用することです。
# Install via npx
npx mcp install degenhero/context-optimizer-mcp
# Or using uvx
uvx mcp install degenhero/context-optimizer-mcp
インストール中に求められたら、Anthropic API キーを設定してください。
2. 手動でインストールする
# Clone the repository
git clone https://github.com/degenhero/context-optimizer-mcp.git
cd context-optimizer-mcp
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your configuration
# Start the server
npm start
3. Docker を使用する
# Clone the repository
git clone https://github.com/degenhero/context-optimizer-mcp.git
cd context-optimizer-mcp
# Build and start with Docker Compose
docker-compose up -d
これにより、MCP サーバーと Redis インスタンスの両方が起動します。
設定
.env ファイルを編集してサーバーを設定します。
# Server configuration
PORT=3000
# Anthropic API key
ANTHROPIC_API_KEY=your_anthropic_api_key
# Redis configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# Caching settings
IN_MEMORY_CACHE_MAX_SIZE=1000
REDIS_CACHE_TTL=86400 # 24 hours in seconds
# Model settings
DEFAULT_MODEL=claude-3-opus-20240229
DEFAULT_MAX_TOKENS=4096
API の使用方法
サーバーは、追加のコンテキスト最適化機能を備えた、標準の Claude API と同様に動作する互換 API エンドポイントを公開します。
// Example client usage
const response = await fetch('http://localhost:3000/v1/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'claude-3-opus-20240229',
messages: [
{ role: 'user', content: 'Hello!' },
{ role: 'assistant', content: 'How can I help you today?' },
{ role: 'user', content: 'Tell me about context management.' }
],
max_tokens: 1000,
// Optional MCP-specific parameters:
conversation_id: 'unique-conversation-id', // For context tracking
context_optimization: true, // Enable/disable optimization
}),
});
const result = await response.json();
追加のエンドポイント
GET /v1/token-count?text=your_text&model=model_name:テキスト文字列のトークン数を数えますGET /health:サーバーのヘルスチェックGET /metrics:サーバーのパフォーマンスメトリクスを表示します
テスト
コンテキスト最適化の仕組みを確認できるテストスクリプトが含まれています。
# Run the test script
npm run test:context
これにより、会話をしながら、コンテキストが増えるにつれてどのように最適化されるかを確認できる対話型セッションが起動します。
高度な機能
コンテキストの要約
会話がモデルのトークン制限の 80% を超えると、サーバーは古いメッセージを自動的に要約します。この要約は、以降の利用に備えてキャッシュされます。
会話の継続性
リクエストに一貫した conversation_id を指定すると、個々のリクエストがトークン制限を超える場合でも、複数の API 呼び出しにわたってコンテキストを維持できます。
パフォーマンスに関する考慮事項
- インメモリーキャッシュにより、アクティブな会話へ最速でアクセスできます
- Redis により、サーバーインスタンス間での永続化と共有が可能になります
- 要約処理により、トークンのしきい値を超えるリクエストには多少のレイテンシーが加わります
ドキュメント
追加のドキュメントは docs/ ディレクトリにあります。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。