{
  "markdown": "<!-- faf: grok-faf-mcp | TypeScript | mcp-server | First MCP server for Grok — URL-based AI context, FAST⚡️AF -->\n<!-- faf: doc=readme | canonical=project.faf | score=100 | family=FAF -->\n\n# grok-faf-mcp — FAST⚡️AF Edition\n\n<div align=\"center\">\n  <img src=\"https://www.faf.one/orange-smiley.svg\" alt=\"FAF\" width=\"80\" />\n\n  <h3>Grok asked for MCP on a URL. This is it.</h3>\n\n  <p><strong>Persistent Project Context for xAI Grok.</strong></p>\n  <p><code>URL-based • Zero config • Just works</code></p>\n\n  [![IANA: vnd.faf+yaml](https://img.shields.io/badge/IANA-vnd.faf%2Byaml-00D4D4)](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml)\n  [![DOI: Context paper](https://img.shields.io/badge/DOI-Context%20paper-FF6B35)](https://doi.org/10.5281/zenodo.18251362)\n  [![DOI: Agents paper](https://img.shields.io/badge/DOI-Agents%20paper-FF6B35)](https://doi.org/10.5281/zenodo.21951641)\n</div>\n\n**Home:** [faf.one/grok](https://faf.one/grok)\n**Live demo:** [grok.faf.one](https://grok.faf.one)\n\n![grok-faf-mcp hero](https://raw.githubusercontent.com/Wolfe-Jam/grok-faf-mcp/main/assets/grok-faf-mcp-hero.png)\n\n<div align=\"center\">\n\n[![npm version](https://img.shields.io/npm/v/grok-faf-mcp?color=00CCFF)](https://www.npmjs.com/package/grok-faf-mcp)\n[![Smithery](https://img.shields.io/badge/Smithery-listed-00CCFF)](https://smithery.ai/servers/wolfe-jam/grok-faf-mcp)\n[![FAF Trophy 100%](https://img.shields.io/badge/FAF-%F0%9F%8F%86%20100%25-000000?labelColor=FF6B35)](https://faf.one)\n[![CI](https://github.com/Wolfe-Jam/grok-faf-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Wolfe-Jam/grok-faf-mcp/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![project.faf](https://img.shields.io/badge/project.faf-inside-00D4D4)](https://github.com/Wolfe-Jam/faf)\n[![Chat to FAFA live](https://img.shields.io/badge/Chat_to_FAFA_live-000000?style=flat&labelColor=000)](https://faf-voice.vercel.app/agent)\n</div>\n\n[![Stars](https://img.shields.io/github/stars/Wolfe-Jam/grok-faf-mcp)](https://github.com/Wolfe-Jam/grok-faf-mcp/stargazers) [![Downloads](https://img.shields.io/npm/dt/grok-faf-mcp)](https://www.npmjs.com/package/grok-faf-mcp)\n\n**FAF defines. MD instructs. AI codes.**\n\n## v1.10.0 — The No-Fluff Edition\n\nNo fluff in a project.faf. `faf_enhance` is gone. RAG default is `grok-4.6`.\n\nA `.faf` is facts. Two writers only: the repo (`faf_auto`) and the human (`faf_go`). Empty is honest. There is no enhance.\n\n⭐ Bookmarks it for you, helps other devs find it too.\n\n**First v0.2-conformant reader** of the [FAF Context Ingestion Contract](https://github.com/Wolfe-Jam/faf/blob/main/CONTEXT-INGESTION.md) — the open standard co-authored in public with @grok.\n\n---\n\n## Install — one line\n\nAdd to `~/.grok/config.toml`:\n\n```toml\n[mcp_servers.grok-faf-mcp]\nurl = \"https://mcpaas.live/grok/mcp/v1\"\n```\n\nRestart Grok TUI (or `/mcps r`) to refresh. Tools: `faf_score`, `faf_validate`, `faf_get_tier`, `faf_estimate_tokens`, `faf_analyze` (plus soul/memory ops).\n\n**Smithery:** [wolfe-jam/grok-faf-mcp](https://smithery.ai/servers/wolfe-jam/grok-faf-mcp) — gateway at `https://grok-faf-mcp--wolfe-jam.run.tools`\n\n**Homebrew (local stdio):**\n\n```bash\nbrew install wolfe-jam/faf/grok-faf-mcp\n```\n\n**Hosted on Cloudflare Workers** — sub-ms cold start, no subprocess, edge-served. 4865-byte Zig WASM engine, parity-tested vs the Rust authority (`xai-faf-rust`). Externally validated by Grok S1 + S2 on 2026-05-27.\n\n**Verify the live contract:**\n\n```bash\ncurl https://mcpaas.live/grok/mcp/v1/info\n```\n\nReturns endpoint, protocol versions, engine details, tool list, and the architecture line: `.faf=vROM | AI-in-session=RAM`.\n\nSample corpus: [`xai-faf-proof/pilot`](https://github.com/Wolfe-Jam/xai-faf-proof/tree/main/pilot) — 10 records ready to score.\n\n---\n\n## The 6 Ws - Quick Reference\n\nEvery README should answer these questions. Here's ours:\n\n| Question | Answer |\n|----------|--------|\n| **WHO** is this for? | Grok/xAI developers and teams building with URL-based MCP |\n| **WHAT** is it? | Persistent project context for xAI Grok — URL-first deployment, IANA-registered .faf format |\n| **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 |\n| **WHY** do you need it? | Zero-config MCP on a URL — Grok asked for it, we built it first |\n| **WHEN** should you use it? | Grok integration, xAI projects, any url-based MCP client |\n| **HOW** does it work? | `url = \"https://mcpaas.live/grok/mcp/v1\"` — context tools served from edge via MCPaaS (sub-ms cold start, no subprocess) |\n\n**For AI:** Read the detailed sections below for full context.\n**For humans:** Use this pattern in YOUR README. Answer these 6 questions clearly.\n\n### For the xAI / Grok Build team\n\nBuilt **for** Grok and shaped by direct Grok feedback.  \nOpen for native Grok Build integration, .fafm memory layer, refresh_faf primitives, or any other context features the team needs.  \nLive and dogfooded at https://grok.faf.one and https://mcpaas.live/grok/mcp/v1.\n\n**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](https://github.com/Wolfe-Jam/faf-cli/blob/main/docs/faf-cli-for-agents.md).\n\n---\n\n## The Problem\n\nEvery Grok session starts from zero. You re-explain your stack, your goals, your architecture. Every time.\n\n`.faf` fixes that. One file, your project DNA, persistent across every session.\n\n```\nWithout .faf  →  \"I'm building a REST API in Rust with Axum and PostgreSQL...\"\nWith .faf     →  Grok already knows. Every session. Forever.\n```\n\n---\n\n## One Command, Done Forever\n\n`faf_auto` detects your project, creates a `.faf`, and scores it — in one shot:\n\n```\nfaf_auto\n━━━━━━━━━━━━━━━━━\nScore: 0% → 85% (+85) ◇ BRONZE\nSteps:\n  1. Created project.faf\n  2. Detected stack from package.json\n  3. Synced CLAUDE.md\n\nPath: /home/user/my-project\n```\n\nWhat it produces:\n\n```yaml\n# project.faf — your project, machine-readable\nfaf_version: \"3.3\"\nproject:\n  name: my-api\n  goal: REST API for user management\n  main_language: TypeScript\nstack:\n  backend: Express\n  database: PostgreSQL\n  testing: Jest\n  runtime: Node.js\nhuman_context:\n  who: Backend developers\n  what: User CRUD with auth\n  why: Replace legacy PHP service\n```\n\nEvery AI agent reads this once and knows exactly what you're building.\n\n---\n\n## ⚡ What You Get\n\n```\nURL:     https://mcpaas.live/grok/mcp/v1\nFormat:  IANA-registered .faf (application/vnd.faf+yaml)\nTools:   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\nEngine:  Mk4 WASM scoring (faf-scoring-kernel)\nSpeed:   0.5ms average (was 19ms — 3,800% faster with Mk4)\nTests: 27 .ts files (~518 test declarations) — WJTTC parity (heavy local ↔ light hosted) + full suites. Runner: sh scripts/run-tests.sh (bun + flake retry)\nStatus:  FAST⚡️AF\n```\n\n**MCP on a URL.** Point your Grok integration at the URL. That's it.\n\n---\n\n## Scoring: From Blind to Optimized\n\n| Tier | Score | What it means |\n|------|-------|---------------|\n| **🏆 TROPHY** | 100% | Gold Code — AI is optimized |\n| **★ GOLD** | 99%+ | Near-perfect context |\n| **◆ SILVER** | 95%+ | Excellent |\n| **◇ BRONZE** | 85%+ | Strong baseline |\n| **●** GREEN | 70%+ | Solid foundation |\n| ● YELLOW | 55%+ | AI flipping coins |\n| ○ RED | <55% | AI working blind |\n| ♡ WHITE | 0% | Start — good luck |\n\nAt 55%, Grok guesses half the time. At 100%, Grok knows your project.\n\n---\n\n## Two Ways to Deploy\n\n### 1. Hosted (zero install — recommended)\nPoint 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`).\n\n```json\n{\n  \"mcpServers\": {\n    \"grok-faf\": {\n      \"url\": \"https://mcpaas.live/grok/mcp/v1\"\n    }\n  }\n}\n```\n\n### 2. Local (stdio — for FS-touching workflows)\nUse the local stdio path when you need filesystem access (`faf_init`, `faf_sync`, file-mutating tools):\n\n```bash\nbrew install wolfe-jam/faf/grok-faf-mcp   # macOS tap\n# or\nbunx grok-faf-mcp\n```\n\n**Or via MCP config:**\n\n```json\n{\n  \"mcpServers\": {\n    \"grok-faf\": {\n      \"command\": \"bunx\",\n      \"args\": [\"grok-faf-mcp\"]\n    }\n  }\n}\n```\n\n---\n\n## MCP Tools\n\n**Create & Detect**\n\n| Tool | Purpose |\n|------|---------|\n| `faf_init` | Create project.faf from your project |\n| `faf_auto` | Auto-detect stack and populate context |\n| `faf_score` | AI-readiness score (0-100%) with breakdown |\n| `faf_status` | Check current AI-readability |\n| `refresh_faf` | Re-ground on the live `.faf` — re-read + re-score, report drift, return fresh DNA (drift → refresh → re-grounded). **Requested by Grok.** |\n\n**Drift & Orchestration (1.5 — the prestige release)**\n\n| Tool | Purpose |\n|------|---------|\n| `refresh_fafm` | Re-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.** |\n| `refresh_blend` | The 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. |\n| `faf_orchestrate_recommendation` | 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 `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`. |\n| `faf_get_orchestration_policy` | Pure 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. |\n\n**Sync & Persist**\n\n| Tool | Purpose |\n|------|---------|\n| `faf_sync` | Sync .faf → CLAUDE.md |\n| `faf_bi_sync` | Bi-directional .faf ↔ platform context |\n| `faf_trust` | Validate .faf integrity |\n\n**Read & Write**\n\n| Tool | Purpose |\n|------|---------|\n| `faf_read` | Read any file |\n| `faf_write` | Write any file |\n| `faf_list` | Discover projects with .faf files |\n\n**RAG & Grok-Exclusive**\n\n| Tool | Purpose |\n|------|---------|\n| `rag_query` | RAG-powered context retrieval |\n| `rag_cache_stats` | RAG cache statistics |\n| `rag_cache_clear` | Clear RAG cache |\n| `grok_go_fast_af` | Auto-load .faf context for Grok |\n\nPlus 34 advanced tools available with `FAF_SHOW_ADVANCED=true`.\n\n---\n\n## Performance\n\n```\nExecution:    0.5ms average (97% faster than v1.1)\nFastest:      3,360ns (version — nanosecond territory)\nSlowest:      1.3ms (score — Mk4 WASM)\nImprovement:  19ms → 0.5ms (3,800% faster)\nEngine:       Mk4 WASM via faf-scoring-kernel\nMemory:       Zero leaks\nTransport:    stdio (local, bunx) · Streamable HTTP (hosted, Cloudflare Workers)\n```\n\nBenchmarked 10x per tool, warmed up, on local stdio execution. Hosted edge adds sub-ms cold start on top.\n\n**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.\n\n---\n\n## Architecture\n\n```\ngrok-faf-mcp\n├── src/\n│   ├── server.ts             → MCP server (GrokFafMcpServer)\n│   ├── handlers/\n│   │   ├── championship-tools.ts  → 55+ tool definitions\n│   │   ├── tool-registry.ts       → Visibility filtering (core/advanced)\n│   │   └── engine-adapter.ts      → FAF engine bridge\n│   ├── faf-core/compiler/faf-compiler.ts → Mk4 WASM scoring + Mk3.1 fallback\n│   ├── types/                     → Canonical type substrate (1.5)\n│   │   ├── drift-signals.ts       → DriftSignal · Contradiction · RepeatOffender\n│   │   ├── refresh.ts             → RefreshMode\n│   │   ├── escalation.ts          → EscalationLevel\n│   │   ├── recommendation.ts      → RecommendationAction\n│   │   └── receipts.ts            → ReceiptMetadata\n│   ├── detection/fafm-drift.ts    → detectFafmDrift() — repetition-rate gauge\n│   ├── integrity/check-id.ts      → checkId() — cross-stamp contradiction check\n│   ├── orchestrator/\n│   │   ├── repeat-offender.ts     → RepeatOffenderTracker\n│   │   ├── take-a-hint.ts         → evaluateTakeAHint() — escalation ladder\n│   │   ├── refresh-blend.ts       → runRefreshBlend()\n│   │   └── recommendation.ts      → analyzeAndRecommend() + orchestrate()\n│   └── telemetry/\n│       ├── refresh-receipts.ts        → RefreshReceiptsLog\n│       └── recommendation-receipts.ts → RecommendationReceiptsLog\n├── smithery.yaml             → Smithery listing config\n├── api/index.ts              → Vercel catch-site (legacy showcase surface; kept alive)\n└── vercel.json               → Vercel routing for the catch-site\n```\n\n**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.\n\n**Scoring pipeline:** TypeScript compiler parses `.faf` → detects project type → The Bouncer injects `slotignored` for inapplicable slots → `faf-scoring-kernel` (WASM) scores → falls back to Mk3.1 if kernel unavailable.\n\n---\n\n## Testing\n\n27 test files (~518 test declarations) — WJTTC parity (heavy local ↔ light hosted) + full suites (recent runs green on CI):\n\n```bash\nsh scripts/run-tests.sh\n```\n\n| Suite | Coverage |\n|-------|----------|\n| `desktop-native-validation` | Core native functions, security, performance |\n| `mcp-conformance` | MCP protocol conformance — tools, transport, errors |\n| `wjttc-mcp` | WJTTC MCP certification |\n| `wjttc-bun` | WJTTC bun-migration + integrity |\n| `wjttc-compiler-scoring` | Compiler scoring — engine, type detection, slots |\n| `rag-system` | RAG query, caching, context retrieval |\n| `security` | Input validation + security guards |\n| `visibility` | Tool visibility (core/advanced filtering) |\n\n---\n\n## Status & known limitations (v1.10)\n\nv1.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`. Everything below still applies; operating it honestly means surfacing what's NOT in here alongside what is.\n\n> 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`.\n\n> 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.\n> 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.\n> 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).\n\n**What is fully supported:**\n- WASM-pure tools on the hosted endpoint (`https://mcpaas.live/grok/mcp/v1` and client-specific routes) — scoring · validation · `refresh_faf`.\n- `refresh_faf` and `refresh_fafm` as explicit, callable re-grounding primitives.\n- `refresh_blend` as the baked-in two-intensity refresh (Cmd+R / Cmd+Shift+R analog).\n- `faf_orchestrate_recommendation` — the heavy orchestrator that composes drift signals, recurrence, receipts, and take-a-hint into an advisory recommendation.\n- `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).\n- Full policy visibility (`effective_policy`) returned on every orchestration call AND surfaced standalone via `faf_get_orchestration_policy`.\n\n**Current limitations:**\n\n- **`faf_orchestrate_recommendation`, `faf_get_orchestration_policy`, `refresh_fafm`, and `refresh_blend` require filesystem access** and are only available via the local stdio path (`bunx grok-faf-mcp` / `npx grok-faf-mcp`). They are not exposed on the hosted WASM-pure endpoint. The hosted path serves the existing WASM-pure subset only (`refresh_faf` + scoring + validation).\n- **Receipt storage — cwd-relative JSON, pull-discoverable.** Three append-only JSON files live at the repo root with stable schemas:\n  ```\n  .faf-drift-index.json              ← RepeatOffenderTracker — per-slot recurrence counts\n  .faf-refresh-receipts.json         ← RefreshReceiptsLog    — every refresh fire\n  .faf-recommendation-receipts.json  ← RecommendationReceiptsLog — every orchestrator call\n  ```\n  **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.\n- **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.\n- **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.\n- **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.\n- **Outcome tracking** (*\"did this recommendation actually help?\"*) — needs a learning layer beyond 1.5 scope.\n\n**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.\n\n**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.\n\nSee the [public verifier](https://grok.faf.one/) and `curl https://mcpaas.live/grok/mcp/v1/info` for the current contract.\n\n---\n\n## Ecosystem\n\nOne format, every AI platform.\n\n| Package | Platform | Registry |\n|---------|----------|----------|\n| **grok-faf-mcp** (this) | **xAI Grok** | **npm + Homebrew** |\n| [claude-faf-mcp](https://npmjs.com/package/claude-faf-mcp) | Anthropic | npm + MCP #2759 |\n| [gemini-faf-mcp](https://pypi.org/project/gemini-faf-mcp/) | Google | PyPI |\n| [rust-faf-mcp](https://crates.io/crates/rust-faf-mcp) | Rust | crates.io |\n| [faf-mcp](https://npmjs.com/package/faf-mcp) | Cursor, IDE's, VS Code | npm |\n| [faf-cli](https://npmjs.com/package/faf-cli) | Terminal CLI | bunx, npm + Homebrew |\n\nSame `project.faf`. Same scoring. Same result. Different execution layer.\n\n---\n\n## Voice variant — `grok-faf-voice` (VML)\n\n`.fafm 🐘🎙️` — the voice variant of the `.faf 🐘` family.\n\n**[grok-faf-voice](https://pypi.org/project/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`:\n\n- **`grok-faf-mcp`** (this) — `.faf` Foundational Context Layer for Grok via MCP-on-a-URL.\n- **`grok-faf-voice`** — `.fafm` Voice Memory Layer (VML) for Grok Voice via LiveKit + xAI realtime.\n\nSame family. Different surface. *Voice swappable; memory permanent.*\n\n[PyPI](https://pypi.org/project/grok-faf-voice/) · [GitHub](https://github.com/Wolfe-Jam/grok-faf-voice) · [Onboarding](https://wolfe-jam.github.io/grok-faf-voice/onboarding.html)\n\n---\n\n### For the xAI / Grok Build team\n\nThis MCP server was built **for** Grok and continues to be shaped by direct feedback from Grok itself.\n\nOpen for deeper collaboration on:\n- Native Grok Build integration\n- .fafm memory layer\n- refresh_faf primitives inside the Grok TUI / CLI\n- Any other context or orchestration features the team needs\n\nI ship fast, test rigorously, and dogfood everything live on https://grok.faf.one and https://mcpaas.live/grok/mcp/v1.\n\nHappy to:\n- Open PRs\n- Run private dogfood sessions\n- Jump on a call\n- Or just ship whatever moves the needle\n\nReal software only. Just say the word.\n\n---\n\n## Contributing\n\nPR conventions, code style, CI doctrine, MCP-tool contribution path,\nnpm publish discipline, architecture decisions: **[CONTRIBUTING.md](CONTRIBUTING.md)**.\n\nxAI / Grok devs welcome — TL;DR setup at the top, F1-inspired tone throughout.\n\n---\n\n### For xAI / Grok Build team\n\nOpen for deeper native integration, .fafm memory layer, or Grok Build CLI collaboration.  \nHappy to ship PRs, dogfood, or jump on a call. Just say the word.\n\n---\n\n## Citation\n\nIf you use `grok-faf-mcp` or the `.faf` / `.fafa` formats in research or production, please cite the format papers:\n\n> Wolfe, J. (2025). *Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding*. Zenodo. https://doi.org/10.5281/zenodo.18251362\n\n> Wolfe, J. (2026). *Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era*. Zenodo. https://doi.org/10.5281/zenodo.21951641\n\n### BibTeX\n\n```bibtex\n@article{wolfe2025faf,\n  title     = {Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding},\n  author    = {Wolfe, James},\n  year      = {2025},\n  month     = {nov},\n  publisher = {Zenodo},\n  doi       = {10.5281/zenodo.18251362},\n  url       = {https://doi.org/10.5281/zenodo.18251362}\n}\n\n@article{wolfe2026fafa,\n  title     = {Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era},\n  author    = {Wolfe, James},\n  year      = {2026},\n  month     = {aug},\n  publisher = {Zenodo},\n  doi       = {10.5281/zenodo.21951641},\n  url       = {https://doi.org/10.5281/zenodo.21951641}\n}\n```\n\n## License\n\nMIT — Free and open source\n\n---\n\n<div align=\"center\">\n  <p><strong>Built for Grok. Built for Speed. Built Right.</strong></p>\n  <p>FAST⚡️AF • First to Ship • Zero Friction</p>\n  <p><strong>Zero drift. Eternal sync. AI optimized.</strong> 🏆</p>\n</div>\n\n---\n\n### Get the CLI\n\n> **faf-cli** — The original AI-Context CLI. A must-have for every builder.\n\n```bash\nnpx faf-cli auto\n```\n\n**Anthropic MCP [#2759](https://github.com/modelcontextprotocol/servers/pull/2759)** · **IANA Registered:** `application/vnd.faf+yaml` · [faf.one](https://faf.one) · [npm](https://www.npmjs.com/package/faf-cli) · [Talk to my Agent →](https://faf.one/agent)\n",
  "bytes": 24422,
  "sha": "cb9b51c86d4092920201a44e4ba8be23767c56be89ac42b5e12f2c2ef1fb49ae",
  "repo_slug": "wolfe-jam/grok-faf-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_one_faf_grok_faf_mcp_f910045d/readme"
}