返回 MCP 目录
public公开dns本地运行

context-optimizer-mcp

一个基于Redis和内存缓存的MCP服务器,用于优化和管理大型聊天历史记录的上下文窗口,支持智能摘要、双缓存层和API兼容性。

article

README

🚀 上下文优化器 MCP

上下文优化器 MCP 是一个 MCP(模型上下文协议)服务器,借助 Redis 和内存缓存,实现对大型聊天历史上下文窗口的优化与扩展,为聊天应用提供更高效的上下文管理。

🚀 快速开始

先决条件

  • 操作系统:Linux 或 macOS(Windows 可能需要额外配置)
  • 内存要求:至少 4GB RAM(推荐 8GB 以上)
  • 磁盘空间:至少 10GB 可用空间
  • 安装依赖项:
    • Python 3.8+
    • Redis 6.x
    • pip

安装方式

使用 npx 安装

npx mcp install degenhero/context-optimizer-mcp

手动安装

  1. 克隆仓库:
git clone https://github.com/yourusername/context-optimizer-mcp.git
cd context-optimizer-mcp
  1. 安装依赖:
pip install -r requirements.txt
  1. 启动服务:
python app.py

Docker 安装

  1. 拉取镜像:
docker pull yourusername/context-optimizer-mcp:latest
  1. 运行容器:
docker run -d --name context-optimizer-mcp -p 5000:5000 yourusername/context-optimizer-mcp:latest

配置

创建或编辑 config.yml 文件,内容如下:

# 系统配置
system:
  port: 5000
  debug_mode: false
  log_level: INFO

# 缓存配置
cache:
  type: redis
  host: localhost
  port: 6379
  db: 0

# 上下文限制
context_limit:
  max_tokens: 1200
  max_messages: 20

✨ 主要特性

  • 双层缓存:结合快速的内存 LRU 缓存与持久化的 Redis 存储。
  • 智能上下文管理:自动总结旧消息以在 token 限制内保持上下文。
  • 速率限制:基于 Redis 的速率限制,带有突发保护功能。
  • API 兼容性:即插即用的Anthropic API 替代方案,具有增强的上下文处理能力。
  • 指标收集:内置性能监控和日志记录。

📚 详细文档

工作原理

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

  • 当消息长度超过 token 限制时,系统会自动总结旧消息。
  • 如果消息数量超过阈值,系统将保留最近的 N 条消息并丢弃较早的消息。

API 使用说明

请求格式

所有请求均通过 HTTP 发送,具体要求如下:

  • 支持的 MIME 类型:application/json
  • 请求体格式:
{
  "messages": [
    { "role": "system", "content": "您是一个诚实且友好的助手。" },
    { "role": "user", "content": "这是用户的查询。" }
  ],
  "model": "gpt-3.5-turbo",
  "temperature": 0.7,
  "conversation_id": "1234567890"
}

特殊参数

在请求中添加以下可选参数:

{
  "messages": [ ... ],
  "model": "...",
  "temperature": ...,
  "conversation_id": "...",
  "context_optimization": true
}

高级特性

上下文总结

当请求中的 token 数超过 max_tokens 限制时,系统会自动对旧消息进行摘要处理。

对话连续性

如果 conversation_id 相同,服务器会保留对话历史并合并到当前上下文中。

性能考虑

  • 内存缓存提供最快访问速度。
  • Redis 实现持久化和多实例共享。
  • 摘要操作会对超过阈值的请求增加一定延迟。

文档参考

更多详细文档可参考 docs/ 目录:

💻 使用示例

测试

运行测试脚本

python test.py

手动执行

# 启动服务后,打开浏览器访问 http://localhost:5000/test

🔧 技术细节

上下文总结

当请求中的 token 数超过 max_tokens 限制时,系统会自动对旧消息进行摘要处理。

对话连续性

如果 conversation_id 相同,服务器会保留对话历史并合并到当前上下文中。

性能考虑

  • 内存缓存提供最快访问速度。
  • Redis 实现持久化和多实例共享。
  • 摘要操作会对超过阈值的请求增加一定延迟。

📄 许可证

本项目采用 MIT 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端