A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server enabling persistent memory for Claude through a local knowledge graph - fork focused on local development
Persistent memory for AI models through a local knowledge graph.
Store and retrieve information across conversations using entities, relations, and observations. Works with Claude Code/Desktop and any MCP-compatible AI platform.
AIM stands for AI Memory - the core concept of this system. The three AIM elements provide clear organization and safety:
.aim directories: Keep AI memory files organized and easily identifiableaim_ tool prefixes: Group related memory functions together in multi-tool setups_aim safety markers: Each memory file starts with {"type":"_aim","source":"mcp-knowledge-graph"} to prevent accidental overwrites of unrelated JSONL filesThis consistent AIM naming makes it obvious which directories, tools, and files belong to the AI memory system.
.aim dir vs _aim file markerTwo different things with similar names:
.aim = Project-local directory name (MUST be named exactly .aim for project detection to work)_aim = File safety marker (appears inside JSONL files: {"type":"_aim","source":"mcp-knowledge-graph"})For project-local storage:
.aim in your project rootmy-project/.aim/memory.jsonlFor global storage (--memory-path):
~/yourusername/.aim/, ~/memories/, ~/Dropbox/ai-memory/, ~/Documents/ai-data/File Location Priority:
.aim - Uses .aim/memory.jsonl (project-local)memory-work.jsonl, memory-personal.jsonlSafety System:
{"type":"_aim","source":"mcp-knowledge-graph"}The master database is your primary memory store - used by default when no specific database is requested. It's always named default in listings and stored as memory.jsonl.
work, personal, health) for organizing specific topics.aim directoriesAdd to your claude_desktop_config.json or .claude.json. Two common approaches:
Option 1: Default .aim directory (simple)
{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/.aim"
]
}
}
}
Option 2: Dropbox/cloud sync (portable)
For accessing memories across multiple machines, use a synced folder. This is how the author of this MCP server keeps his own memories:
{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/Dropbox/ai-memory"
]
}
}
}
This creates memory files in your specified directory:
memory.jsonl - Master Database (default for all operations)memory-work.jsonl - Work databasememory-personal.jsonl - Personal databaseIn any project, create a .aim directory:
mkdir .aim
Now memory tools automatically use .aim/memory.jsonl (project-local master database) instead of global storage when run from this project.
Once configured, AI models use the master database by default or can specify named databases with a context parameter. New databases are created automatically - no setup required:
// Master Database (default - no context needed)
aim_memory_store({
entities: [{
name: "John_Doe",
entityType: "person",
observations: ["Met at conference"]
}]
})
// Work database
aim_memory_store({
context: "work",
entities: [{
name: "Q4_Project",
entityType: "project",
observations: ["Due December 2024"]
}]
})
// Personal database
aim_memory_store({
context: "personal",
entities: [{
name: "Mom",
entityType: "person",
observations: ["Birthday March 15th"]
}]
})
// Master database in specific location
aim_memory_store({
location: "global",
entities: [{
name: "Important_Info",
entityType: "reference",
observations: ["Stored in global master database"]
}]
})
Global Setup:
/Users/yourusername/.aim/
├── memory.jsonl # Master Database (default)
├── memory-work.jsonl # Work database
├── memory-personal.jsonl # Personal database
└── memory-health.jsonl # Health database
Project Setup:
my-project/
├── .aim/
│ ├── memory.jsonl # Project Master Database (default)
│ └── memory-work.jsonl # Project Work database
└── src/
aim_memory_store - Store new memories (people, projects, concepts)aim_memory_add_facts - Add facts to existing memoriesaim_memory_link - Link two memories togetheraim_memory_search - Search memories by keywordaim_memory_get - Retrieve specific memories by exact nameaim_memory_read_all - Read all memories in a databaseaim_memory_list_stores - List available databasesaim_memory_forget - Forget memoriesaim_memory_remove_facts - Remove specific facts from a memoryaim_memory_unlink - Remove links between memoriescontext (optional) - Specify named database (work, personal, etc.). Defaults to master databaselocation (optional) - Force project or global storage location. Defaults to auto-detectionUse aim_memory_list_stores to see all available databases:
{
"project_databases": [
"default", // Master Database (project-local)
"project-work" // Named database
],
"global_databases": [
"default", // Master Database (global)
"work",
"personal",
"health"
],
"current_location": "project (.aim directory detected)"
}
Key Points:
Important: Always specify --memory-path to control where your memory files are stored.
Auto-approve read operations (recommended):
{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/.aim"
],
"autoapprove": [
"aim_memory_search",
"aim_memory_get",
"aim_memory_read_all",
"aim_memory_list_stores"
]
}
}
}
"File does not contain required _aim safety marker" error:
{"type":"_aim","source":"mcp-knowledge-graph"} as first line_aim marker or delete and let the system recreate itMemories going to unexpected locations:
.aim folder (uses project-local storage)--memory-path directoryaim_memory_list_stores to see all available databases and current locationls .aim/ or ls /Users/yourusername/.aim/ to see your memory filesToo many similar databases:
MIT
干净、强大、属于你的 AI Agent 平台 --AI agents, without the clutter.
Pocket Flow: Codebase to Tutorial
A Comprehensive Benchmark to Evaluate LLMs as Agents (ICLR'24)
npx CLI installing 100+ agents, commands, hooks, and integrations in one command