grok-faf-mcp
This MCP server gives Grok persistent project context via .faf files and tools to create, score, validate, sync, refresh, orchestrate, and query that context.
Create project DNA: initialize a
project.fafcontext file from a project.Score AI-readiness: run deterministic 0–100% scoring with tier and slot breakdown/suggestions.
Validate context: check that
project.fafis well-formed, parses cleanly, and scores correctly.Sync context files: write a structured
.fafblock into existingCLAUDE.md,.cursorrules,.windsurfrules,.clinerules, or all of them without erasing hand-written text.Re-ground sessions: refresh the live
.fafand report score drift against a baseline.Reload memory: refresh
.fafmsoul/memory data as a delta or verbatim, with stamped receipt.Blend refreshes: fire
.fafplus.fafmrefresh together in light (blend) or hard (nuke) mode.Get advisory orchestration: recommend whether/what to refresh based on drift, contradictions, repeat offenders, hints, and refresh history—without auto-firing actions.
Inspect orchestration policy: see the effective aggressiveness tier, thresholds, and override source without running the orchestrator.
Query RAG context: ask questions using xAI Collections-backed RAG, with cache statistics and cache clearing.
Utilizes the IANA-registered .faf (YAML) format to manage project metadata, providing tools to initialize, auto-detect, and score project context for AI-readiness.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
grok-faf-mcp v2.1 — The New Era Edition
Home: faf.one/grok Live demo: grok.faf.one
⭐ Star faf-cli on GitHub, the CLI this server is built on: bookmarks it for you, helps other devs find it too.

FAF defines. AGENTS.md instructs. AI codes.
v2.2.4 — The Instructions Edition
faf_sync keeps your hand-written files, writes the context files it names, and tells you what it couldn't write. Managed blocks now go through faf-cli's injector, so a hand-written AGENTS.md or CLAUDE.md is never reclaimed; faf_sync writes the context files it names, one file at a time, and the reply says what it couldn't write and why.
v2.2.3
faf_write can no longer overwrite the birth certificate or your context files. .faf-dna is refused in every spelling and route, existing project.faf, CLAUDE.md and AGENTS.md need overwrite: true, and writes stay inside the project folder.
v2.2.2
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_queryneeds an xAI Collection.faf-cli 8.5.0 inside.
faf_initdetects a skills repo:SKILL.mdfolders make itskills(10 slots), and a Claude Code plugin manifest makes itskills-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.
Related MCP server: claude-faf-mcp
Install — one line
Add to ~/.grok/config.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):
brew install wolfe-jam/faf/grok-faf-mcpHosted 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:
curl https://mcpaas.live/grok/mcp/v1/infoReturns 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:
Question | Answer |
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 ( |
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? |
|
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) ◇ BRONZE
Steps:
1. Created project.faf
2. Detected stack from package.json
3. Synced CLAUDE.md
Path: /home/user/my-projectWhat it produces:
# project.faf — your project, machine-readable
faf_version: "3.3"
project:
name: my-api
goal: REST API for user management
main_language: TypeScript
stack:
backend: Express
database: PostgreSQL
testing: Jest
runtime: Node.js
human_context:
who: Backend developers
what: User CRUD with auth
why: Replace legacy PHP serviceEvery AI agent reads this once and knows exactly what you're building.
⚡ What You Get
URL: https://mcpaas.live/grok/mcp/v1
Format: 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 URL
Engine: 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⚡️AFMCP on a URL. Point your Grok integration at the URL. That's it.
Scoring: From Blind to Optimized
Tier | Score | What it means |
🏆 TROPHY | 100% | Gold Code — AI is optimized |
★ GOLD | 99%+ | Near-perfect context |
◆ SILVER | 95%+ | Excellent |
◇ BRONZE | 85%+ | Strong baseline |
● GREEN | 70%+ | Solid foundation |
● YELLOW | 55%+ | AI flipping coins |
○ RED | <55% | AI working blind |
♡ WHITE | 0% | 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).
{
"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):
brew install wolfe-jam/faf/grok-faf-mcp # macOS tap
# or
bunx grok-faf-mcpOr via MCP config:
{
"mcpServers": {
"grok-faf": {
"command": "bunx",
"args": ["grok-faf-mcp"]
}
}
}MCP Tools
Create & Detect
Tool | Purpose |
| Create project.faf from your project |
| Auto-detect stack and populate context |
| AI-readiness score (0-100%) with breakdown |
| Check current AI-readability |
| Re-ground on the live |
Drift & Orchestration (1.5 — the prestige release)
Tool | Purpose |
| Re-ground on the live |
| The baked-in two-intensity refresh (Cmd+R / Cmd+Shift+R analog). |
| The 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 |
| Pure introspection of the effective policy WITHOUT running the orchestrator. Returns |
Sync & Persist
Tool | Purpose |
| Write the context files from project.faf: the ones that exist (CLAUDE.md, .cursorrules, .windsurfrules, .clinerules), or CLAUDE.md when there are none; |
| Validate .faf integrity |
Read & Write
Tool | Purpose |
| Read any file |
| Write a file inside the project. Never writes |
| Discover projects with .faf files |
RAG & Grok-Exclusive
Tool | Purpose |
| RAG-powered context retrieval |
| RAG cache statistics |
| Clear RAG cache |
| Auto-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 leaks
Transport: 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-siteProduction 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):
sh scripts/run-tests.shSuite | Coverage |
| Core native functions, security, performance |
| MCP protocol conformance — tools, transport, errors |
| WJTTC MCP certification |
| WJTTC bun-migration + integrity |
| RAG query, caching, context retrieval |
| Input validation + security guards |
| Tool 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_enhanceis gone. RAG default isgrok-4.6. Fill stays onfaf_auto/faf_go.
Earlier: v1.9.0 — The ZEPH Default Edition — the proven-fast Zig→WASM scoring path behind
refresh_fafis now default-ON (same score, cheaper to compute; parity proven byte-identical — CI gate + 91/91 live). Kill switchUSE_ZEPH=0forces the canonical scorer. FRC tools stay opt-in behindUSE_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 viaUSE_FRC/USE_ZEPH; 12-tool core unchanged. Earlier: v1.6.0 — The ZEPH Edition — the ZEPH fast path for re-grounding (refresh_faf/refresh_blendvia Zig→WASMcascade.wasm, ~12µs,USE_ZEPH=1;faf-clistays canonical, parity locked in CI).
What is fully supported:
19 tools on the hosted endpoint (
https://mcpaas.live/grok/mcp/v1and client-specific routes) — scoring · validation ·refresh_faf· a content-infaf_orchestrate_recommendation· the FRC trio · souls and search. The live list is at…/grok/mcp/v1/info.refresh_fafandrefresh_fafmas explicit, callable re-grounding primitives.refresh_blendas 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 viafaf_get_orchestration_policy.
Current limitations:
faf_get_orchestration_policy,refresh_fafm,refresh_blend,faf_initandfaf_syncneed filesystem access and run only on the local stdio path (bunx grok-faf-mcp/npx grok-faf-mcp). The hostedfaf_orchestrate_recommendationtakes file contents instead of reading your repo, and has no receipts or recurrence history (it reports those underpartial[]).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 callPull-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:tierreads'conservative'(default — quietest, no noisy first-impression) ·'balanced'·'aggressive'.active_tieralways surfaced inhints.effective_policyfor observability, and standalone viafaf_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: falseby default, never auto-flipped. Take-a-hint's ladder-reset semantics fire only on explicit ack — conservative by intent. Future task: explicitacktool 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.
Package | Platform | Registry |
grok-faf-mcp (this) | xAI Grok | npm + Homebrew |
Anthropic | npm + MCP #2759 | |
PyPI | ||
Rust | crates.io | |
Cursor, IDE's, VS Code | npm | |
Terminal CLI | bunx, 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) —.fafFoundational Context Layer for Grok via MCP-on-a-URL.grok-faf-voice—.fafmVoice 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
@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
Get the CLI
faf-cli — The original AI-Context CLI. A must-have for every builder.
npx faf-cli autoAnthropic MCP #2759 · IANA Registered: application/vnd.faf+yaml · faf.one · npm · Talk to my Agent →
Available Tools
12 toolsfaf_get_orchestration_policyARead-onlyInspect
Introspect the effective orchestration policy WITHOUT running the orchestrator. Returns { tier, thresholds, source, overrides_applied } — what aggressiveness tier the next faf_orchestrate_recommendation call would use, and whether it came from defaults or a .faf:orchestration: override. No drift detection, no signals, no receipt — pure introspection. Read-only.
Inputs: path.
faf_initADestructiveInspect
Create a project.faf — the IANA-registered context file (application/vnd.faf+yaml) that gives Grok persistent project DNA (stack, structure, intent) in one portable file, so an agent reads the whole project cold each session instead of re-discovering it. Writes project.faf to the target directory (created if missing) and refuses to overwrite an existing context file unless force is set. Run once at project start, or with force to regenerate, then call faf_score to check readiness. Returns a text confirmation with the written file path and the detected project type.
Inputs: path, force, directory, projectName.
faf_orchestrate_recommendationAInspect
Heavy orchestrator — given current substrate state, returns a structured recommendation about drift: which refresh to call (or no_action), why, how severe, and the underlying signals. ADVISORY ONLY — never auto-fires. Composes the full 1.5 substrate (drift detection · contradiction check · repeat-offender · take-a-hint · refresh history). Writes a recommendation receipt on every call (auditable trail, no silent decisions). Read-only WRT substrate state.
Inputs: no named parameters.
faf_scoreARead-onlyInspect
Score a project's AI-readiness 0–100% against the fixed 33-slot context model — how much project DNA an agent has before it has to guess. Deterministic: the same .faf always scores the same. Returns the score, tier, and per-slot breakdown.
Inputs: details.
faf_syncAIdempotentInspect
Sync project.faf into your AI context files: the ones that exist (CLAUDE.md, .cursorrules, .windsurfrules, .clinerules), or CLAUDE.md when there are none (target: all writes every one). Non-destructive: puts a structured .faf block at the top and keeps your own text; a file faf cannot safely write (not UTF-8, a link out of the project) is left unchanged and named in the reply. One way: never writes project.faf.
Inputs: target.
faf_trustARead-onlyInspect
Validate a project.faf with faf-cli — confirm the context file is well-formed and parses cleanly before an agent grounds on it, and report its always-33 score. The pre-flight trust check: never build on a broken context layer.
Inputs: path.
rag_cache_clearAIdempotentInspect
Clear the LAZY-RAG cache — drop all cached retrievals so the next rag_query rebuilds from source. Use when the underlying context has changed and you want fresh results instead of cached ones.
Inputs: no named parameters.
rag_cache_statsARead-onlyInspect
Get LAZY-RAG cache statistics - hits, misses, hit rate, cache size
Inputs: no named parameters.
rag_queryBRead-onlyInspect
Ask a question with RAG-enhanced context from xAI Collections. Uses LAZY-RAG cache for 100,000x speedup on repeated queries.
Inputs: question (required).
refresh_blendAInspect
Baked-in two-intensity refresh (Cmd+R / Cmd+Shift+R analog). Fires BOTH refresh_faf + refresh_fafm in one call. mode: "blend" (default) = light .faf + delta .fafm — the everyday re-ground. mode: "nuke" = light .faf + verbatim .fafm — the hard reload for polluted session memory. Intensity matches drift rate per layer.
Inputs: mode, path, soul, since, +1 more.
refresh_fafBInspect
Re-ground on the live .faf — re-read + re-score the current project DNA, report drift vs your last-known score, and return the fresh context. The explicit re-grounding primitive for long sessions: drift → refresh → re-grounded. Built for Grok, by request.
Inputs: path, baseline.
refresh_fafmAInspect
Reload the latest structured memory (.fafm) for one or more souls into the current session. Returns a stamped delta by default (added/updated facts since last refresh or a given timestamp). Use verbatim: true to receive the full current .fafm content instead. Reads your files and writes a refresh receipt (.fafm-refresh-receipts.json) to the project folder. Always returns a content hash + timestamp stamp. Complements recall, load_soul, and etch — does not replace them.
Inputs: soul, since, verbatim.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
The refresh/score cluster has genuinely unclear boundaries: refresh_faf, refresh_fafm, and refresh_blend overlap, with refresh_blend literally composing the other two, and faf_orchestrate_recommendation exists mainly to advise which of them to call. Similarly, faf_score and faf_trust both report scores (0-100% vs always-33), and refresh_faf also re-scores, so an agent has several plausible entry points for the same outcome. The RAG tools are cleanly separated, but the core FAF family is muddy.
Two competing paradigms coexist: noun-prefixed actions (faf_sync, faf_trust, faf_score, faf_init) and verb-first actions (refresh_faf, refresh_fafm, refresh_blend), plus an outlier like faf_get_orchestration_policy that breaks the faf_<verb> pattern. The rag_ namespace is consistent, but the overall set mixes verb placement and prefixes, making it hard to predict a tool name from its action.
Twelve tools sit comfortably in the well-scoped 3-15 range for a context-management server, and the RAG trio plus the core FAF lifecycle each justify their existence. However, the refresh family (refresh_faf, refresh_fafm, refresh_blend, plus an orchestrator) could arguably be consolidated, so it is slightly over-provisioned rather than perfectly tight.
The surface covers create (faf_init), read/score (faf_score, refresh_faf), validate (faf_trust), sync (faf_sync), and RAG, but there is no direct edit/update or delete operation for project.faf. The .fafm memory lifecycle is also partial here — refresh_fafm explicitly defers to external recall/load_soul/etch tools that are not in this server, leaving gaps an agent must work around.
Maintenance
Related MCP Connectors
MCP server for Grok Imagine AI video generation
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- AlicenseAqualityBmaintenanceUse XAI's latest api functionalities with Grok MCP. It supports image understanding and generation, live search, latest models and more.2254MIT
- AlicenseAqualityBmaintenance.FAF (Foundational AI-context Format) with 50+ tools - Only Persistent project context that integrates seamlessly with Claude Desktop workflows. Officially merged (#2759) Anthropic MCP server.14777 npm23MIT
- AlicenseAqualityBmaintenancePersistent project context for Google Gemini. 12 MCP tools for .faf Project DNA — auto-detect your stack, validate, score, and sync across CLAUDE.md, GEMINI.md, and AGENTS.md. Python/FastMCP. IANA-registered format (application/vnd.faf+yaml). 183 tests. One file, every AI platform.13489 PyPI2MIT
- AlicenseNot gradedqualityBmaintenancePersistent project context in Rust. 8 MCP tools via rmcp SDK — parse, validate, score, compress, discover, and token analysis. Single binary, zero config. IANA-registered format (application/vnd.faf+yaml). One file, every AI platform.407 npm4MIT