Charly Memory Cache:内存缓存 MCP 服务器

项目简介

Charly Memory Cache 是一个实现了 Model Context Protocol (MCP) 的服务器,专为语言模型客户端设计。它通过在内存中缓存数据,减少重复数据传输,从而降低语言模型Token的消耗,并加速数据访问,提升整体应用性能。

主要功能点

  • 自动缓存: 自动缓存读取的数据,无需手动干预。
  • 资源管理: 提供 '/cache://stats' 资源,用于查看缓存的实时统计信息。
  • 工具支持: 提供 'store_data', 'retrieve_data', 'clear_cache', 'get_cache_stats' 等工具,允许用户手动管理缓存或获取缓存状态。
  • 可配置: 支持通过 'config.json' 文件或环境变量灵活配置缓存大小、过期时间 (TTL) 等参数。
  • 性能监控: 提供缓存命中率、内存使用量等统计信息,帮助用户监控缓存效果。

安装步骤

  1. 克隆仓库:

    git clone [email protected]:ibproduct/ib-mcp-cache-server
    cd ib-mcp-cache-server
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build

服务器配置

要将 Charly Memory Cache 服务器添加到 MCP 客户端,您需要在客户端的 MCP 服务器配置中添加以下 JSON 代码。请根据实际情况修改 'command' 和 'args' 中的路径。

{
  "mcpServers": {
    "memory-cache": {  // 服务器名称,可以自定义
      "command": "node",  // 启动服务器的命令,这里使用 Node.js
      "args": ["/path/to/ib-mcp-cache-server/build/index.js"] // 服务器启动脚本的路径,需要替换为实际路径
    }
  }
}

更多配置 (可选)

您可以通过 'config.json' 文件(位于服务器根目录)或环境变量来自定义服务器行为。以下是一些常用的配置项,您可以根据需要添加到 MCP 客户端的 'env' 字段中:

{
  "mcpServers": {
    "memory-cache": {
      "command": "node",
      "args": ["/path/to/ib-mcp-cache-server/build/index.js"],
      "env": {
        "MAX_ENTRIES": "5000",        // 最大缓存条目数 (默认: 1000)
        "MAX_MEMORY": "209715200",    // 最大内存使用量,单位字节 (默认: 100MB)
        "DEFAULT_TTL": "7200",        // 默认缓存过期时间,单位秒 (默认: 1小时)
        "CHECK_INTERVAL": "120000",    // 过期检查间隔,单位毫秒 (默认: 1分钟)
        "STATS_INTERVAL": "60000"     // 统计信息更新间隔,单位毫秒 (默认: 30秒)
        // "CONFIG_PATH": "/path/to/your/config.json" // 自定义 config.json 文件路径 (可选)
      }
    }
  }
}

基本使用方法

  1. 启动服务器: 当 MCP 客户端启动并尝试连接到 'memory-cache' 服务器时,服务器会自动启动。您可以在终端中看到 "Memory Cache MCP server running on stdio" 的消息。

  2. 自动缓存: 服务器会自动缓存 MCP 客户端读取的资源数据。对于重复读取相同资源的操作,服务器将直接从缓存返回数据,减少Token消耗。

  3. 查看缓存统计: 您可以使用 MCP 客户端读取 'cache://stats' 资源来获取缓存的实时统计信息,例如:

    • 在 MCP 客户端中,尝试读取资源 'cache://stats'。
    • 服务器将返回 JSON 格式的缓存统计数据,包含缓存条目数、内存使用量、命中率等信息。
  4. 使用工具管理缓存 (可选): 您可以使用 MCP 客户端调用以下工具来手动管理缓存:

    • 'store_data': 手动存储数据到缓存,可以设置过期时间 (TTL)。
    • 'retrieve_data': 从缓存中检索数据。
    • 'clear_cache': 清除指定 Key 的缓存条目或清空所有缓存。
    • 'get_cache_stats': 获取缓存统计信息(与读取 'cache://stats' 资源效果相同)。

    具体工具调用方法请参考 MCP 客户端的文档。

总结

Charly Memory Cache 服务器作为一个透明的缓存层,能够有效减少 MCP 客户端与语言模型交互时的 Token 消耗,并提升数据访问速度。您只需简单配置即可启用,无需修改现有的 MCP 客户端代码。

信息

分类

AI与计算