Skip to main content

faf-memory-mcp

v0.1.1 — etch writes the file so memory survives the process. Plugin install matches live faf-memory@claude-community.

MCP server for .fafm — the Permanent Memory Layer (PML) for Claude Code, Cursor, Grok, and any MCP host.

Cross-vendor persistent memory in a file you can read. Offline-first. Your soul, your bytes.

What's New in 0.1.1

etch writes the file so memory survives the process. Plugin install matches live faf-memory@claude-community.

  • etch persists to $FAF_SOUL_PATH immediately (default ./soul.fafm).
  • Claude Code install: claude plugin install faf-memory@claude-community.
  • Full arc: CHANGELOG.

Wraps claude-fafm-sdk via fastmcp. Receipt: 400+× faster type-filter queries vs grep on a real 492-file AI memory corpus — falsifiable methodology at Wolfe-Jam/faf-memory-proof.

PyPI CI IANA Zenodo DOI DOI: Agents paper License: MIT

Why

Every AI session, your agent starts blank — no memory of what you decided yesterday, what worked, what was tried. The fix isn't another hosted memory service; it's a file the AI reads at session start and writes back to as it learns. That file is .fafm — IANA-registered, cross-vendor, and 996 KB / 49 ms cold-load for a 492-fact corpus (full numbers: the receipt).

This server is that file, over MCP. FAFA’s etch_memory / recall_memory is the hosted namepoint path on mcpaas. Complementary, not a second product.

Install

uvx faf-memory-mcp

Use in Claude Code (recommended)

Via the faf-memory plugin on claude-plugins-community:

claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install faf-memory@claude-community

Or in-session: /plugin install faf-memory@claude-community

Requires uv — the plugin launches this server with uvx.

Or wire .mcp.json directly:

{
  "faf-memory": {
    "command": "uvx",
    "args": ["faf-memory-mcp"]
  }
}

Tools

Tool What it does
etch(text, id?, type?, priority?, tags?) Write a durable fact and persist to $FAF_SOUL_PATH. O(1) dedup by id.
recall(query?, type?, tags?, min_priority?, limit?) Filter (substring + type + tags + priority floor) → rank by priority then recency.
list_facts() List ALL facts — no filter, no rank.
save_soul(path?) Write the soul to another path (etch already saves the default file).
load_soul(path?) Load a .fafm from disk, replacing the in-memory soul.

Configuration

Env var Default What
FAF_SOUL_NAMEPOINT @local Initial soul identifier
FAF_SOUL_PROFILE knowledge .fafm profile (knowledge or voice)
FAF_SOUL_PATH soul.fafm Default save/load path

Format

.fafm is IANA-registered as application/vnd.fafm+yaml (registered 2026-05-13). Sibling of .faf (application/vnd.faf+yaml, 2025-10-30).

How to know it's working

  • Your agent doesn't ask "what is this project?" twice in the same week.
  • recall("X") surfaces what you etched last session, not just this one.
  • The .fafm file grows readably — it's plain YAML, diff it like code.
  • Open the same .fafm in grok-faf-voice — same facts. Cross-vendor proven.

Tradeoff note

Biases toward deterministic recall (substring + type + tags + priority + recency) over semantic recall. For semantic/ranked recall + LLM smart-merge, see hosted namepoints in claude-fafm-sdk. Offline-first ≠ offline-only.

The FAF Memory cluster

Citation

Wolfe, J. (2026). Permanent Memory and Instant Recall: The .fafm Standard for Multi-Profile AI Agent Memory. Zenodo. https://doi.org/10.5281/zenodo.20348942

Wolfe, J. (2026). Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era. Zenodo. https://doi.org/10.5281/zenodo.21951641

License

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faf_memory_mcp-0.1.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

faf_memory_mcp-0.1.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file faf_memory_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: faf_memory_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for faf_memory_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7536a3019eb3d8e190da73f892d4e1fee88917b3e4c126f33a449a504685229c
MD5 3079d16e2ae919c8742fdffd5140ac4f
BLAKE2b-256 37c8cd0453063fca6530ed501cbbd18803eefdc7cc8bf434914d4bc9b2be92fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for faf_memory_mcp-0.1.1.tar.gz:

Publisher: pypi.yml on Wolfe-Jam/faf-memory-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faf_memory_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: faf_memory_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for faf_memory_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4be532dfdcef02db5bb1d80fbec83ba62fd9ba5669cceef3ed12722451b22467
MD5 d070a891fcf0ee6615aee03533bad1cc
BLAKE2b-256 9c734b44ef2c49be5cdc78100cb532b239771c8478f4e76fd59242ce37a68942

See more details on using hashes here.

Provenance

The following attestation bundles were made for faf_memory_mcp-0.1.1-py3-none-any.whl:

Publisher: pypi.yml on Wolfe-Jam/faf-memory-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page