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
手动安装
- 克隆仓库:
git clone https://github.com/yourusername/context-optimizer-mcp.git
cd context-optimizer-mcp
- 安装依赖:
pip install -r requirements.txt
- 启动服务:
python app.py
Docker 安装
- 拉取镜像:
docker pull yourusername/context-optimizer-mcp:latest
- 运行容器:
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 许可证。
微信扫一扫