MCP 接入
通过 MCP(Model Context Protocol)接入记忆服务,可将 Retain、Recall、Reflect 等能力注册为标准工具,由 Agent 在对话过程中自主决定何时调用。无需在应用代码中硬编码调用逻辑,Agent 即可获得长期记忆能力。
前提条件
- 已创建记忆库,获取 API Base URL、API Key 和 Bank ID
- 已安装支持 MCP 协议的客户端
接入地址
记忆服务为每个记忆库提供独立的 MCP 端点。<API_BASE_URL> 替换为实际地址 https://cloud.memory.bj.baidubce.com/api:
| 模式 | 地址 | 说明 |
|---|---|---|
| 单库模式(推荐) | <API_BASE_URL>/mcp/<bank_id>/ |
所有操作自动绑定指定 Bank,工具无需传 bank_id |
| 多库模式 | <API_BASE_URL>/mcp/ |
每次调用需显式指定 bank_id,额外提供 list_banks、create_bank、get_bank_stats 工具 |
单库模式适合大多数场景——一个连接对应一个 Bank,隔离性强,使用简单。多库模式适合需要在一个连接中管理多个 Bank 的场景。
认证方式
通过 HTTP Bearer Token 认证,在请求头中传递 API Key:
1Authorization: Bearer <your-api-key>
Bank 的指定遵循以下优先级:
- URL 路径(最高):
/mcp/<bank_id>/中的<bank_id> - X-Bank-Id 请求头:
X-Bank-Id: <your-bank-id> - 默认值:使用服务端配置的默认 Bank
客户端配置
验证连通性
通过 HTTP 直接访问 MCP 端点,验证服务是否可达:
1curl -s -X POST <API_BASE_URL>/mcp \
2 -H "Authorization: Bearer <your-api-key>" \
3 -H "X-Bank-Id: <your-bank-id>" \
4 -H "Content-Type: application/json" \
5 -H "Accept: application/json, text/event-stream" \
6 -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
Claude Code
在终端中执行以下命令,将记忆服务注册为 MCP 工具源:
单库模式:
1claude mcp add --transport http memory <API_BASE_URL>/mcp/<your-bank-id> \
2 --header "Authorization: Bearer <your-api-key>"
多库模式:
1claude mcp add --transport http memory <API_BASE_URL>/mcp \
2 --header "Authorization: Bearer <your-api-key>" \
3 --header "X-Bank-Id: <your-bank-id>"
Claude Desktop
编辑 ~/.claude_desktop_config.json,添加以下配置:
单库模式:
1{
2 "mcpServers": {
3 "memory": {
4 "url": "<API_BASE_URL>/mcp/<your-bank-id>",
5 "headers": {
6 "Authorization": "Bearer <your-api-key>"
7 }
8 }
9 }
10}
多库模式:
1{
2 "mcpServers": {
3 "memory": {
4 "url": "<API_BASE_URL>/mcp",
5 "headers": {
6 "Authorization": "Bearer <your-api-key>",
7 "X-Bank-Id": "<your-bank-id>"
8 }
9 }
10 }
11}
Cursor
在项目根目录创建 .cursor/mcp.json:
1{
2 "mcpServers": {
3 "memory": {
4 "url": "<API_BASE_URL>/mcp/<your-bank-id>",
5 "headers": {
6 "Authorization": "Bearer <your-api-key>"
7 }
8 }
9 }
10}
Windsurf
在项目根目录创建 .windsurf/mcp.json:
1{
2 "mcpServers": {
3 "memory": {
4 "url": "<API_BASE_URL>/mcp/<your-bank-id>",
5 "headers": {
6 "Authorization": "Bearer <your-api-key>"
7 }
8 }
9 }
10}
VS Code
在 VS Code 设置(settings.json)中添加 MCP 服务器配置:
1{
2 "mcp": {
3 "servers": {
4 "memory": {
5 "url": "<API_BASE_URL>/mcp/<your-bank-id>",
6 "headers": {
7 "Authorization": "Bearer <your-api-key>"
8 }
9 }
10 }
11 }
12}
可用工具
单库模式下提供 26 个工具,多库模式下额外提供 3 个 Bank 管理工具(共 29 个)。
| 分类 | 工具名 | 对应 API | 用途 |
|---|---|---|---|
| 记忆读写 | retain |
POST /memories/retain |
存储信息到长期记忆 |
recall |
POST /recall |
检索相关记忆 | |
reflect |
POST /reflect |
基于记忆生成综合回答 | |
list_memories |
GET /list |
浏览已存储的记忆 | |
get_memory |
GET /list(按 ID 过滤) |
获取指定记忆详情 | |
clear_memories |
— | 清除 Bank 中的记忆 | |
| 心智模型 | list_mental_models |
GET /banks/{bankId}/mental-models |
列出心智模型 |
get_mental_model |
GET /banks/{bankId}/mental-models/{modelId} |
获取心智模型详情 | |
create_mental_model |
POST /banks/{bankId}/mental-models |
创建心智模型 | |
update_mental_model |
PATCH /banks/{bankId}/mental-models/{modelId} |
更新心智模型设置 | |
delete_mental_model |
DELETE /banks/{bankId}/mental-models/{modelId} |
删除心智模型 | |
refresh_mental_model |
POST /banks/{bankId}/mental-models/{modelId}/refresh |
刷新心智模型内容 | |
| 指令 | list_directives |
GET /banks/{bankId}/directives |
列出指令 |
create_directive |
POST /banks/{bankId}/directives |
创建指令 | |
delete_directive |
DELETE /banks/{bankId}/directives/{directiveId} |
删除指令 | |
| 文档 | list_documents |
GET /documents |
列出文档 |
get_document |
GET /documents/{documentId} |
获取文档详情 | |
delete_document |
DELETE /documents/{documentId} |
删除文档及关联记忆 | |
| 后台操作 | list_operations |
GET /operations/{bankId} |
列出后台操作 |
get_operation |
— | 获取操作状态 | |
cancel_operation |
DELETE /operations/{bankId} |
取消后台操作 | |
| 标签 | list_tags |
— | 列出所有标签 |
| Bank 管理 | get_bank |
GET /banks/{bankId} |
获取 Bank 信息 |
update_bank |
PATCH /banks/{bankId}/config |
更新 Bank 配置 | |
delete_bank |
DELETE /banks/{bankId} |
删除 Bank | |
| 多库专用 | list_banks |
GET /banks |
列出所有 Bank |
create_bank |
POST /banks |
创建 Bank | |
get_bank_stats |
GET /banks/{bankId}/stats |
获取 Bank 统计信息 |
各工具的请求参数与对应 REST API 一致,详见 接口速查表 及 API 接入 中的参数说明。
工具过滤
可通过 Bank 配置限制 MCP 暴露的工具范围,仅保留业务所需的工具:
1{
2 "mcp_enabled_tools": ["retain", "recall", "reflect"]
3}
也可在服务端通过环境变量 MCP_ENABLED_TOOLS 全局设置默认工具列表。
工具调用示例
以下展示 Agent 通过 MCP 调用 recall 工具的完整流程:
1. Agent 发起工具调用:
1{
2 "name": "recall",
3 "arguments": {
4 "query": "这个用户偏好的前端技术栈是什么?",
5 "budget": "mid",
6 "tags": ["user:demo"],
7 "tags_match": "all_strict"
8 }
9}
2. 服务返回检索结果:
1{
2 "results": [
3 {
4 "id": "f1a2b3c4",
5 "text": "用户偏好使用 TypeScript、React 和 Tailwind 构建前端页面",
6 "type": "experience",
7 "context": "project onboarding",
8 "tags": ["user:demo", "project:frontend"],
9 "mentioned_at": "2026-05-12T10:00:00+08:00"
10 }
11 ]
12}
3. Agent 将检索结果作为上下文,生成回答。
使用建议
- 对话开始时先调用
recall,检索与当前问题相关的记忆,作为上下文注入 - 对话结束或关键决策后调用
retain,将重要信息写入记忆 - 需要综合判断时调用
reflect,而非仅检索事实 - 使用
tags做范围隔离(如user:alice、project:atlas),多用户场景使用all_strict匹配 recall的budget参数:日常对话选mid,需要深度检索选high- 高频综合问题可预建心智模型(
create_mental_model),避免重复 Reflect
评价此篇文章
