Memory Cache Server
镜子 (jìng zi)
MCP-Mirror
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
- 应用任何环境变量覆盖
- 如果未指定任何一个,则使用默认值
在实践中测试缓存
要查看缓存的实际效果,请尝试以下场景:
-
文件读取测试
- 读取并分析一个大文件
- 再次询问有关该文件的相同问题
- 第二个响应应该更快,因为文件内容已被缓存
-
数据分析测试
- 对某些数据执行分析
- 再次请求相同的分析
- 第二个分析应该使用缓存的结果
-
项目导航测试
- 浏览项目的结构
- 再次查询相同的文件/目录
- 目录列表和文件内容将从缓存中提供
当您注意到以下情况时,缓存正在工作:
- 重复操作的响应速度更快
- 关于未更改内容的答案一致
- 无需重新读取未更改的文件
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。