Skip to main content

MCP Server that brings long-term memory to AI coding tools via EverMemOS

Project description

evermemos-mcp

English | 简体中文

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:

  1. Remember — Store decisions, preferences, and context as you work
  2. Recall — Retrieve relevant memories using hybrid search (keyword + vector + semantic)
  3. 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 isolationspace_id (<domain>:<slug>) keeps memories separated by project or topic
  • Multi-space search — Query up to 10 spaces in a single recall call with automatic source attribution
  • Traceable citations — Every result includes memory_type, snippet, timestamp, score, and optional source_message_id
  • Multi-user support — Optional user_id filtering for shared spaces
  • Conversation metadata sync — Automatic conversation-meta integration 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 extractionremember queues 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_DEFAULT_SPACE (auto) Default space_id. If unset, auto-detected from git remote as coding:<repo-name>
EVERMEMOS_LLM_CUSTOM_SETTING_JSON Custom LLM extraction settings
EVERMEMOS_USER_DETAILS_JSON User profile details for conversations

Space Auto-Detection

When space_id is omitted from remember or recall, the server automatically infers a default from:

  1. EVERMEMOS_DEFAULT_SPACE environment variable (if set)
  2. Git remote origin URL → coding:<repo-name> (e.g. coding:my-saas)

This means inside a git project, you can simply call remember without specifying a space — memories are automatically routed to the right place.

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
docs/auto-memory-prompt.md Auto-memory prompt templates for CLAUDE.md / Cursor / Cline
CHANGELOG.md Version history

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evermemos_mcp-0.4.2.tar.gz (156.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evermemos_mcp-0.4.2-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file evermemos_mcp-0.4.2.tar.gz.

File metadata

  • Download URL: evermemos_mcp-0.4.2.tar.gz
  • Upload date:
  • Size: 156.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for evermemos_mcp-0.4.2.tar.gz
Algorithm Hash digest
SHA256 5110b3e7d2616a2507e3e6acc34077827102c0292af628dbd7b4657224ea6059
MD5 c9661680365fcf567a5a46d6d551b911
BLAKE2b-256 adf4829cbfad7e099d1d0b36d39f9e9f0618bf9c89510faec8d717ed6a706dad

See more details on using hashes here.

File details

Details for the file evermemos_mcp-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: evermemos_mcp-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for evermemos_mcp-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 54806dc09cedb89d1a8c7481871b6c7486e33fe5071aeb2e0fd83264b120070f
MD5 d29261b30c9add93a27152d99fcef4c0
BLAKE2b-256 c0f324eade2980c928b14ec95c5478b440351507a00780d2bb4fc849b3891855

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page