Skip to main content
Glama

npmdownloads FAF Trophy 100% IANA: vnd.faf+yaml DOI: Context paper DOI: Agents paper

Home: wolfe-jam.github.io/faf-mcp

The MCP you didn't realise you needed, or wanted but didn't know who to ask, is here. Building on over 100k ecosystem downloads (latest stats), we bring you faf-mcp to cure your syncing pain and fuel your chosen AI with optimized context, on-demand.

⭐ Bookmarks it for you, helps other devs find it too.

CI License: MIT project.faf


What's New in 2.3.0 — The Curated Edition

The tools you actually need, up front. faf-mcp now leads with 15 essential tools by default — a clean, focused surface instead of a wall of options. Need everything? Set FAF_TOOLS=all for the full 29 (every tool stays callable by name either way). And every Core tool's description was rewritten so your AI picks the right one, first time.


Related MCP server: gemini-faf-mcp

Define once. Sync everywhere.

You maintain .cursorrules. Your teammate uses AGENTS.md. Someone on the team just switched to Gemini. Every AI tool wants its own context file — and they all say the same thing in different formats.

faf-mcp is the dedicated MCP server for Cursor, Windsurf, Cline, VS Code, and every non-Claude platform. One .faf file in your repo, synced to every format your team needs.

Context for Cursor & IDE agents: faf-cli (v7.1) authors the files this server syncs — bunx faf export --agents, zero-install and git-native. See FAF-CLI for Cursor & IDE agents 👀.

                      project.faf
                           │
          ┌────────┬───────┴───────┬────────────┐
          ▼        ▼               ▼            ▼
      CLAUDE.md  AGENTS.md  .cursorrules  GEMINI.md
      (Claude)   (Codex)      (Cursor)    (Gemini)

Quick Start

Cursor — one click: Add .FAF Context to Cursor

Everywhere else:

bunx faf-mcp

Add to your MCP config:

{"mcpServers": {"faf": {"command": "bunx", "args": ["faf-mcp"]}}}

Platform

Config File

Cursor

~/.cursor/mcp.json

Windsurf

~/.codeium/windsurf/mcp_config.json

Cline

Cline MCP settings

VS Code

MCP extension config

Claude Desktop

Use claude-faf-mcp


Run It

faf-mcp runs locally over stdio. Point your IDE at one of these commands.

Method

Command

npm

npx faf-mcp

Bun

bunx faf-mcp


Interop Tools

Tool

Platform

Action

faf_agents

OpenAI Codex

Import/export/sync AGENTS.md

faf_cursor

Cursor IDE

Import/export/sync .cursorrules

faf_gemini

Google Gemini

Import/export/sync GEMINI.md

faf_conductor

Conductor

Import/export directory structure

faf_git

GitHub

Author .faf from any repo URL

# Sync to all formats at once
faf bi-sync --all

# Generate .faf from any GitHub repo
faf_git { url: "https://github.com/facebook/react" }

Core tier: 15 essential tools shown by default; set FAF_TOOLS=all for the full 29 (every tool stays callable by name either way) · with CLI fallback · 9 test suites · 7 bundled parsers


Cloud Sync

Share your FAF context globally via mcpaas.live:

Tool

Purpose

faf_cloud_publish

Upload to cloud, get shareable URL

faf_cloud_fetch

Pull context from cloud

faf_cloud_list

List available souls

faf_cloud_search

Search across souls

faf_cloud_share

Generate share links

Example Workflow:

# Upload your project.faf
faf_cloud_publish { soul_name: "my-project" }
→ https://mcpaas.live/souls/my-project

# Anyone can fetch it
faf_cloud_fetch { soul_name: "my-project" }
→ Context merged into local project.faf

Zero-install sharing - Recipients need no MCP setup. Served from 300+ Cloudflare edges with <1ms cold starts via 2.7KB Zig-WASM engine.


Eternal Bi-Sync

Your .faf file and your platform context files stay synchronized in milliseconds.

project.faf  ←── 8ms ──→  .cursorrules / AGENTS.md / CLAUDE.md / GEMINI.md
                    Single source of truth
  • Update either side → both stay aligned

  • --all flag syncs to all four formats at once

  • Zero manual maintenance

  • Works across teams, branches, sessions

AI assistants forget. They drift. Every new session, AI starts guessing again. Bi-sync means context never goes stale.


Tier System: From Blind to Optimized

Tier

Score

Status

🏆 TROPHY

100%

AI never has to guess

GOLD

99%+

1 slot from Trophy

SILVER

95%+

Close — keep going

BRONZE

85%+

Interim — keep going

GREEN

70%+

Interim — keep going

YELLOW

55%+

AI flipping coins

RED

<55%

AI working blind

WHITE

0%

No context at all

At 55%, AI is guessing half the time. At 100%, AI is optimized.


use>faf | Prompt Pattern

Start every prompt with "Use FAF" to invoke MCP tools:

Use FAF to initialize my project
Use FAF to score my AI-readiness
Use FAF to sync my context
Use FAF to enhance my project

Works on all platforms — stops web search, forces tool usage.


29 MCP Tools

Tool

Purpose

faf_init

Initialize project.faf

faf_score

Check AI-readiness (0-100%)

faf_sync

Sync context across platforms

faf_bi_sync

Bi-directional .faf ↔ CLAUDE.md

faf_read

Parse and validate FAF files

faf_write

Create/update FAF with validation

Interop Tools

faf_agents

Import/export/sync AGENTS.md

faf_cursor

Import/export/sync .cursorrules

faf_gemini

Import/export/sync GEMINI.md

faf_conductor

Import/export directory structure

faf_git

Author .faf from GitHub repo URL

Cloud Tools

faf_cloud_publish

Upload to mcpaas.live

faf_cloud_fetch

Pull from cloud

faf_cloud_list

List souls

faf_cloud_search

Search souls

faf_cloud_share

Generate share links

Plus CLI fallback (via faf-cli):

  • faf readme - Extract 6 Ws from README (+25-35% boost)

  • faf human-add - Non-interactive YAML merge (6Ws Builder)

  • faf git - GitHub repo analysis without cloning

  • And 40+ more commands...


Ecosystem

  • claude-faf-mcp — Claude Desktop (33 tools)

  • faf-cli — Terminal CLI

  • faf-wasm — WASM SDK (<5ms scoring)

  • faf-wasm-gen — Rust→WASM project.faf generator, browser/edge (faf-wasm's generate sibling)

  • faf-trinity — reference MCP server exposing all three IANA FAF formats (context/memory/agent) together

  • faf.one — Official website

  • docs/SKILLS-OVER-MCP.md — J1 Agent Skill faf-ide (stdio · skills/list · digests)


If faf-mcp has been useful, consider starring the repo — it helps others find it.

Citation

If you use faf-mcp or the .faf / .fafa formats in research or production, please cite the format papers:

Wolfe, J. (2025). Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding. Zenodo. https://doi.org/10.5281/zenodo.18251362

Wolfe, J. (2026). Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era. Zenodo. https://doi.org/10.5281/zenodo.21951641

BibTeX

@article{wolfe2025faf,
  title     = {Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding},
  author    = {Wolfe, James},
  year      = {2025},
  month     = {nov},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.18251362},
  url       = {https://doi.org/10.5281/zenodo.18251362}
}

@article{wolfe2026fafa,
  title     = {Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era},
  author    = {Wolfe, James},
  year      = {2026},
  month     = {aug},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.21951641},
  url       = {https://doi.org/10.5281/zenodo.21951641}
}

License

MIT License — Free and open source


Zero drift. Eternal sync. AI optimized. 🏆

"It's so logical if it didn't exist, AI would have built it itself" — Claude

Available Tools

15 tools
faf_aboutA
Read-only

Explain what the .faf format is — the IANA-registered, portable context file (application/vnd.faf+yaml) that gives any AI instant project understanding. Returns a plain-language overview of the format and its purpose. Use this when you or the user are new to FAF and want the concept before running other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds that it returns a plain-language overview. No side effects or additional behaviors need disclosure; description aligns with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. First sentence explains the format, second explains usage. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, simple informational tool, the description fully covers purpose, format, and usage context. No gaps given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Baseline is 4; description need not add parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool explains the .faf format, its IANA registration, and purpose. It distinguishes from sibling tools by specifying it is for understanding the concept before using other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this when you or the user are new to FAF and want the concept before running other tools,' providing clear guidance on when to use. Does not list when not to use, but this is a simple informational tool so not necessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_agentsA

Import, export, or sync context between AGENTS.md (the OpenAI/Codex convention) and project.faf. Returns the merged or written result for the chosen action. Use this to keep a Codex/OpenAI-style AGENTS.md and your .faf in agreement from one source.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
forceNoForce overwrite existing files
mergeNoMerge imported data with existing .faf instead of replacing
actionYesAction: import (AGENTS.md -> .faf), export (.faf -> AGENTS.md), sync (bidirectional)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes the tool returns a merged or written result, adding context beyond annotations. However, it does not clarify side effects like file modification or potential data loss, which is slightly lacking given destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences, ~40 words), front-loaded with the key actions and resources, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return value (merged or written result). It covers the tool's purpose and the four parameters are fully described in the schema. It is sufficient but could be slightly more explicit about the direction of each action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The tool description adds no additional parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool imports, exports, or syncs context between AGENTS.md and project.faf, with a specific verb and resources. It distinguishes from sibling tools by naming the exact files involved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use the tool ('to keep a Codex/OpenAI-style AGENTS.md and your .faf in agreement'), but does not explicitly mention when not to use it or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_autoA

Run the full setup pipeline in one call — init, stack detection, sync, bi-sync, and score — taking a project from no context to a complete project.faf. Returns the final AI-readiness score and what was created. Use this as the fast path on a fresh project; use the individual tools when you need finer control.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
forceNoForce overwrite existing files

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns the final AI-readiness score and what was created, and implies file creation/modification. However, it does not elaborate on potential side effects like overwriting or whether the tool is idempotent. The annotations (destructiveHint=false) align with the description's non-deletive nature, but a bit more nuance would be helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first succinctly states the tool's action and return, the second provides usage guidance. No extraneous information, perfectly front-loaded, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (composite of multiple steps), the description adequately covers its purpose, return value, and use case. The simple schema (2 params, no output schema) does not require extensive detail. However, it could hint at internal steps or side effects for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning to the parameters ('path' and 'force') beyond what is already in the schema. It mentions the overall pipeline but does not explain how parameters affect the pipeline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs the full setup pipeline (init, stack detection, sync, bi-sync, score) and transforms a project from no context to complete. It distinguishes itself from sibling tools by noting that individual tools provide finer control, making its composite nature explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description directly says 'Use this as the fast path on a fresh project; use the individual tools when you need finer control.' This explicitly defines when to use the tool (fast path on fresh project) and when not to (when finer control is needed), providing clear conditional guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_bi_syncA

Bi-directionally sync a project.faf with CLAUDE.md and, with the format flags or all, also AGENTS.md, .cursorrules, and GEMINI.md. Returns the formats written and any conflicts. Use this to keep every AI tool context file aligned from the single .faf source.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoSync to ALL formats: CLAUDE.md + AGENTS.md + .cursorrules + GEMINI.md
autoNoEnable automatic synchronization
pathNoProject path. Sets session context for subsequent calls.
forceNoForce overwrite conflicting changes
watchNoStart real-time file watching for changes
agentsNoAlso sync to AGENTS.md (OpenAI/Codex format)
cursorNoAlso sync to .cursorrules (Cursor IDE format)
geminiNoAlso sync to GEMINI.md (Google Gemini format)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description mentions returns 'formats written and any conflicts,' implying mutation and conflict detection. Annotations show readOnlyHint=false and destructiveHint=false, which align. However, does not disclose if files are created or overwritten, or any side effects beyond what annotations already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load purpose and usage. No superfluous information. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description explains target files and return value but omits details like what project.faf is, whether files must exist, or how bi-directional sync behaves in conflict scenarios. No output schema to compensate. Adequate but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of 8 parameters with descriptions. Description adds minimal value by grouping flags as 'format flags or all' and mentioning they sync additional files. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states bi-directional sync between project.faf and multiple AI context files (CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md). Uses specific verb and resource. However, does not distinguish from sibling faf_sync, which may overlap in functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to keep every AI tool context file aligned from the single .faf source.' Provides use case but no when-not-to-use or alternatives. No prerequisites or context for when to use other sibling tools like faf_init or faf_check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_checkA

Inspect the human_context fields and rate each empty/generic/good/excellent. Returns the ratings; with protect it locks good/excellent fields from being overwritten, with unlock it releases them. Use this to gauge context quality and guard your best answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
unlockNoRemove all field protections
protectNoLock good/excellent fields from being overwritten

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no behavioral hints (readOnlyHint=false, destructiveHint=false). The description adds that protect locks fields and unlock releases them, which are useful behavioral traits. However, it doesn't mention if locks are persistent or rated values are temporary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two compact sentences with the main action first, followed by usage guidance. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 simple parameters and no output schema. The description explains purpose, parameter effects, and usage context. Lacks details on return format, but for a check tool it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 3 parameters. The description adds meaning: 'with protect it locks good/excellent fields from being overwritten, with unlock it releases them,' which clarifies the effect of the boolean parameters beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool inspects 'human_context fields' and rates them, with specific verb 'Inspect' and resource. It distinguishes from siblings like faf_context and faf_score by focusing on rating and protecting fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use this to gauge context quality and guard your best answers,' providing clear context for use. It does not explicitly mention when not to use or alternatives, but the purpose is unique enough among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_contextA
Read-only

Set or show the active project path that later faf_ calls resolve against. Returns the current context path. Call this once at the start of a session so the other tools target the right project.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoSet active project path. If omitted, shows current context.

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description claims ability to set path (mutation) while annotation readOnlyHint: true indicates read-only. This is a direct contradiction. Additionally, description fails to resolve this inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First sentence states action and return value. Second sentence provides usage context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter, the description covers the dual behavior (set/show) and recommends when to call. Missing output schema but return value is mentioned. However, the contradiction with annotations undermines completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and its description matches the tool description. The description adds no new information beyond the schema's field description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the verb and resource: 'set or show the active project path'. It distinguishes from sibling tools by specifying that it resolves for later faf_ calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly advises calling once at session start to target the right project. Implicitly suggests when not to call (when context is already set). No explicit exclusions but sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_cursorA

Import, export, or sync context between .cursorrules (the Cursor IDE convention) and project.faf. Returns the merged or written result for the chosen action. Use this to keep Cursor rules and your .faf in agreement from one source.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
forceNoForce overwrite existing files
mergeNoMerge imported data with existing .faf instead of replacing
actionYesAction: import (.cursorrules -> .faf), export (.faf -> .cursorrules), sync (bidirectional)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, destructiveHint=false) indicate modifications but not destruction. Description adds that it returns the merged or written result, providing some behavioral context. However, it does not detail side effects or edge cases (e.g., what happens on conflict).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the main purpose and provide usage guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's limited scope (sync between two file types) and the presence of schema with full parameter descriptions and annotations, the description adequately explains the tool's function and expected output. Lacks specifics on result format but is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds general context about actions (import/export/sync) but does not add significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool imports, exports, or syncs context between .cursorrules and project.faf. The verb 'sync' and resources are specific, and it distinguishes itself from sibling tools like faf_sync and faf_context by focusing on Cursor rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides usage context: 'Use this to keep Cursor rules and your .faf in agreement from one source.' It implies when to use but does not explicitly mention when not to use or provide alternatives. However, the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_doctorA
Read-only

Diagnose a project.faf setup — report missing files, empty or weak slots, and common configuration issues, each with how to fix it. Returns a prioritized checklist. Use this when your score is low and you need to know why.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds specific details about the types of issues reported (missing files, slots, config issues) and that it returns a fix. Annotations declare readOnlyHint=true, so no contradiction; description enriches the read-only behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first explains function, second provides usage guidance. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a diagnostic tool with no output schema, description adequately explains return value (prioritized checklist) and types of issues. Complete for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'path' with schema coverage 100%. Schema already describes it as 'Project path. Sets session context.' Tool description does not add further semantics beyond implying it is the project to diagnose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool diagnoses a project.faf setup, reports specific issues (missing files, empty/weak slots, config issues), and returns a prioritized checklist. Distinct from sibling tools like faf_check or faf_score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'when your score is low and you need to know why.' Provides clear context but no mention of when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_geminiA

Import, export, or sync context between GEMINI.md (the Google Gemini CLI convention) and project.faf. Returns the merged or written result for the chosen action. Use this to keep a Gemini context file and your .faf in agreement from one source.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
forceNoForce overwrite existing files
mergeNoMerge imported data with existing .faf instead of replacing
actionYesAction: import (GEMINI.md -> .faf), export (.faf -> GEMINI.md), sync (bidirectional)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnlyHint=false, destructiveHint=false). The description adds that the tool 'returns the merged or written result' and implies file modification. It does not detail permissions, side effects, or error scenarios, but the addition of return value context is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with purpose and resource, then usage and return. No unnecessary words. Every sentence adds value, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters, 3 actions, and no output schema. The description covers the high-level purpose and return value ('merged or written result') but lacks detail on conflict resolution for sync, error handling, or return format. It is adequate but leaves gaps for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters and their meanings (action enum, force, merge, path). The description adds no new parameter-level insights, matching the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool synchronizes context between GEMINI.md and project.faf, with explicit verbs (import, export, sync). It distinguishes from sibling tools like faf_sync by specifying the Gemini CLI convention, making its domain unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: 'keep a Gemini context file and your .faf in agreement from one source.' It implies the context and purpose, but does not explicitly mention when not to use it or offer alternatives, which would elevate it to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_gitA

Generate a project.faf from any public GitHub repository URL — fetches the repo and extracts its stack and context. Returns the generated .faf. Use this to bootstrap context for a project you have the URL for but not cloned locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesGitHub repository URL (e.g., https://github.com/owner/repo or owner/repo)
pathNoOutput directory for generated project.faf. If omitted, returns content without writing.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it 'fetches the repo and extracts its stack and context,' which is a key behavioral trait beyond the annotations. Annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) are consistent. No contradictions. It adds value by explaining the fetching and extraction actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the main action and result, second gives usage guidance. No wasted words, front-loaded with the core purpose. Excellent structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema), the description covers the essential: what it does, how it works (fetches, extracts), and the two modes (write vs return). No missing information for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage, describing both parameters (url, path). The description adds meaning: 'Returns the generated .faf' and explains path behavior ('if omitted, returns content without writing'). This enhances the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Generate a project.faf from any public GitHub repository URL' with a specific verb ('Generate') and resource ('project.faf from GitHub URL'). It distinguishes from siblings like faf_init (for local projects) by specifying external fetching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use this to bootstrap context for a project you have the URL for but not cloned locally.' This tells when to use the tool. It could be improved by explicitly stating when not to use (e.g., private repos), but the guidance is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_goA

Drive a project.faf to 100% through a guided interview — returns the next questions for the missing human-context and goal fields, then applies the answers passed back. Returns the updated score after each round. Use this to close the gap to a complete context when auto-detection cannot fill the human slots.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
answersNoAnswers to apply. Keys are field paths (e.g., "project.goal", "human_context.why"), values are the answers. If provided, applies answers and returns new score.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite minimal annotations (only readOnlyHint false, destructiveHint false), the description adds behavioral context: it returns questions, applies answers, updates the score, and implies interactive iteration. It does not detail side effects or error conditions, but adequately describes the interactive protocol.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words, front-loaded with the purpose and then details. Every sentence provides critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (2 params, nested objects, no output schema), the description fully covers what the tool does, when to use it, how parameters behave, and what it returns (next questions and updated score). No missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds notable value: explains path sets session context for subsequent calls, and answers describes the key-value format and the effect of applying answers (new score returned). This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool drives a project.faf to 100% through a guided interview, returning questions and applying answers. This specific verb+resource+process distinguishes it from siblings like faf_auto (auto-detection) and faf_score (just scoring).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this tool when auto-detection cannot fill human slots, providing a clear when-to-use and when-not-to-use context. This directly guides the agent to choose this over alternatives like faf_auto.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_initA

Create a project.faf for a project, making it instantly AI-readable. Returns the new file location and starting score. Accepts a path or bare project name (e.g. ~/Projects/my-app, my-app) and omitting it uses the current directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path or name. Smart resolution: "my-app" finds ~/Projects/my-app OR ~/Code/my-app. Full paths like ~/Projects/app or /Users/me/code/app work too. Omit to use current directory.
forceNoOverwrite existing project.faf if it exists

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description is not required to restate these. It adds value by explaining the side effect (creating a file) and the return values (file location and starting score). However, it does not mention behavior when the file already exists without the 'force' parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise (three sentences) and front-loads the main purpose. Each sentence provides relevant information, though space could be saved by merging the last two sentences. Overall, it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 optional parameters, no output schema), the description covers the essential aspects: purpose, return values, and parameter usage. It does not mention error handling or edge cases, but these are minor gaps for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant semantic detail beyond the schema, especially for the 'path' parameter (smart resolution rules, examples). For 'force', the description is sufficient. The added context helps the agent understand parameter behavior better than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool creates a 'project.faf' file for a project, making it AI-readable. The verb 'Create' is specific to the resource, and the description differentiates from sibling tools like 'faf_score' or 'faf_sync' by focusing on initialization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on when to use the tool: to create a project.faf. It explains acceptable inputs (path, bare name, omit) with examples, but does not explicitly mention when not to use it or suggest alternatives, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_scoreA
Read-only

Calculate a project.faf AI-readiness score (0-100%) from the populated context slots. Returns the percentage and tier, and with details a slot-by-slot breakdown with improvement suggestions. Use this to measure how complete the AI context is and what to fill next.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.
detailsNoInclude detailed breakdown and improvement suggestions

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description aligns with readOnlyHint annotation and adds details on return structure (percentage, tier, optional slot-by-slot breakdown with suggestions). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action and output, each sentence serves a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Schema is fully covered, no output schema needed as description explains return object, readOnlyHint covers safety, and all aspects (purpose, usage, parameters, output) are addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, description adds value by explaining 'details' as providing 'slot-by-slot breakdown with improvement suggestions' and 'path' as setting session context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'calculate', resource 'AI-readiness score', and scope. Distinguishes from siblings like faf_context and faf_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to measure how complete the AI context is and what to fill next', providing clear when-to-use guidance. Lacks explicit exclusions but purpose sufficiently contrasts alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_syncA

Sync a project.faf with CLAUDE.md so the two stay aligned. Returns what was written. Use this for the single CLAUDE.md target; use faf_bi_sync to fan out to AGENTS.md, .cursorrules, and GEMINI.md as well.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject path. Sets session context for subsequent calls.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false and destructiveHint=false. The description adds that it returns what was written, which is useful. However, it does not describe the synchronization process in detail or any potential side effects beyond the sync itself. Given annotations cover safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The main action is front-loaded, and the alternative is mentioned efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 optional param, no output schema), the description plus schema/annotations cover purpose, usage, behavior, and parameter. It could briefly explain what 'sync' entails, but overall it's complete enough for a focused tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'path', which already has a description stating it sets session context. The description does not add any additional meaning or context for the parameter, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool syncs a project.faf with CLAUDE.md to keep them aligned. It distinguishes from the sibling faf_bi_sync, which handles multiple targets. The verb 'sync' and resource 'project.faf with CLAUDE.md' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: for the single CLAUDE.md target, and when not: use faf_bi_sync for multiple files (AGENTS.md, .cursorrules, GEMINI.md). This provides clear guidance on choosing between siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faf_trustA
Read-only

Validate a project.faf for structural integrity and field consistency. Returns trust metrics flagging malformed, missing, or contradictory data. Use this to confirm the context is sound before relying on it or syncing it to other formats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations give readOnlyHint=true. Description adds behavioral context about what is checked (malformed, missing, contradictory data) and aligns with read-only nature. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with action, then what it checks, then usage scenario. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description could specify the format of trust metrics or return value more clearly. Still adequate for a validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters with 100% schema coverage, so baseline is 4. Description needs no further param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Validate a project.faf for structural integrity and field consistency' with a specific verb and resource, and clearly distinguishes from sibling tools like faf_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to confirm the context is sound before relying on it or syncing it to other formats', providing clear context for use, though no explicit when-not-to or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updatesv2.3.0
    • Removedfaf_clear
    • Removedfaf_conductor
    • Removedfaf_debug
    • Removedfaf_dna
    • Removedfaf_enhance
    • Removedfaf_formats
    • Removedfaf_friday
    • Removedfaf_guide
    • Removedfaf_human_add
    • Removedfaf_list
    • Removedfaf_quick
    • Removedfaf_read
    • Removedfaf_readme
    • Removedfaf_status
    • Removedfaf_what
    • Removedfaf_write
  2. 1 tool updatev2.1.3
    • Removedfaf_chat
  3. 32 tool updatesv2.1.1
    • First observedfaf_about
    • First observedfaf_agents
    • First observedfaf_auto
    • First observedfaf_bi_sync
    • First observedfaf_chat
    • First observedfaf_check
    • First observedfaf_clear
    • First observedfaf_conductor
    • First observedfaf_context
    • First observedfaf_cursor
    • First observedfaf_debug
    • First observedfaf_dna
    • First observedfaf_doctor
    • First observedfaf_enhance
    • First observedfaf_formats
    • First observedfaf_friday
    • First observedfaf_gemini
    • First observedfaf_git
    • First observedfaf_go
    • First observedfaf_guide
    • First observedfaf_human_add
    • First observedfaf_init
    • First observedfaf_list
    • First observedfaf_quick
    • First observedfaf_read
    • First observedfaf_readme
    • First observedfaf_score
    • First observedfaf_status
    • First observedfaf_sync
    • First observedfaf_trust
    • First observedfaf_what
    • First observedfaf_write

TDQS

A4.2/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct action or asset: about explains the format, agents/cursor/gemini sync with specific IDE conventions, check rates context quality, doctor diagnoses issues, git generates from GitHub, go guides completion, init creates, score computes readiness, sync and bi_sync handle synchronization, trust validates integrity. No two tools overlap in purpose.

Naming Consistency5/5

All tools follow the consistent pattern `faf_<verb_or_noun>` using lowercase snake_case. The prefix `faf_` clearly groups them, and the suffixes are descriptive (e.g., init, check, score, bi_sync). No mixing of camelCase or other conventions.

Tool Count5/5

With 15 tools, the set fully covers the domain of .faf file management: creation, inspection, synchronization, validation, scoring, and guided improvement. Each tool has a clear role, and the count is within the well-scoped range (3-15).

Completeness5/5

The tool surface provides a complete lifecycle: create (init, git), assess (check, score, doctor, trust), sync (sync, bi_sync, agents, cursor, gemini), and improve (go, auto). Explanation (about) and context (context) round it out. No obvious gaps for the stated purpose of managing portable context files.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Wolfe-Jam/faf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server