Mem0是为AI智能体设计的记忆层,提供自我改进、跨应用的个性化AI体验。Tablestore Openmemory MCP基于Mem0,将Tablestore作为稳定、可扩展的记忆中心,为 AI 应用打造一个持久化的记忆系统。
功能介绍
Tablestore Openmemory MCP 包含4个MCP 工具:
-
add_memories:更新用户记忆,包括记忆的添加、修改、删除。
-
search_memories:检索用户记忆。
-
list_memories:列举用户所有记忆。
-
delete_all_memories:删除用户所有记忆。
准备工作
-
为阿里云账号或具有表格存储访问权限的RAM用户创建AccessKey。
部署和连接MCP服务
Tablestore Openmemory MCP支持SSE和Stdio两种模式。
SSE模式
通过SSE模式部署Tablestore Openmemory MCP服务时,需要准备一台运行 MCP 的服务器,可以使用阿里云ECS。为确保 Python 依赖顺利下载,建议选择中国香港地域。
本文使用的 ECS 实例操作系统为Alibaba Cloud Linux 3.2104 LTS 64位,默认自带的Python3版本为3.6.8,需要升级Python版本。
一、部署MCP服务
使用 uv 工具可以在不安装MCP的情况下直接运行服务。
-
安装uv包管理工具。
pip3 install uv -
配置运行服务需要的环境变量。
echo "export OPENAI_API_KEY='sk-7*******************************'" >> ~/.bashrc echo "export OPENAI_BASE_URL='https://dashscope.aliyuncs.com/compatible-mode/v1'" >> ~/.bashrc echo "export TABLESTORE_ENDPOINT='https://k01r********.cn-hangzhou.ots.aliyuncs.com'" >> ~/.bashrc echo "export TABLESTORE_INSTANCE_NAME='k01r********'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_ID='LTAI********************'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_SECRET='Jy3H**************************'" >> ~/.bashrc配置完成后需要使用
source ~/.bashrc命令使环境变量生效。环境变量获取方式:名称
说明
OPENAI_API_KEY
前往API-Key管理,查看并复制API-KEY,如果没有API-KEY,单击创建API-KEY创建一个新的API-KEY。
OPENAI_BASE_URL
https://dashscope.aliyuncs.com/compatible-mode/v1TABLESTORE_ENDPOINT
前往表格存储控制台,在实例列表中单击实例别名进入实例管理页面,查看并复制实例名称和实例访问地址。如果使用ECS,根据地域情况选择访问地址:
-
ECS与表格存储在同一地域:选择公网地址或者VPC地址。
-
ECS与表格存储不在同一地域:选择公网地址。
重要表格存储新创建的实例默认不开启公网访问,如果要使用公网访问地址,务必在表格存储控制台实例管理的网络管理页签中允许网络类型选中公网,并单击设置保存配置。
TABLESTORE_INSTANCE_NAME
TABLESTORE_ACCESS_KEY_ID
阿里云账号或RAM用户的AccessKey ID。
TABLESTORE_ACCESS_KEY_SECRET
阿里云账号或RAM用户的AccessKey Secret。
-
-
启动MCP服务。
uvx tablestore-openmemory-mcp --transport=sse首次运行需要下载相关依赖,请耐心等待。如遇网络问题导致下载失败,重新执行命令即可。启动后,MCP 服务将在表格存储实例中自动创建所需的数据表及多元索引。当出现以下日志时,表示服务已启动成功。
INFO: Started server process [43283] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8765 (Press CTRL+C to quit)
二、连接MCP服务
连接URL格式:http://server_ip:port/mcp/client_name/sse/user_id
-
server_ip:运行MCP服务的服务器IP地址。
-
port:MCP服务运行端口,默认为8765。
重要访问ECS上的MCP服务,需要在ECS安全组的入方向规则中添加安全组规则,放行MCP服务使用的TCP端口(默认为8765)。
-
client_name和user_id:自定义配置,用于隔离不同用户的记忆。
Cline
按照以下配置示例填写Remote Servers信息,或者单击 Edit Configuration 后在MCP配置文件 cline_mcp_settings.json 中添加MCP服务启动信息。
配置完成后,在Cline对话窗口开启MCP服务。
开启后,MCP Servers 面板中 tablestore-openmemory-mcp 条目右侧开关变为绿色并显示绿色状态指示灯,表示 MCP 服务连接成功。也可通过对话窗口底部工具栏的 + 按钮快速添加 MCP 服务。
Cherry Studio
在Cherry Studio的菜单中单击,填写以下内容:
-
名称:MCP服务名称,可自定义。
-
类型:选择服务器发送事件(sse)。
-
URL:按上述URL格式进行填写。
MCP服务器添加完成后,在对话窗口开启MCP服务。
单击对话窗口底部工具栏中的 MCP 图标,在弹出的服务器列表中选中 Tablestore OpenMemory Stdio。
Stdio模式
此处介绍如何在Cline和Cherry Studio中部署Tablestore Openmemory MCP服务。
Cline
在Cline的MCP配置文件cline_mcp_settings.json中配置Tablestore Openmemory MCP启动信息,示例配置如下所示:
{
"mcpServers": {
"tablestore-openmemory-mcp": {
"autoApprove": [
"add_memories",
"list_memories",
"delete_all_memories",
"search_memories"
],
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uvx",
"args": [
"tablestore-openmemory-mcp",
"--transport",
"stdio"
],
"env": {
"OPENAI_API_KEY": "sk-7*******************************",
"OPENAI_BASE_URL": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"TABLESTORE_ENDPOINT": "https://k01r********.cn-hangzhou.ots.aliyuncs.com",
"TABLESTORE_INSTANCE_NAME": "k01r********",
"TABLESTORE_ACCESS_KEY_ID": "LTAI********************",
"TABLESTORE_ACCESS_KEY_SECRET": "Jy3H**************************"
}
}
}
}
env 环境变量配置说明:
|
名称 |
说明 |
|
OPENAI_API_KEY |
前往API-Key管理,查看并复制API-KEY,如果没有API-KEY,单击创建API-KEY创建一个新的API-KEY。 |
|
OPENAI_BASE_URL |
|
|
TABLESTORE_ENDPOINT |
前往表格存储控制台,在实例列表中单击实例别名进入实例管理页面,查看并复制实例名称和实例访问地址。如果使用ECS,根据地域情况选择访问地址:
重要
表格存储新创建的实例默认不开启公网访问,如果要使用公网访问地址,务必在表格存储控制台实例管理的网络管理页签中允许网络类型选中公网,并单击设置保存配置。 |
|
TABLESTORE_INSTANCE_NAME |
|
|
TABLESTORE_ACCESS_KEY_ID |
阿里云账号或RAM用户的AccessKey ID。 |
|
TABLESTORE_ACCESS_KEY_SECRET |
阿里云账号或RAM用户的AccessKey Secret。 |
配置完成后,在Cline对话窗口开启MCP服务。
单击 Cline 对话窗口底部工具栏的 + 按钮打开 MCP Servers 面板,确认 tablestore-openmemory-mcp 条目的开关处于开启状态并显示绿色状态指示灯,表示 MCP 服务已成功连接。
Cherry Studio
在Cherry Studio的菜单中单击,填写以下内容:
-
名称:MCP服务名称,可自定义。
-
类型:选择标准输入/输出(stdio)。
-
命令:启动命令,填写
uvx。 -
参数:启动参数,填写以下内容。
tablestore-openmemory-mcp --transport stdio -
环境变量:启动需要的环境变量,按以下示例和说明进行填写。
OPENAI_API_KEY=sk-7******************************* OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 TABLESTORE_ENDPOINT=https://k01r********.cn-hangzhou.ots.aliyuncs.com TABLESTORE_INSTANCE_NAME=k01r******** TABLESTORE_ACCESS_KEY_ID=LTAI******************** TABLESTORE_ACCESS_KEY_SECRET=Jy3H**************************环境变量获取方式:
名称
说明
OPENAI_API_KEY
前往API-Key管理,查看并复制API-KEY,如果没有API-KEY,单击创建API-KEY创建一个新的API-KEY。
OPENAI_BASE_URL
https://dashscope.aliyuncs.com/compatible-mode/v1TABLESTORE_ENDPOINT
前往表格存储控制台,在实例列表中单击实例别名进入实例管理页面,查看并复制实例名称和实例访问地址。如果使用ECS,根据地域情况选择访问地址:
-
ECS与表格存储在同一地域:选择公网地址或者VPC地址。
-
ECS与表格存储不在同一地域:选择公网地址。
重要表格存储新创建的实例默认不开启公网访问,如果要使用公网访问地址,务必在表格存储控制台实例管理的网络管理页签中允许网络类型选中公网,并单击设置保存配置。
TABLESTORE_INSTANCE_NAME
TABLESTORE_ACCESS_KEY_ID
阿里云账号或RAM用户的AccessKey ID。
TABLESTORE_ACCESS_KEY_SECRET
阿里云账号或RAM用户的AccessKey Secret。
-
MCP服务器添加完成后,在对话窗口开启MCP服务。
单击对话窗口底部工具栏中的 MCP 工具按钮(绿色方括号图标),在弹出的服务器选择面板中选中 Tablestore OpenMemory Stdio 即可。
验证持久化记忆
Tablestore Openmemory MCP 将记忆持久化,存储在Tablestore中,并且可以在与AI应用交互过程中对记忆进行添加、检索、更新和删除,此处以代码偏好为例进行演示。
-
添加记忆信息:在Cline中进行对话,让模型调用工具记忆代码偏好。
调用工具记忆以下信息:我是一名程序员,我需要你来辅助我写代码,我比较擅长编写Java和Python相关代码,习惯将函数、类名使用大驼峰命名,变量使用小驼峰命名,常量全部采用大写字母加下划线进行命名。大模型会调用 add_memories 工具将记忆存储到Tablestore的mem0数据表中。
可以在表格存储控制台查看记忆数据。
在 mem0 表的 数据管理 页签中,可看到记忆数据以行形式存储,包含 document_id(主键)、tenant_id(主键)、embedding、payload、payload_source、text 等列,其中 tenant_id 默认值为
__default,text 列存储了之前输入的代码偏好信息。 -
检索记忆信息:在Cline中进行对话,让模型调用工具检索代码偏好。为了防止大模型从对话上下文中得知相关信息,重新启动一个会话进行提问。
我喜欢什么样的变量命名方式大模型会调用 search_memories 工具检索Tablestore中存储的相关记忆并提供准确回答。
模型返回检索结果,总结用户偏好的变量命名规范:变量使用小驼峰命名(camelCase),如
myVariableName;常量使用全大写加下划线命名,如MY_CONSTANT_VALUE;函数和类名使用大驼峰命名(PascalCase),如MyClassName。 -
更新记忆信息:在Cline中进行对话,让模型调用工具更新代码偏好。
请记忆,我现在喜欢使用小写字母加下划线命名变量大模型会调用 add_memories 工具检索Tablestore中存储的相关记忆并进行更新。
可以在表格存储控制台查看更新后的记忆数据。
在 mem0 表的数据管理页签中,text 字段的值为「用户现在偏好使用小写字母加下划线的方式来命名变量」,表明记忆数据已成功存储。
验证跨平台记忆
由于记忆被存储在表格存储(Tablestore),使得记忆从应用和模型中分离,可以随意地切换应用、模型对相同的记忆进行访问。此处以CIine和Cherry Studio为例,在 Cline 中添加个人的个性信息,然后在另外一个 AI 客户端 CherryStudio 中生成个性化的出行方案。
-
添加个性信息:在Cline中进行对话,让模型调用工具记忆个人的个性信息,如住址、爱好等。
记忆以下信息:我现在住在杭州,喜欢吃辣的东西,同时我爱看悬疑小说和电影,我总是喜欢尝试新品,尽管老踩雷。大模型会调用 add_memories 工具将记忆存储到Tablestore的mem0数据表中。
可以在表格存储控制台查看记忆数据。
在表格存储控制台的 mem0 表 数据管理 页签中,可查看已存储的记忆数据。表包含主键列
document_id和tenant_id,以及属性列embedding、payload、payload_source、text,其中tenant_id默认值为__default。 -
跨平台访问记忆:在Cherry Studio中进行对话,让模型根据记忆生成个性化的周末出行计划。
根据记忆,帮我制定一份周末外出游玩计划大模型会调用 search_memories 工具检索Tablestore中存储的相关记忆并根据记忆生成计划。
该对话在Cherry Studio中使用qwen-max模型完成,search_memories工具调用状态显示为已完成,生成的计划涵盖早晨、上午、中午、下午、晚上各时段的详细安排。
应用到生产
将Tablestore Openmemory MCP应用于生产环境时,需考虑以下因素以确保服务的稳定性、安全性和可扩展性。
部署架构优化
通过多台ECS实例部署MCP服务并使用负载均衡SLB实现实例间的负载均衡,或者使用容器服务ACK、计算巢服务替代单台ECS部署,不仅提供自动扩缩容能力,还能根据负载动态调整资源,既能应对突发流量,又能节省闲时成本。
安全加固
为保障生产数据安全,应使用RAM用户并遵循最小权限原则,授权其仅访问表格存储特定实例。同时,通过配置安全组IP白名单来限制访问来源,或部署API网关进行统一的认证、流控与日志记录。
运维和监控
为保障服务健康,应使用云监控为ECS实例或容器设置关键指标(如CPU、内存)的监控和告警。同时,建议将运行日志统一采集到日志服务SLS,以便进行快速的故障排查、性能分析和业务洞察。
资源清理
为避免产生不必要的费用,在完成方案体验后,请按照以下步骤清理所有相关资源: