
Memory Cache MCP Server
一个模型上下文协议服务器,通过在语言模型交互之间高效缓存数据来减少 token 消耗,自动存储和检索信息,从而最大限度地减少冗余 token 的使用。
Tools
store_data
Store data in the cache with optional TTL
retrieve_data
Retrieve data from the cache
clear_cache
Clear specific or all cache entries
get_cache_stats
Get cache statistics
README
内存缓存服务器
一个模型上下文协议 (MCP) 服务器,通过高效地缓存语言模型交互之间的数据,从而减少 token 消耗。 适用于任何 MCP 客户端和任何使用 token 的语言模型。
安装
- 克隆仓库:
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 客户端时,服务器将自动启动
验证其工作状态
当服务器正常运行时,您将看到:
- 终端中的一条消息:“Memory Cache MCP server running on stdio”
- 多次访问相同数据时性能得到提升
- 无需您采取任何操作 - 缓存会自动发生
您可以通过以下方式验证服务器是否正在运行:
- 打开您的 MCP 客户端
- 在启动服务器的终端中查找任何错误消息
- 执行可以从缓存中受益的操作(例如多次读取同一文件)
配置
可以通过 config.json
或环境变量配置服务器:
{
"maxEntries": 1000, // 缓存中的最大条目数
"maxMemory": 104857600, // 最大内存使用量,以字节为单位 (100MB)
"defaultTTL": 3600, // 默认生存时间,以秒为单位(1 小时)
"checkInterval": 60000, // 清理间隔,以毫秒为单位(1 分钟)
"statsInterval": 30000 // 统计信息更新间隔,以毫秒为单位(30 秒)
}
配置设置说明
-
maxEntries (默认值: 1000)
- 可以存储在缓存中的最大条目数
- 防止缓存无限增长
- 超出时,首先删除最旧的未使用条目
-
maxMemory (默认值: 100MB)
- 最大内存使用量,以字节为单位
- 防止过度消耗内存
- 超出时,删除最近最少使用的条目
-
defaultTTL (默认值: 1 小时)
- 默认情况下,条目在缓存中保留的时间
- 超过此时间后,条目会自动删除
- 防止过时数据消耗内存
-
checkInterval (默认值: 1 分钟)
- 服务器检查过期条目的频率
- 较低的值可以使内存使用量更准确
- 较高的值可以降低 CPU 使用率
-
statsInterval (默认值: 30 秒)
- 缓存统计信息的更新频率
- 影响命中率/未命中率的准确性
- 帮助监控缓存效果
如何减少 Token 消耗
内存缓存服务器通过自动存储原本需要在您和语言模型之间重新发送的数据来减少 token 消耗。 您无需执行任何特殊操作 - 当您通过 MCP 客户端与任何语言模型交互时,缓存会自动发生。
以下是一些被缓存的示例:
1. 文件内容缓存
多次读取文件时:
- 第一次:读取并缓存完整的文件内容
- 后续:从缓存中检索内容,而不是重新读取文件
- 结果:重复文件操作使用的 token 更少
2. 计算结果
执行计算或分析时:
- 第一次:执行完整计算并缓存结果
- 后续:如果输入相同,则从缓存中检索结果
- 结果:重复计算使用的 token 更少
3. 频繁访问的数据
多次需要相同数据时:
- 第一次:处理并缓存数据
- 后续:从缓存中检索数据,直到 TTL 过期
- 结果:访问相同信息使用的 token 更少
自动缓存管理
服务器通过以下方式自动管理缓存过程:
- 首次遇到时存储数据
- 在可用时提供缓存数据
- 根据设置删除旧/未使用的数据
- 通过统计信息跟踪有效性
优化技巧
1. 设置适当的 TTL
- 对于频繁更改的数据,TTL 较短
- 对于静态内容,TTL 较长
2. 调整内存限制
- 缓存更多数据时,限制更高(节省更多 token)
- 如果担心内存使用量,则限制更低
3. 监控缓存统计信息
- 高命中率 = 良好的 token 节省
- 低命中率 = 调整 TTL 或限制
环境变量配置
您可以使用 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 hours
"CHECK_INTERVAL": "120000", // 2 minutes
"STATS_INTERVAL": "60000" // 1 minute
}
}
}
}
您还可以指定自定义配置文件位置:
{
"env": {
"CONFIG_PATH": "/path/to/your/config.json"
}
}
服务器将:
- 在其目录中查找 config.json
- 应用任何环境变量覆盖
- 如果未指定任何一个,则使用默认值
在实践中测试缓存
要查看缓存的实际效果,请尝试以下场景:
-
文件读取测试
- 读取并分析一个大文件
- 再次询问有关该文件的相同问题
- 第二个响应应该更快,因为文件内容已被缓存
-
数据分析测试
- 对某些数据执行分析
- 再次请求相同的分析
- 第二个分析应该使用缓存的结果
-
项目导航测试
- 浏览项目的结构
- 再次查询相同的文件/目录
- 目录列表和文件内容将从缓存中提供
当您注意到以下情况时,缓存正在工作:
- 重复操作的响应速度更快
- 关于未更改内容的答案一致
- 无需重新读取未更改的文件
推荐服务器

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
Knowledge Graph Memory Server
为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。
mcp-perplexity
Perplexity API 的 MCP 服务器。
MCP Web Research Server
一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。
PubMedSearch MCP Server
一个模型内容协议(Model Content Protocol)服务器,提供从 PubMed 数据库搜索和检索学术论文的工具。
mcp-codex-keeper
作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。
Perplexity Deep Research MCP
一个服务器,它允许 AI 助手使用 Perplexity 的 sonar-deep-research 模型进行网络搜索,并提供引用支持。