gemini-faf-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| faf_readA | Read project DNA from a .faf file. Returns the full parsed structure including project info, stack, preferences, and scoring data. Use this as the first step to understand any FAF-enabled project. |
| faf_validateA | Validate a .faf file and return score, tier, and issues. Returns errors (must fix) and warnings (should fix) with specific messages. Use after faf_init or when checking if a .faf file meets quality standards. |
| faf_scoreA | Quick Mk4 score check — returns score (0-100%), tier, and slot counts. Uses the Mk4 always-33 scoring engine (faf-kernel parity) for universal parity. Use this for status checks; use faf_validate when you need error details. |
| faf_discoverA | Find .faf files in the project tree by walking up from start_dir. Searches the current directory and parent directories for project.faf. Use this before faf_read to locate the file automatically. |
| faf_initA | Create a starter .faf file with project name, goal, and language. Writes a valid FAF YAML file with all required sections. Will not overwrite an existing file — use faf_discover first to check. The path is confined to the project root (cwd / FAF_ALLOWED_ROOTS). |
| faf_stringifyB | Convert parsed FAF data back to YAML string. Useful for displaying the raw .faf content or preparing it for editing. Reads the file, parses it, then re-serializes to clean YAML. |
| faf_contextB | Get Gemini-optimized context from a .faf file. Returns the key sections an AI needs: project info, stack, instructions, and score. Use this to quickly understand a project without reading the full .faf structure. |
| faf_geminiA | Export and write GEMINI.md from a .faf file (non-destructive).
Authors GEMINI.md in Gemini CLI's own convention (hierarchical,
@file-importable — setup · verify · key files · stack · confirm-first
actions) via faf-python-sdk's authoring tool, in parity with faf-cli's
|
| faf_agentsA | Export and write AGENTS.md from a .faf file (non-destructive).
Authors a BETTER-shaped AGENTS.md (setup · tests · layout · conventions ·
three-tier guardrails · definition of done · security · commit) via
faf-python-sdk's authoring tool — in parity with faf-cli's |
| faf_migrateA | Migrate a .faf file to the current format version (3.0).
Bumps |
| faf_aboutA | FAF format info — IANA registration, version, ecosystem. Returns metadata about the FAF format, server version, and available MCP bridges. Use this when users ask what FAF is or how it connects to other AI platforms. |
| faf_modelA | Get a 100% Trophy-scored example .faf file for a specific project type. Returns a complete, realistic project.faf that fills all 33 scored slots (populated, or slotignored where a slot does not apply). Use this as a reference when building or improving a .faf file — shows exactly what 100% looks like. Call without arguments to list all 15 available project types. |
| faf_autoB | Auto-detect project stack and author/update a .faf file. Scans package.json, pyproject.toml, Cargo.toml, go.mod, and other manifest files for language, framework, database, API type, and build tools — then grounds the result in the repo's own files: docker-compose service images (Postgres, Redis, Elasticsearch...) map onto stack slots, and Makefile / justfile targets map onto test / build / lint commands. Facts from files, no hardcoded defaults. Creates a new .faf if none exists, or fills empty slots in an existing one. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools target distinct operations (read, discover, init, migrate, export), and the descriptions actively differentiate the two closest pairs: faf_validate vs faf_score (error details vs quick status) and faf_read vs faf_context (full structure vs AI-optimized subset). The overlap is real but the guidance reduces misselection, leaving only mild ambiguity.
Every tool uses a uniform faf_ prefix followed by a single snake_case noun/verb (faf_read, faf_score, faf_discover, faf_migrate). The pattern is fully predictable throughout with no mixed conventions.
13 tools sit squarely in the well-scoped 3-15 range, and each maps to a concrete lifecycle step (discover, init/auto, read/context, validate/score, stringify, migrate, export). No tool feels redundant or padded.
The surface covers the full FAF lifecycle: discovery, creation (init/auto), reading (read/context), validation/scoring, serialization, migration, and two export targets (GEMINI.md, AGENTS.md). Minor gaps exist — no explicit delete/edit for arbitrary slots and no updater beyond faf_auto filling empty slots — but core workflows are covered.