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 Championship 21-slot scoring engine 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_contextA | 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 21 scored slots. 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 have distinct purposes, but several pairs overlap: faf_validate vs faf_score both return score/tier (differing only in detail level), faf_init vs faf_auto both create .faf files, and faf_context vs faf_read both read the file. The descriptions do explicitly clarify the boundaries, keeping confusion manageable.
Every tool uses a uniform snake_case 'faf_<verb/noun>' pattern with a shared prefix, making the set highly predictable. No mixing of conventions.
13 tools is well within the ideal range and each maps to a meaningful operation (create, read, discover, validate, score, migrate, export, model). No tool feels redundant enough to be dead weight.
The lifecycle is well covered: discover/read/context for reading, init/auto for creation, validate/score for quality, migrate for format, and gemini/agents for export. A minor gap is the absence of an explicit arbitrary edit/write-back tool (stringify prepares content for editing but nothing writes it).