.FAF Context

one.faf由 faf.one 發布v4.1.3更新於 Nov 8, 2026

.FAF Context — persistent project context for Cursor, VS Code and every MCP-compatible IDE.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

為每個儲存庫維護一份 project.faf 情境檔,並據此產生 CLAUDE.md、AGENTS.md、.cursorrules 與 GEMINI.md,同時給出 AI 就緒度評分。

可以做什麼
  • 建立、評分、驗證與診斷 project.faf 情境檔,並可透過引導式問答補齊人工填寫的欄位
  • 以 project.faf 為唯一來源產生或匯入 CLAUDE.md、AGENTS.md、.cursorrules 與 GEMINI.md
  • 將 project.faf 與 package.json 等儲存庫清單檔對齊,預設僅試跑
  • 依公開 GitHub 儲存庫網址產生 project.faf
  • 設定目前專案路徑並檢視格式說明
適用情境
適合團隊同時使用多個 AI 程式開發工具、每個工具都要求各自情境檔的情況;也適合希望助理依據持續維護的情境檔回答專案問題,而不是每次工作階段重新猜測。
執行需求
透過 npx 或 bunx 以 stdio 在本機執行,需要 Node 22 或更新版本。未宣告需要帳號、API 金鑰或環境變數。僅在使用公開 GitHub 網址產生情境時需要網路存取。
安裝前請注意
多個工具會寫入專案檔案:帶 apply 的 faf_sync、faf_claude 及各互通工具,以及 faf_write。覆寫既有情境檔需 overwrite: true,faf_write 僅限允許的根目錄。套用變更前請先檢視試跑結果。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 .FAF Context,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[FAF]

.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.3 — The Instructions Edition

faf-mcp now says what faf-cli's writer did: the note when faf's block goes above older faf text, and each file it could not write. When a context file starts with older faf text, the reply carries faf-cli's note that the old text is left as you had it; faf_claude names any chained file it could not write, with the reason.

4.1.2

faf_write can no longer overwrite the birth certificate or your context files, and faf_dna never issues a second one. .faf-dna is refused in every spelling and route, existing context files need overwrite: true, and faf_dna refuses rather than reissue when git shows a certificate existed.

4.1.1

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_doctor or faf_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_doctor or faf_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_init and faf_auto detect a skills repo: SKILL.md folders make it skills (10 slots), and a Claude Code plugin manifest makes it skills-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 slotignored unless your app-type uses them. faf_score scores against all 33; slotignored slots drop out of the denominator.
  • Upgrading from 3.x: a .faf without the 12 markers now scores against 33. Run faf_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_git has one scorer. It reports faf-cli's score of the file it authored, writes the slots faf-cli scores, and asks before replacing an existing project.faf.
  • faf_sync previews each change. The dry run lists every field it would update and names apply: true.
  • Imports say when nothing was written, and merge: true with no project.faf fails 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 export and faf sync write. faf_auto runs 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_doctor and faf_claude all report faf-cli's scorer on the bytes on disk — no local heuristics, no frozen birth score, no "0%".
  • Nothing shells out. The which faf detector, the exec fallback and the "install faf-cli first" banner are gone; nothing under src/ imports child_process. A machine with an unrelated faf on 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. prebuild clears dist/ so nothing deleted ever ships again.
  • Resource URIs are faf://context and faf://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 👀.

                      project.faf                           │          ┌────────┬───────┴───────┬────────────┐          ▼        ▼               ▼            ▼      CLAUDE.md  AGENTS.md  .cursorrules  GEMINI.md      (Claude)   (Codex)      (Cursor)    (Gemini)

Quick Start

Cursor — one click: [Add .FAF Context to Cursor]

Everywhere else:

bash
bunx faf-mcp

Add to your MCP config:

json
{"mcpServers": {"faf": {"command": "bunx", "args": ["faf-mcp"]}}}
PlatformConfig File
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
ClineCline MCP settings
VS CodeMCP extension config
Claude DesktopUse claude-faf-mcp

Run It

faf-mcp runs locally over stdio. Point your IDE at one of these commands.

MethodCommand
npmnpx faf-mcp
Bunbunx faf-mcp

Interop Tools

ToolPlatformAction
faf_agentsOpenAI CodexImport/export/sync AGENTS.md
faf_cursorCursor IDEImport/export/sync .cursorrules
faf_geminiGoogle GeminiImport/export/sync GEMINI.md
faf_conductorConductorImport/export directory structure
faf_gitGitHubAuthor .faf from any repo URL
text
# MCP tool calls — ask your IDE's AI# Write all four formats from project.faffaf_claude { all: true }
# Author .faf from any GitHub repofaf_git { url: "https://github.com/facebook/react" }

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.

project.faf  ──── 8ms ───→  CLAUDE.md / AGENTS.md / .cursorrules / GEMINI.md                    Single source of truth
  • faf_claude { all: true } writes all four formats at once
  • faf_agents, faf_cursor and faf_gemini can also import an existing file: merge: true merges it into project.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

TierScoreStatus
✪ TROPHY100%AI never has to guess
★ GOLD99%+1 slot from Trophy
◆ SILVER95%+Close — keep going
◇ BRONZE85%+Interim — keep going
● GREEN70%+Interim — keep going
● YELLOW55%+AI flipping coins
○ RED<55%AI working blind
♡ WHITE0%No context at all

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:

Use FAF to initialize my projectUse FAF to score my AI-readinessUse FAF to sync my contextUse FAF to enhance my project

Works on all platforms — stops web search, forces tool usage.


29 MCP Tools

The 15 Core tools, shown by default:

ToolPurpose
faf_initCreate a new project.faf (use faf_auto to enhance an existing one)
faf_autoOne-call setup: init or merge, stack detection, CLAUDE.md, score
faf_goGuided interview that fills the missing human-context and goal fields toward 100%
faf_scoreAI-readiness score (0-100%) and tier; details:true adds a slot-by-slot breakdown
faf_doctorDiagnose a low score: missing files, slot counts, config issues, each with a fix
faf_checkRate each human_context field empty / generic / good
faf_trustValidate the required fields and about.* block with faf-cli's validator
faf_syncReconcile project.faf with package.json (dry-run; apply:true writes)
faf_contextSet or show the active project path
faf_aboutWhat the IANA-registered .faf format is, in plain language
Interop Tools
faf_claudeWrite CLAUDE.md from project.faf (all:true also writes AGENTS.md, .cursorrules, GEMINI.md)
faf_agentsImport AGENTS.md into project.faf, or write it from project.faf
faf_cursorImport .cursorrules into project.faf, or write it from project.faf
faf_geminiImport GEMINI.md into project.faf, or write it from project.faf
faf_gitAuthor a project.faf from a public GitHub repo URL

+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 cwd or FAF_ALLOWED_ROOTS; never .faf-dna or .git/; an existing *.faf, CLAUDE.md or AGENTS.md needs overwrite: true) · 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.faf authoring 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

bibtex
@article{wolfe2025faf,  title     = {Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding},  author    = {Wolfe, James},  year      = {2025},  month     = {nov},  publisher = {Zenodo},  doi       = {10.5281/zenodo.18251362},  url       = {https://doi.org/10.5281/zenodo.18251362}}
@article{wolfe2026fafa,  title     = {Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era},  author    = {Wolfe, James},  year      = {2026},  month     = {aug},  publisher = {Zenodo},  doi       = {10.5281/zenodo.21951641},  url       = {https://doi.org/10.5281/zenodo.21951641}}

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,提交 8b9bad1

工具

15

faf_about

About FAF

Explain what the .faf format is — the IANA-registered, portable context file (application/vnd.faf+yaml) that gives any AI instant project understanding. Returns a plain-language overview of the format and its purpose. Use this when you or the user are new to FAF and want the concept before running other tools.

無需輸入參數。

faf_score

AI-Readiness Score

Calculate a project.faf AI-readiness score (0-100%) from the populated context slots. Returns the percentage and tier, and with details a slot-by-slot breakdown with improvement suggestions. Use this to measure how complete the AI context is and what to fill next.

輸入參數pathdetails

faf_init

Initialize .faf

Create a project.faf for a project, making it instantly AI-readable. Returns the new file location and starting score. Accepts a path or bare project name (e.g. ~/Projects/my-app, my-app) and omitting it uses the current directory.

輸入參數pathforce

faf_trust

Trust Score

Validate a project.faf's required fields (faf_version, project.name) and about.* block with faf-cli's validator, and report its real score.

無需輸入參數。

faf_sync

Reconcile .faf with repo manifests

Reconcile project.faf with what the repo manifests say now (package.json name, description, framework dependencies). Dry-run by default: reports the fields that would change. Pass apply:true to write them into project.faf. Does not touch CLAUDE.md — use faf_claude for CLAUDE.md, AGENTS.md, .cursorrules and GEMINI.md.

輸入參數pathapply

faf_claude

Write CLAUDE.md and IDE formats from .faf

Write CLAUDE.md from project.faf (one direction: .faf → CLAUDE.md) and, with the format flags or all, also AGENTS.md, .cursorrules and GEMINI.md. Content outside the faf-managed block is preserved. Returns the files written. Use this to keep every AI tool's context file current from one source. (Named faf_bi_sync before 3.0.1; that name still works.)

輸入參數allpathagentscursorgemini

faf_check

Check .faf Health

Inspect the human_context fields and rate each empty/generic/good. Returns the ratings; with protect it records the good fields in _protected_fields as an advisory list (other tools do not enforce it), with unlock it clears that list. Use this to gauge context quality.

輸入參數pathunlockprotect

faf_context

View Context

Set or show the active project path that later faf_ project tools resolve against (faf_read and faf_write resolve relative paths against the server's working directory instead). Returns the current context path. Call this once at the start of a session so the project tools target the right project.

輸入參數path

faf_go

Guided Setup

Drive a project.faf to 100% through a guided interview — returns the next questions for the missing human-context and goal fields, then applies the answers passed back. Returns the updated score after each round. Use this to close the gap to a complete context when auto-detection cannot fill the human slots.

輸入參數pathanswers

faf_auto

Auto-detect Context

Run the setup pipeline in one call — init or merge, stack detection, CLAUDE.md, and score — taking a project from no context to a scored project.faf plus CLAUDE.md; faf_go closes the human slots. Returns the final AI-readiness score and what was created. Use this as the fast path on a fresh project; use the individual tools when you need finer control.

輸入參數path

faf_doctor

Diagnose Issues

Diagnose a project.faf setup — report missing files, the real score with populated/active slot counts, and common configuration issues, each with a fix. Returns a checklist. Use this when your score is low and you need to know why.

輸入參數path

faf_agents

Sync AGENTS.md

Import AGENTS.md (the OpenAI/Codex convention) into project.faf, or write it from project.faf. Returns the merged or written result for the chosen action. Use this to keep a Codex/OpenAI-style AGENTS.md and your .faf in agreement from one source.

輸入參數pathforcemergeaction必填

faf_cursor

Sync .cursorrules

Import .cursorrules (the Cursor IDE convention) into project.faf, or write it from project.faf. Returns the merged or written result for the chosen action. Use this to keep Cursor rules and your .faf in agreement from one source.

輸入參數pathforcemergeaction必填

faf_gemini

Sync GEMINI.md

Import GEMINI.md (the Google Gemini CLI convention) into project.faf, or write it from project.faf. Returns the merged or written result for the chosen action. Use this to keep a Gemini context file and your .faf in agreement from one source.

輸入參數pathforcemergeaction必填

faf_git

Extract from GitHub

Author a project.faf from any public GitHub repository URL — fetches the repo and extracts its stack and context. Returns the authored .faf. Use this to bootstrap context for a project you have the URL for but not cloned locally.

輸入參數url必填pathforce

版本歷史

6
  1. v4.1.3最新Nov 7, 2026
  2. v4.1.2Nov 5, 2026
  3. v4.1.1Oct 30, 2026
  4. v4.0.1Oct 16, 2026
  5. v4.0.0Sep 27, 2026
  6. v3.0.2Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分