TL;DR: grok-faf-mcp v1.3.0 ships as the hallmark online MCP. Identity restored across the stdio path. Comparison framing scrubbed from the wire and page. Server-card enriched for MCP-client discovery. The "3,800% faster" claim — invented, retired — replaced with measured 137 µs/score, methodology disclosed. Five production surfaces live, all serving the same artifact.

The Story

Grok asked for MCP on a URL. We built it.

That was November 2025. grok-faf-mcp shipped as the first MCP server specifically built for Grok/xAI. URL-first. Vercel-deployed. Point a Grok integration at /sse and persistent .faf context starts flowing.

It also became the first FAF MCP online — beating the rest of the family (claude, gemini, cursor, rust) to the web-URL form by months. Two credentials, one repo: first MCP for Grok (vendor-axis) and first FAF MCP online (medium-axis).

Six months later, v1.3.0 closes the gap between what grok-faf-mcp is and how it presents itself.

Identity Restored

The repo was forked from claude-faf-mcp at launch — and never fully renamed. The MCP initialize handshake declared name: 'claude-faf-mcp'. The TypeScript class was ClaudeFafMcpServer. The install instructions told users to npm install -g claude-faf-mcp — pointing them at the wrong package.

v1.3.0 renames every site. 22+ replacements across src/server.ts, src/index.ts, src/cli.ts, src/handlers/, plus the test harness. The handshake now correctly declares name: 'grok-faf-mcp'. Claude Desktop-specific user-facing strings generalized to your MCP host.

One reference legitimately stays — p.name === 'claude-faf-mcp' in the sibling-project filter. That's the family cross-reference, not residue.

Comparison Framing, Out

Earlier versions carried a tribute that drifted into comparison framing: "Dedicated to @elonmusk and the #1 model on Earth." The phrase appeared in /health, /info, the HTML hero, and the grok_go_fast_af tool description — so every MCP client saw it on every health check.

v1.3.0 keeps the tribute, drops the comparison. The dedication now reads simply: "Dedicated to @elonmusk." An x-grok-wins: true HTTP header is gone — six wire-level sites scrubbed. The /info.description now carries the credential line: "grok-faf-mcp — the first MCP for Grok. Persistent project context for xAI/Grok."

Server-Card Grew Up

The /.well-known/mcp/server-card.json endpoint existed but carried only four fields. v1.3.0 enriches it for proper MCP-client discovery:

  • protocolVersion: 2025-06-18
  • capabilities block: resources + tools, matching what Server() init declares
  • instructions field: carries the credential line for AI clients that read this surface
  • serverInfo expanded: description, homepage, repository
  • transport: http-sse declared explicitly

The endpoint is now advertised in /info.endpoints so clients can find it. Smithery scans it cleanly. Any future MCP-registry surface that reads this will see the full canonical metadata, not a stub.

Real Numbers, Not Invented Ones

The landing page claimed "3,800% faster than v1.1.1". The number wasn't measured. It was AI-generated copy in a previous session that stuck.

v1.3.0 ships a reproducible bench harness — bench/score.bench.js — that measures the actual Mk4 WASM scoring kernel path. Three batches × 1,000 iterations, 100 warmup each, full hardware + runtime + per-batch distribution captured as a JSON receipt.

$ npm run bench:score

Cross-batch p50: 0.1374 ms — 137 µs / score

Throughput at p50: 7,279 ops/sec

Path measured: kernel.score_faf(yaml) — direct WASM call, no HTTP, no MCP wire overhead

The about-modal on the landing page now carries this: "137 µs/score · 7,279 ops/sec (Mk4 WASM, p50)" — methodology disclosed, falsifiable on any machine that runs npm run bench:score.

The stats hero ticked from 0.5ms to 0.2ms — a conservative undersell of the measured 137 µs. Anyone who checks finds the kernel is faster than the headline claims. That gradient earns advocates.

Five Surfaces, One Artifact

v1.3.0 closes the ZEPH-pattern surface play. The first MCP for Grok now lives on five production-facing surfaces, all derived from the same source:

  • npmgrok-faf-mcp v1.3.0 (the distribution surface — npx grok-faf-mcp works anywhere)
  • grok-faf-mcp.vercel.app — Vercel canonical (MCP wire: /sse, /health, /info)
  • wolfe-jam.github.io/grok-faf-mcp/ — GitHub Pages mirror (static)
  • faf.one/grok — discovery page (SvelteKit route)
  • grok.faf.one — Cloudflare Worker canonical (CF edge)

Plus the registry/release surfaces: MCP Registry, GitHub Release, GitHub repo. Eight production touchpoints in total. One artifact, eight consumers.

Try It

Two ways. Hosted — zero install:

https://grok-faf-mcp.vercel.app/sse

Point your Grok integration at the SSE endpoint. Or run locally with npm:

npx grok-faf-mcp

The Numbers

  • v1.3.0 — Released May 14, 2026
  • 169/169 tests passing across 6 suites
  • 🏆 Trophy 100% — project.faf (15/15 slots)
  • 137 µs/score · 7,279 ops/sec — Mk4 WASM kernel, p50, 2019 iMac
  • 314.5 kB npm tarball, 197 files
  • 5 production surfaces live (matching the ZEPH pattern)

The Receipts

  • First MCP for Grok — origin credential (vendor-axis), falsifiable by publish timestamps
  • First FAF MCP online — origin credential (medium-axis), preceded the rest of the FAF MCP family
  • IANA-registeredapplication/vnd.faf+yaml + application/vnd.fafm+yaml
  • MCP Registryio.github.Wolfe-Jam/grok-faf-mcp v1.3.0
  • FAF Ecosystem #2759 — Five Fingers, the MCP family arc

FAF defines. Grok consumes. Receipts compound.