使用说明

项目简介

本仓库实现了一个基于 Model Context Protocol (MCP) 的服务器,专门用于管理和检索代码偏好设置。它利用 mem0 提供的记忆存储和语义搜索能力,允许开发者将常用的代码片段、编程模式、最佳实践等信息存储起来,并通过自然语言查询进行快速检索。该服务器旨在提升编码效率,特别是在使用 Cursor 等支持 MCP 协议的 LLM 代码编辑器时,能够为代码生成和理解提供丰富的上下文信息。

主要功能点

  • 存储代码偏好 (add_coding_preference): 允许用户将代码片段、实现细节、编程模式等信息及其相关上下文(如编程语言版本、依赖库、使用示例、文档链接等)存储到 mem0 知识库中。存储时会对内容进行语义索引,方便后续检索。
  • 检索所有代码偏好 (get_all_coding_preferences): 提供查看所有已存储代码偏好的功能,方便用户回顾和分析已有的代码资产。
  • 语义搜索代码偏好 (search_coding_preferences): 支持使用自然语言查询在已存储的代码偏好中进行语义搜索,快速找到相关的代码片段、解决方案、最佳实践等。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/mem0ai/mem0-mcp.git
    cd mem0-mcp
  2. 初始化 'uv' 虚拟环境:
    uv venv
  3. 激活虚拟环境:
    source .venv/bin/activate
  4. 安装依赖:
    uv pip install -e .
  5. 配置 Mem0 API 密钥: 在项目根目录下创建 '.env' 文件,并填入你的 Mem0 API 密钥。
    MEM0_API_KEY=your_api_key_here

服务器配置

本MCP服务器可以通过以下两种方式启动,并支持 SSE 和 Stdio 两种传输协议。

1. SSE 协议 (Python 实现)

  • 服务器启动命令 (command): 'uv'
  • 启动参数 (args): 'run main.py --host 0.0.0.0 --port 8080'
    • '--host': 指定服务器绑定的主机地址,'0.0.0.0' 表示监听所有网络接口。
    • '--port': 指定服务器监听的端口号,默认为 '8080'。

MCP客户端配置示例 (JSON 格式):

{
  "serverName": "mem0-mcp-sse",
  "command": "uv",
  "args": [
    "run",
    "main.py",
    "--host",
    "0.0.0.0",
    "--port",
    "8080"
  ],
  "protocol": "sse"
}

2. Stdio 协议 (Node.js 实现)

  • 服务器启动命令 (command): 'node'
  • 启动参数 (args): 'node/mem0/src/index.ts'

MCP客户端配置示例 (JSON 格式):

{
  "serverName": "mem0-mcp-stdio",
  "command": "node",
  "args": [
    "node/mem0/src/index.ts"
  ],
  "protocol": "stdio"
}

注意: 请确保 MCP 客户端能够访问到运行 MCP 服务器的网络环境。如果服务器运行在本地,客户端也需要在本地或能够访问 '0.0.0.0:8080' (SSE) 或通过 Stdio 进行通信。

基本使用方法

1. 启动服务器:

  • SSE (Python): 在项目根目录下运行 'uv run main.py' (或自定义 host 和 port)。
  • Stdio (Node.js): 在项目根目录下运行 'node node/mem0/src/index.ts'。

2. 在 Cursor 中连接 (SSE 示例):

  • 打开 Cursor 编辑器的 Composer (命令面板中搜索 "Composer")。
  • 切换到 "Agent" 模式。
  • 在 MCP Server 配置中,选择 "SSE",并填入服务器 SSE Endpoint 地址,例如 'http://0.0.0.0:8080/sse' (如果服务器运行在本地并使用默认端口)。
  • 根据提示完成连接。

3. 使用工具:

  • 连接成功后,在 Cursor 中可以使用以下 Tool 名称来调用 MCP 服务器提供的功能:

    • 'add_coding_preference': 用于存储代码偏好。
    • 'get_all_coding_preferences': 用于获取所有已存储的代码偏好。
    • 'search_coding_preferences': 用于搜索代码偏好。
  • 在 Agent 模式下,可以使用自然语言指令引导 LLM 调用这些 Tool,例如:

    • "请帮我存储一段关于如何在 React 中使用 Redux Toolkit 的代码片段,包括初始化配置和基本用法。" (调用 'add_coding_preference')
    • "我想查看我之前存储的所有关于 Python 异步编程的代码示例。" (调用 'get_all_coding_preferences')
    • "搜索一下关于在 Kubernetes 中部署 Flask 应用的最佳实践。" (调用 'search_coding_preferences')

注意: 使用前请确保已正确配置 Mem0 API 密钥,并且服务器已成功启动并可被 MCP 客户端访问。

信息

分类

开发者工具