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.
|
||
|---|---|---|
| .. | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| server.js | ||
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, L0–L3 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 (L0–L3). 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)