这是一个模型上下文协议(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"]
}
}
}
当服务器运行正常时,您会看到:
您可以通过以下方式验证服务器是否正在运行:
服务器可以通过config.json或环境变量进行配置:
{
"maxEntries": 1000, // 缓存中的最大项目数
"maxMemory": 104857600, // 最大内存使用量(以字节为单位,100MB)
"defaultTTL": 3600, // 默认生存时间(秒,1小时)
"checkInterval": 60000, // 清理间隔(毫秒,1分钟)
"statsInterval": 30000 // 统计更新间隔(毫秒,30秒)
}
maxEntries(默认:1000)
maxMemory(默认:100MB)
defaultTTL(默认:1小时)
checkInterval(默认:1分钟)
statsInterval(默认:30秒)
内存缓存服务器通过自动存储原本需要在您和语言模型之间重新发送的数据来减少令牌消耗。您不需要做任何特别的事情——当您通过MCP客户端与任何语言模型交互时,缓存过程会自动发生。
以下是缓存的一些示例:
当多次读取一个文件时:
当执行计算或分析时:
当需要多次访问相同数据时:
服务器通过以下方式自动管理缓存过程:
您可以在MCP设置中使用环境变量覆盖config.json设置:
{
"mcpServers": {
"memory-cache": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MAX_ENTRIES": "5000",
"MAX_MEMORY": "209715200", // 200MB
"DEFAULT_TTL": "7200", // 2小时
"CHECK_INTERVAL": "120000", // 2分钟
"STATS_INTERVAL": "60000" // 1分钟
}
}
}
}
您还可以指定自定义配置文件的位置:
{
"env": {
"CONFIG_PATH": "/path/to/your/config.json"
}
}
服务器将:
config.json要查看缓存在实际中的效果,请尝试以下场景:
文件读取测试
数据分析测试
项目导航测试
当您注意到以下情况时,缓存正在工作: