Claude Memory MCP Server

Claude Memory MCP Server

Enables persistent memory for Claude Code sessions by recording observations and building knowledge graphs for cross-session learning and domain knowledge management.

Category
Visit Server

README

Claude Memory MCP Server

A Model Context Protocol (MCP) server that provides persistent memory for Claude Code sessions. Records observations, builds knowledge graphs, and enables cross-session learning.

Quick Start

1. Clone the repository

# Clone to a permanent location (e.g., ~/tools or /opt)
git clone https://github.com/eliasonAdvising/claude-memory-mcp.git ~/tools/claude-memory-mcp
cd ~/tools/claude-memory-mcp
uv sync

2. Add to your project

Create or edit .mcp.json in your project root:

{
  "mcpServers": {
    "memory": {
      "command": "uv",
      "args": ["--directory", "/home/YOUR_USER/tools/claude-memory-mcp", "run", "claude-memory"],
      "env": {
        "MEMORY_DIR": ".claude/memory"
      }
    }
  }
}

Important: Replace /home/YOUR_USER/tools/claude-memory-mcp with the actual path where you cloned the repo.

3. Restart Claude Code

The MCP server loads when Claude Code starts. After adding the configuration, restart Claude Code to activate the memory tools.

4. Verify installation

In Claude Code, the memory tools should now be available. Try:

  • Ask Claude to "add an observation about something you learned"
  • Ask Claude to "show the memory index"

Features

  • Observation Memory: Record discoveries, gotchas, decisions, and trade-offs
  • Knowledge Graph: Store domain concepts with typed relationships
  • Progressive Disclosure: Index shows what exists; fetch details on-demand
  • Cross-Session Learning: Memory persists across Claude Code sessions
  • Domain Agnostic: Works for any domain (programming, accounting, medicine, etc.)

Configuration

Environment Variable Default Description
MEMORY_DIR .claude/memory Directory for memory YAML files (relative to project root)
LOG_LEVEL INFO Logging level (DEBUG, INFO, WARNING, ERROR)

Memory Location Options

Per-project memory (recommended for most cases):

"env": { "MEMORY_DIR": ".claude/memory" }

Shared memory across projects:

"env": { "MEMORY_DIR": "/home/YOUR_USER/.claude-memory" }

Tools Reference

Observation Tools

Tool Description
memory_add_observation Record an observation (discovery, gotcha, decision, trade-off, etc.)
memory_get_observation Retrieve a specific observation by ID
memory_search_observations Search observations by keyword
memory_get_timeline Get observations around a specific point in time
memory_get_index Get progressive disclosure index (shows what exists, retrieval cost)

Knowledge Graph Tools

Tool Description
memory_add_concept Add a concept to a knowledge cluster
memory_get_concept Retrieve a concept and its details
memory_find_solutions Find concepts that solve a problem via graph traversal
memory_find_related Find related concepts via BFS traversal
memory_add_connection Add a typed relationship between concepts
memory_get_knowledge_index Get knowledge graph overview

Observation Types

Type Icon Use For
discovery šŸ’” New insights or learnings
gotcha šŸ”“ Traps, pitfalls, things that don't work as expected
decision 🟤 Choices made with reasoning
trade-off āš–ļø Compromises between competing concerns
problem-solution 🟔 Problem encountered and how it was solved
pattern-emerged ⚔ Recurring patterns noticed
tool-success šŸ”§ Tool usage that worked well
tool-failure āŒ Tool usage that failed
note šŸ“ General notes

Relationship Types

The knowledge graph supports typed relationships for conceptual (not just keyword) retrieval:

Relationship Meaning Example
resolved_by X is solved/fixed by Y "timeout_error" resolved_by "retry_with_backoff"
prevents X prevents Y from happening "input_validation" prevents "sql_injection"
causes X causes Y "memory_leak" causes "oom_crash"
enables X makes Y possible "async_io" enables "concurrent_requests"
requires X needs Y first "deployment" requires "passing_tests"
depends_on X depends on Y (context-sensitive) "feature_x" depends_on "api_v2"
is_a X is a type of Y "postgresql" is_a "relational_database"
part_of X is a component of Y "auth_middleware" part_of "api_gateway"
related_to X and Y are connected "caching" related_to "performance"
contrasts_with X is an alternative to Y "rest_api" contrasts_with "graphql"

Memory File Structure

.claude/memory/
ā”œā”€ā”€ observations.yaml    # Session observations with metadata
└── knowledge.yaml       # Knowledge graph with clusters and connections

Both files are YAML for human readability and LLM-native processing.

Usage Examples

Recording a discovery

"Claude, I just learned that the API rate limits reset at midnight UTC, not per-request.
Please record this as a discovery."

Finding solutions to a problem

"What solutions do we have for handling rate limit errors?"

Claude will use memory_find_solutions to traverse the knowledge graph.

Building domain knowledge

"Add a concept: In our accounting system, journal entries must balance (debits = credits).
This is part of the double-entry bookkeeping cluster."

Adding to Multiple Projects

You only need to clone the repository once. Then add the .mcp.json configuration to each project where you want memory.

Each project gets its own memory (stored in .claude/memory/ within that project), unless you configure a shared MEMORY_DIR.

Troubleshooting

Tools not appearing

  1. Check that .mcp.json is in your project root
  2. Verify the path to claude-memory-mcp is correct
  3. Restart Claude Code

Memory not persisting

  1. Check MEMORY_DIR path exists and is writable
  2. Look for error messages in Claude Code output

"uv: command not found"

Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured