Self-evolving memory system for AI agents
A MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. Self-evolving memory system for AI agents.
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.
Once A is connected, these are the calls the assistant has available:
add_memory_note — Store new knowledge (async, returns immediately)search_memories — Semantic search across all memoriessearch_memories_agentic — Search + follow graph connectionssearch_memories_by_time — Search within a time rangeread_memory_note — Get full details (supports bulk reads)update_memory_note — Modify existing memorydelete_memory_note — Remove a memorycheck_task_status — Check async task completionUninstall — The Uninstall tool exposed by this servera-mem on PyPI is all you need. Most clients run it directly, so configuration is a few lines and a restart.
You will need 5 environment variables: LLM_BACKEND, LLM_MODEL, OPENAI_API_KEY, CHROMA_DB_PATH, OPENROUTER_API_KEY. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Among the knowledge and memory options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. A's toolset — add_memory_note, search_memories, search_memories_agentic and 6 more — is a fair guide to whether it matches your workflow. It is maintained by DiaaAj; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| 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 |
| Uninstall | The Uninstall tool exposed by this server. |
{
"mcpServers": {
"a-mem": {
"command": "uvx",
"args": ["a-mem"],
"env": {
"LLM_BACKEND": "your-value",
"LLM_MODEL": "your-value",
"OPENAI_API_KEY": "your-value",
"CHROMA_DB_PATH": "your-value",
"OPENROUTER_API_KEY": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| LLM_BACKEND | Configuration value read at startup. | Optional |
| LLM_MODEL | Configuration value read at startup. | Optional |
| OPENAI_API_KEY | Credential the server authenticates with. | Yes |
| CHROMA_DB_PATH | Filesystem location the server is allowed to use. | Optional |
| OPENROUTER_API_KEY | Credential the server authenticates with. | Yes |
A knowledge graph your assistant keeps between sessions — entities, relations and observations that persist.
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Your workspace, on speaking terms with AI — search, read and write Notion pages and databases.
A structured scratchpad for hard problems — stepwise reasoning with revisions, branches and visible logic.
Symbol-level code navigation, refactoring and memory for coding agents — the IDE brain your assistant has been missing.
Chat with your second brain — search, read and write vault notes through the Local REST API.