Context Optimizer Mcp

Context Optimizer Mcp

🚀 上下文优化器 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 许可证。

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-28 16:03

相似服务问题