Memory MCP Server
Provides semantic search and multilingual retrieval for memories using Google Gemini embedding API.
Provides persistent memory storage using a PostgreSQL database for the cloud deployment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Memory MCP ServerRemember that I have a cat named Luna."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Memory MCP Server
License: AGPL-3.0-or-later · Copyright (c) 2026 Neige-Neige If you distribute this software or offer it as a network service (modified or not), you must make the complete corresponding source available under AGPL-3.0-or-later. For closed-source commercial licensing, please open an issue. 本ソフトウェアを配布する、またはネットワークサービスとして提供する場合(改変の有無を問わず)、 対応するソースコード全体を AGPL-3.0-or-later で公開する必要があります。 分发本软件或将其作为网络服务提供时(无论是否修改),必须以 AGPL-3.0-or-later 公开完整的对应源代码。
一个通用的 MCP (Model Context Protocol) 记忆服务,为任何支持 MCP 协议的 AI 客户端提供长期记忆能力。支持语义搜索、记忆分类和优先级管理。
特性
语义搜索 - 使用 Gemini gemini-embedding-001(3072维,100+语言支持,免费)
多语言搜索 - 自动翻译查询词,支持中英日跨语言检索
记忆分类 - 7 种预设分类,方便组织管理
优先级系统 - 5 级重要性标记,影响搜索排序
内存缓存 - 启动时加载记忆到内存,搜索更快
自动升级 - 检测旧版 embedding 并自动重新生成
渐进式注入 - 对话初期返回少量记忆,后期返回更多
双版本支持 - 本地 JSON 存储 / 云端 PostgreSQL 存储
MCP 标准协议 - 兼容任何 MCP 客户端
Related MCP server: mcp-recall
可用工具
工具 | 说明 | 触发场景 |
| 保存重要的用户信息 | 用户提到重要个人信息、偏好、习惯 |
| 按关键词/语义检索相关记忆 | 用户问「之前聊过什么」「你还记得吗」 |
| 更新已保存的记忆 | 需要修改之前保存的信息 |
| 查看所有已保存的记忆 | 用户要求列出所有记忆 |
| 删除指定记忆 | 用户要求忘记某些信息 |
| 显示记忆统计信息 | 查看记忆概览和分布 |
| 重新生成所有记忆的 embedding | 切换 embedding 模型后使用 |
记忆优先级
每条记忆可以设置优先级(1-5),搜索时高优先级记忆会获得加成:
级别 | 说明 | 显示 |
1 | 最高 - 核心个人信息 | ★★★ |
2 | 高 - 重要偏好或习惯 | ★★☆ |
3 | 中 - 一般信息(默认) | ★☆☆ |
4 | 低 - 临时或次要信息 | ☆☆☆ |
5 | 最低 - 可能过时的信息 | · |
记忆分类
每条记忆可以归类到以下分类:
general- 通用(默认)preference- 偏好设置work- 工作相关personal- 个人信息habit- 习惯skill- 技能goal- 目标
渐进式注入
recall_memory 会根据会话中的调用次数,智能调整返回的记忆数量和类型:
调用次数 | 返回内容 | 目的 |
第 1 次 | 最多 3 条核心记忆(优先级 1-2 或 personal 分类) | 身份确认、关系确认、语言风格 |
第 2 次 | 1 条最相关记忆 + 提示剩余数量 | 聚焦当前话题,提示可查看更多 |
第 3+ 次 | MAX_RESULTS 条(默认 3) | 正常搜索,完整返回 |
会话重置:超过 5 分钟未调用
recall_memory,计数器自动归零
这个设计确保:
对话开始时快速建立用户画像
对话中期聚焦当前话题
对话后期提供完整信息
两种部署方式
1. 本地版本 (memory_server.py)
适合本地运行的 MCP 客户端,使用 stdio 传输协议。
记忆保存在本地
memories.json文件使用关键词搜索
数据完全本地化,隐私保护
运行方式:
python memory_server.pyMCP 客户端配置示例:
{
"mcpServers": {
"memory": {
"command": "python",
"args": ["/path/to/memory_server.py"]
}
}
}2. 云端版本 (memory_server_http.py)
适合远程访问的 MCP 客户端,使用 HTTP/SSE 传输协议。
使用 PostgreSQL 数据库存储
集成 Gemini Embedding API 进行语义搜索
支持多客户端连接
需要部署到云平台(Railway、Render、Fly.io 等)或有公网 IP 的服务器
什么时候需要云端版本?
使用 Claude.ai 网页版 连接 MCP 服务时(需要公网可访问的 URL)
需要从多台设备访问同一份记忆时
本地版本使用 stdio 协议,仅支持 Claude Desktop 等本地客户端
运行方式:
# 设置环境变量
export DATABASE_URL="postgresql://user:pass@host:5432/dbname"
export GEMINI_API_KEY="your-gemini-api-key" # 可选,用于语义搜索
export PORT=8000
# 可选:设置工具前缀(用于运行多个实例时避免工具名冲突)
export TOOL_PREFIX="work_" # 工具名将变为 work_save_memory, work_recall_memory 等
export SERVER_NAME="work-memory" # 服务器名称
python memory_server_http.py多实例部署
如果需要同时运行多个 Memory MCP 实例(例如工作记忆和个人记忆分开存储),需要设置不同的 TOOL_PREFIX 避免工具名冲突:
实例 1 - 工作记忆:
export TOOL_PREFIX="work_"
export SERVER_NAME="work-memory"
export DATABASE_URL="postgresql://..." # 工作数据库实例 2 - 个人记忆:
export TOOL_PREFIX="personal_"
export SERVER_NAME="personal-memory"
export DATABASE_URL="postgresql://..." # 个人数据库这样工具名会变成:
work_save_memory,work_recall_memory, ...personal_save_memory,personal_recall_memory, ...
MCP 客户端连接:
SSE 端点:
http://your-server:8000/sse健康检查:
http://your-server:8000/health
安装
pip install -r requirements.txt依赖说明:
mcp- MCP 协议库starlette,uvicorn- HTTP 服务器(云端版本)psycopg2-binary- PostgreSQL 驱动(云端版本)numpy- 向量计算requests- HTTP 客户端
云端部署
Railway 部署
Fork 此仓库到你的 GitHub
在 Railway 创建新项目,连接 GitHub 仓库
添加 PostgreSQL 数据库服务
设置环境变量:
DATABASE_URL- 自动由 Railway 设置GEMINI_API_KEY- 你的 Gemini API 密钥(可选)
部署完成后获取服务 URL
其他云平台
项目包含 Procfile,兼容 Heroku、Render 等平台:
web: python memory_server_http.py使用示例
保存记忆
"记住我喜欢用 TypeScript 写代码"
"我的项目用的是 React + Vite,这是工作相关的"
"记住我不喜欢在代码里加太多注释,优先级设为高"回忆信息
"我之前告诉过你什么编程偏好?"
"你还记得我的项目用什么技术栈吗?"
"只在工作分类里找一下相关记忆"更新记忆
"把记忆 3 的优先级改成最高"
"更新记忆 5,把分类改成 work"查看统计
"显示记忆统计"
"列出所有 work 分类的记忆"数据格式
本地 JSON 格式
[
{
"id": 1,
"content": "用户喜欢喝咖啡",
"tags": ["偏好", "饮食"],
"priority": 2,
"category": "preference",
"created_at": "2024-01-01T12:00:00",
"updated_at": "2024-01-01T12:00:00"
}
]云端数据库 Schema
CREATE TABLE memories (
id SERIAL PRIMARY KEY,
content TEXT NOT NULL,
tags TEXT[] DEFAULT '{}',
embedding FLOAT8[],
priority INTEGER DEFAULT 3,
category VARCHAR(50) DEFAULT 'general',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)API 端点(云端版本)
端点 | 方法 | 说明 |
| GET | MCP SSE 连接端点 |
| POST | MCP 消息处理 |
| GET | 健康检查 |
健康检查响应示例:
{
"status": "ok",
"service": "memory-mcp",
"storage": "postgresql",
"semantic_search": "enabled"
}技术架构
┌──────────────────────────────────────────────────────────┐
│ MCP Client (任意) │
│ (Claude Desktop, API Client, Custom App) │
└─────────────────────────┬────────────────────────────────┘
│ MCP Protocol
┌───────────────┴───────────────┐
▼ ▼
┌─────────────────────┐ ┌─────────────────────────────┐
│ 本地版本 (stdio) │ │ 云端版本 (HTTP/SSE) │
│ memory_server.py │ │ memory_server_http.py │
├─────────────────────┤ ├─────────────────────────────┤
│ - JSON 文件存储 │ │ - PostgreSQL 数据库 │
│ - 关键词搜索 │ │ - Gemini Embedding 语义搜索 │
│ - 优先级/分类管理 │ │ - 优先级/分类管理 │
└─────────────────────┘ └─────────────────────────────┘兼容的 MCP 客户端
本服务兼容任何支持 MCP 协议的客户端,包括但不限于:
Claude Desktop
自定义 API 客户端
MCP Inspector(调试工具)
其他 MCP 兼容应用
使用建议
关于客户端内置记忆功能
部分 MCP 客户端(如 Claude Desktop)自带记忆功能,其内置记忆的权重通常比外部 MCP 服务更高。
建议:根据自身需求决定是否关闭客户端的内置记忆功能
注意:如果关闭客户端内置记忆,所有记忆检索都会走本服务的
recall_memory,响应时间可能会稍长(需要进行语义搜索和数据库查询)请根据实际使用场景自行权衡。
故障排除
语义搜索不工作
检查
GEMINI_API_KEY环境变量是否设置查看服务日志中的
[EMBEDDING]相关信息如果 API 出错,会自动降级为关键词搜索
数据库连接失败
检查
DATABASE_URL格式是否正确确认数据库服务正在运行
检查网络连接和防火墙设置
SSE 连接问题
确认客户端支持 SSE 传输
检查 CORS 设置(如果是跨域访问)
确认端口没有被占用
自定义 Embedding 服务
本项目默认使用 Google Gemini Embedding API(免费),但你可以替换为其他 embedding 服务。
当前默认行为
有 GEMINI_API_KEY: 使用 Gemini
gemini-embedding-001模型进行语义搜索3072 维向量,精度更高
支持 100+ 语言,跨语言检索效果更好
启动时自动检测旧版 embedding (768维) 并升级
无 GEMINI_API_KEY: 自动降级为关键词搜索(仍然可用)
替换为其他 Embedding 服务
如果你想使用 OpenAI、Cohere、本地模型等其他 embedding 服务,需要修改 memory_server_http.py 中的 get_embedding() 函数:
def get_embedding(text: str) -> list[float] | None:
"""获取文本的 embedding 向量"""
# 替换为你的 embedding API 调用
# 返回值应为 float 列表,如 [0.1, 0.2, ...]
# 返回 None 表示失败,会降级为关键词搜索
pass常见替代方案:
OpenAI
text-embedding-3-smallCohere
embed-multilingual-v3.0本地部署的 sentence-transformers
其他支持中文的 embedding 模型
后续优化方向
语义搜索(Gemini Embedding)
多语言搜索(中英日跨语言检索)
记忆优先级
记忆分类管理
记忆更新功能
记忆统计功能
Embedding 自动升级
记忆过期机制
记忆导出/导入
记忆关联功能
WebSocket 传输支持
License
Copyright (c) 2026 Neige-Neige
This project is licensed under the GNU Affero General Public License, version 3
or (at your option) any later version (AGPL-3.0-or-later).
See LICENSE for the full text.
What triggers the copyleft
AGPL is triggered by distribution and by offering the software as a network service — not by "commercial use" as such. Concretely:
Running an unmodified or modified copy privately, without distributing it and without offering it to others over a network → no obligation, even commercially
Distributing the software, modified or not → you must provide the complete corresponding source under AGPL-3.0-or-later
Offering it as a network service (SaaS, hosted MCP endpoint, bot, etc.), modified or not → you must make the complete corresponding source available to its users, even though you never hand out a copy of the software itself. This is the clause that distinguishes AGPL from plain GPL.
In all of the above you must retain this copyright notice and license
Commercial licensing
If you want to distribute this project, or run it as a service, without releasing your source code, AGPL-3.0-or-later does not permit that. A separate commercial license is available — please open an issue to discuss.
中文
本项目采用 AGPL-3.0-or-later(GNU Affero 通用公共许可证第 3 版或任何更新版本)授权。
触发 copyleft 的是"分发"和"以网络服务提供",而不是"商业使用"本身:
私下运行(不分发、不对外提供网络服务)→ 无义务,即使是商业环境
分发本软件(无论是否修改)→ 必须以 AGPL-3.0-or-later 提供完整的对应源代码
作为网络服务提供(SaaS、托管 MCP 端点、bot 等,无论是否修改)→ 必须向使用者公开 完整的对应源代码,即使你从未分发过软件本体。这是 AGPL 区别于普通 GPL 的核心条款
以上任何情形都必须保留原始的版权声明与授权条款
如需在不公开源代码的前提下分发或提供服务,AGPL 不允许,请开 issue联系作者 获取单独的商业授权。
日本語
本プロジェクトは AGPL-3.0-or-later ライセンスで公開されています。
copyleft が発動するのは「配布」と「ネットワークサービスとしての提供」であり、 「商用利用」そのものではありません:
私的に実行するだけ(配布せず、ネットワーク経由で他者に提供しない)→ 商用でも義務なし
配布する場合(改変の有無を問わず)→ 対応するソースコード全体を AGPL-3.0-or-later で提供
ネットワークサービスとして提供する場合(改変の有無を問わず)→ ソフトウェア本体を 配布していなくても、利用者に対して対応するソースコード全体を開示する義務があります
いずれの場合も著作権表示とライセンスの保持が必要です
ソースコードを公開せずに配布・サービス提供をご希望の場合は、issue にて 商用ライセンスをご相談ください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenancePersistent semantic memory server for AI assistants via MCP, enabling long-term context retention and semantic search across conversations.Last updated11MIT
- Alicense-qualityBmaintenanceA self-hosted MCP memory server that gives AI assistants persistent, semantic memory by storing facts as vector embeddings locally, supporting semantic search and swappable embedding models.Last updated161MIT
- Alicense-qualityDmaintenanceA lightweight MCP server that provides long-term memory for LLMs by storing and retrieving important facts, decisions, and preferences through smart semantic search and automatic organization.Last updated9MIT
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Cloud-hosted MCP server for durable AI memory
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zuohang20100323/memory-defrost'
If you have feedback or need assistance with the MCP directory API, please join our Discord server