Persistent Project Context for xAI Grok

io.github.Wolfe-Jam由 GitHub 账号 Wolfe-Jam 发布v1.8.1更新于 Oct 24, 2026

Persistent project context for xAI Grok. IANA-registered .faf format.

发布方自己的服务:Surface

已验证Streamable HTTP可网页运行知识与记忆开发者工具AI 与机器学习

概览

AI 生成的概览

为助手提供基于 .faf 文件的持久项目上下文:评分、校验、检索并重新锚定项目信息,跨会话复用。

可以做什么
  • 对 .faf YAML 上下文评分、校验、判定等级并估算 token 数
  • 读取、检索和列出上下文 soul、标签及全文匹配行
  • 长会话重新锚定:刷新 .faf、记忆层与混合刷新,并报告漂移
  • 无需克隆即可从公开 GitHub 仓库生成 .faf 文件
  • 查询 .fafm 记忆模型,并给出漂移与矛盾的顾问式建议
  • 在本地 stdio 模式下创建、同步及读写项目文件
适用场景
适合在同一项目上反复使用 Grok 或其他 MCP 客户端时,让助手每次会话一开始就了解技术栈、目标与命令,而不必重复说明。也适合评估项目上下文文件对 AI 的可读性。
运行要求
可使用托管端点 URL(无需安装),或通过 npm、Homebrew、bunx 在本地运行。托管路径只提供纯 WASM 工具;faf_init、faf_sync、refresh_fafm、refresh_blend 等涉及文件系统的工具需本地 stdio 路径。语义集合检索需要 XAI_API_KEY 密钥。
安装前请注意
本地工具会写入或改写项目文件,包括 CLAUDE.md、AGENTS.md、.cursorrules 和 GEMINI.md,并在仓库根目录追加回执 JSON 文件。faf_collections_search 需要 XAI_API_KEY,该密钥会发送给托管服务。回执日志没有多进程文件锁,多个代理并发写入可能冲突。名片输出为自述内容,未经核验。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Persistent Project Context for xAI Grok,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.Wolfe-Jam%2Fgrok-faf-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "persistent-project-context-for-xai-grok": {
      "type": "http",
      "url": "https://mcpaas.live/grok/mcp/v1"
    }
  }
}

README

grok-faf-mcp v2.1 — The New Era Edition

[FAF]

Grok asked for MCP on a URL. This is it.

Persistent Project Context for xAI Grok.

URL-based • Zero config • Just works

[IANA: vnd.faf+yaml] [DOI: Context paper] [DOI: Agents paper]

Home: faf.one/grok Live demo: grok.faf.one

⭐ Star it on GitHub: bookmarks it for you, helps other devs find it too.

[grok-faf-mcp hero]

[Stars] [Downloads] [Business card · Get yours →]

FAF defines. AGENTS.md instructs. AI codes.

v2.2.2 — The Instructions Edition

Cleanup: removes leftover two-way sync wording. Two-way sync was dropped by design long ago: project.faf pushes structured data out, and prose doesn't come back. The last strings that still said two-way now match. faf_bi_sync still works as the old name for faf_sync.

v2.2.1

One rule for project questions: read project.faf first. New line 2 of the server instructions: "For questions about the project (stack, goal, commands), read project.faf first and answer from it." The same rule in faf-mcp moved Grok Build from 0 of 3 to 2 of 3 runs reading project.faf first, on a repo where project.faf and package.json disagree (3-run pilot). 715 characters.

v2.2.0

grok-faf-mcp now tells Grok how its tools fit together, context and memory: server instructions in initialize (615 characters), plus faf-cli 8.5.0, which knows a skills repo when it sees one.

  • Server instructions. When Grok connects, the server says how its tools fit together: context (project.faf) and memory (.fafm), which tool checks, creates or syncs, the refresh tools, and that rag_query needs an xAI Collection.
  • faf-cli 8.5.0 inside. faf_init detects a skills repo: SKILL.md folders make it skills (10 slots), and a Claude Code plugin manifest makes it skills-plugin (14).
  • Advisories cleared in the MCP SDK, proxy-addr and hono.

Earlier: v2.1.0 — The New Era Edition — glass-box tools: every tool says if it reads, writes or rewrites; its own FAF passport at grok.faf.one; a new look.

Earlier: v2.0.0 — The Always33 Edition — one engine, one number: every score is faf-cli 8's always-33 kernel, on npm and on mcpaas.live. ZEPH is opt-in until the Zig engine is always-33.

☆ Bookmark grok.faf.one for later.

First v0.2-conformant reader of the FAF Context Ingestion Contract — the open standard co-authored in public with @grok.


Install — one line

Add to ~/.grok/config.toml:

toml
[mcp_servers.grok-faf-mcp]url = "https://mcpaas.live/grok/mcp/v1"

Restart Grok TUI (or /mcps r) to refresh. The hosted endpoint scores always-33 — the same number as the npm package. Tools: faf_score, faf_validate, faf_get_tier, faf_estimate_tokens, faf_analyze (plus soul/memory ops).

Smithery: wolfe-jam/grok-faf-mcp — gateway at https://grok-faf-mcp--wolfe-jam.run.tools

Homebrew (local stdio):

bash
brew install wolfe-jam/faf/grok-faf-mcp

Hosted on Cloudflare Workers — sub-ms cold start, no subprocess, edge-served. Scores and validates with the faf-kernel WASM (always-33, the same engine as the npm package) since mcpaas-cf 1.8.1; a Zig WASM engine handles token estimates and tier. Externally validated by Grok S1 + S2 on 2026-05-27.

Verify the live contract:

bash
curl https://mcpaas.live/grok/mcp/v1/info

Returns endpoint, protocol versions, engine details, tool list, and the architecture line: .faf=vROM | AI-in-session=RAM.

Sample corpus: xai-faf-proof/pilot — 10 records ready to score.


The 6 Ws - Quick Reference

Every README should answer these questions. Here's ours:

QuestionAnswer
WHO is this for?Grok/xAI developers and teams building with URL-based MCP
WHAT is it?Persistent project context for xAI Grok — URL-first deployment, IANA-registered .faf format
WHERE does it work?Cloudflare Workers (mcpaas.live/grok/mcp/v1) • Any MCP client supporting native url= config • Self-deploy to your own CF/Vercel worker
WHY do you need it?Zero-config MCP on a URL — Grok asked for it, we built it first
WHEN should you use it?Grok integration, xAI projects, any url-based MCP client
HOW does it work?url = "https://mcpaas.live/grok/mcp/v1" — context tools served from edge via MCPaaS (sub-ms cold start, no subprocess)

For AI: Read the detailed sections below for full context. For humans: Use this pattern in YOUR README. Answer these 6 questions clearly.

For the xAI / Grok Build team

Built for Grok and shaped by direct Grok feedback.
Open for native Grok Build integration, .fafm memory layer, refresh_faf primitives, or any other context features the team needs.
Live and dogfooded at https://grok.faf.one and https://mcpaas.live/grok/mcp/v1.

Context for Grok agents: faf-cli authors what Grok agents read from real project detection — bunx faf export --agents. faf-cli's src/interop/grok.ts wires this MCP into .grok/config.toml (that file lives in the faf-cli repo, not here). See FAF-CLI for Grok & xAI agents.


The Problem

Every Grok session starts from zero. You re-explain your stack, your goals, your architecture. Every time.

.faf fixes that. One file, your project DNA, persistent across every session.

Without .faf  →  "I'm building a REST API in Rust with Axum and PostgreSQL..."With .faf     →  Grok already knows. Every session. Forever.

One Command, Done Forever

faf_auto detects your project, creates a .faf, and scores it — in one shot:

faf_auto━━━━━━━━━━━━━━━━━Score: 0% → 85% (+85) ◇ BRONZESteps:  1. Created project.faf  2. Detected stack from package.json  3. Synced CLAUDE.md
Path: /home/user/my-project

What it produces:

yaml
# project.faf — your project, machine-readablefaf_version: "3.3"project:  name: my-api  goal: REST API for user management  main_language: TypeScriptstack:  backend: Express  database: PostgreSQL  testing: Jest  runtime: Node.jshuman_context:  who: Backend developers  what: User CRUD with auth  why: Replace legacy PHP service

Every AI agent reads this once and knows exactly what you're building.


⚡ What You Get

URL:     https://mcpaas.live/grok/mcp/v1Format:  IANA-registered .faf (application/vnd.faf+yaml)Tools:   12 core by default (bunx) — re-grounding (refresh_faf/fafm/blend), LAZY-RAG, orchestration substrate, FAF essentials · extended utilities via FAF_TOOLS=all · 19 hosted (WASM-pure, served by mcpaas-cf) on the URLEngine:  faf-cli 8 — faf-scoring-kernel 3.0.0 (Rust → WASM, always-33)Speed:   0.5ms average (was 19ms — 3,800% faster with Mk4)Tests: WJTTC parity (heavy local ↔ light hosted) + full suites. Runner: sh scripts/run-tests.sh (bun + flake retry)Status:  FAST⚡️AF

MCP on a URL. Point your Grok integration at the URL. That's it.


Scoring: From Blind to Optimized

TierScoreWhat it means
🏆 TROPHY100%Gold Code — AI is optimized
★ GOLD99%+Near-perfect context
◆ SILVER95%+Excellent
◇ BRONZE85%+Strong baseline
● GREEN70%+Solid foundation
● YELLOW55%+AI flipping coins
○ RED<55%AI working blind
♡ WHITE0%Start — good luck

At 55%, Grok guesses half the time. At 100%, Grok knows your project.


Two Ways to Deploy

1. Hosted (zero install — recommended)

Point your MCP client at the production URL — edge-served on Cloudflare Workers, no subprocess, sub-ms cold start. WASM-pure tools only on this path (scoring, validation, refresh_faf).

json
{  "mcpServers": {    "grok-faf": {      "url": "https://mcpaas.live/grok/mcp/v1"    }  }}

2. Local (stdio — for FS-touching workflows)

Use the local stdio path when you need filesystem access (faf_init, faf_sync, file-mutating tools):

bash
brew install wolfe-jam/faf/grok-faf-mcp   # macOS tap# orbunx grok-faf-mcp

Or via MCP config:

json
{  "mcpServers": {    "grok-faf": {      "command": "bunx",      "args": ["grok-faf-mcp"]    }  }}

MCP Tools

Create & Detect

ToolPurpose
faf_initCreate project.faf from your project
faf_autoAuto-detect stack and populate context
faf_scoreAI-readiness score (0-100%) with breakdown
faf_statusCheck current AI-readability
refresh_fafRe-ground on the live .faf — re-read + re-score, report drift, return fresh DNA (drift → refresh → re-grounded). Requested by Grok.

Drift & Orchestration (1.5 — the prestige release)

ToolPurpose
refresh_fafmRe-ground on the live .fafm memory layer for one or more souls. Returns a stamped delta (added/updated facts) by default; verbatim: true for full content. Read-only · always stamped. Sister to refresh_faf for the RAM/memory layer in the vROM/RAM model. Built for Grok, by request.
refresh_blendThe baked-in two-intensity refresh (Cmd+R / Cmd+Shift+R analog). mode: "blend" (default) fires refresh_faf (light) + refresh_fafm (delta); mode: "nuke" fires both at hard intensity. Blend is BAKED IN, NOT a dial — both layers always fire; mode only affects fafm intensity.
faf_orchestrate_recommendationThe heavy orchestrator. Reads current substrate state, composes the full 1.5 library substrate (drift detection · CheckID · repeat-offender · take-a-hint · refresh history), returns a structured Recommendation with recommend, severity, summary, reason, and a rich hints object including effective_policy (the tier in force). Advisory only — never auto-fires (subordinate-not-daemon). Writes a recommendation receipt on every call (no silent decisions). Spec source: Grok-1 FAF-DRIFT-DETECTION-SPEC §9.5 + Appendix C.
faf_get_orchestration_policyPure introspection of the effective policy WITHOUT running the orchestrator. Returns { tier, thresholds, source, overrides_applied } — what aggressiveness tier the next orchestration call would use, and whether it came from defaults or a .faf:orchestration: override. No drift detection · no signals · no receipt write — the quietest tool in the 1.5 substrate. Useful for debugging unexpected orchestrator behavior, pre-flight checks before bulk operations, and override-took-effect verification.

Sync & Persist

ToolPurpose
faf_syncWrite CLAUDE.md, AGENTS.md, .cursorrules and GEMINI.md from project.faf. One way: it never writes project.faf. (faf_bi_sync, the old name, still works.)
faf_trustValidate .faf integrity

Read & Write

ToolPurpose
faf_readRead any file
faf_writeWrite any file
faf_listDiscover projects with .faf files

RAG & Grok-Exclusive

ToolPurpose
rag_queryRAG-powered context retrieval
rag_cache_statsRAG cache statistics
rag_cache_clearClear RAG cache
grok_go_fast_afAuto-load .faf context for Grok

Plus 34 advanced tools available with FAF_SHOW_ADVANCED=true.


Performance

Execution:    0.5ms average (97% faster than v1.1)Fastest:      3,360ns (version — nanosecond territory)Slowest:      1.3ms (score — Mk4 WASM)Improvement:  19ms → 0.5ms (3,800% faster)Engine:       faf-cli 8 (faf-scoring-kernel 3.0.0, always-33)Memory:       Zero leaksTransport:    stdio (local, bunx) · Streamable HTTP (hosted, Cloudflare Workers)

Benchmarked 10x per tool, warmed up, on local stdio execution. Hosted edge adds sub-ms cold start on top.

Orchestrator (faf_orchestrate_recommendation) characteristics: composition call — reads up to 6 files (.faf, .fafm, package.json, CHANGELOG.md, README.md, plus all 3 receipt logs), runs 2 analyzers (detectFafmDrift + checkId), evaluates the decision table, writes 1 receipt. Expected latency: tens of ms on warm cache; higher under cold-disk or very large .fafm corpora. Designed for occasional agent-initiated calls, not per-turn polling. detectFafmDrift is O(n²) in fact count (cross-fact n-gram recurrence) — comfortable up to ~hundreds of facts.


Architecture

grok-faf-mcp├── src/│   ├── server.ts             → MCP server (GrokFafMcpServer)│   ├── handlers/│   │   ├── championship-tools.ts  → 55+ tool definitions│   │   ├── tool-registry.ts       → Visibility filtering (core/advanced)│   │   └── engine-adapter.ts      → FAF engine bridge│   ├── faf-core/commands/score.ts → faf-cli scoreFafYaml (always-33)│   ├── types/                     → Canonical type substrate (1.5)│   │   ├── drift-signals.ts       → DriftSignal · Contradiction · RepeatOffender│   │   ├── refresh.ts             → RefreshMode│   │   ├── escalation.ts          → EscalationLevel│   │   ├── recommendation.ts      → RecommendationAction│   │   └── receipts.ts            → ReceiptMetadata│   ├── detection/fafm-drift.ts    → detectFafmDrift() — repetition-rate gauge│   ├── integrity/check-id.ts      → checkId() — cross-stamp contradiction check│   ├── orchestrator/│   │   ├── repeat-offender.ts     → RepeatOffenderTracker│   │   ├── take-a-hint.ts         → evaluateTakeAHint() — escalation ladder│   │   ├── refresh-blend.ts       → runRefreshBlend()│   │   └── recommendation.ts      → analyzeAndRecommend() + orchestrate()│   └── telemetry/│       ├── refresh-receipts.ts        → RefreshReceiptsLog│       └── recommendation-receipts.ts → RecommendationReceiptsLog├── smithery.yaml             → Smithery listing config├── api/index.ts              → Vercel catch-site (legacy showcase surface; kept alive)└── vercel.json               → Vercel routing for the catch-site

Production deployment: Cloudflare Workers via mcpaas-cf (serving mcpaas.live/grok/mcp/v1). The api/index.ts + vercel.json paths above stay alive as a catch-site for legacy/bookmarked links — they are no longer the production path.

Scoring pipeline: faf-cli's scoreFafYaml → the always-33 kernel (faf-scoring-kernel, Rust → WASM) scores the file as written: 33 slots, slotignored slots drop out of the denominator. No per-type rewriting, no fallback scorer — the same number faf-cli, claude-faf-mcp and faf-mcp give.


Testing

WJTTC parity (heavy local ↔ light hosted) + full suites (green on CI):

bash
sh scripts/run-tests.sh
SuiteCoverage
desktop-native-validationCore native functions, security, performance
mcp-conformanceMCP protocol conformance — tools, transport, errors
wjttc-mcpWJTTC MCP certification
wjttc-bunWJTTC bun-migration + integrity
rag-systemRAG query, caching, context retrieval
securityInput validation + security guards
visibilityTool visibility (core/advanced filtering)

Status & known limitations (v2.2)

v2.2.0 — The Instructions Edition — server instructions in initialize (615 characters) and faf-cli 8.5.0, which detects skills repos. Scoring is unchanged from v2.0.0.

v2.1.0 — The New Era Edition — glass-box tools (every tool labelled read, write or rewrite), its own FAF passport at grok.faf.one, a new look. Scoring is unchanged from v2.0.0.

v2.0.0 — The Always33 Edition — one engine, one number: faf-cli 8's always-33 kernel on npm and on mcpaas.live. ZEPH is opt-in until the Zig engine is always-33. FafCompiler upgraded to the Always33 fafb model — parity across frontier models, Enterprise/Teams ready.

Everything below still applies; operating it honestly means surfacing what's NOT in here alongside what is.

Earlier: v1.10.0 — The No-Fluff Edition — no fluff in a project.faf. faf_enhance is gone. RAG default is grok-4.6. Fill stays on faf_auto / faf_go.

Earlier: v1.9.0 — The ZEPH Default Edition — the proven-fast Zig→WASM scoring path behind refresh_faf is now default-ON (same score, cheaper to compute; parity proven byte-identical — CI gate + 91/91 live). Kill switch USE_ZEPH=0 forces the canonical scorer. FRC tools stay opt-in behind USE_FRC.

Earlier: v1.8.0 — The Closed-Loop Edition — observability writes, token math is honest, FRC contract locked. The drift→refresh→re-ground loop can finally be measured. Earlier: v1.7.0 — The Grounded Memory Edition — ZEPH + the FRC layer over Grok Collections (faf_gate/faf_section/faf_memory), opt-in via USE_FRC/USE_ZEPH; 12-tool core unchanged. Earlier: v1.6.0 — The ZEPH Edition — the ZEPH fast path for re-grounding (refresh_faf/refresh_blend via Zig→WASM cascade.wasm, ~12µs, USE_ZEPH=1; faf-cli stays canonical, parity locked in CI).

What is fully supported:

  • 19 tools on the hosted endpoint (https://mcpaas.live/grok/mcp/v1 and client-specific routes) — scoring · validation · refresh_faf · a content-in faf_orchestrate_recommendation · the FRC trio · souls and search. The live list is at …/grok/mcp/v1/info.
  • refresh_faf and refresh_fafm as explicit, callable re-grounding primitives.
  • refresh_blend as the baked-in two-intensity refresh (Cmd+R / Cmd+Shift+R analog).
  • faf_orchestrate_recommendation — the heavy orchestrator that composes drift signals, recurrence, receipts, and take-a-hint into an advisory recommendation.
  • faf_get_orchestration_policy — pure introspection of the effective policy without running the orchestrator (no drift detection, no receipt write — the quietest tool in the substrate).
  • Full policy visibility (effective_policy) returned on every orchestration call AND surfaced standalone via faf_get_orchestration_policy.

Current limitations:

  • faf_get_orchestration_policy, refresh_fafm, refresh_blend, faf_init and faf_sync need filesystem access and run only on the local stdio path (bunx grok-faf-mcp / npx grok-faf-mcp). The hosted faf_orchestrate_recommendation takes file contents instead of reading your repo, and has no receipts or recurrence history (it reports those under partial[]).
  • Receipt storage — cwd-relative JSON, pull-discoverable. Three append-only JSON files live at the repo root with stable schemas:
    .faf-drift-index.json              ← RepeatOffenderTracker — per-slot recurrence counts.faf-refresh-receipts.json         ← RefreshReceiptsLog    — every refresh fire.faf-recommendation-receipts.json  ← RecommendationReceiptsLog — every orchestrator call
    Pull-discoverable by external tools (TAF, custom indexers, observability dashboards) — read on your own schedule, no callback/push API required. Promotion to a dedicated orphan branch (mirroring the TAF pattern) is documented but deferred per ship discipline; the cwd-relative JSON is the v1 bootstrap.
  • No multi-process file lock on the receipt logs. Within a process, the JS event loop serializes writes. Multi-agent concurrent writes can race; future task.
  • Aggressiveness tier hook — .faf:orchestration:tier reads 'conservative' (default — quietest, no noisy first-impression) · 'balanced' · 'aggressive'. active_tier always surfaced in hints.effective_policy for observability, and standalone via faf_get_orchestration_policy. The policy WRITER (faf_set_orchestration_policy) and scheduling (faf_schedule_heavy_re_ground) are not included in v1.5 — edit .faf:orchestration:tier: directly to override.
  • No ack mechanism yet for recommendation receipts. acknowledged: false by default, never auto-flipped. Take-a-hint's ladder-reset semantics fire only on explicit ack — conservative by intent. Future task: explicit ack tool OR derived-from-subsequent-refresh-receipt timing.
  • Outcome tracking ("did this recommendation actually help?") — needs a learning layer beyond 1.5 scope.

The honest split is intentional: hosted = fast, auditable, WASM-pure; local = full capability including filesystem. We will expand the hosted surface only where it can be done safely and without compromising the model.

Subordinate-not-daemon throughout. The orchestrator NEVER auto-fires the recommended tool. Agents surface the recommendation; the user (or higher agent) decides whether to act. Even severity: 'block' is advisory.

See the public verifier and curl https://mcpaas.live/grok/mcp/v1/info for the current contract.


Ecosystem

One format, every AI platform.

PackagePlatformRegistry
grok-faf-mcp (this)xAI Groknpm + Homebrew
claude-faf-mcpAnthropicnpm + MCP #2759
gemini-faf-mcpGooglePyPI
rust-faf-mcpRustcrates.io
faf-mcpCursor, IDE's, VS Codenpm
faf-cliTerminal CLIbunx, npm + Homebrew

Same project.faf. Same scoring. Same result. Different execution layer.


Voice variant — grok-faf-voice (VML)

.fafm 🐘🎙️ — the voice variant of the .faf 🐘 family.

grok-faf-voice is the reference implementation of the Voice Memory Layer (VML) — what your voice agent remembers across sessions, devices, and model switches. Companion to grok-faf-mcp:

  • grok-faf-mcp (this) — .faf Foundational Context Layer for Grok via MCP-on-a-URL.
  • grok-faf-voice — .fafm Voice Memory Layer (VML) for Grok Voice via LiveKit + xAI realtime.

Same family. Different surface. Voice swappable; memory permanent.

PyPI · GitHub · Onboarding


For the xAI / Grok Build team

This MCP server was built for Grok and continues to be shaped by direct feedback from Grok itself.

Open for deeper collaboration on:

  • Native Grok Build integration
  • .fafm memory layer
  • refresh_faf primitives inside the Grok TUI / CLI
  • Any other context or orchestration features the team needs

I ship fast, test rigorously, and dogfood everything live on https://grok.faf.one and https://mcpaas.live/grok/mcp/v1.

Happy to:

  • Open PRs
  • Run private dogfood sessions
  • Jump on a call
  • Or just ship whatever moves the needle

Real software only. Just say the word.


Contributing

PR conventions, code style, CI doctrine, MCP-tool contribution path, npm publish discipline, architecture decisions: CONTRIBUTING.md.

xAI / Grok devs welcome — TL;DR setup at the top.


For xAI / Grok Build team

Open for deeper native integration, .fafm memory layer, or Grok Build CLI collaboration.
Happy to ship PRs, dogfood, or jump on a call. Just say the word.


Citation

If you use grok-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 — Free and open source


Built for Grok. Built for Speed. Built Right.

FAST⚡️AF • First to Ship • Zero Friction

Zero drift. Eternal sync. AI optimized. 🏆


Get the CLI

faf-cli — The original AI-Context CLI. A must-have for every builder.

bash
npx faf-cli auto

Anthropic MCP #2759 · IANA Registered: application/vnd.faf+yaml · faf.one · npm · Talk to my Agent →

来源:README.md,提交 d423ff4

工具

20

get_soul

Get Context Soul

Fetch a context soul by name. Returns structured AI context.

输入参数soul必填

list_souls

List Available Souls

List all available context souls.

无需输入参数。

delta_check

Delta Doctrine Check

Determine if a topic needs FULL, DELTA, or X-DELTA soul.

输入参数topic必填

list_tags

List Tags

List all unique tags used in a soul, with counts.

输入参数soul必填

search_by_tag

Search by Tag

Find all entries in a soul with a specific tag.

输入参数tag必填soul必填

search_context

Search Context

Full-text search across souls. Returns matching lines only (token-efficient).

输入参数soulquery必填

tag_intel

Tag Intel

Discover tag patterns, co-occurrence, candidates, and merge suggestions across all namepoints. Optionally suggest tags for a specific handle.

输入参数handle

generate_faf_from_github

Generate FAF from GitHub

Generate a .faf file from any public GitHub repository WITHOUT cloning. Extracts 6 Ws from README, analyzes stack from languages and package.json, and generates Championship-grade AI context. Returns .faf content, quality score, and metadata.

输入参数repo必填

faf_score

Score .faf content

Score .faf YAML content with the always-33 faf-kernel (WASM). Returns 0-100 (capped). The same score faf-cli and every FAF MCP give. Runs at the edge.

输入参数content必填

faf_validate

Validate .faf content

Validate .faf YAML content: true if mission-ready (always-33 score of 100).

输入参数content必填

faf_get_tier

Get tier for a score

Resolve the FAF tier for a given numeric score. Returns the tier symbol (Trophy/Gold/Silver/Bronze/etc.) per the canonical tier-table.

输入参数score必填

faf_estimate_tokens

Estimate tokens

Estimate token count for arbitrary content via the Zig WASM engine. Sub-millisecond, zero allocations. Useful for context-budget planning.

输入参数content必填

faf_analyze

Full analysis (score + tier + validate)

One-call composite — returns score, tier-ready, valid, and engine identifier. Two WASM calls, sub-millisecond total.

输入参数content必填

refresh_faf

Re-ground on .faf content (drift → refresh → re-grounded)

Re-ground on .faf content — re-score with the always-33 faf-kernel (33 slots; slotignored slots drop out), report drift vs an optional baseline score, and return a stamped re-ground. The explicit re-grounding primitive for long sessions: drift → refresh → re-grounded. Built for Grok, by request.

输入参数content必填baselineverbatim

faf_orchestrate_recommendation

Orchestrate Context Recommendation (FAF)

Takes raw content strings (`.faf`, `.fafm`, and optionally `package.json`/`CHANGELOG.md`/`README.md`) and runs deterministic drift + contradiction signals across the FAF substrate. Returns a structured `Recommendation` (recommend, severity, reason, summary) with `hints` containing the current `effective_policy` and `partial[]` for any stateful signals unavailable on the current surface. Light-lane execution (hosted) is WASM-pure with no filesystem access. Heavy-lane execution (local via bunx/rust-faf-mcp) has full FS + persisted state. Advisory only — never auto-fires.

输入参数faffafmreadmechangelogpackageJson

faf_gate

FRC quality gate (promote/hold)

Phase III (FRC) — pre-promotion quality gate. Scores .faf content (edge Mk4) + estimates tokens and returns a deterministic promote/hold verdict BEFORE it goes to a Grok Collection. Promote IFF score >= min_score AND tokens <= max_tokens (defaults 85/8000). Edge parity with the local gate; the hold-hint can't list empty slots at the edge.

输入参数content必填min_scoremax_tokens

faf_section

Structure-aware retrieval

Phase III (FRC) — returns an EXACT, WHOLE .faf section by dotted path (e.g. "stack", "human_context"), structure preserved — the deterministic complement to blind chunking. Omit "section" to list every path.

输入参数content必填section

faf_memory

Portable structured memory (.fafm)

Phase III (FRC) — query the durable .fafm model by type/tag/priority/text. Omit filters for a structured summary. .fafm is NOT scored: this SELECTS facts (provenance preserved), never grades them.

输入参数tagtypequerycontent必填priority

faf_business_card

Print a business card for an agent

Print a business card for an agent from its own name, description, colour and picture. Returns the agent's .fafa (FAF Agent file) and a link that opens its card. Nothing is stored: the .fafa travels in the link. The card says "self-declared" because nothing is checked against a repo.

输入参数iconname必填accentdescription

版本历史

1
  1. v1.8.1最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Grok 集成