使用说明
项目简介
本仓库实现了一个基于 Model Context Protocol (MCP) 的服务器,专门用于管理和检索代码偏好设置。它利用 mem0 提供的记忆存储和语义搜索能力,允许开发者将常用的代码片段、编程模式、最佳实践等信息存储起来,并通过自然语言查询进行快速检索。该服务器旨在提升编码效率,特别是在使用 Cursor 等支持 MCP 协议的 LLM 代码编辑器时,能够为代码生成和理解提供丰富的上下文信息。
主要功能点
- 存储代码偏好 (add_coding_preference): 允许用户将代码片段、实现细节、编程模式等信息及其相关上下文(如编程语言版本、依赖库、使用示例、文档链接等)存储到 mem0 知识库中。存储时会对内容进行语义索引,方便后续检索。
- 检索所有代码偏好 (get_all_coding_preferences): 提供查看所有已存储代码偏好的功能,方便用户回顾和分析已有的代码资产。
- 语义搜索代码偏好 (search_coding_preferences): 支持使用自然语言查询在已存储的代码偏好中进行语义搜索,快速找到相关的代码片段、解决方案、最佳实践等。
安装步骤
- 克隆仓库:
git clone https://github.com/mem0ai/mem0-mcp.git cd mem0-mcp - 初始化 'uv' 虚拟环境:
uv venv - 激活虚拟环境:
source .venv/bin/activate - 安装依赖:
uv pip install -e . - 配置 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 客户端访问。
信息
分类
开发者工具