Skip to content
Agentmart
Submit a tool

Claude FAF

Persistent project context for Claude.

Connector by faf.one · Domain verified by the MCP Registry

IndexedMITLocal (stdio)★ 23
Write a review

Install

Works with Claude Code, Codex, VS Code, Claude Desktop, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/faf-one-claude-faf-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Persistent project context for Claude. IANA-registered .faf format.

Use cases: agent-memory, prompt-engineering

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Runs code on install

Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.

Tools
15 read · 15 write · 0 delete
Secrets
None asked for
Install scripts
Runs code on install
Runs as
Node.js package

Tools by what they do 30

Read from the source code; the running server may list different tools.

Read 15 · Look things up without changing anything.

  • faf_about
  • faf_bench
  • faf_check
  • faf_context
  • faf_debug
  • faf_dna
  • faf_doctor
  • faf_formats
  • faf_list
  • faf_read
  • faf_readme
  • faf_recall
Show 3 more tools
  • faf_score
  • faf_status
  • faf_trust

Write 15 · Create, change, send or run things.

  • faf
  • faf_agents
  • faf_auto
  • faf_conductor
  • faf_cursor
  • faf_etch
  • faf_gemini
  • faf_git
  • faf_go
  • faf_human_add
  • faf_init
  • faf_quick
Show 3 more tools
  • faf_setup
  • faf_sync
  • faf_tri_sync

Network hosts it talks to 8

  • claude.faf.one · found in code
  • faf.one · found in code
  • github.com · found in install command, code
  • glama.ai · found in code
  • iana.org · found in code
  • mcpaas.live · found in code
  • raw.githubusercontent.com · found in code
  • wolfejam.dev · found in code

Files it touches

  • /dev/tty
  • /home/claude
  • /mnt/user-data
  • /tmp/uploads
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (30)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • faf

    Start here: names the project and the .faf faf-cli finds for it (the folder, then one level up), with faf-cli's score, and returns the steps that take it to 100% — faf_auto, faf_score, faf_go, faf_trust, faf_sync. Reads only; it runs none of the steps itself.

  • faf_about

    Explain what the .faf format is — project context for AI, IANA-registered as application/vnd.faf+yaml — and how this server uses it. Returns a short plain-text overview with this server's version. Reads nothing and writes nothing. Use it when someone asks what FAF is.

  • faf_agents

    Write project.faf into AGENTS.md (OpenAI Codex and other agents) as a faf-managed block: faf-cli's render, enriched from the repo, written by faf-cli (the bytes faf-cli's own export writes). A file already there keeps every line outside the block; the block is updated in place on later runs.

  • faf_auto

    Create <folder>/project.faf, or fill the empty slots of the one there, with faf-cli's detection over the repo's own files (package.json, Cargo.toml, pyproject.toml, go.mod…) — no hardcoded defaults. A value already there is kept. A typed None or placeholder word is an empty slot: in a tech slot the app-type uses, only a repo fact replaces it (with no fact it stays as typed); in a tech slot the app-type leaves out, faf_auto writes slotignored; in a 6W it stays as typed (faf_go asks). Every value it changes is listed. Then writes CLAUDE.md's faf-managed block. Returns what was filled and faf-cli…

  • faf_bench

    Prove the .faf earns its place — measure how much the context is worth, on THIS repo, falsifiably. Questions derive from the project.faf's own populated slots (the .faf is the answer key), so grading is mechanical — no judge, no rubric. action=questions returns the answer-key-safe question set; action=grade takes your answers WITHOUT the .faf (cold) and WITH it (faf), grades both, and returns the cold→with-faf lift with a receipt hash. The delta is the product; the cold number belongs to the absence of context, never to FAF. Reads only.

  • faf_check

    Check the project's .faf with faf-cli: validateFaf (required fields such as faf_version and project.name, and the about-block rules) and the scorer's state for every slot — populated, empty or slotignored — with the 6Ws listed one by one. Returns valid, the errors and the slot states. Reads only; writes nothing.

  • faf_conductor

    Write project.faf into Google Conductor's conductor/ folder — product.md, tech-stack.md, workflow.md and product-guidelines.md — as one faf-managed block per file, from faf-cli's keys (empty, placeholder and slotignored values left out). A file already there keeps every line outside the block.

  • faf_context

    Show the active project — the folder every faf_* call without a path uses — and the .faf there; pass path to make another folder the active project (your home folder and the filesystem root are refused). detail: true also returns the .faf's text. Writes no file. Call it once at the start of a session.

  • faf_cursor

    Write project.faf into .cursorrules (Cursor IDE) as a faf-managed block: faf-cli's render, written by faf-cli. A file already there keeps every line outside the block; the block is updated in place on later runs.

  • faf_debug

    Show this server's environment: the active project folder and whether it can be written, the bundled faf-cli version every tool runs on, and the .faf faf-cli finds there. Reads only; it never runs a faf found on PATH.

  • faf_dna

    Show the project's .faf-dna lineage, read with faf-cli: the birth score faf_init recorded, every score since (faf_auto and faf_go add them) and the journey line. Reads only; writes nothing.

  • faf_doctor

    Diagnose the project's .faf: faf-cli's validateFaf errors, faf-cli's score with every empty slot and the tool that fills it (faf_auto from the repo, faf_go for the 6Ws), whether CLAUDE.md is there, and the formats faf-cli finds in the folder. Returns a checklist of findings, each with its fix. Reads only. Use it when faf_score is below 100%.

  • faf_etch

    Remember a decision, gotcha, or win across sessions by writing it to the project soul (soul.fafm) with faf-cli's Soul. Returns the stored memory and the soul's size. Re-etching an id updates that memory in place. Use it to persist something an AI should recall later; faf_recall reads them back.

  • faf_formats

    Show the file formats faf-cli finds in the project folder (never above it) and what faf_auto would write into project.faf from them — a dry run. Reads only; writes nothing.

  • faf_gemini

    Write project.faf into GEMINI.md (Google Gemini CLI) as a faf-managed block: faf-cli's render, enriched from the repo, written by faf-cli. A file already there keeps every line outside the block; the block is updated in place on later runs.

Show 15 more tools
  • faf_git

    Author a project.faf for a repository by URL. Uses the network: faf clones the repo with git (a shallow `git clone`, into a temp folder it removes afterwards), runs faf-cli's detection on it and reports faf-cli's score. With path, writes <path>/project.faf only when that folder has none (faf_auto writes each fact from repo into an existing one); without path, writes nothing and returns the .faf.

  • faf_go

    The human half of project.faf. Without answers it returns the Table-of-8 — project name, goal and the 6Ws (who, what, why, where, when, how) — each filled, seeded from the goal, or empty, with faf-cli's score and, for each slot still empty, whether it is a fact from repo (faf_auto writes it: its dry run, the one faf_formats shows) or needs an answer here. With answers (slot path → text, e.g. {"stack.hosting": "<the answer>"}) it writes them into <folder>/project.faf in place and returns the new score; a value already in a slot you answer is replaced. With no project.faf yet it runs faf_init an…

  • faf_human_add

    Set one human_context slot (who, what, why, where, when or how) in <folder>/project.faf to the text you give, in place: a value already in that slot is replaced; every other line, comment and value is kept. Returns the file written. faf_go asks for all of them at once.

  • faf_init

    Create a new project.faf for a folder: faf-cli detects its name, language and stack, and the reply gives the file path, faf-cli's starting score and the birth .faf-dna. An existing project.faf is left as it is — use faf_auto to fill its empty slots from your manifests, or faf_go for the human 6Ws. force: true replaces an existing project.faf with a fresh one, after copying the old file to a backup beside it.

  • faf_list

    List a folder inside the active project (or a folder listed in FAF_ALLOWED_ROOTS) and flag the subfolders that hold a project.faf. Links are listed, never followed. Reads only.

  • faf_quick

    Create a new project.faf from one line: "name, goal, language, framework, hosting" (name and goal required). faf-cli detects the rest from the folder; each word you give goes in the slot it names, and a framework faf cannot place is reported, not guessed. Returns the file and faf-cli's score. Only creates: when a project.faf (or .faf) is already there it writes nothing — use faf_auto to fill it.

  • faf_read

    Read a file inside the active project (the one faf_context shows) or a folder listed in FAF_ALLOWED_ROOTS, and return its text. A relative path resolves against the active project. Anything else — your home folder, the filesystem root, a temp folder, ../ out of the project — is refused.

  • faf_readme

    Read the 6 Ws (Who/What/Why/Where/When/How) from README.md and package.json with faf-cli's sourced extractor. Previews by default; apply: true fills only the empty human_context slots in project.faf — a value you wrote is never replaced — and lists the slots it filled.

  • faf_recall

    Recall memories from the project soul (soul.fafm), ranked by priority then recency, filtered by query/tags/type. Returns the matching entries. Reads only. Use it to surface past decisions; faf_etch adds new ones.

  • faf_score

    Score the project's .faf with faf-cli's scorer — the one score every faf tool reports: 0–100%, the tier, populated/active slots, and a faf-parity/v1 hash of the result. details: true lists every slot as populated, empty or slotignored. Reads only. Use faf_doctor for what to fix.

  • faf_setup

    Install the native SessionStart hook in the project settings (<project>/.claude/settings.json) — every Claude Code session in this project starts with fresh .faf context. Shows the exact settings first (preview); writes only with confirm: true, install or remove. faf changes only its own hook entry; every other key and hook stays as written. remove: true takes out only the hook whose command is exactly the faf hook command. Never writes the user settings: the home folder is refused.

  • faf_status

    Say whether the project has a .faf (faf-cli's finder: the folder, then one level up) and show its first 20 lines. Reads only. For the score use faf_score; for what to fix, faf_doctor.

  • faf_sync

    Write project.faf into CLAUDE.md as a faf-managed block (faf-cli's render and injector), and on request into AGENTS.md (agents), .cursorrules (cursor), GEMINI.md (gemini) and .github/copilot-instructions.md (copilot) — or all of them (all) — with faf-cli's writers. Each file keeps every line outside faf's block. Returns the files written and any requested file that could not be written, with the reason (then isError). Use it after editing project.faf.

  • faf_tri_sync

    Write project.faf as a faf-managed block into the MEMORY.md Claude Code loads for this project (~/.claude/projects/<project-id>/memory/MEMORY.md, or under CLAUDE_CONFIG_DIR). Only the block changes; every note of Claude's is kept, and the reply says so only after reading the file back. action: status reads only. faf_sync writes CLAUDE.md.

  • faf_trust

    Attest the project's .faf: faf-cli's validateFaf, faf-cli's score, and a faf-parity/v1 hash (claude-faf-mcp's own spec) of that score that anyone can check with sha256(projection) === parityHash. Returns a trust receipt whose subject is the project. An invalid .faf, or a score that is unknown, gets no receipt (isError). Reads only.

Signals

Stars
23
Forks
8
Open issues
0
Contributors
4
Last commit
Oct 23, 2026 (5 days ago)
Last release
Oct 1, 2026 (28 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
one.faf/claude-faf-mcp
Version
7.0.1
Auth
No auth
License
MIT
Website
faf.one
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from faf.one

Cite this page

Claude FAF MCP server. Agent Mart. https://agentmart.dev/connectors/faf-one-claude-faf-mcp (last updated 2026-10-24)