Persistent AI memory for Cursor — powered by Supermemory.
Install from the Cursor Marketplace, then authenticate:
bunx cursor-supermemory@latest login- Session hooks — injects relevant memories at session start; saves conversation highlights at session end
- MCP tools — available in every Cursor AI session for explicit memory control
- Always-on rule — reminds the AI to use memory tools proactively
| Tool | Description |
|---|---|
supermemory_get_config |
Show current config, resolved container tags, and config file paths |
supermemory_set_config |
Update config at project or global scope |
supermemory_containers |
Show what user and project container tags resolve to |
supermemory_search |
Search memories by query |
supermemory_add |
Save new information to memory |
supermemory_list |
List stored memories |
supermemory_forget |
Delete a memory by id or content |
supermemory_profile |
Get your user profile summary |
All tools that accept a container argument support:
"user"(default) — personal memory, shared across all projects"project"— scoped to the current workspace- any custom string — used as a raw container tag
| Variable | Description |
|---|---|
SUPERMEMORY_API_KEY |
API key (overrides all other sources) |
SUPERMEMORY_USER_TAG |
Override the personal container tag |
SUPERMEMORY_PROJECT_TAG |
Override the project container tag |
CURSOR_USER_EMAIL |
Used to derive the user container tag |
User-wide defaults, applies to all projects.
{
"userContainerTag": "my-personal-tag",
"similarityThreshold": 0.3,
"maxMemories": 10,
"maxProjectMemories": 5,
"injectProfile": true
}Per-workspace overrides. Add to .gitignore if it contains an API key. Project config wins over global config.
{
"apiKey": "sm_...",
"projectContainerTag": "my-team-backend",
"userContainerTag": "my-personal-tag",
"similarityThreshold": 0.3,
"maxMemories": 10,
"maxProjectMemories": 5,
"injectProfile": true
}| Option | Description | Default |
|---|---|---|
apiKey |
Project-specific API key | — |
userContainerTag |
Override personal memory container | auto-derived from git email / machine id |
projectContainerTag |
Override project memory container | auto-derived from git root / cwd |
similarityThreshold |
Minimum similarity score for search results | 0.3 |
maxMemories |
Max project memories injected at session start | 10 |
maxProjectMemories |
Max project memories injected at session start | 5 |
injectProfile |
Whether to inject user profile at session start | true |
You can set these via the AI using supermemory_set_config, or create/edit the file manually.
By default, container tags are derived automatically:
- User tag — hashed from your git email,
CURSOR_USER_EMAIL, or machine id. Consistent across projects. - Project tag — hashed from your git repo root (or cwd). Consistent across team members on the same repo.
To share project memory with your team, set the same projectContainerTag in everyone's project config.
bun install
bun run build # compiles all dist/ files- Open this repo in Cursor — rules, commands, skills, and hooks are picked up from
.cursor-plugin. - Build:
bun run build - Use the local MCP server —
.cursor/mcp.jsonin this repo points todist/automatically. - Log in:
bun run src/cli.ts login - Restart Cursor after changing
.cursor/mcp.json.
To test in a different project, add the supermemory entry from .cursor/mcp.json to that project's MCP config with an absolute path to dist/mcp-server.js.