持久语义记忆服务

为GitHub Copilot在VS Code中提供持久语义记忆,支持本地Docker容器运行,实现项目范围内的语义检索和记忆存储。

  • by LabForgeDev
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 LabForgeDev/copilot-memory-mcp

使用说明

副驾驶存储器mcp

VS Code中GitHub Copilot的持久语义记忆。

一个本地MCP服务器,在会话之间为Copilot提供持久的、项目范围的内存。内存存储在嵌入式ChromaDB矢量数据库中 all-MiniLM-L6-v2 嵌入,实现语义检索(RAG)。一切都在一个Docker容器中运行,不需要云服务。


为什么存在

副驾驶每次训练都是从一张白纸开始的。这个MCP服务器为它提供了一个持久的、可搜索的知识库,因此决策、约定和上下文在会话之间传递——所有这些都在Docker中本地运行。


快速开始

docker compose up -d

服务器启动于 http://localhost:8000/sse.

这 .vscode/mcp.json 已经将Copilot指向服务器——不需要进一步的VS代码配置。

示例配置提供在 examples/vscode/mcp.json。将其复制到项目的 .vscode/mcp.json.


MCP工具

工具 说明
create_memory 存储带有标题、内容、可选项目范围和标签的新内存
search_memories 语义向量搜索;按项目和/或标签筛选
update_memory 按ID更新现有内存;在变化中重新嵌入
delete_memory 按ID永久删除内存
list_memories 使用分页浏览记忆(轻量级,无内容)

副驾驶说明和代理(示例)

现成的示例在 examples/.将相关文件复制到根目录或 .github/ 你自己的项目。

文件 已被占用
AGENTS.md OpenAI Codex、Claude Code和大多数代理运行时
CLAUDE.md 克劳德代码(claude CLI)
.cursorrules 游标(传统格式,项目根)
.cursor/rules/memory-tools.mdc 光标(符合规则的现代格式)
.github/copilot-instructions.md VS代码中的GitHub副本
.github/prompts/save-memory.prompt.md VS代码 /save-memory 提示
.github/prompts/recall-memory.prompt.md VS代码 /recall-memory 提示
.github/agents/memory.md VS代码 @memory 自定义代理模式

建筑

VS Code / Copilot
      │  MCP HTTP/SSE (port 8000)
      ▼
┌─────────────────────────────────┐
│  Docker Container               │
│                                 │
│  FastMCP Server (port 8000)     │
│    └── 5 MCP tools              │
│                                 │
│  sentence-transformers          │
│    └── all-MiniLM-L6-v2        │
│        (384-dim embeddings)     │
│                                 │
│  ChromaDB (embedded)            │
│    └── collection "memories"   │
└──────────┬──────────────────────┘
           │ Docker named volume
           ▼
    /data/chroma  (persisted DB)

项目布局

copilot-memory-mcp/
├── app/
│   ├── main.py              # FastMCP server, tool registration
│   ├── memory_store.py      # ChromaDB wrapper (CRUD + search)
│   ├── embeddings.py        # sentence-transformers loader + encode()
│   └── tools/
│       ├── create_memory.py
│       ├── search_memories.py
│       ├── update_memory.py
│       ├── delete_memory.py
│       └── list_memories.py
├── tests/
│   ├── test_memory_store.py
│   └── test_tools.py
├── Dockerfile
├── docker-compose.yml
└── pyproject.toml

发展

安装依赖项

pip install -e ".[dev]"

运行测试

pytest

测试使用一个临时内存ChromaDB和一个模拟的嵌入函数——不需要Docker,也不需要下载模型。

在本地运行服务器(无Docker)

pip install -e .
PYTHONPATH=. python app/main.py

环境变量

变量 默认值 描述
SENTENCE_TRANSFORMERS_HOME /app/models 模型缓存目录
CHROMA_PATH /data/chroma ChromaDB持久路径
PORT 8000 HTTP服务器端口

复制 .env.example 到 .env 必要时进行调整。


许可证

麻省理工学院——见 许可证.