Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
DiaaAj avatar

A Mem Mcp

  • 34 repo stars
  • Updated January 17, 2026
  • DiaaAj/a-mem-mcp

a-mem-mcp is a MCP server that gives AI coding agents a self-evolving, ChromaDB-backed memory layer with pluggable LLM backends.

About

a-mem-mcp is a Model Context Protocol server that implements a self-evolving memory system for AI agents. developers shipping with Claude Code, Codex, or Cursor install it when conversations keep losing decisions, preferences, and project facts across threads. The server runs over stdio from the PyPI package, persists vectors in ChromaDB, and uses your chosen LLM backend to organize and refine what gets remembered. You configure embedding model, storage path, and whether you call OpenAI, Ollama, SGLang, or OpenRouter. It fits the agent-tooling lane: not a standalone app feature, but durable context that makes every later coding session faster and more consistent.

  • Self-evolving memory store backed by ChromaDB with configurable local path (CHROMA_DB_PATH)
  • Embedding pipeline via sentence-transformers (default all-MiniLM-L6-v2)
  • LLM backends: openai, ollama, sglang, or openrouter with LLM_MODEL selection
  • stdio PyPI package identifier a-mem at version 0.2.1
  • OpenAI API key required when LLM_BACKEND=openai for memory consolidation

A Mem Mcp by the numbers

  • Data as of Jul 7, 2026 (Skillselion catalog sync)
terminal
claude mcp add --env LLM_BACKEND=YOUR_LLM_BACKEND --env LLM_MODEL=YOUR_LLM_MODEL --env OPENAI_API_KEY=YOUR_OPENAI_API_KEY --env EMBEDDING_MODEL=YOUR_EMBEDDING_MODEL --env CHROMA_DB_PATH=YOUR_CHROMA_DB_PATH a-mem -- uvx a-mem

Add your badge

Show developers this MCP server is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars34
Packagea-mem
TransportSTDIO
AuthRequired
Last updatedJanuary 17, 2026
RepositoryDiaaAj/a-mem-mcp

What it does

Give coding agents persistent, self-updating memory across sessions without rebuilding context from scratch each time.

Who is it for?

Best when you're running long-horizon agent workflows and want local vector storage and a choice of OpenAI or self-hosted LLM backends.

Skip if: Skip if you only need a single-session transcript or already centralize memory in a hosted product with its own MCP.

What you get

After you register the stdio server and set API keys, the agent can store and retrieve evolving memories so multi-session work stays aligned.

  • Registered stdio MCP server in your agent config
  • Persistent ChromaDB-backed memory the agent can read and update
  • Configurable embedding and LLM backend for memory operations

By the numbers

  • Server version 0.2.1 on PyPI identifier a-mem
  • 4 LLM_BACKEND options: openai, ollama, sglang, openrouter
  • Default embedding model all-MiniLM-L6-v2
README.md

A-MEM: Self-evolving memory for coding agents

PyPI version PyPI downloads MCP Registry

mcp-name: io.github.DiaaAj/a-mem-mcp

A-MEM is a self-evolving memory system for coding agents. Unlike simple vector stores, A-MEM automatically organizes knowledge into a Zettelkasten-style graph with dynamic relationships. Memories don't just get stored—they evolve and connect over time.

Currently tested with Claude Code. Support for other MCP-compatible agents is planned.

Quick Start

Install

pip install a-mem

Add to Claude Code

claude mcp add a-mem -s user -- a-mem-mcp \
  -e LLM_BACKEND=openai \
  -e LLM_MODEL=gpt-4o-mini \
  -e OPENAI_API_KEY=sk-...

That's it! A session-start hook installs automatically to remind Claude to use memory.

Note: Memory is stored per-project in ./chroma_db. For global memory across all projects, see Memory Scope.

Uninstall

a-mem-uninstall-hook   # Remove hooks first
pip uninstall a-mem

How It Works

t=0              t=1                t=2

                 ◉───◉             ◉───◉
 ◉               │                 ╱ │ ╲
                 ◉                ◉──┼──◉
                                     │
                                     ◉

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶
            self-evolving memory
  1. Add a memory → A-MEM extracts keywords, context, and tags via LLM
  2. Find neighbors → Searches for semantically similar existing memories
  3. Evolve → Decides whether to link, strengthen connections, or update related memories
  4. Store → Persists to ChromaDB with full metadata and relationships

The result: a knowledge graph that grows smarter over time, not just bigger.

Features

Self-Evolving Memory Memories aren't static. When you add new knowledge, A-MEM automatically finds related memories and strengthens connections, updates context, and evolves tags.

Semantic + Structural Search Combines vector similarity with graph traversal. Find memories by meaning, then explore their connections.

Peek and Drill Start with breadth-first search to capture relevant memories via lightweight metadata (id, context, keywords, tags). Then drill depth-first into specific memories with read_memory_note for full content. This minimizes token usage while maximizing recall.

MCP Tools

A-MEM exposes 8 tools to your coding agent:

Tool Description
add_memory_note Store new knowledge (async, returns immediately)
search_memories Semantic search across all memories
search_memories_agentic Search + follow graph connections
search_memories_by_time Search within a time range
read_memory_note Get full details (supports bulk reads)
update_memory_note Modify existing memory
delete_memory_note Remove a memory
check_task_status Check async task completion

Example Usage

# The agent calls these automatically, but here's what happens:

# Store a memory (returns task_id immediately)
add_memory_note(content="Auth uses JWT in httpOnly cookies, validated by AuthMiddleware")

# Search later
search_memories(query="authentication flow", k=5)

# Deep search with connections
search_memories_agentic(query="security", k=5)

Advanced Configuration

JSON Config

For more control, edit ~/.claude/settings.json (global) or .claude/settings.local.json (project):

{
  "mcpServers": {
    "a-mem": {
      "command": "a-mem-mcp",
      "env": {
        "LLM_BACKEND": "openai",
        "LLM_MODEL": "gpt-4o-mini",
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

Environment Variables

Variable Description Default
LLM_BACKEND openai, ollama, sglang, openrouter openai
LLM_MODEL Model name gpt-4o-mini
OPENAI_API_KEY OpenAI API key
EMBEDDING_MODEL Sentence transformer model all-MiniLM-L6-v2
CHROMA_DB_PATH Storage directory ./chroma_db
EVO_THRESHOLD Evolution trigger threshold 100

Memory Scope

  • Project-specific (default): Each project gets isolated memory in ./chroma_db
  • Global: Share across projects by setting CHROMA_DB_PATH=~/.local/share/a-mem/chroma_db

Alternative Backends

Ollama (local, free)

claude mcp add a-mem -s user -- a-mem-mcp \
  -e LLM_BACKEND=ollama \
  -e LLM_MODEL=llama2

OpenRouter (100+ models)

claude mcp add a-mem -s user -- a-mem-mcp \
  -e LLM_BACKEND=openrouter \
  -e LLM_MODEL=anthropic/claude-3.5-sonnet \
  -e OPENROUTER_API_KEY=sk-or-...

Hook Management (Claude Code)

The session-start hook reminds Claude to use memory tools. It installs automatically with Claude Code, but you can manage it manually:

a-mem-install-hook     # Install/reinstall hook
a-mem-uninstall-hook   # Remove hook completely

Python API

Use A-MEM directly in Python (works with any agent or application):

from agentic_memory.memory_system import AgenticMemorySystem

memory = AgenticMemorySystem(
    llm_backend="openai",
    llm_model="gpt-4o-mini"
)

# Add (auto-generates keywords, tags, context)
memory_id = memory.add_note("FastAPI app uses dependency injection for DB sessions")

# Search
results = memory.search("database patterns", k=5)

# Read full details
note = memory.read(memory_id)
print(note.keywords, note.tags, note.links)

Research

A-MEM implements concepts from the paper:

A-MEM: Agentic Memory for LLM Agents Xu et al., 2025 arXiv:2502.12110

Recommended MCP Servers

How it compares

MCP memory integration, not a one-off brainstorming or planning skill.

FAQ

Who is a-mem-mcp for?

and small-team developers using Claude Code, Cursor, or Codex who need persistent, updating agent memory across coding sessions.

When should I use a-mem-mcp?

Use it while building your agent stack when repeated context loss is slowing implementation and you are ready to configure ChromaDB plus an LLM backend.

How do I add a-mem-mcp to my agent?

Install the PyPI package a-mem, set transport stdio in your MCP config, and provide OPENAI_API_KEY (if using OpenAI), LLM_BACKEND, LLM_MODEL, EMBEDDING_MODEL, and CHROMA_DB_PATH.

AI & LLM Toolsagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.