TL;DR: Compose, don't port: faf-mcp 3.0 runs on faf-cli 7.12 in-process — one scorer, one set of renderers, one injector — and every number, file and claim this package makes is true. Local stdio, 29 tools, Node 22+.
In Plain English
Old state. The IDE MCP server carried its own copies of scoring, writing
AGENTS.md / .cursorrules / GEMINI.md / CLAUDE.md, and injecting the managed block. Those
copies drifted. Some tools shelled out to whatever faf was on PATH. Docs
talked about a hosted endpoint this package does not run.
Fix. Every tool composes faf-cli 7.12 in-process. Same scorer, same renderers, same injector. Nothing ported. Nothing shelled out.
New state. One number on disk, the same bytes the CLI writes, and every claim on the box is true. Local stdio. Node 22 or newer.
bunx faf-mcpInstall: npm install -g faf-mcp@3.0.0 · pin in scripts — @latest drifts. Needs Node 22+.
What happened since .FAF Context
One blog, one arc. Last write-up was faf-mcp v2.3.1 — cwd resolution, so the server scores the project you have open. This is the major: stop carrying copies of faf-cli.
Same-day sibling: faf-cli 7.12 The Open Renderers Edition opened the renderers. This package is the first consumer.
What 3.0.0 is
Lesson: compose, don't port. If faf-cli is the writer, the MCP server should call it — not ship a second writer that drifts.
- One score.
faf_auto,faf_go,faf_dna,faf_doctor,faf_bi_syncall report faf-cli'sscoreFafYamlon the bytes on disk. The local heuristics are gone. - Same files as the CLI. AGENTS.md, GEMINI.md, .cursorrules and CLAUDE.md
come from faf-cli's renderers and injector — the same bytes
faf exportwrites. - Nothing shells out. No
which faf, no exec fallback, no "install faf-cli first" banner. The CLI is bundled. An unrelatedfafon PATH is not a problem. - Docs match the binary. Local stdio. No hosted endpoint, no Deploy to Vercel, no Streamable HTTP claim on this package.
Breaking, on purpose
- Node 22 or newer. 18 and 20 are end of life. CI runs 22 and 24.
- faf-cli ^7.12.0 — was 6.x. The compose floor is the Open Renderers cut.
- Resource URIs are
faf://contextandfaf://status.claude-faf://stays readable as an alias for this release.
Try it
Run (no install):
bunx faf-mcpInstall:
npm install -g faf-mcp@3.0.0Cursor / VS Code / Windsurf / Cline — MCP config:
{"mcpServers": {"faf": {"command": "bunx", "args": ["faf-mcp"]}}}More: The Open Renderers Edition (faf-cli 7.12) · .FAF Context (v2.3.1) · v3.0.0 release · repo.
Technical details
- Version: 3.0.0 (September 10, 2026)
- Identity:
one.faf/faf-mcp· npmfaf-mcp - Compose floor: faf-cli ^7.12.0 (The Open Renderers Edition)
- Tools: 29 (15 Core by default · full set via
FAF_TOOLS=all) - Tests: 334/334 (1 todo)
- Transport: local stdio
- Runtime: Node 22+
- Score: ✪ Trophy 100%
Feedback welcome
Questions, nits, suggestions — guide the next version. Tell us what you want to see.
