TL;DR: claude-faf-mcp now reads Dart & Flutter — it knows a Flutter app from a pure-Dart CLI, and doesn't guess. The detection arrives by composition: no forked pubspec parser, just the single-source classifier from faf-cli 6.13.0. Zero-Config — one-click .mcpb, no terminal, no JSON config.

It Knows the Difference

A Dart project isn't automatically a Flutter project. The old behaviour over-read every pubspec.yaml as Flutter. v5.10.0 reads the content and tells them apart:

ProjectWhat FAF sees
A Flutter appFlutter — with state (Riverpod/Bloc) and routing detected
A pure-Dart CLIDart — not mis-flagged as Flutter
A Dart MCP serversurfaces api_type: MCP
A Dart backendsurfaces the backend framework (Serverpod / Dart Frog / Shelf)

Sourced or honestly empty — never guessed.

By Composition, Not a Fork

This is the payoff of The Sourced Edition. claude-faf-mcp doesn't carry its own detector — it composes faf-cli's Turbo-Cat. So when faf-cli 6.13.0 shipped a content-aware, pubspec-driven Dart classifier, claude-faf-mcp got it by construction. No forked parser to drift. One classifier, one source of truth, every surface.

faf-cli  →  Turbo-Cat (the one classifier)
                 ↑ composed by
claude-faf-mcp   grok-faf-mcp   gemini-faf-mcp

The fix that ships in this release is the same fix everywhere FAF detects a stack — because there's only one place it lives.

Zero-Config

Two words, because they're true: one-click .mcpb, no terminal, no JSON config. Double-click, and 35 tools are live in 10 seconds. Your project context is just there — every session.

Try It

npm install -g claude-faf-mcp

One-click install

Download the Desktop Extension.

claude-faf-mcp-5.10.0.mcpb

npm

Install the latest version.

claude-faf-mcp

The Numbers

  • v5.10.0 — Released June 17, 2026
  • 572 tests — 26 suites, 0 fail (+5 Dart cases)
  • 35 MCP tools — unchanged (Dart is a composition change)
  • 100% 🏆 — Trophy AI-readiness score
  • 0 vulnerabilities — npm audit clean
  • faf-cli ^6.13.0 — the composed classifier