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_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


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.1.tar.gz (149.6 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.1-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

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

Hashes for evermemos_mcp-0.4.1.tar.gz
Algorithm Hash digest
SHA256 adc361213fc24098b74d1be64bd07df2841d359819fda206a04739b20ffaa207
MD5 198def4aef9c8e0bd9fc001ee78cf78d
BLAKE2b-256 6bb3dca9178d2a7aa43b2a35401a8eb1db35867d8a470c393ceeeb8649453ca2

See more details on using hashes here.

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

Hashes for evermemos_mcp-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 62042f4404fdacf5bbcd518dc1a248f4e46c93d5e24f3e253ba15c9ef0be89db
MD5 173e96414cd873ebc08576cc8cb04b7c
BLAKE2b-256 4c07265f459bdf8ba275e9df341af31e15bc925d05439ef2171ab7a5698b348d

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