mcpField
C
Context Optimizer MCP

Context Optimizer MCP

本地服务
github.com/degenheroAI 与智能体083 周前更新

关于 Context Optimizer MCP

Context Optimizer MCP 是面向使用 Anthropic Claude 模型的应用的 MCP 服务,用于管理较长的聊天记录。它结合内存与 Redis 缓存,并自动摘要旧消息,以控制对话的令牌用量。

主要功能

  1. 01内存 LRU 与 Redis 双层缓存
  2. 02自动摘要较早的消息
  3. 03基于 Redis 的速率限制
  4. 04兼容 Anthropic API 的端点
  5. 05性能指标与日志记录

适用场景

  1. 01将较长的 Claude 对话控制在令牌限制内
  2. 02在多个服务实例间共享缓存的对话数据
  3. 03查询令牌数与服务健康状态
  4. 04监控请求性能

MCP 相关

它在应用与 LLM 提供商之间充当中间件,为 MCP 客户端管理对话上下文,并提供带上下文优化功能的 Claude API 兼容端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"context-optimizer": {
"command": "npx",
"args": [
"-y",
"mcp"
]
}
}
}
启动命令npx -y mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Context Optimizer MCP

一个 MCP(Model Context Protocol)服务,利用 Redis 和内存缓存优化并扩展大型聊天历史记录的上下文窗口。

功能

  • 双层缓存:结合快速的内存 LRU 缓存与持久化 Redis 存储
  • 智能上下文管理:自动总结较早的消息,使上下文保持在令牌限制范围内
  • 速率限制:基于 Redis 的速率限制,并提供突发保护
  • API 兼容性:可直接替换 Anthropic API,并增强上下文处理能力
  • 指标收集:内置性能监控和日志记录

工作原理

此 MCP 服务充当应用程序与大模型提供商(目前支持 Anthropic 的 Claude 模型)之间的中间件。它通过以下策略智能管理对话上下文:

  1. 上下文窗口优化:当对话接近模型的令牌限制时,自动总结较早的消息,同时保留关键信息。

  2. 高效缓存:

    • 使用内存 LRU 缓存存储频繁访问的对话摘要
    • 使用 Redis 持久化、分布式存储对话历史和摘要
  3. 透明处理:服务会自动处理所有上下文管理,同时保持与标准 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 用法

此服务提供兼容的 API 端点,其工作方式与标准 Claude 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。