Recall — persistent memory for agents

Persistent memory for AI agents. Free, no LLM, no SDK. Open Worker you can self-host in 2 commands.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
82%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~307Tokens (tool definitions)
~366 BTypical response size
Minimal attention impact (0.24% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "memory": {
      "url": "https://recall.notdown-app.workers.dev/mcp/{key}"
    }
  }
}

Remote endpoints

https://recall.notdown-app.workers.dev/mcp/{key}streamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡memory_save(key, value, tags)

Save or overwrite a memory under a key so you can recall it in a later session. Use for durable facts, decisions, preferences, and context you want to persist across context resets.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "Unique key/name for this memory."
    },
    "value": {
      "type": "string",
      "description": "The content to remember."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional tags for later search."
    }
  },
  "required": [
    "key",
    "value"
  ]
}
🟢memory_recall(key)

Retrieve a previously saved memory by its exact key.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    }
  },
  "required": [
    "key"
  ]
}
🟢memory_search(query, limit)

Search your saved memories by keyword across keys, values, and tags. Returns matching memories, newest first.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  },
  "required": [
    "query"
  ]
}
🟢memory_list(limit)

List the keys of all your saved memories, newest first.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number"
    }
  }
}
🔴memory_forget(key)

Delete a saved memory by key.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    }
  },
  "required": [
    "key"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools