Memory Cache Server
一个模型上下文协议(MCP)服务器,通过在语言模型交互期间缓存数据来优化 token 使用量,兼容任何语言模型和 MCP 客户端。
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 的语言模型。
安装
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装 Memory Cache Server:
npx -y @smithery/cli install @tosin2013/mcp-memory-cache-server --client claude
手动安装
- 克隆仓库:
git clone https://github.com/tosin2013/mcp-memory-cache-server.git
cd mcp-memory-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
- 应用任何环境变量覆盖
- 如果未指定任何一个,则使用默认值
在实践中测试缓存
要查看缓存的实际效果,请尝试以下场景:
-
文件读取测试
- 读取并分析一个大文件
- 再次询问有关该文件的相同问题
- 第二个响应应该更快,因为文件内容已缓存
-
数据分析测试
- 对某些数据执行分析
- 再次请求相同的分析
- 第二个分析应该使用缓存的结果
-
项目导航测试
- 浏览项目的结构
- 再次查询相同的文件/目录
- 目录列表和文件内容将从缓存中提供
当您注意到以下情况时,缓存正在工作:
- 重复操作的响应速度更快
- 关于未更改内容的答案一致
- 无需重新读取未更改的文件
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。