PluginBench
MCP Server
Maintained
MIT

io.github.DiaaAj/a-mem-mcp MCP Server

io.github.DiaaAj/a-mem-mcp

Self-evolving memory system that organizes knowledge into a Zettelkasten-style graph for coding agents.

What is the io.github.DiaaAj/a-mem-mcp MCP server?

A-MEM is a self-evolving memory system for coding agents that automatically organizes knowledge into a Zettelkasten-style graph with dynamic relationships. Unlike simple vector stores, memories evolve and connect over time through semantic search and graph traversal. It integrates with Claude Code and other MCP-compatible agents.

A-MEM stores and retrieves knowledge for AI agents by combining semantic search with graph-based memory evolution. When you add a memory, the system extracts keywords and context, finds semantically similar existing memories, and automatically strengthens connections. This creates a knowledge graph that grows smarter over time, helping agents recall relevant context and avoid redundant work.

How to install io.github.DiaaAj/a-mem-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • LLM_BACKEND

    LLM backend to use (openai, ollama, sglang, or openrouter)

  • LLM_MODEL

    LLM model name (e.g., gpt-4o-mini, llama2, etc.)

  • OPENAI_API_KEY
    required
    secret

    OpenAI API key (required if LLM_BACKEND=openai)

  • EMBEDDING_MODEL

    Sentence transformer model for embeddings

  • CHROMA_DB_PATH

    ChromaDB storage directory path

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "a-mem-mcp": {
      "command": "uvx",
      "args": [
        "a-mem"
      ],
      "env": {
        "LLM_BACKEND": "<YOUR_LLM_BACKEND>",
        "LLM_MODEL": "<YOUR_LLM_MODEL>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "EMBEDDING_MODEL": "<YOUR_EMBEDDING_MODEL>",
        "CHROMA_DB_PATH": "<YOUR_CHROMA_DB_PATH>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • add_memory_note — Store new knowledge asynchronously; returns immediately with a task ID.
  • search_memories — Perform semantic search across all memories.
  • search_memories_agentic — Search with graph traversal to follow connections between related memories.
  • search_memories_by_time — Search memories within a specified time range.
  • read_memory_note — Retrieve full details of a memory; supports bulk reads.
  • update_memory_note — Modify an existing memory.
  • delete_memory_note — Remove a memory.
  • check_task_status — Check the completion status of async tasks.

Use cases

  • Store and retrieve architectural decisions and code patterns across projects
  • Build a searchable knowledge base of authentication flows, database schemas, and API designs
  • Automatically link related memories to surface context during coding
  • Maintain project-specific or global memory across multiple codebases
  • Reduce token usage by peeking at lightweight metadata before drilling into full memory details

io.github.DiaaAj/a-mem-mcp MCP server FAQ

What is A-MEM?

A-MEM is a self-evolving memory system for coding agents that organizes knowledge into a graph structure. Unlike simple vector stores, it automatically finds related memories and strengthens connections over time, creating a smarter knowledge base.

Is A-MEM free?

Yes, A-MEM is open-source and free to use. You can run it locally with free backends like Ollama, or use paid LLM backends like OpenAI or OpenRouter for better quality.

How do I install A-MEM in Claude Code?

Run `pip install a-mem`, then `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-...`. A session-start hook installs automatically.

What LLM backends does A-MEM support?

A-MEM supports OpenAI, Ollama (local), OpenRouter (100+ models), and sglang. You configure the backend via environment variables.

Where is memory stored?

By default, memory is stored per-project in `./chroma_db`. You can set `CHROMA_DB_PATH` to share memory globally across projects.

Do I need an API key?

Only if using a paid backend like OpenAI or OpenRouter. For local inference, use Ollama (free) instead.

README (reference)

Source of truth, from the repository.

A-MEM: Self-evolving memory for coding agents

<p align="center"> <a href="https://pypi.org/project/a-mem/"><img src="https://img.shields.io/pypi/v/a-mem" alt="PyPI version"></a> <a href="https://pypi.org/project/a-mem/"><img src="https://img.shields.io/pypi/dm/a-mem" alt="PyPI downloads"></a> <a href="https://registry.modelcontextprotocol.io/?q=io.github.DiaaAj%2Fa-mem-mcp"><img src="https://img.shields.io/badge/MCP-Registry-blue" alt="MCP Registry"></a> </p>

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.

<img src="/Figure/demo.gif">

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:

ToolDescription
add_memory_noteStore new knowledge (async, returns immediately)
search_memoriesSemantic search across all memories
search_memories_agenticSearch + follow graph connections
search_memories_by_timeSearch within a time range
read_memory_noteGet full details (supports bulk reads)
update_memory_noteModify existing memory
delete_memory_noteRemove a memory
check_task_statusCheck 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

VariableDescriptionDefault
LLM_BACKENDopenai, ollama, sglang, openrouteropenai
LLM_MODELModel namegpt-4o-mini
OPENAI_API_KEYOpenAI API key—
EMBEDDING_MODELSentence transformer modelall-MiniLM-L6-v2
CHROMA_DB_PATHStorage directory./chroma_db
EVO_THRESHOLDEvolution trigger threshold100

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

Related MCP servers

DEDeadlatch logo

Deadlatch

Active

Local advisory pre-trade risk gate for agents. Never places orders.

0
Python
MIT
View repository →

Dice MCP: Search for tech jobs on Dice.com

Remote MCP server to enrich company profiles with structured B2B data and confidence scores.

0
TypeScript
View repository →

Servidor MCP que permite ejecutar tests de Godot con GUT desde cualquier IA

0
Python
View repository →

RPG Maker MV Ultimate: AI copilot to generate, edit and understand RPG Maker MV projects (MCP)

6
TypeScript
MIT
View repository →

Governance and agentic-commerce policy tools for AI agents: spend, purchase and charter controls.

View repository →