Skip to content

.FAF Context ​

.FAF Context is the name on the MCP registries; faf-mcp is the package and the repo. The MCP server for Cursor, VS Code, Windsurf, Cline and every MCP-compatible IDE. It runs locally over stdio and gives the agent persistent project context from project.faf — and writes the files each tool reads (AGENTS.md, .cursorrules, GEMINI.md, CLAUDE.md) from that one source.

Run it ​

bash
npx faf-mcp      # or: bunx faf-mcp

Add it to your IDE's MCP config:

json
{ "mcpServers": { "faf-mcp": { "command": "npx", "args": ["-y", "faf-mcp"] } } }

No env vars, no config file. It works in the directory the IDE opened.

What it composes ​

Every tool runs in-process on the faf-cli this package bundles — the same scorer, the same renderers, the same block injector the CLI uses. Nothing shells out to a faf on your PATH. faf_score in the IDE and faf score in the terminal are the same function on the same bytes.

Tools ​

Fifteen shown by default; FAF_TOOLS=all exposes all twenty-nine. Every tool stays callable by name either way.

ToolDoes
faf_autozero → context: detect the stack, interrogate the repo, write project.faf and CLAUDE.md
faf_scoreAI-readiness 0–100 with the slot-by-slot gaps
faf_goguided interview to Trophy — asks only what the repo can't answer
faf_agents · faf_cursor · faf_geminiimport / export / sync AGENTS.md, .cursorrules, GEMINI.md
faf_claudewrite CLAUDE.md (+ the three above with flags or all) from project.faf
faf_syncreconcile project.faf with package.json — dry-run lists each change, apply:true writes
faf_trust · faf_doctor · faf_checkvalidate, diagnose, quality-check the file
faf_context · faf_read · faf_writeread the context, read or write files (faf_write never writes .faf-dna, stays in the project folder, and replaces an existing project.faf, CLAUDE.md or AGENTS.md only with overwrite: true)
faf_gitauthor project.faf from a GitHub URL

Resources: faf://context (the parsed .faf + score) and faf://status (score, tier, path).

Non-destructive, by design ​

The interop tools write into a managed block — the same block faf export uses, with the same whole-line markers. Content you wrote outside it is preserved, byte for byte. See Export for the block rules.


Next: Export — the same files from the CLI

The FAF manual · docs.faf.one