.FAF Context
io.github.Wolfe-Jam由 GitHub 账号 Wolfe-Jam 发布v2.1.3更新于 Oct 27, 2026
Dedicated IDE Edition. Persistent project context for Cursor, Windsurf, Cline, VS Code.
概览
本地 MCP 服务器,以单个 project.faf 文件为唯一来源,生成 AGENTS.md、.cursorrules、GEMINI.md、CLAUDE.md 等 AI 上下文文件。
- 可以做什么
- 创建、评分并诊断 project.faf 上下文文件,含引导式问答与逐槽位的 AI 就绪度分级
- 将 project.faf 与 package.json 对账,写入前先做试运行
- 写入或导入 AGENTS.md、.cursorrules、GEMINI.md 和 CLAUDE.md,可一次写全部或逐个写
- 根据公开 GitHub 仓库地址生成 project.faf
- 设置当前项目路径,并在允许的根目录内读写文件(需 FAF_TOOLS=all 启用扩展工具)
- 适用场景
- 适合团队同时使用多种 AI 编程工具、每种工具都要求各自的上下文文件,希望用一个仓库文件保持一致的情况。也适合想量化检查项目 AI 上下文完整度的场景。
- 运行要求
- 以 npm 包形式通过 stdio 在本地运行(npx faf-mcp 或 bunx faf-mcp),需要 Node 22 或更高版本。未声明任何认证或环境变量。可选 FAF_TOOLS=all 开放全部工具,FAF_ALLOWED_ROOTS 可扩大文件读写根目录。
安装
在 SourceWeft 中
- 打开 控制台中的 .FAF Context,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
.FAF Context
Persistent Project Context for Cursor, IDEs and VS Code. Define once. Sync everywhere. npm: faf-mcp
[npm][downloads] [FAF Trophy 100%] [IANA: vnd.faf+yaml] [DOI: Context paper] [DOI: Agents paper]
Home: wolfe-jam.github.io/faf-mcp
.FAF Context is the MCP server for the IDE side of FAF. One project.faf in your repo, and every AI tool's context file is authored from it — AGENTS.md, .cursorrules, GEMINI.md, CLAUDE.md — and scored, so you know exactly where to focus. It runs locally over stdio on the same faf-cli the terminal uses. The FAF ecosystem it belongs to has comfortably passed 100k downloads across npm and PyPI (live count).
⭐ Star it on GitHub: bookmarks it for you, helps other devs find it too.
[CI] [License: MIT] [project.faf] [Business card · Get yours →]
What's New in 4.1.1 — The Instructions Edition
One rule for project questions: read project.faf first.
- Server instructions, line 2. "For questions about the project (stack, goal, commands), read project.faf first and answer from it. faf_score shows what is missing; faf_doctor says why." It replaces "start with
faf_doctororfaf_score", which agents read as a hint. In a 3-run pilot on a repo where project.faf and package.json disagree, Claude Code read project.faf first 3 of 3 and Grok Build 2 of 3 with the new line, against 0 of 3 for both with the old one. 712 characters.
4.1.0 — The Instructions Edition
faf-mcp now tells the model how its tools fit together: server instructions in initialize (642 characters), plus faf-cli 8.5.0, which knows a skills repo when it sees one.
- Server instructions. When your editor's AI connects, the server says how its tools fit together: one project at a time, start with
faf_doctororfaf_score, ask the user for the human answers, and project.faf is the source for CLAUDE.md, AGENTS.md, .cursorrules and GEMINI.md. - faf-cli 8.5.0 inside.
faf_initandfaf_autodetect a skills repo:SKILL.mdfolders make itskills(10 slots), and a Claude Code plugin manifest makes itskills-plugin(14). - hono advisory cleared (serveStatic double-decode).
4.0.1
faf-mcp --version and --help answer and exit. Before, both started the server.
--version(-v) prints the version;--help(-h) prints usage and a client config. Anything else starts the server as before, so your client config doesn't change.
4.0.0 — The Always33 Edition
One engine, one number: faf-mcp 4 scores with faf-cli 8's always-33 kernel — the same score faf-cli, claude-faf-mcp 7 and faf-kernel give.
- The always-33 engine. Every tool scores with faf-cli 8.0.0 — all 33 Mk4 slots, one Rust kernel, one copy of it. Checked live: faf-python-sdk 56, mcp-context-card 56, faf-cli ✪ 100.
- Your 21 slots, and the 12 enterprise slots in view. The enterprise slots (infra, app, ops) are marked
slotignoredunless your app-type uses them.faf_scorescores against all 33;slotignoredslots drop out of the denominator. - Upgrading from 3.x: a
.fafwithout the 12 markers now scores against 33. Runfaf_auto— it writes them and your score returns.
3.0.2 — The Compose Edition
Tools that say what they do: faf_git scores with faf-cli and asks before overwriting, faf_sync previews each change, and imports say when nothing was written.
faf_githas one scorer. It reports faf-cli's score of the file it authored, writes the slots faf-cli scores, and asks before replacing an existingproject.faf.faf_syncpreviews each change. The dry run lists every field it would update and namesapply: true.- Imports say when nothing was written, and
merge: truewith noproject.faffails clearly. - Descriptions, annotations and errors match the code. No CLI commands or terminal colour codes in tool output.
3.0.1 renamed faf_bi_sync to faf_claude and made faf_init write what faf init writes. The full history is in the CHANGELOG.
The Compose Edition (3.0)
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+.
- Composes faf-cli 7.12. AGENTS.md, GEMINI.md, .cursorrules and CLAUDE.md are written by faf-cli's own renderers, repo enrichment and block injector — the same bytes
faf exportandfaf syncwrite.faf_autoruns faf-cli's own update chain. The hand-ported renderers, the pre-v3 CLAUDE.md template and the local injector are gone. - One score function.
faf_auto,faf_go,faf_dna,faf_doctorandfaf_claudeall report faf-cli's scorer on the bytes on disk — no local heuristics, no frozen birth score, no "0%". - Nothing shells out. The
which fafdetector, the exec fallback and the "install faf-cli first" banner are gone; nothing undersrc/importschild_process. A machine with an unrelatedfafon PATH is no longer a problem. - Every tool contract matches its handler. Descriptions say what the tools do, schemas declare only flags that are read, failures carry their reason.
- The Mk3 engine is deleted. 44 unreachable modules, ~15,900 lines; the tarball halves.
prebuildclearsdist/so nothing deleted ever ships again. - Resource URIs are
faf://contextandfaf://status;claude-faf://remains readable as an alias for this release. - Node 22 or newer. 18 and 20 are end of life; the CI matrix runs 22 and 24 and a guard keeps the floor honest.
Define once. Sync everywhere.
You maintain .cursorrules. Your teammate uses AGENTS.md. Someone on the team just switched to Gemini. Every AI tool wants its own context file — and they all say the same thing in different formats.
faf-mcp is the dedicated MCP server for Cursor, Windsurf, Cline, VS Code, and every non-Claude platform. One .faf file in your repo, synced to every format your team needs.
Context for Cursor & IDE agents: faf-cli (v7.12) authors the files this server syncs — bunx faf export --agents, zero-install and git-native. See FAF-CLI for Cursor & IDE agents 👀.
Quick Start
Cursor — one click: [Add .FAF Context to Cursor]
Everywhere else:
Add to your MCP config:
Run It
faf-mcp runs locally over stdio. Point your IDE at one of these commands.
Interop Tools
Core tier: 15 essential tools shown by default; set FAF_TOOLS=all for the full 29 (every tool stays callable by name either way) · 26 test suites · 7 bundled parsers
Eternal Sync
project.faf is the source. faf-mcp writes every tool's context file from it in milliseconds.
faf_claude { all: true }writes all four formats at oncefaf_agents,faf_cursorandfaf_geminican also import an existing file:merge: truemerges it intoproject.faf- Content outside the faf-managed block is preserved, byte for byte
- Works across teams, branches, sessions
AI assistants forget. They drift. Every new session, AI starts guessing again. One source means context never goes stale.
Tier System: From Blind to Optimized
At 55%, AI is guessing half the time. At 100%, AI is optimized.
use>faf | Prompt Pattern
Start every prompt with "Use FAF" to invoke MCP tools:
Works on all platforms — stops web search, forces tool usage.
29 MCP Tools
The 15 Core tools, shown by default:
+14 more with FAF_TOOLS=all: faf_status · faf_what · faf_guide · faf_debug · faf_clear · faf_list · faf_read (read a file within the allowed roots: cwd, the OS temp dir, or FAF_ALLOWED_ROOTS) · faf_write (write a file within the same roots) · faf_readme · faf_human_add · faf_quick · faf_formats · faf_dna · faf_conductor
Built on faf-cli. Every tool composes the bundled faf-cli in-process — the same scorer, the same renderers, the same block injector the CLI uses. Nothing shells out to a faf on your PATH.
Ecosystem
- claude-faf-mcp — Claude Desktop
- faf-cli — Terminal CLI
- faf-wasm — WASM SDK (<5ms scoring)
- faf-wasm-gen — Rust→WASM
project.fafauthoring engine, browser/edge (faf-wasm's authoring sibling) - faf-trinity — reference MCP server exposing all three IANA FAF formats (context/memory/agent) together
- faf.one — Official website
- docs/SKILLS-OVER-MCP.md — J1 Agent Skill
faf-ide(stdio · skills/list · digests)
If faf-mcp has been useful, consider starring the repo — it helps others find it.
Citation
If you use faf-mcp or the .faf / .fafa formats in research or production, please cite the format papers:
Wolfe, J. (2025). Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding. Zenodo. https://doi.org/10.5281/zenodo.18251362
Wolfe, J. (2026). Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era. Zenodo. https://doi.org/10.5281/zenodo.21951641
BibTeX
License
MIT License — Free and open source
Zero drift. Eternal sync. AI optimized. ✪
"It's so logical if it didn't exist, AI would have built it itself" — Claude
来源:README.md,提交 06609c4
工具
0版本历史
1- v2.1.3最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分