项目简介

Jakey MCP Memory Server 是 Jakey AI 助手的核心记忆组件。它提供了一个独立的HTTP服务,用于存储和检索用户的持久化记忆(如偏好、事实等),并管理LLM可以调用的各种外部工具。它通过HTTP API进行通信,确保LLM客户端可以获取必要的上下文信息并执行外部功能。这个服务器是为支持大型语言模型(LLM)实现记忆能力和外部功能扩展而设计的。

主要功能点

  • 用户记忆存储与检索: 安全地存储和检索特定用户的偏好、对话上下文、重要事实等信息。
  • 记忆搜索功能: 支持对用户记忆进行关键词搜索,帮助LLM快速定位相关信息。
  • 记忆删除功能: 允许删除特定类型或全部用户记忆,便于隐私管理和数据清理。
  • 健康检查: 提供 '/health' 端点,确保服务正常运行和可达性。
  • 工具管理: 提供了LLM可以调用的丰富工具集,包括网络搜索、加密货币价格查询、数学计算、图像生成和分析、设置提醒以及多种Discord操作等。这些工具通过函数调用的方式向LLM客户端暴露。
  • API鉴权: 采用Bearer Token进行身份验证,确保记忆数据和工具调用的安全。

安装步骤

  1. 克隆仓库: 打开您的终端或命令行工具,执行以下命令将Jakey仓库克隆到本地:
    git clone https://github.com/brokechubb/Jakey.git
    cd Jakey
  2. 安装依赖: 进入项目目录后,安装所需的Python依赖包:
    pip install -r requirements.txt
  3. 配置环境变量: 复制 '.env.example' 文件并将其重命名为 '.env'。然后,使用文本编辑器打开 '.env' 文件,并确保将 'MCP_MEMORY_ENABLED' 设置为 'true'。您还可以根据需要配置其他API密钥,例如用于加密货币查询、AI模型等。
    cp .env.example .env
    # 编辑 .env 文件,设置 MCP_MEMORY_ENABLED=true

服务器配置

MCP服务器会自动选择一个可用端口并生成一个认证令牌。MCP客户端需要这些信息才能连接。以下是MCP客户端可以使用的配置示例(此JSON格式仅供参考,您的MCP客户端可能需要以不同的方式处理这些信息):

{
  "server_name": "Jakey_MCP_Memory_Server",
  "command": "python",
  "args": [
    "tools/mcp_memory_server.py"
  ],
  "env": {
    "MCP_MEMORY_ENABLED": "true"
  },
  "description": "Jakey AI助手的记忆与工具服务。它提供HTTP API,管理LLM的会话上下文、用户偏好和可调用的外部工具。",
  "notes": "启动MCP服务器后,它会在运行目录下(即Jakey仓库的根目录)自动生成两个文件:.mcp_port(包含服务器正在监听的端口号,如8501)和.mcp_token(包含用于API调用的Bearer认证令牌)。MCP客户端需要从这些文件中读取端口和令牌,或者通过环境变量(MCP_MEMORY_TOKEN)获取令牌,以便正确地连接和认证。请确保客户端具备访问这些文件或环境变量的权限。如果使用Docker或PM2部署,请查阅Jakey仓库的部署文档以获取更详细的配置和管理说明。"
}

基本使用方法

  1. 启动MCP Memory Server: 在项目根目录下,您可以运行以下脚本来启动MCP Memory Server:
    ./scripts/start_mcp_server.sh
    # 或者直接运行 Python 脚本
    python tools/mcp_memory_server.py
    服务器启动后,会在终端显示其监听的端口号和认证令牌。同时,它会将端口号写入项目根目录下的 '.mcp_port' 文件,并将认证令牌写入 '.mcp_token' 文件。
  2. MCP客户端连接: 您的MCP客户端(例如 Jakey Discord Bot 或其他基于LLM的应用)将读取 '.mcp_port' 和 '.mcp_token' 文件来获取服务器地址和认证信息。客户端将使用这些信息向 MCP 服务器的 HTTP API 发送请求,例如:
    • 向 'http://localhost:<port>/memories' 发送带有 'Authorization: Bearer <token>' 头部的 'POST' 请求来存储用户记忆。
    • 向 'http://localhost:<port>/memories?user_id=<user_id>' 发送 'GET' 请求来检索用户记忆。
    • 通过工具调用机制,触发 MCP 服务器中定义的各种外部工具,从而扩展LLM的能力。
  3. (可选)停止服务器: 在运行服务器的终端中,您可以按下 'Ctrl+C' 来优雅地停止服务器。服务器关闭时,会自动清理生成的 '.mcp_port' 和 '.mcp_token' 文件。

信息

分类

AI与计算