Back to Directory/Cloud Providers

Copilot Memory MCP

Persistent semantic memory for AI agents using local ChromaDB vector search. No cloud required.

Cloud ProvidersPythonv1.0.0

copilot-memory-mcp

License: MIT

Persistent semantic memory for GitHub Copilot in VS Code.

A local MCP server that gives Copilot durable, project-scoped memory across sessions. Memories are stored in an embedded ChromaDB vector database with all-MiniLM-L6-v2 embeddings, enabling semantic retrieval (RAG). Everything runs in a single Docker container — no cloud services required.


Why this exists

Copilot starts every session with a blank slate. This MCP server gives it a persistent, searchable knowledge base so decisions, conventions, and context carry over between sessions — all running locally in Docker.


Quick start

docker compose up -d

The server starts on http://localhost:8000/sse.

The .vscode/mcp.json already points Copilot at the server — no further VS Code configuration needed.

A sample config is provided in examples/vscode/mcp.json. Copy it to your project's .vscode/mcp.json.


MCP tools

ToolDescription
create_memoryStore a new memory with title, content, optional project scope and tags
search_memoriesSemantic vector search; filter by project and/or tags
update_memoryUpdate an existing memory by ID; re-embeds on change
delete_memoryPermanently delete a memory by ID
list_memoriesBrowse memories with pagination (lightweight, no content)

Copilot instructions & agents (examples)

Ready-to-use examples are in examples/. Copy the relevant file(s) into the root or .github/ of your own project.

FileConsumed by
AGENTS.mdOpenAI Codex, Claude Code, and most agent runtimes
CLAUDE.mdClaude Code (claude CLI)
.cursorrulesCursor (legacy format, project-root)
.cursor/rules/memory-tools.mdcCursor (modern per-rule format)
.github/copilot-instructions.mdGitHub Copilot in VS Code
.github/prompts/save-memory.prompt.mdVS Code /save-memory prompt
.github/prompts/recall-memory.prompt.mdVS Code /recall-memory prompt
.github/agents/memory.mdVS Code @memory custom agent mode

Architecture

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)

Project layout

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

Development

Install dependencies

pip install -e ".[dev]"

Run tests

pytest

Tests use an ephemeral in-memory ChromaDB and a mocked embedding function — no Docker, no model download required.

Run the server locally (no Docker)

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

Environment variables

VariableDefaultDescription
SENTENCE_TRANSFORMERS_HOME/app/modelsModel cache directory
CHROMA_PATH/data/chromaChromaDB persistence path
PORT8000HTTP server port

Copy .env.example to .env and adjust if needed.


License

MIT — see LICENSE.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
docker run -i --rm ghcr.io/labforgedev/copilot-memory-mcp:1.0.0

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-labforgedev-copilot-memory-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/labforgedev/copilot-memory-mcp:1.0.0"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

ghcr.io/labforgedev/copilot-memory-mcp:1.0.0docker

Compatible MCP Clients

Copilot Memory MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More