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上运行”
- 多次访问相同数据时性能提升
- 您无需执行任何操作 - 缓存会自动进行
您可以通过以下方式验证服务器是否正在运行:
- 打开您的MCP客户端
- 在启动服务器的终端中查找任何错误消息
- 执行那些可以从缓存获益的操作(例如多次读取相同的文件)
✨ 主要特性
- 高效缓存数据,减少语言模型交互中的令牌消耗。
- 适用于任何MCP客户端和使用令牌的语言模型。
- 自动缓存,无需手动干预。
📦 安装指南
克隆仓库
git clone git@github.com:ibproduct/ib-mcp-cache-server
cd ib-mcp-cache-server
安装依赖
npm install
构建项目
npm run build
配置客户端
{
"mcpServers": {
"memory-cache": {
"command": "node",
"args": ["/path/to/ib-mcp-cache-server/build/index.js"]
}
}
}
启动服务
使用MCP客户端时,服务器会自动启动。
📚 详细文档
配置
通过config.json或环境变量进行配置:
{
"maxEntries": 1000, // 最大存储项数为1000
"maxMemory": 104857600, // 最大内存使用量,以字节为单位(100MB)
"defaultTTL": 3600, // 默认生存时间,秒为单位(1小时)
"checkInterval": 60000, // 清理间隔,以毫秒为单位(1分钟)
"statsInterval": 30000 // 统计更新间隔,以毫秒为单位(30秒)
}
配置选项说明
-
maxEntries(默认值:1000)
- 可以存储在缓存中的项目最大数量。
- 防止缓存无限增长。
- 超出限制时,首先移除最久未使用的旧项。
-
maxMemory(默认值:100MB)
- 最大内存使用量,以字节为单位。
- 防止内存过度消耗。
- 当达到限制时,移除最近最少使用的项目。
-
defaultTTL(默认值:3600)
- 默认生存时间,秒为单位。
- 控制缓存项的过期时间。
-
checkInterval(默认值:60000)
- 清理检查间隔,毫秒为单位。
- 定期清理过期缓存的时间间隔。
-
statsInterval(默认值:30000)
- 统计信息更新间隔,毫秒为单位。
- 更新缓存统计信息的频率。
测试缓存的实际效果
要观察缓存的实际运行情况,请尝试以下场景:
-
文件读取测试
- 读取并分析一个大文件。
- 再次询问关于该文件相同的问题。
- 第二次响应应更快,因为文件内容已缓存。
-
数据分析测试
- 执行某项数据分析。
- 再次请求相同的分析结果。
- 第二次分析将使用已缓存的结果。
-
项目导航测试
- 探索项目的结构。
- 再次查询相同的文件/目录。
- 目录列表和文件内容将从缓存中提供。
当您注意到以下情况时,表示缓存正在工作:
- 重复操作的响应速度加快。
- 对未更改内容的一致性回答。
- 不需要重新读取未更改的文件。
Scan to join WeChat group