article
README
🚀 内存缓存服务器
内存缓存服务器是一个模型上下文协议(MCP)服务器,它能够在语言模型交互过程中高效缓存数据,从而减少代币消耗。该服务器与任何MCP客户端以及使用令牌的任何语言模型都兼容。
🚀 快速开始
安装
按照以下步骤安装内存缓存服务器:
- 克隆仓库:
git clone git@github.com:ibproduct/ib-mcp-cache-server
cd ib-mcp-cache-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
- 添加到您的MCP客户端设置中:
{
"mcpServers": {
"memory-cache": {
"command": "node",
"args": ["/path/to/ib-mcp-cache-server/build/index.js"]
}
}
}
- 启用MCP客户端时,服务器会自动启动。
验证运行正常
当服务器正常运行时,您会在终端看到以下情况:
- 消息:“内存缓存MCP服务器在stdio上运行”
- 访问相同数据多次时性能提升
- 响应更快,尤其是对于重复操作
✨ 主要特性
减少代币消耗
服务器通过以下方式减少代币消耗:
- 自动缓存:所有响应都会被自动缓存,除非设置了
Cache-Control: no-cache头。 - 过期机制:缓存条目会在设置的时间后自动失效。
- 命中率统计:服务器会跟踪缓存命中次数,并显示在控制台。
自动缓存管理
- 服务器启动时会加载配置文件并初始化缓存。
- 定期检查缓存空间使用情况,超过限制时自动清理。
- 支持设置最大内存占用,避免影响系统性能。
📦 安装指南
安装步骤
- 克隆仓库:
git clone git@github.com:ibproduct/ib-mcp-cache-server
cd ib-mcp-cache-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
- 添加到MCP客户端设置:
{
"mcpServers": {
"memory-cache": {
"command": "node",
"args": ["/path/to/ib-mcp-cache-server/build/index.js"]
}
}
}
- 启用MCP客户端,服务器自动启动。
📚 详细文档
配置说明
所有配置参数如下:
| 属性 | 详情 |
|------|------|
| MAX_ENTRIES | 最大缓存条目数,默认为10000。 |
| MAX_MEMORY | 最大缓存占用内存,默认为500MB。 |
| DEFAULT_TTL | 默认缓存有效期,单位秒,默认3600秒(1小时)。 |
| CHECK_INTERVAL | 缓存检查间隔,默认60秒。 |
| STATS_INTERVAL | 统计信息更新间隔,默认60秒。 |
如何减少代币消耗
服务器通过自动缓存、过期机制和命中率统计来减少代币消耗。
自动缓存管理
服务器启动时加载配置文件并初始化缓存,定期检查缓存空间,支持设置最大内存占用。
优化技巧
- 调整条目数:根据项目需求增加
MAX_ENTRIES以提高命中率。 - 延长有效期:适当增加
DEFAULT_TTL可以减少缓存失效次数。 - 监控使用情况:定期检查命中率和缓存大小,确保最佳性能。
环境变量配置
可以在MCP客户端中设置环境变量覆盖默认值:
{
"mcpServers": {
"memory-cache": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MAX_ENTRIES": "5000",
"MAX_MEMORY": "209715200", // 200MB
"DEFAULT_TTL": "7200", // 2 hours
"CHECK_INTERVAL": "120000", // 2 minutes
"STATS_INTERVAL": "60000" // 1 minute
}
}
}
}
您也可以指定一个自定义的配置文件路径:
{
"env": {
"CONFIG_PATH": "/path/to/your/config.json"
}
}
服务器将:
- 在其目录中查找默认配置文件
- 应用任何环境变量覆盖
- 如果未指定,则使用默认值
实际测试缓存效果
要观察缓存的实际效果,请尝试以下场景:
- 文件读取测试
- 读取并分析一个大文件
- 再次询问相同的问题
- 第二次响应应该更快,因为文件内容已缓存
- 数据分析测试
- 执行一些数据分析
- 再次请求相同的分析
- 第二次分析将使用缓存结果
- 项目导航测试
- 探索项目的结构
- 再次查询相同的文件/目录
- 目录列表和文件内容将从缓存中提供
缓存正常工作时,您会注意到:
- 重复操作的响应速度更快
- 对未更改内容的答案一致
- 不需要重新读取未更改的文件
微信扫一扫