使用说明
🧠 LLM内存MCP服务器
你的人工智能助手终于有了一个共享的大脑。
一个记忆。每个平台。零上下文丢失。
保存一个事实 光标 → 回忆一下 克劳德 → 在中搜索 VS Code → 在中更新它 双子座 → 到处都是。
🔥 为什么2000多名开发人员正在转向共享AI内存
| 无LLM内存 | 有LLM内存 |
|---|---|
| 😤 “我已经告诉克劳德我的技术栈了……” | 🧠 每个AI都知道你在第一条消息上的堆栈 |
| 😤 “Cursor不知道我在Copilot做了什么…” | 🧠 始终提供完整的跨平台环境 |
| 😤 “我一直在重复我的偏好…” | 🧠 首选项自动检测并自动保存 |
| 😤 “我的AI忘记了我们的整个调试过程…” | 🧠 对话保留可搜索的历史记录 |
| 😤 “我丢失了那个有用的代码片段…” | 🧠 程序内存存储每个模式 |
⚡ 是什么让这与众不同
🏗️ 4层内存架构不仅仅是一个键值存储。A. 认知记忆系统 受到人类记忆的启发:
|
🔍 混合AI搜索每 由...驱动 pgvector HNSW + GIN全文 指数。 |
🤖 自动注入智能当任何AI连接时,它 自动地:
无需手动提示。 |
⚔️ 跨平台冲突解决当 光标 说“用户更喜欢标签”和 克劳德 说“用户更喜欢空格”:
|
🚀 快速开始
从0到共享AI内存需要60秒。
先决条件
- 码头工人 &Docker编写
- 任何兼容MCP的AI平台
选项A:一个命令设置(推荐)
git clone https://github.com/ranjanjyoti152/LLM-MCP.git
cd LLM-MCP
./setup.sh
安装脚本会自动检测 光标、VS代码、Gemini CLI、Claude Desktop、Windsurf 并生成配置文件。
选项B:手动
git clone https://github.com/ranjanjyoti152/LLM-MCP.git
cd LLM-MCP
docker compose up -d --build
验证
docker compose ps
# llm-mcp-postgres Up (healthy) 0.0.0.0:4569->5432
# llm-mcp-ollama Up (healthy) 0.0.0.0:9050->9050
# llm-mcp-server Up 0.0.0.0:4040->4040
# llm-mcp-dashboard Up 0.0.0.0:4041->4041
第一次开机需要几分钟。 Ollama拉
nomic-embed-text在报告健康之前嵌入模型(~274MB),服务器+仪表板等待健康检查。看着它docker compose logs -f ollama(如果Ollama在请求时无法访问,服务器将回退到本地哈希嵌入器,因此写入仍然成功。)
试试看!
问你的AI:
“保存一个知识条目:我更喜欢Python作为后端,TypeScript作为前端。”
切换至 任何其他AI 并询问:
“我的编程语言偏好是什么?”
✨ 它记得。 跨越每一个平台。永远。
📊 Web仪表板
住在 http://localhost:4041 --功能齐全的内存管理UI。
| 📈 Overview Bento grid metrics, health stats, platform charts |
🧠 Knowledge Search, filter, version history per entry |
| 📝 Conversations Full episodic memory with message threads |
⚔️ Conflicts Side-by-side comparison, 1-click resolve |
| 🕐 Timeline Unified activity feed across all memory types |
🔧 Maintenance Cleanup, consolidate, decay, compress |
8个选项卡 ·黑暗主题·自动刷新·Chart.js可视化·冲突解决UI·版本历史模型
🏗️ 建筑
┌─────────────────────────────────────────────────────────────────────────┐
│ AI PLATFORMS │
│ │
│ ┌──────────┐ ┌────────┐ ┌─────────┐ ┌────────┐ ┌───────┐ ┌────────┐ │
│ │ Windsurf │ │ Cursor │ │ VS Code │ │ Claude │ │Gemini │ │ Codex │ │
│ └─────┬────┘ └───┬────┘ └────┬────┘ └───┬────┘ └──┬────┘ └───┬────┘ │
│ └───────────┴──────────┴──────────┴─────────┴──────────┘ │
│ │ │
└────────────────────────────────┼────────────────────────────────────────┘
│ MCP (Streamable HTTP)
▼
┌────────────────────────────────────────────────┐
│ 🧠 LLM Memory MCP Server :4040 │
│ │
│ 39 Tools · 9 Prompts · 3 Resources │
│ Auto-injected instructions for every LLM │
│ Background scheduler (cleanup/decay/compress) │
│ Version tracking · Conflict resolution │
│ │
│ 📊 Dashboard UI :4041 │
│ 19 REST endpoints · 8-tab interface │
└────────────────────┬───────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ PostgreSQL 16 + pgvector :4569 │
│ │
│ ┌─────────┐ ┌──────────┐ ┌───────────┐ │
│ │Episodic │ │ Semantic │ │Short-term │ │
│ │convos + │ │knowledge │ │TTL-expire │ │
│ │messages │ │+ vectors │ │+ consolid │ │
│ └─────────┘ └──────────┘ └───────────┘ │
│ ┌─────────┐ ┌──────────┐ ┌───────────┐ │
│ │Procedural│ │Versions │ │Conflicts │ │
│ │code snips│ │changelog │ │cross-plat │ │
│ └─────────┘ └──────────┘ └───────────┘ │
│ │
│ HNSW vector index + GIN full-text index │
│ Hybrid search: semantic + keyword ranking │
└────────────────────────────────────────────────┘
🎯 支持平台
| 平台 | 运输 | 状态 |
|---|---|---|
| 帆板运动 | 流式HTTP | ✅ 准备好了 |
| 光标 | 流式HTTP | ✅ 准备好了 |
| VS Code +GitHub Copilot | 流式HTTP | ✅ 准备好了 |
| 克劳德桌面版 | 可流式传输HTTP/stdio | ✅ 准备好了 |
| Gemini CLI | 流式HTTP | ✅ 准备好了 |
| 反重力 (谷歌) | 流式HTTP | ✅ 准备好了 |
| ChatGPT (MCP兼容) | 流式HTTP | ✅ 准备好了 |
| 法典 (OpenAI) | 流式HTTP | ✅ 准备好了 |
| 任何兼容MCP的客户端 | 可流式传输HTTP | ✅ 准备好了 |
🔧 平台配置
帆板运动
选项A --通过用户界面: 设置→ MCP → 添加服务器 → 粘贴URL。
选项B --配置文件(.windsurf/mcp_config.json):
{
"mcpServers": {
"llm-memory": {
"serverUrl": "http://localhost:4040/mcp"
}
}
}
反重力(谷歌)
选项A --通过UI:转到 设置→ MCP服务器→ Add 并粘贴URL。
选项B --通过配置文件(mcp_config.json):
{
"mcpServers": {
"llm-memory": {
"serverUrl": "http://localhost:4040/mcp"
}
}
}
光标
选项A --通过用户界面: 设置→ MCP服务器→ 添加新的MCP服务器
选项B --项目级配置(.cursor/mcp.json):
{
"mcpServers": {
"llm-memory": {
"url": "http://localhost:4040/mcp"
}
}
}
选项C --全局配置(~/.cursor/mcp.json)--适用于所有项目。
VS代码+GitHub副本
选项A --通过命令面板: Ctrl+Shift+P → MCP: Add Server → HTTP → enter http://localhost:4040/mcp
选项B --工作区配置(.vscode/mcp.json):
{
"servers": {
"llm-memory": {
"type": "http",
"url": "http://localhost:4040/mcp"
}
}
}
选项C --用户设置(全局):将相同的配置添加到您的VS Code用户 settings.json 在...之下 "mcp".
Gemini CLI
编辑 ~/.gemini/settings.json:
{
"mcpServers": {
"llm-memory": {
"httpUrl": "http://localhost:4040/mcp"
}
}
}
克劳德代码(CLI)
选项A——一个命令(HTTP):
claude mcp add --transport http llm-memory http://localhost:4040/mcp
选项B——通过Docker本地(stdio):
claude mcp add llm-memory -- docker exec -i llm-mcp-server python server.py stdio
添加 --scope user 使用任一命令,使服务器在所有项目中都可用(默认范围是当前项目)。证实 claude mcp list.
A. project-memory 技能也在船上 .claude/skills/ --服务器连接后,调用/保存/压缩行为会自动触发,就像安装技能一样。
克劳德桌面版
选项A——本地(最佳性能): 直接通过Docker连接——不需要额外的工具。
首选 设置→ 开发者→ 编辑配置 (claude_desktop_config.json):
{
"mcpServers": {
"llm-memory": {
"command": "docker",
"args": [
"exec",
"-i",
"llm-mcp-server",
"python",
"server.py",
"stdio"
]
}
}
}
ChatGPT/Codex/其他MCP客户端
对于通过HTTP支持MCP的任何平台,请使用:
Endpoint: http://localhost:4040/mcp
Transport: Streamable HTTP (JSON-RPC over POST with optional SSE streaming)
🛠️ 39 MCP工具
💬 Conversations (Episodic Memory)
| 工具 | 它做什么 |
|---|---|
save_conversation |
保存包含消息、元数据、重要性、结果的完整对话 |
search_memory |
所有对话的全文+语义搜索 |
get_recent_conversations |
按平台分类的最新对话 |
get_conversation_by_id |
检索包含所有消息的特定对话 |
add_message_to_conversation |
将消息附加到现有对话中 |
tag_conversation |
添加/删除标签 |
delete_memory |
按ID删除对话或知识 |
🧠 Knowledge (Semantic Memory)
| 工具 | 它做什么 |
|---|---|
save_knowledge |
存储事实/偏好/指示/决定 |
save_knowledge_smart |
冲突感知保存 --检测重复项和跨平台冲突 |
search_knowledge |
按查询、类别、标签搜索 |
list_all_knowledge |
带类别过滤器的分页列表 |
get_knowledge_by_category |
一个类别中的所有条目 |
get_related_knowledge |
按向量接近度分类的类似条目 |
update_knowledge |
更新为 自动版本快照 |
auto_extract_preferences |
从对话文本中批量提取首选项 |
get_context_summary |
结合知识+对话语境 |
⏱️ Working Memory (Short-term)
| 工具 | 它做什么 |
|---|---|
save_short_term_memory |
使用TTL自动到期保存瞬态上下文 |
get_working_context |
加载所有活动会话上下文 |
consolidate_memories |
推广重要STM→ 长期知识 |
💻 Code & Projects (Procedural Memory)
| 工具 | 它做什么 |
|---|---|
save_code_snippet |
使用语言、标签和描述保存可重用代码 |
search_code_snippets |
按关键字、语言、标签搜索 |
save_project_context |
保存项目级技术栈和架构 |
get_project_context |
按名称检索项目上下文 |
🔍 Search & Retrieval
| 工具 | 它做什么 |
|---|---|
recall |
主要的 --一次搜索所有4个内存层,按综合得分排名;通过 project 促进主动回购 |
search_by_tags |
跨类型标签搜索 |
compact_context |
令牌保护程序 --将庞大的上下文块卸载到内存中,返回密集的摘要+回忆句柄 |
⚔️ Versioning & Conflicts
| 工具 | 它做什么 |
|---|---|
knowledge_history |
任何知识输入的完整版本时间表 |
rollback_knowledge |
还原到任何以前的版本 |
list_conflicts |
查看未决/已解决的跨平台冲突 |
resolve_conflict |
用策略解决:保持存在、使用新、合并、保持两者 |
🔧 Maintenance & Utility
| 工具 | 它做什么 |
|---|---|
count_memories |
统计所有内存类型 |
summarize_platform_activity |
每个平台的统计数据 |
cleanup_expired_memories |
删除过期的STM和知识 |
decay_memories |
降低旧记忆的重要性 |
export_memories |
完整JSON备份 |
import_memories |
从备份还原(带数据消除) |
clear_platform_data |
删除平台的所有数据⚠️ |
📡 3 MCP资源
| URI | 描述 |
|---|---|
memory://stats |
数据库统计和计数 |
memory://platforms |
所有存储数据的平台 |
memory://health |
所有内存层的系统健康状况 |
🎯 9个智能提示
关键工作流的自动发现提示模板:
| 提示 | 它做什么 |
|---|---|
start_conversation |
使用全内存上下文进行初始化 |
end_conversation |
保存一切+提取知识 |
compact_now |
将长上下文卸载到内存中以减少令牌使用 |
save_user_preference |
结构化偏好存储 |
recall_everything |
在所有内存中进行深度搜索 |
resolve_all_conflicts |
指导性冲突解决 |
memory_maintenance |
运行所有维护任务 |
onboard_new_user |
首次设置和偏好捕获 |
debug_session |
上下文感知调试工作流 |
💬 将提示作为命令调用
MCP提示显示为 斜杠命令,但确切的语法取决于平台。服务器注册为 llm-memory 在上述所有配置中。提示参数在命令后以空格分隔传递。
Claude Code (CLI)
提示显示为 /mcp__<server>__<prompt>:
/mcp__llm-memory__start_conversation claude-code "auth refactor"
/mcp__llm-memory__recall_everything "database decisions"
/mcp__llm-memory__compact_now my-repo claude-code
/mcp__llm-memory__end_conversation claude-code "Auth refactor" success
跑 /mcp 列出连接的服务器并浏览其提示。您通常不需要这些命令——在服务器连接的情况下,回调/保存/压缩会自动发生——但这些命令是用于显式控制的。
VS Code + GitHub Copilot
提示在Copilot聊天中显示为 /mcp.<server>.<prompt>:
/mcp.llm-memory.start_conversation
/mcp.llm-memory.recall_everything
类型 / 在聊天框中查看列表;聊天会提示你每个论点。
Claude Desktop
点击 + 消息框中的(附件)按钮,选择 llm-memory,然后从列表中选择一个提示。在提示时填写参数。将表面提示为可重复使用的模板,而不是键入斜线命令。
Gemini CLI
MCP直接提示注册为斜线命令:
/start_conversation
/recall_everything
跑 /mcp 查看连接的服务器及其可用提示。
Cursor / Windsurf / ChatGPT
这些客户专注于 自动调用工具 而不是斜线命令提示。只需用自然语言描述你想要什么,模型就会调用底层工具:
"Recall everything you know about this project's database decisions."
"Save this preference: I always use async/await."
"Compact this conversation into memory to save tokens."
同样的 recall / save_knowledge_smart / compact_context 工具在下面运行。
🧬 自动注射行为
当任何AI连接到此MCP服务器时,它 自动接收行为指令 --无需用户操作:
┌─────────────────────────────────────────────────────────────┐
│ CONVERSATION START (automatic) │
│ 1. get_working_context() — load session context │
│ 2. recall("<topic>") — search all memory for relevance │
│ 3. Personalize response using recalled memories │
│ 4. save_short_term_memory() — track current task │
├─────────────────────────────────────────────────────────────┤
│ DURING CONVERSATION (automatic, silent) │
│ • Detect preferences → save_knowledge_smart() │
│ • Detect facts → save_knowledge_smart() │
│ • Detect decisions → save_knowledge_smart() │
│ • Detect code patterns → save_code_snippet() │
│ • All saves are conflict-aware (dedup + cross-platform) │
├─────────────────────────────────────────────────────────────┤
│ CONVERSATION END (automatic) │
│ 1. save_conversation() — with importance + outcome │
│ 2. auto_extract_preferences() — batch knowledge extraction │
│ 3. consolidate_memories() — promote STM → long-term │
└─────────────────────────────────────────────────────────────┘
结果: 每个AI助手从连接的那一刻起就具有记忆感知能力。没有设置。没有提示。它只是工作。
📁 项目结构
LLM-MCP/
├── server.py # MCP server — 39 tools, 9 prompts, 3 resources
├── db.py # Async DB layer (asyncpg + pgvector + FTS)
├── embeddings.py # Embedding engine (local/ollama/openai)
├── dashboard.py # REST API for web dashboard (Starlette)
├── static/
│ └── index.html # Dashboard UI (Tailwind + Chart.js)
├── prompts/
│ ├── system_prompt.md # Standalone system prompt for any LLM
│ └── quick_prompts.md # 12 copy-paste prompt templates
├── docker-compose.yml # PostgreSQL + MCP Server + Dashboard
├── Dockerfile # Python 3.12 slim container
├── setup.sh # One-command auto-setup script
├── .env # Environment configuration
├── requirements.txt # Python dependencies
├── test_client.py # End-to-end test suite
├── test_versioning.py # Versioning & conflict resolution tests
└── test_prompts.py # MCP prompt discovery tests
⚙️ 配置
所有设置通过 .env:
| 变量 | 默认值 | 描述 |
|---|---|---|
POSTGRES_PORT |
4569 |
PostgreSQL主机端口 |
MCP_PORT |
4040 |
MCP服务器端口 |
DASHBOARD_PORT |
4041 |
仪表板UI端口 |
POSTGRES_USER |
mcp_user |
数据库用户 |
POSTGRES_PASSWORD |
mcp_secure_pass_2026 |
数据库密码 |
POSTGRES_DB |
mcp_memory |
数据库名称 |
EMBEDDING_PROVIDER |
ollama |
local / ollama / openai |
OLLAMA_PORT |
9050 |
捆绑的Ollama API的主机端口 |
OLLAMA_MODEL |
nomic-embed-text |
嵌入模型Ollama拉上第一个启动(~274MB) |
OLLAMA_DIM |
768 |
矢量维度——仅在切换到非768维模型时才更改 |
MAINTENANCE_INTERVAL_MINUTES |
30 |
后台调度程序间隔 |
局域网接入
替换 localhost 使用远程AI平台的机器IP:
http://192.168.x.x:4040/mcp # MCP Server
http://192.168.x.x:4041 # Dashboard
🗄️ 数据库模式
8张桌子 使用混合搜索索引:
┌─────────────────┐ ┌──────────────────┐
│ conversations │────▶│ messages │ Episodic memory
│ (importance, │ │ (role, content, │
│ outcome, │ │ embedding) │
│ embedding) │ └──────────────────┘
└─────────────────┘
┌─────────────────┐ ┌──────────────────┐
│ knowledge │────▶│knowledge_versions│ Semantic memory
│ (category, │ │ (version, diff, │ + version history
│ version, │ │ changed_by) │
│ embedding) │ └──────────────────┘
└─────────────────┘
┌─────────────────┐ ┌──────────────────┐
│short_term_memory │ │memory_conflicts │ Working memory
│ (TTL, context, │ │ (existing vs │ + conflict tracking
│ consolidated) │ │ conflicting) │
└─────────────────┘ └──────────────────┘
┌─────────────────┐ ┌──────────────────┐
│ code_snippets │ │ projects │ Procedural memory
│ (language, │ │ (tech_stack, │ + project context
│ embedding) │ │ architecture) │
└─────────────────┘ └──────────────────┘
指标: HNSW(向量相似性)+GIN(全文搜索)+B-tree(重要性、过期)用于亚毫秒混合查询。
🧪 测试
# Full test suite
python test_client.py
# Versioning & conflict resolution
python test_versioning.py
# MCP prompt discovery
python test_prompts.py
Manual verification commands
# Check services
docker compose ps
# PostgreSQL direct query
docker exec llm-mcp-postgres psql -U mcp_user -d mcp_memory \
-c "SELECT COUNT(*) as knowledge FROM knowledge;"
# MCP server logs
docker logs -f llm-mcp-server
# Dashboard logs
docker logs -f llm-mcp-dashboard
# Restart everything
docker compose restart
📋 Docker命令
| 命令 | 描述 |
|---|---|
docker compose up -d --build |
启动所有服务 |
docker compose down |
停止所有服务 |
docker compose logs -f mcp-server |
流式服务器日志 |
docker compose logs -f dashboard |
流式仪表板日志 |
docker compose down -v |
停下& 删除所有数据 ⚠️ |
🔒 安全
- 绑定到
127.0.0.1仅适用于本地:MCP_HOST=127.0.0.1 - 改变
POSTGRES_PASSWORD生产中 - 添加带有TLS的反向代理(nginx/Caddy)以进行远程访问
- 默认情况下无身份验证——专为本地/可信网络使用而设计
🗺️ 路线图
- [x] 基于pgvector嵌入的语义搜索
- [x] 自动对话摘要(压缩)
- [x] 内存过期和存档策略
- [x] 后台维护调度程序
- [x] 多层记忆(短期、语义、情景、程序)
- [x] 重要性评分和基于时间的衰减
- [x] 一个命令自动设置脚本
- [x] 内存版本控制和更改跟踪
- [x] 跨平台冲突解决
- [x] 具有实时可视化功能的Web仪表板
- [x] 自动注入行为指令
- [x] MCP提示工作流
- []用于多用户的身份验证/API密钥
- []关于新记忆的Webhook通知
- []用户之间的内存共享
- []云托管选项(不需要Docker)
- []移动伴侣应用程序
🤝 贡献
- 叉子 存储库
- 创建 特征分支(
git checkout -b feature/amazing-feature) - 提交 您的更改(
git commit -m 'Add amazing feature') - 推 到分行(
git push origin feature/amazing-feature) - 打开 拉取请求
欢迎所有贡献——功能、错误修复、文档、翻译。
📄 许可证
MIT许可证——见 许可证 了解详情。
⭐ 如果这个项目能让你避免在人工智能面前重复自己,那就给它一颗星吧!
内置于❤️ 通过 兰杰约蒂152
别再重复了。让你的AI共享一个大脑。
如果你觉得这很有用,可以考虑与使用多种人工智能工具的其他开发人员分享。