Labsco
tverney logo

mcp.gd

from tverney

Persistent memory for AI agents. Store and retrieve files via 14 MCP tools with OAuth 2.0 auth. Free 10GB tier.

πŸ”₯πŸ”₯FreeQuick setup

A Filesystem MCP for Agent Memory

mcp-agent-memory MCP server

MCP server that exposes agent-memory-daemon to any MCP-compatible client β€” Kiro (CLI & IDE), Claude Desktop, Cursor, and others.

The daemon does the thinking (consolidation + extraction); this server is a thin filesystem bridge so agents can read, append, and search memory through the Model Context Protocol.

<img width="640" height="351" alt="output" src="https://github.com/user-attachments/assets/95fde776-32f4-4f3c-ad82-70385165bde6" />

How it fits together

Copy & paste β€” that's it
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     MCP/stdio     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     filesystem      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚ Kiro / Claudeβ”‚ ◄───────────────► β”‚ mcp-server-memory  β”‚ ◄─────────────────► β”‚ agent-memory-daemon    β”‚
 β”‚   / Cursor   β”‚                   β”‚  (this package)    β”‚   ~/.agent-memory/   β”‚  (runs in background)  β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • The MCP server reads/writes files under ~/.agent-memory/
  • The daemon watches the same directory and runs consolidation + extraction passes
  • They never talk to each other directly β€” the filesystem is the contract

Tools exposed

memory_read

Read the agent memory index (MEMORY.md) and optionally specific topic files. Call with no arguments to load only the lightweight index (cheap). Pass topics only when you need the full content of a specific topic file.

ParameterTypeRequiredDescription
topicsstring[]NoTopic file names to load in full (e.g., ["preferences", "projects"]). Omit to return the index only.

memory_append_session

Append a session summary to the sessions directory. The daemon will later extract durable memories from it. Call this at the end of meaningful exchanges. Keep summaries focused on durable findings and decisions (target 300–800 tokens), not play-by-play β€” longer summaries cost more during consolidation.

ParameterTypeRequiredDescription
contentstringYesMarkdown-formatted session summary. Use structured headers and bullets for better extraction; avoid verbose prose.
sourcestringNoOrigin tag, e.g., "kiro", "claude-desktop"

memory_search

Search memory files for a substring. Use this to recall specific facts without loading everything.

ParameterTypeRequiredDescription
querystringYesThe substring to search for across all memory files.

CLI reference

Copy & paste β€” that's it
mcp-agent-memory                       # run as an MCP server (normal mode β€” clients spawn it)
mcp-agent-memory --setup               # first-time interactive setup
mcp-agent-memory --configure           # re-run most steps; can add/remove the daemon later
mcp-agent-memory --remove              # interactive uninstall (backup memory, clean configs)

# macOS LaunchAgent control:
mcp-agent-memory --daemon status       # is the daemon running?
mcp-agent-memory --daemon start        # load and start
mcp-agent-memory --daemon stop         # unload (keeps the plist)
mcp-agent-memory --daemon restart      # stop + start
mcp-agent-memory --daemon remove       # unload and delete the plist

--remove preserves other entries in client MCP configs β€” only the memory key is deleted. By default it backs up ~/.agent-memory/ to a timestamped .bak-* directory so you can restore your consolidated memories.

Configure clients manually

The --setup and --configure wizards handle this for you. This section is for users who want to wire things up by hand.

Kiro (CLI and IDE)

Edit ~/.kiro/settings/mcp.json:

Copy & paste β€” that's it
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "mcp-agent-memory"],
      "env": {
        "MEMORY_DIRECTORY": "~/.agent-memory/memory",
        "SESSION_DIRECTORY": "~/.agent-memory/sessions"
      },
      "disabled": false,
      "timeout": 30000,
      "autoApprove": ["memory_read", "memory_search", "memory_append_session", "memory_daemon_status"]
    }
  }
}

Why autoApprove? All memory tools are local-only filesystem operations β€” they read/write markdown files under ~/.agent-memory/ and never make network calls. Adding them to autoApprove lets Kiro call them without prompting you for confirmation each time, which is essential for the seamless "read memory at session start" experience.

Then ask Kiro: "Read my memory index." or "Remember this: I prefer pnpm over npm."

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

Copy & paste β€” that's it
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "mcp-agent-memory"],
      "env": {
        "MEMORY_DIRECTORY": "~/.agent-memory/memory",
        "SESSION_DIRECTORY": "~/.agent-memory/sessions"
      },
      "autoApprove": ["memory_read", "memory_search", "memory_append_session", "memory_daemon_status"]
    }
  }
}

Restart Claude Desktop. The memory_* tools will appear.

Cursor

Add to ~/.cursor/mcp.json with the same server block (including autoApprove).

Environment variables

VariableDefaultDescription
MEMORY_DIRECTORY~/.agent-memory/memoryWhere the daemon stores consolidated memory files
SESSION_DIRECTORY~/.agent-memory/sessionsWhere agent-written session summaries land

Both paths must match what your agent-memory-daemon config uses.

Recommended agent prompt

Tell your agent to call memory_read at the start of a conversation and memory_append_session at the end. Example steering rule for Kiro (~/.kiro/steering/memory.md):

Copy & paste β€” that's it
At the start of every session, call memory_read (no arguments) to load my memory
index. Only pass `topics` when the task genuinely needs the full content of a
specific topic file.

When you learn something durable about me, my projects, or my preferences, call
memory_append_session with a concise markdown summary. Target 300-800 tokens,
use structured headers and bullets (not prose), and focus on durable findings
and decisions β€” not play-by-play. Verbose summaries cost more during the
daemon's consolidation pass.

License

MIT