TL;DR: claude-faf-mcp v7 scores with faf-cli v8's always-33 kernel, so Claude gets the same number as faf-cli and faf-kernel. Upgrading from v6? Run faf_auto once. It marks the 12 enterprise slots slotignored, and your score is back.

In Plain English

Old state. claude-faf-mcp used faf-cli v7's scoring, which counted 21 slots. The always-33 tools counted 33. Claude and the rest of FAF could show different numbers for the same file.

Fix. v7 composes faf-cli v8. Every tool's score now comes from the always-33 kernel. Slots that are not applicable to a project are marked slotignored, and do not score.

New state. Unified scoring. Claude gives your file the same score as faf-cli, and as every other FAF tool.

Claude Code:

claude mcp add faf -- npx -y claude-faf-mcp

Claude Desktop: one click with the claude-faf-mcp-7.0.1.mcpb extension, which runs the server bundled inside it. Or add npx -y claude-faf-mcp to claude_desktop_config.json.

claude.ai: add https://mcpaas.live/claude/mcp/v1 as a custom connector (Settings → Connectors, no sign-in). It's the hosted edge version: 19 read-only tools and the same Always33 score. It can't reach files on your machine, so paste a .faf or point it at a GitHub repo.

What happened since The Projector Floor

One blog, one arc. The last claude-faf-mcp write-up was v5.22 The Projector Floor. Short tour to today:

  • v5.22.1: a patch on The Projector Floor. Not a blog.
  • v6.0.0: The Earned Badge Edition. Every badge earned, none claimed: it composes faf-cli, touches only what it wrote, and every tool tells the truth. Not a blog.
  • v7.0.0: The Always33 Edition. This is the log entry for the stretch.

This is Part II of the Always33 series. Part I was faf-cli v8, where the engine was authored. The overview is The Always33 Suite.

What v7 is

The Always33 engine, in Claude. claude-faf-mcp composes faf-cli ^8.0.0. The old range, ^7.13.1, could never reach 8.x. Every tool's score is now faf-cli v8's, from the always-33 kernel. Checked live: faf_score gave faf-python-sdk 56, mcp-context-card 56 and faf-cli ✪ 100, the same as faf-cli v8 and the reference always-33 scorer.

Your 21 slots, and the 12 enterprise slots in view. faf-cli fills the 21 base slots and marks the 12 enterprise slots slotignored unless your app type uses them. Those slots drop out of the count.

Upgrading: run faf_auto once

This is why v7 is a major release. A .faf without the 12 enterprise markers now counts them as empty: 21 filled is 64%. Run faf_auto. It writes the markers and the score returns. On a v7-era file we tested:

faf_auto 56% → ✪ 100%

Anything that gates on faf_score should re-check its threshold. The npx config and the SessionStart hook are not pinned, so they move to v7 on their next start. To stay on v6, write claude-faf-mcp@6 in your config. The .mcpb runs the version it was built from.

Also in v7

  • tbd and todo, in any case, count as empty, the same as faf-cli v8.
  • The test fixtures that score 100% are written the faf-cli way: 21 slots plus the 12 enterprise markers.

Try it

Claude Code:

claude mcp add faf -- npx -y claude-faf-mcp

Then, in Claude: ask it to run faf_auto, then faf_score. Or pick the faf prompt from your host's prompt list.

More depth: faf-cli v8 · The Always33 Suite · CHANGELOG · repo.

Technical details

  • Version: 7.0.0 (September 26, 2026)
  • Edition: The Always33 Edition
  • Scoring: faf-cli v8's always-33 kernel (Rust → WASM); 21 slots filled, the 12 enterprise slots slotignored
  • Tools: Core 14 (30 with FAF_TOOLS=all)
  • Tests: 513
  • Runs in: Claude Code · Claude Desktop (.mcpb or config) · claude.ai (hosted connector, 19 read-only tools)
  • Needs: Node 22 or later