Skip to main content

MCP server for .fafm — the Permanent Memory Layer (PML). Wraps claude-fafm-sdk via fastmcp. IANA-registered, cross-vendor, offline-first.

Project description

faf-memory-mcp

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.

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.

CI IANA Zenodo DOI PyPI 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).

Install

uvx faf-memory-mcp

Use in Claude Code (recommended)

Via the faf-memory plugin (coming to claude-plugins-community):

/plugin install faf-memory

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. 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?) Persist the soul to a .fafm 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

License

MIT.

Project details


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.0.tar.gz (9.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.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: faf_memory_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for faf_memory_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a7978aaa4bd949db576451b7469b2665e24b5b446c0a8da8fc9ee9cb9b71d668
MD5 a7592c6104c2f15fa4b756e5f9c704ae
BLAKE2b-256 21844e406758f9698984fe9ad76ac1eb36f65b9b23e0771abc515da341a6d617

See more details on using hashes here.

Provenance

The following attestation bundles were made for faf_memory_mcp-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: faf_memory_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for faf_memory_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d181da2a55364efa5a6f4b0b642521088d3510189089895ca528615658d35e1
MD5 af455cf65d70565133ae4e6542c69b74
BLAKE2b-256 0a173242bbc8b136dfc69de35d162f6cb3a0995707c57991a157684924930746

See more details on using hashes here.

Provenance

The following attestation bundles were made for faf_memory_mcp-0.1.0-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 Pingdom Monitoring Sentry Error logging StatusPage Status page