MCP Server that brings long-term memory to AI coding tools via EverMemOS
Project description
evermemos-mcp
Universal long-term memory layer for AI coding assistants, powered by EverMemOS.
Built for the Memory Genesis Competition 2026 — Track 2: Platform Plugins
evermemos-mcp is an MCP (Model Context Protocol) server that gives any compatible AI client — Claude Code, Cursor, Cline, Cherry Studio, and more — persistent, cross-session memory. It bridges the gap between stateless AI conversations and the contextual awareness that real-world workflows demand.
Why This Exists
AI coding assistants forget everything between sessions. You explain your architecture, your preferences, your project context — and next session, it's all gone. evermemos-mcp solves this by providing a Memory → Reasoning → Action loop:
- Remember — Store decisions, preferences, and context as you work
- Recall — Retrieve relevant memories using hybrid search (keyword + vector + semantic)
- Brief — Get a full context restoration at the start of any new session
All memories are organized into isolated spaces (e.g. coding:my-app, study:ml-notes, chat:daily), so different projects and workflows never bleed into each other.
Demo
https://github.com/user-attachments/assets/demo-placeholder
Features
| Tool | Description |
|---|---|
list_spaces |
Discover available memory spaces |
remember |
Store information into long-term memory (async extraction) |
recall |
Search memories with 6 retrieval strategies (keyword, hybrid, vector, rrf, agentic, auto) |
briefing |
Get a structured context briefing: profile + episodes + facts + foresights |
forget |
Delete specific memories by ID (permanent, idempotent) |
fetch_history |
Paginate through memory timeline by type |
Key Capabilities
- Space isolation —
space_id(<domain>:<slug>) keeps memories separated by project or topic - Multi-space search — Query up to 10 spaces in a single
recallcall with automatic source attribution - Traceable citations — Every result includes
memory_type,snippet,timestamp,score, and optionalsource_message_id - Multi-user support — Optional
user_idfiltering for shared spaces - Conversation metadata sync — Automatic
conversation-metaintegration with EverMemOS Cloud - Robust error handling — Retry with backoff (429 / 5xx), GET body fallback for proxy/WAF compatibility, and structured error codes
Quick Start
Get your API key from EverMemOS Cloud.
Option A: Install from PyPI (recommended)
No clone needed — just add to your MCP client config:
{
"mcpServers": {
"evermemos-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["evermemos-mcp"],
"env": {
"EVERMEMOS_API_KEY": "your-key-here",
"EVERMEMOS_USER_ID": "mcp-user"
}
}
}
}
Or run directly from the command line:
uvx evermemos-mcp
Option B: Install from source
git clone https://github.com/tt-a1i/evermemos-mcp.git
cd evermemos-mcp
cp .env.example .env
# Edit .env and set your EVERMEMOS_API_KEY
uv run evermemos-mcp
MCP client config for source installs:
{
"mcpServers": {
"evermemos-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/evermemos-mcp",
"evermemos-mcp"
],
"env": {
"EVERMEMOS_API_KEY": "your-key-here",
"EVERMEMOS_USER_ID": "mcp-user"
}
}
}
}
Client-specific setup guides (Claude Code, Cursor, Cline, Cherry Studio) are in docs/05-client-integrations.md.
Architecture
MCP Client (Claude Code / Cursor / Cline / Cherry Studio)
│
│ MCP stdio
▼
┌─────────────────────────────┐
│ evermemos-mcp server │
│ ┌───────────────────────┐ │
│ │ 6 Tool Handlers │ │
│ └──────────┬────────────┘ │
│ ┌──────────▼────────────┐ │
│ │ Memory Service │ │ remember / recall / briefing / forget / fetch_history
│ └──────────┬────────────┘ │
│ ┌──────────▼────────────┐ │
│ │ Space Catalog Service │ │ space registry, metadata sync, cross-session recovery
│ └──────────┬────────────┘ │
│ ┌──────────▼────────────┐ │
│ │ EverMemOS HTTP Client│ │ auth, retries, rate-limit backoff, error normalization
│ └──────────┬────────────┘ │
└─────────────┼───────────────┘
│ HTTPS
▼
EverMemOS Cloud API
- Cloud-first — All memories live in EverMemOS Cloud. No local persistence, no state to lose.
- Process-local cache — Space catalog is cached in-memory for fast lookups, recovered from Cloud on startup.
- Async extraction —
rememberqueues content for AI-powered extraction. Memories become searchable after processing.
Use Cases
Coding: Persistent Architecture Context
You: remember that we chose PostgreSQL over MongoDB because our data is highly relational
[space_id: coding:my-saas]
-- next day, new session --
You: what database did we choose and why?
→ recall finds: "Chose PostgreSQL over MongoDB — highly relational data model"
Study: Cross-Session Learning Notes
You: remember: bias-variance tradeoff — high bias = underfitting, high variance = overfitting
[space_id: study:ml-notes]
-- later --
You: briefing for study:ml-notes
→ Returns: profile (technical skills), recent episodes, key facts, foresights
Chat: Personal Preferences
You: remember I prefer dark mode, vim keybindings, and concise responses
[space_id: chat:preferences]
-- any future session --
You: recall my UI preferences
→ "Prefers dark mode, vim keybindings, concise responses"
Configuration
| Variable | Default | Description |
|---|---|---|
EVERMEMOS_API_KEY |
(required) | EverMemOS Cloud API key |
EVERMEMOS_USER_ID |
mcp-user |
Default user identity |
EVERMEMOS_BASE_URL |
https://api.evermind.ai |
API endpoint |
EVERMEMOS_API_VERSION |
v0 |
API version |
EVERMEMOS_ENABLE_CONVERSATION_META |
true |
Sync conversation metadata |
EVERMEMOS_DEFAULT_TIMEZONE |
UTC |
Timezone for metadata |
EVERMEMOS_LLM_CUSTOM_SETTING_JSON |
— | Custom LLM extraction settings |
EVERMEMOS_USER_DETAILS_JSON |
— | User profile details for conversations |
flush Boundary Rules
flush controls when EverMemOS triggers memory extraction:
| Scenario | flush |
|---|---|
| Mid-conversation, more messages coming | false |
| End of session / topic switch / summary | true |
| Uncertain | true (safer default) |
Development
uv sync --group dev # Install dev dependencies
uv run ruff check # Lint
uv run pytest # Unit tests
EVERMEMOS_RUN_INTEGRATION_TESTS=true uv run pytest -m integration # Integration tests
CI runs on every push and PR via .github/workflows/ci.yml.
Documentation
| Document | Description |
|---|---|
docs/01-requirements.md |
Product requirements |
docs/02-architecture.md |
Technical architecture |
docs/03-demo-playbook.md |
Demo walkthrough |
docs/05-client-integrations.md |
Client setup guides |
CHANGELOG.md |
Version history |
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evermemos_mcp-0.4.1.tar.gz.
File metadata
- Download URL: evermemos_mcp-0.4.1.tar.gz
- Upload date:
- Size: 149.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adc361213fc24098b74d1be64bd07df2841d359819fda206a04739b20ffaa207
|
|
| MD5 |
198def4aef9c8e0bd9fc001ee78cf78d
|
|
| BLAKE2b-256 |
6bb3dca9178d2a7aa43b2a35401a8eb1db35867d8a470c393ceeeb8649453ca2
|
File details
Details for the file evermemos_mcp-0.4.1-py3-none-any.whl.
File metadata
- Download URL: evermemos_mcp-0.4.1-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62042f4404fdacf5bbcd518dc1a248f4e46c93d5e24f3e253ba15c9ef0be89db
|
|
| MD5 |
173e96414cd873ebc08576cc8cb04b7c
|
|
| BLAKE2b-256 |
4c07265f459bdf8ba275e9df341af31e15bc925d05439ef2171ab7a5698b348d
|