项目简介 Tiger Memory MCP Server 是一个专为大型语言模型(LLM)设计的记忆管理系统。它通过遵循 Model Context Protocol (MCP) 协议,为LLM提供标准化的接口,使其能够存储、检索和管理上下文信息,从而增强LLM的记忆能力和交互模式。该服务器托管了一系列记忆资源和操作记忆的工具,并通过JSON-RPC协议与LLM客户端通信。

主要功能点

  • 记忆存储与管理: 允许LLM将信息作为“记忆”存储在PostgreSQL数据库中,并支持对这些记忆进行创建、读取、更新和删除(CRUD)操作。
  • 上下文资源提供: 以标准化的方式(通过URI 'memory://{key}' 模式)向LLM客户端暴露记忆数据,LLM可以根据特定的键(key)来获取相关记忆列表。
  • 工具调用能力: 提供了一组MCP工具(如“记住”、“更新”、“遗忘”、“获取记忆”),LLM可以通过这些工具调用服务器端的API,执行具体的记忆操作。
  • 多传输协议支持: 支持通过标准输入输出(STDIO)和HTTP协议进行通信,方便与不同类型的LLM客户端集成。
  • 持久化存储: 使用PostgreSQL数据库作为后端存储,确保记忆数据的持久性和可靠性。
  • 数据库迁移管理: 内置数据库迁移工具,方便管理数据库模式的更新。

安装步骤

  1. 克隆仓库:
    git clone --recurse-submodules [email protected]:timescale/tiger-memory-mcp-server.git
    cd tiger-memory-mcp-server
    如果您忘记使用 '--recurse-submodules' 标志,可以在克隆后运行:
    git submodule update --init --recursive
  2. 安装依赖:
    npm i
  3. 配置环境变量: 从 '.env.sample' 文件复制一份 '.env' 文件,并根据您的PostgreSQL数据库信息进行配置。
    cp .env.sample .env
    您需要配置数据库连接信息,例如 'PGHOST', 'PGDATABASE', 'PGPORT', 'PGUSER', 'PGPASSWORD'。
  4. 运行数据库迁移: 在启动服务器之前,请确保运行数据库迁移,这将创建必要的 'tiger_memory' 模式和 'memory' 表。这通常在服务器启动时自动执行。

服务器配置 MCP客户端(如Claude Desktop)需要以下配置信息来连接到 Tiger Memory MCP 服务器:

{
  "mcpServers": {
    "tiger-memory": {
      "command": "node",
      "args": [
        "你的本地项目绝对路径/dist/index.js", // **请务必将此路径替换为您的 'tiger-memory-mcp-server' 项目的绝对路径。** 例如:"/Users/youruser/projects/tiger-memory-mcp-server/dist/index.js"
        "stdio" // 指定服务器使用标准输入输出 (STDIO) 协议进行通信
      ],
      "env": {
        "PGHOST": "your_db_host",       // **请替换为您的 PostgreSQL 数据库主机地址。**
        "PGDATABASE": "your_db_name",   // **请替换为您的 PostgreSQL 数据库名称。**
        "PGPORT": "your_db_port",       // **请替换为您的 PostgreSQL 数据库端口。**
        "PGUSER": "your_db_user",       // **请替换为您的 PostgreSQL 数据库用户。**
        "PGPASSWORD": "your_db_password"// **请替换为您的 PostgreSQL 数据库密码。**
      }
    }
  }
}

配置说明:

  • '"tiger-memory"':这是您为该 MCP 服务器在客户端中定义的唯一名称。MCP 客户端将使用此名称来引用和连接到它。
  • '"command": "node"':指定启动服务器的可执行程序是 Node.js 运行时。
  • '"args"':这是一个数组,包含了传递给 'node' 命令的参数。
    • 第一个参数是服务器的入口脚本('dist/index.js')。您需要将 '你的本地项目绝对路径' 替换为您本地克隆的 'tiger-memory-mcp-server' 仓库的完整路径。
    • 第二个参数 '"stdio"' 指示服务器将通过标准输入输出(stdin/stdout)与 MCP 客户端通信。
  • '"env"':这是一个对象,用于设置服务器运行时所需的环境变量。这些变量通常用于配置数据库连接。请确保将其中的占位符替换为您的实际 PostgreSQL 数据库凭据和连接信息。

基本使用方法 在 MCP 客户端(例如 Claude Desktop)中完成上述配置后,LLM 可以通过以下方式利用 Tiger Memory MCP Server:

  1. 存储新记忆: LLM 可以调用名为 'remember' 的工具。它需要提供 'key'(用于标识记忆范围,例如用户ID、会话ID)和 'content'(要记住的信息),还可以选择提供 'source'(记忆的来源)。
    • LLM 指令示例: “请将‘用户张三的偏好是喜欢吃苹果’存储为记忆,并使用‘张三’作为关键标识符。”
  2. 检索现有记忆: LLM 可以调用名为 'getMemories' 的工具。它需要提供一个 'key' 来获取与该键相关联的所有非删除记忆列表。
    • LLM 指令示例: “查询所有与‘张三’相关的记忆。”
  3. 更新记忆内容: LLM 可以调用名为 'update' 的工具。它需要提供记忆的 'id'、'key' 和新的 'content' 或 'source' 来修改已存储的记忆。
    • LLM 指令示例: “更新 ID 为‘12345’的记忆,关键标识符是‘张三’,将其内容修改为‘张三现在更喜欢吃香蕉’。”
  4. 删除记忆: LLM 可以调用名为 'forget' 的工具。它需要提供记忆的 'id' 和 'key' 来将特定的记忆标记为已删除。
    • LLM 指令示例: “删除 ID 为‘67890’且关键标识符为‘张三’的记忆。”

信息

分类

数据库与文件