fleet-memory/mcp-server
RCLL 0af516ae69 fix(mcp): enforce recall limit, align server version, scope the client claim
Three things found by actually running the server over stdio against a live backend
instead of describing it.

1. recall ignored 'limit'. The backend treats it as a retrieval hint and returns
   everything inside its own token budget — 113 facts, 43 KB of JSON, for a request
   that asked for 2. The tool's own description ('Max results') was therefore false,
   and every recall spent roughly 10k tokens of the caller's context. The MCP layer
   now enforces the requested limit and reports 'N of M' when it truncated:
   limit=2 goes from 43541 to 1000 chars.

2. serverInfo.version said 1.0.0 while package.json and server.json say 0.1.0. The
   MCP registry validates the resolved package against the manifest, so a version
   that disagrees with the tarball is a review failure.

3. The README claimed 'Claude Code, OpenClaw, Cursor, etc.' None of those was tested.
   Replaced with what was measured — MCP 2025-06-18, initialize/tools/list/tools/call
   round-trip, memory_recall returning real results over stdio — plus the Claude Code
   config we actually run.
2026-08-24 08:46:24 +03:00
..
package-lock.json feat(mcp): RCLL MCP server and MCP-registry manifest 2026-08-23 23:50:03 +03:00
package.json feat(mcp): RCLL MCP server and MCP-registry manifest 2026-08-23 23:50:03 +03:00
README.md chore: default bank rcll-main, announce it, move split tool out of the root 2026-08-24 08:28:28 +03:00
server.js fix(mcp): enforce recall limit, align server version, scope the client claim 2026-08-24 08:46:24 +03:00

RCLL MCP Server

Standalone MCP server that exposes RCLL memory tools to any MCP-compatible client (Claude Code, OpenClaw, etc). RCLL is self-hosted, hierarchical shared memory for a team of AI agents — rooms for per-agent vs shared recall, L0L3 depth, pgvector under the hood.

RCLL — team memory for agent fleets. Built on Hindsight (github.com/vectorize-io/hindsight, MIT).

RCLL is a fork of vectorize-io/hindsight (MIT). It keeps Hindsight's storage engine and adds rooms — shared, isolated memory for a team of agents — plus a hierarchical depth model (L0L3). The room/hall/layer taxonomy is prior art in the hierarchical-memory space; the implementation here is our own.

Tools

Tool Description
memory_retain Save memories with room/hall/layer classification
memory_recall Scoped semantic search with room filtering
memory_reflect Deep reasoning + synthesis over stored memories
memory_compress Create closet summaries from accumulated facts
memory_bridge Cross-bank tunnels between related memories

Quick Start

cd mcp-server
npm install
RCLL_URL=http://localhost:5100 node server.js

Claude Code

Add to ~/.claude/mcp.json:

{
  "mcpServers": {
    "rcll": {
      "command": "npx",
      "args": ["-y", "rcll-mcp"],
      "env": {
        "RCLL_URL": "http://localhost:5100",
        "RCLL_BANK": "my-agent-bank"
      }
    }
  }
}

Environment Variables

Variable Default Description
RCLL_URL http://127.0.0.1:5100 RCLL backend base URL
RCLL_BANK rcll-main Default memory bank ID. Set it explicitly.

Migrating from hindsight-mempalace-mcp

That package defaulted to bank mempalace-main. rcll-mcp defaults to rcll-main, so an install that never set the variable would open a different, empty bank — which reads as "the update erased my memory". It does not: the old bank is still there.

Set RCLL_BANK=mempalace-main to keep reading it, or move the contents into a new bank first. When RCLL_BANK and MEMPALACE_BANK are both unset, the server prints which bank it defaulted to on stderr rather than picking one silently.

Deprecated (still read, with a notice on stderr)

Installs created before the rebrand keep working — these are used only when the RCLL_* equivalent is unset, and they will be dropped in a future major.

Legacy variable Replaced by
HINDSIGHT_URL RCLL_URL
MEMPALACE_BANK RCLL_BANK

Memory Taxonomy

Rooms (topics): auth, pipeline, schema, infrastructure, ui, api, deployment, monitoring, agent, general

Halls (knowledge types — the hall field): fact, event, decision, preference, discovery, procedure, warning

Layers (depth):

  • L0 — Surface / identity (always at hand)
  • L1 — Critical (recalled by default)
  • L2 — Session (default for new memories)
  • L3 — Deepest burrow / archive (deep search only, compressed into closets)