Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

ShipItAndPray/mcp-memory MCP server](https://glama.ai/mcp/servers/ShipItAndPray/mcp-memory/badges/score.svg)](https://glama.ai/mcp/servers/ShipItAndPray/mcp-memory) πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - Smart memory with exponential decay.

README.md

mcp-memory

Smart memory for AI agents. Memories decay, topics are frequency-weighted, one-time questions don't become obsessions.

Solves the Karpathy problem: "A single question from 2 months ago keeps coming up as a deep interest with undue mentions in perpetuity."

What's New in v0.2.0

  • Auto-categorization β€” no need to specify category, inferred from content
  • Semantic dedup β€” bigram similarity prevents duplicate memories
  • Preference supersede β€” "prefers dark mode" then "prefers light mode" updates, not duplicates
  • Recall auto-reinforces β€” searching for a topic counts as a mention
  • Recall auto-prunes β€” dead memories cleaned up on every read
  • System prompt injection β€” active memories provided via MCP prompts capability
  • Fuzzy forget β€” "VS Code" matches "User prefers VS Code for all editing"
  • 7 tools β†’ 4 tools β€” simpler API, higher adoption (backwards compatible)

In Action

Day 1: User asks 5 questions (Rust, dark mode, Python, job title, Haskell)

  #1 [ACTIVE] rel=1.000 cat=preference "User prefers dark mode in all editors"
  #2 [ACTIVE] rel=0.900 cat=fact       "User works as a senior software engineer"
  #3 [FADING] rel=0.500 cat=question   "User is building a Python web scraper"
  #4 [FADING] rel=0.300 cat=one-time   "User asked about Rust programming"
  #5 [FADING] rel=0.300 cat=one-time   "User asked what Haskell monads are"

Day 2-5: User mentions Python 4 more times β†’ auto-upgraded to "interest"

  #1 [ACTIVE] rel=2.658 mentions=5 cat=interest    "Python web scraper"
  #2 [ACTIVE] rel=1.000 mentions=1 cat=preference  "dark mode"
  #3 [ACTIVE] rel=0.900 mentions=1 cat=fact         "senior software engineer"
  #4 [FADING] rel=0.300 mentions=1 cat=one-time     "Rust" ← FADING, won't obsess
  #5 [FADING] rel=0.300 mentions=1 cat=one-time     "Haskell" ← FADING, won't obsess

After 60 days:
  Rust:   0.3 Γ— 0.5^(60/7) = 0.0008 β†’ DEAD (gone, as it should be)
  Python: 0.8 Γ— 0.5^(60/60) Γ— 3.32 = 1.329 β†’ STILL ACTIVE (real interest)

How It Fixes This

| Current LLM Memory | mcp-memory | |---------------------|------------| | Ask about Rust once β†’ mentioned forever | Ask once β†’ fades in 7 days | | All memories equal weight | Categories: one-time (7d), question (14d), interest (60d), preference (180d) | | No decay | Exponential decay β€” old memories naturally fade | | No frequency tracking | Mentioned 5+ times β†’ auto-upgrades from "question" to "interest" | | Keyword matching | Bigram similarity + relevance scoring | | Agent must decide to remember | Auto-categorizes from content patterns | | Contradicting preferences coexist | New preference supersedes old one | | Manual cleanup required | Auto-prunes dead memories on recall |

Install

"mcpServers": {
  "memory": {
    "command": "npx",
    "args": ["-y", "mcp-memory"]
  }
}

Tools

| Tool | What it does | |------|-------------| | remember | Store a memory. Auto-categorizes from content. Auto-deduplicates via bigram similarity. Supersedes conflicting preferences. | | recall | Retrieve memories ranked by relevance. Auto-reinforces top match. Auto-prunes dead memories. | | forget | Delete a memory by ID or fuzzy content match. | | inspect | Debug view: all memories with decay status, relevance scores, category breakdown, health. |

Auto-Categorization

No need to specify category β€” it's inferred from content:

| Content Pattern | Auto-Category | Decay | |----------------|---------------|-------| | "prefers X", "likes X", "always uses X" | preference | 180 days | | "works as X", "is a X", "lives in X" | fact | 365 days | | "actually X", "meant X", "wrong" | correction | 365 days | | "currently building", "working on" | context | 30 days | | "what is X", "how to X" | one-time | 7 days | | anything else | question | 14 days |

You can still override: remember(content: "...", category: "preference")

Examples

Auto-categorized preference: `` remember(content: "User prefers TypeScript over JavaScript") β†’ Auto-detected as "preference". Persists 180 days. ``

Semantic dedup: `` remember(content: "Works as data scientist at Google") remember(content: "Works as senior data scientist at Google") β†’ Second call reinforces first (80% similar). Keeps longer version. ``

Preference supersede: `` remember(content: "User prefers dark mode") remember(content: "User prefers light mode") β†’ Superseded: "dark mode" β†’ "light mode". One memory, not two. ``

Recall auto-reinforces: `` recall(query: "MCP servers") β†’ Returns matching memories AND counts this as a mention. mention_count goes from 1 β†’ 2 automatically. ``

Fuzzy forget: `` forget(content: "VS Code") β†’ Matches and removes "User prefers VS Code for all editing" ``

The Math

relevance = base_weight Γ— decay Γ— frequency_boost

where:
  base_weight  = category-specific (0.3 for one-time, 1.0 for preference)
  decay        = 0.5 ^ (age_days / halflife_days)
  freq_boost   = 1 + log2(mention_count)

A one-time question from 2 months ago: 0.3 Γ— 0.5^(60/7) Γ— 1.0 = 0.0003 β†’ effectively zero. Won't surface.

A preference mentioned 8 times, last week: 1.0 Γ— 0.5^(7/180) Γ— 4.0 = 3.89 β†’ top of every recall.

Backwards Compatibility

v0.2.0 still accepts the old v0.1.0 tool names (reinforce, prune, stats). They map to the new tools internally. No breaking changes.

License

MIT

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Databases servers.