copilot-memory-mcp
Provides a cross-session memory layer for GitHub Copilot agent mode, enabling persistent storage and recall of fixes, decisions, and context across sessions via SQLite and MCP tools.
Click on "Deploy 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., "@copilot-memory-mcpsearch memory for past fixes related to login timeout"
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.
copilot-memory-mcp (Python)
Cross-session memory layer for GitHub Copilot agent mode: SQLite for storage, an MCP server (Python SDK) for on-demand recall, and hooks for automatic capture — so a new Copilot session doesn't re-read the whole project or re-diagnose a bug you already fixed.
No Node required, and no LLM API key required either — Copilot does its
own summarizing (see "Capture strategy" below). The only third-party
dependency is mcp (the official Python SDK), and only server.py needs
it — db.py and cli.py are pure stdlib (sqlite3, subprocess), so the
hooks work with plain python3 and no virtualenv activation needed at
hook-run time if you point them at a venv's interpreter directly.
Capture strategy
Copilot itself calls save_memory before finishing a substantial task —
it's instructed to in copilot-instructions.md, and since it already has
full conversation context, it writes a better summary than any script
staring at a bare diff could. This needs no external API call.
The Stop hook is a safety net only: if a session ends without any
memory saved (Copilot forgot, or the task was trivial), it records a plain
"these files changed" fallback — no summarization, just enough to grep
later. It checks session_has_memory() first so it never duplicates a
proper entry Copilot already wrote.
Two files handle two different problems, deliberately kept separate:
PROJECT_MAP.md— static-ish reference (module structure, entry points). Always loaded, cheap, updated manually when structure changes..copilot-memory/memory.db(SQLite) — episodic fix/decision history. Only a short recent-index is always loaded; full detail is pulled viasearch_memoryonly when relevant.
Related MCP server: apex-memory
Setup
Copy this folder into your repo as
.copilot-memory-mcp/(or wherever — just keep paths in.vscode/mcp.jsonandhooks/hooks.jsonconsistent).Create a venv and install the one dependency:
cd .copilot-memory-mcp python3 -m venv venv venv/bin/pip install -r requirements.txtIf your VS Code
python3on PATH already hasmcpinstalled globally (e.g. viapip install --user mcp), you can skip the venv and usepython3directly in the configs below.Register the MCP server — copy
.vscode/mcp.jsoninto your repo's.vscode/folder (merge if one exists). If you used a venv, pointcommandat${workspaceFolder}/.copilot-memory-mcp/venv/bin/python3instead of the barepython3. Commit this file so your whole team gets the same server.Wire up the hooks —
hooks/hooks.jsonuses the sameSessionStart/Stophook schema as Claude Code / Copilot CLI. Hook registration location has moved around across VS Code releases, so confirm the exact spot for your version via the/hooksslash command in chat, orDeveloper: Open Agent Debug Panelto verify it's actually firing. Same venv note applies here if you used one — pointpython3at the venv's interpreter.Drop in the templates — copy
templates/PROJECT_MAP.mdand the contents oftemplates/copilot-instructions.mdinto your repo root and.github/copilot-instructions.mdrespectively. Fill inPROJECT_MAP.mdfor real (have Copilot draft it, then trim).Gitignore the database:
.copilot-memory/ __pycache__/It's personal/session history, not something to commit — unlike the MCP config, instructions, and project map, which should all be checked in.
Tools exposed to Copilot
save_memory— record a fix/decision, called by Copilot itself before finishing a substantial task (see "Capture strategy" above).search_memory— look up past fixes by keyword, filename, or error signature before re-investigating something.get_recent_context— short recent-fix index (normally already injected by theSessionStarthook, but callable directly too).
Schema
CREATE TABLE memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
session_id TEXT,
summary TEXT NOT NULL,
root_cause TEXT,
fix TEXT,
files_touched TEXT, -- JSON array
error_signature TEXT, -- normalized string for lookup
tags TEXT -- JSON array
);Notes / known rough edges
MCP for Copilot Business/Enterprise requires the org-level "MCP servers in Copilot" policy to be enabled — already the case for you, but worth knowing if you take this to other teams.
Hooks are a newer VS Code feature (landed 1.109, Jan 2026) — behavior and config location may still shift between releases. Re-check after any VS Code update if capture silently stops firing.
Quality of memory depends on Copilot actually following the instruction to call
save_memory— it's a prompt, not a guarantee. Skimsearch_memoryresults occasionally and see how many are taggedunsummarized/fallback; a high rate means the instruction isn't landing and may need to be more prominent or repeated closer to task completion.Verified locally:
db.pyround-trips insert/search/recent correctly, andserver.pystarts cleanly under themcpSDK.
This server cannot be deployed
Maintenance
Related MCP Connectors
Cross-tool persistent memory and context for AI assistants over MCP.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent memory for AI agents — log and recall conversation context over MCP.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA local, persistent memory system for AI coding assistants that stores decisions, patterns, and session context via MCP tools. It enables cross-session memory management using SQLite and optional vector search without external dependencies or cloud storage.18 npm64MIT
- AlicenseNot gradedqualityCmaintenancePersistent memory for AI coding agents. Enables agents to save and recall decisions, patterns, bugs, and context across sessions via an MCP server with local SQLite storage.4 npm2MIT
- AlicenseAqualityBmaintenanceProvides persistent, inspectable memory storage for AI agents using SQLite. Agents can store, recall, and search memories across sessions via three MCP tools.3MIT
- AlicenseNot gradedqualityCmaintenanceLocal, cross-agent memory for AI coding agents using a single SQLite file, enabling persistent sessions and durable facts shared across multiple MCP-compatible tools.8 npmMIT