Skip to content

Works as a drop-in MCP server for cross-session memory (config-only, complements CLAUDE.md + session persistence) #44

Description

@samvallad33

Hi, thanks for building claw-code-agent. The pure-Python, zero-dependency angle is the part I keep coming back to.

I maintain Vestige (github samvallad33, Sam Valladares), so this is my own project, but I wanted to flag it because your MCP runtime already does the hard part. I read src/mcp_runtime.py and saw that you parse the standard mcpServers object out of .mcp.json / .claw-mcp.json and run stdio servers directly, so Vestige plugs in with config only and no code change on your side.

Vestige - Local-first cognitive memory MCP server for AI coding agents. FSRS-6 retention, prediction-error gating, active forgetting, spreading activation, 3D dashboard. Single Rust binary. npm install -g vestige-mcp-server.

To be clear about fit, this is complementary to what you already have, not a replacement. Your CLAUDE.md discovery, session persistence, and file-history replay (and the Session Memory Compact work) cover in-session and per-project memory well. Vestige sits next to that and handles cross-session memory: durable decisions, corrections, and failure-mode fixes that should survive across many sessions and projects, retrieved by relevance instead of replayed from a transcript. It runs locally and stores data on the user's machine, so it stays in line with the local-first, full-control posture of the repo.

It registers like any other stdio MCP server you already support:

{
  "mcpServers": {
    "vestige": {
      "command": "vestige-mcp-server",
      "args": [],
      "transport": "stdio"
    }
  }
}

Drop that in .mcp.json (or .claw-mcp.json) at the project root after npm install -g vestige-mcp-server, and it shows up under the MCP tab with its resources and tools, same as your existing stdio path. If a user prefers not to install globally, the command/args/env fields you already parse make it easy to point at a local binary instead.

Honest limits: it is a separate process and a Rust binary, so it is not the zero-dependency, single-language story your core has. That is a deliberate trade for the retention and forgetting model, and it is opt-in per project, so it does not touch anyone who does not add the config.

No action needed and feel free to close. If a short docs note about pairing an external memory MCP would be useful, I am happy to send a small PR in whatever shape you prefer. Thanks again.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions