Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Claude FAF

NPM · CLAUDE-FAF-MCP · 2 COMPONENTS · SCANNED AUG 3

Persistent project context for Claude. IANA-registered .faf format.

+12 this week 65 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security82
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (143 of 147), so this covers what we could see, not the whole tree.Partial
  • Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
  • Only part of the dependency tree could be resolved (143 of 147), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability84
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1802 tokens (~112/item across 16 items; 13 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (54% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · claude-faf-mcp

# add to Claude Code
claude mcp add one-faf-claude-faf-mcp -- npx -y claude-faf-mcp
# add to Codex CLI
codex mcp add one-faf-claude-faf-mcp -- npx -y claude-faf-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "one-faf-claude-faf-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "claude-faf-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add one-faf-claude-faf-mcp --command npx --arg -y --arg claude-faf-mcp
# ~/.hermes/config.yaml
mcp_servers:
  one-faf-claude-faf-mcp:
    command: "npx"
    args: ["-y", "claude-faf-mcp"]
// mcp.json
{
  "mcpServers": {
    "one-faf-claude-faf-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "claude-faf-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +39
    • Provenance: unverified → fail security
    • Install scripts: unverified → partial security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • The scripts that run when this package is installed changed: postinstall security
    • MCP protocol: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • Licence: MIT functional
  • 31 Jul 26 +18
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −16
    • Malware scan: pass → unverified security
    • Dependency health: unverified → partial functional
  • 28 Jul 26 −29
    • Schema quality: 100 → unverified functional
    • Tool coverage: 100 → unverified functional
  • 27 Jul 26 53

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Install scripts 1 script
Hook Tier Command
postinstall unreviewed node scripts/postinstall.js
Dependencies 143 packages

143 packages in the resolved dependency tree · 138 deprecated · 34 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 13 exposed · ~1,763 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
faf_about ~58

Explain what the FAF format is — project DNA for AI — with its IANA registration, version, and connected platforms. Returns format metadata and the available MCP bridges. Use this when someone asks what FAF is or how it connects to other AI tools.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

faf_auto ~113

Scan your manifests (package.json, Cargo.toml, pyproject.toml, go.mod…) and fill the project.faf stack slots from real dependencies — no hardcoded defaults. Returns what was detected and the updated score. Use this for the technical context; use faf_go for the human 6Ws it can't detect, and faf_enhance to have an AI refine the result.

NameTypeReqDescription
forcebooleanForce overwrite existing files
pathstringProject path. Sets session context for subsequent calls.

No output schema declared.

No examples provided.

faf_bench ~301

Prove the .faf earns its place — measure how much the context is worth, on THIS repo, falsifiably. Questions derive from the project.faf's own populated slots (the .faf is the answer key), so grading is mechanical — no judge, no rubric. action=questions returns the answer-key-safe question set; action=grade takes your answers WITHOUT the .faf (cold) and WITH it (faf), grades both, and returns the cold→with-faf lift with a ✪ receipt. The delta is the product; the cold number belongs to the absence of context, never to FAF.

NameTypeReqDescription
actionstringquestions = get the answer-key-safe question set to answer; grade = submit cold + with-faf answers to score the delta. Default: questions.
coldobjectaction=grade: answers produced WITHOUT the .faf (general repo knowledge only). Map of question number → answer string.
coldTokensnumberaction=grade (optional): tokens spent answering cold.
fafobjectaction=grade: answers produced WITH the project.faf in context. Map of question number → answer string.
fafTokensnumberaction=grade (optional): tokens spent answering with the .faf.
modelstringaction=grade (optional): the model that produced the answers.
pathstringProject path (optional — current directory if omitted).
NameTypeReqDescription
actionstring
coldobjectaction=grade — score WITHOUT context (absence baseline).
deltanumberwith-faf minus cold — the product.
fafobjectaction=grade — score WITH the .faf.
protocolstringin-session — answers are self-reported by the agent under test.
qsetHashstringHash of the question set — rides the receipt; same .faf reproduces it.
questionsarrayaction=questions only — NEVER includes the answer key.
receiptobject✪ receipt — sha256 over the canonical projection; third-party verifiable.
totalnumberNumber of questions in the set.
versionstring

No examples provided.

faf_context ~65

Set or show the active project path that subsequent 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.

NameTypeReqDescription
pathstringSet active project path. If omitted, shows current context.
NameTypeReqDescription
activestringyesAbsolute path of the active project
changedbooleanyesTrue if this call set a new context, false if it only reported
filenamestring|nullThe .faf filename, if found
hasFafbooleanyesWhether a project.faf (or .faf) was found there

No examples provided.

faf_doctor ~66

Diagnose a project.faf: report empty or weak slots, common issues, and how to fix each. Returns a prioritized checklist. Use this when faf_score is below target and you need to know why.

NameTypeReqDescription
pathstringProject path. Sets session context for subsequent calls.
NameTypeReqDescription
checksnumberyesNumber of checks run
diagnosticsarrayyesPer-check results
errorsnumberCount of error-level findings
healthstringyesOverall verdict: ok | warning | error
warningsnumberCount of warning-level findings

No examples provided.

faf_enhance ~159

Refine a project.faf with an AI model (claude/gemini/grok, optionally by consensus). Returns the enhanced content, or a dry-run preview when dryRun is set. Use this to polish after faf_auto and faf_go have filled the slots.

NameTypeReqDescription
consensusbooleanBuild consensus from multiple AI models
dryRunbooleanPreview enhancement without applying changes
focusstringEnhancement focus: claude-optimal|human-context|ai-instructions|completeness
modelstringTarget AI model: claude|chatgpt|gemini|universal (default: claude)
pathstringProject path. Sets session context for subsequent calls.

No output schema declared.

No examples provided.

faf_etch ~166

Remember a decision, gotcha, or win across sessions by writing it to the project soul (.fafm). Returns the stored memory's id. Use this to persist something an AI should recall later; use faf_recall to read them back.

NameTypeReqDescription
idstringStable id — re-etching the same id updates in place (dedup)
pathstringProject path. Sets session context for subsequent calls.
prioritystringRecall ranks by priority then recency
tagsarrayTags (e.g. decision, gotcha, win) for filtering + recall coupling
textstringyesThe memory to remember — capture the why (decision/gotcha/win)
typestringMemory category
NameTypeReqDescription
etchedobjectyes
namepointstring
soulstringyesPath to soul.fafm
totalnumberTotal memories in the soul

No examples provided.

faf_go ~186

The friendly front door — "let's go, tell me about your idea." Asks the human the 6Ws (goal, why, who, what, where, when) that can't be auto-detected, then applies them to project.faf. If no project.faf exists yet, faf_go bootstraps it first (creates it, sources the stack) so you go from nothing to the 6Ws in one step. Returns the Table-of-8 to confirm/answer, or applies the answers you pass back. Use faf_auto for the technical stack on its own.

NameTypeReqDescription
answersobjectAnswers 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.
pathstringProject path. Sets session context for subsequent calls.

No output schema declared.

No examples provided.

faf_init ~126

Create a new project.faf with a name, goal, and language. Returns the file path and starting score. Won't overwrite an existing file — use faf_auto to fill the stack from your manifests, or faf_go for the human 6Ws.

NameTypeReqDescription
forcebooleanOverwrite existing project.faf if it exists
pathstringProject 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.

No output schema declared.

No examples provided.

faf_recall ~133

Recall memories from the project soul (.fafm), ranked by priority then recency, filtered by query/tags/type. Returns the matching entries. Use this to surface past decisions; use faf_etch to add new ones.

NameTypeReqDescription
limitnumberMax memories to return
minPrioritystringPriority floor (default ephemeral)
pathstringProject path. Sets session context for subsequent calls.
querystringCase-insensitive substring match on memory text (optional)
tagsarrayFilter by tag intersection
typestringFilter by memory type
NameTypeReqDescription
memoriesarrayyes
soulstring
soulTotalnumberTotal memories in the soul
totalnumberyesNumber returned

No examples provided.

faf_score ~90

Score a project.faf and return its 0–100% AI-readability, tier, and per-slot breakdown, via the deterministic Mk4 engine. Use this for a quick status check; use faf_doctor when you need to diagnose and fix what's missing.

NameTypeReqDescription
detailsbooleanInclude detailed breakdown and improvement suggestions
pathstringProject path. Sets session context for subsequent calls.
NameTypeReqDescription
activenumberSlots active for this app_type
emptynumberActive slots still empty
hasFafbooleanyesWhether a readable, valid project.faf was scored
ignorednumberSlots marked slotignored (inactive for this app_type)
inheritedbooleanTrue if the score is attested from a source repo (app_type: about)
nextTierobject|nullNext tier above the current score, or null at top tier
parityobjectDeterminism parity receipt — an engine-agnostic hash any conformant scorer reproduces for this exact file. Third-party verifiable: sha256(projection) === parityHash.
pathstringPath that was scored
populatednumberActive slots that are filled
scorenumberyesAI-readiness score, 0-100
tierstringyesTier name for this score (e.g. Bronze, Trophy)
totalnumberTotal slots

No examples provided.

faf_sync ~230

Sync project.faf into CLAUDE.md as a faf-managed block, and optionally into AGENTS.md (agents), .cursorrules (cursor), GEMINI.md (gemini), and .github/copilot-instructions.md (copilot) — or all of them (all). Updates each block in place — it never overwrites your file. Use this after editing project.faf so every AI tool sees the latest context.

NameTypeReqDescription
agentsbooleanAlso sync to AGENTS.md (OpenAI/Codex format)
allbooleanSync to ALL formats: CLAUDE.md + AGENTS.md + .cursorrules + GEMINI.md + .github/copilot-instructions.md
copilotbooleanAlso sync to .github/copilot-instructions.md (GitHub Copilot)
cursorbooleanAlso sync to .cursorrules (Cursor IDE format)
geminibooleanAlso sync to GEMINI.md (Google Gemini format)
pathstringProject path. Sets session context for subsequent calls.

No output schema declared.

No examples provided.

faf_trust ~70

Attest a project.faf's integrity: its validity, score, and a deterministic parity hash any conformant engine reproduces. Returns the ✪ receipt. Use this to prove a score is genuine and untampered.

NameTypeReqDescription
pathstringProject path. Sets session context for subsequent calls.
NameTypeReqDescription
hasFafbooleanyesWhether a project.faf was found
parityobjectDeterminism parity receipt (same shape as faf_score.parity).
pathstringPath that was attested
reasonstringWhy validation failed, when valid is false
receiptobjectThe ✪ trust receipt — render-identical, self-verifying score+parity artifact.
scorenumberAI-readiness score, 0-100
sourceSha256stringSHA-256 of the raw .faf bytes
tierstringTier name for this score
validbooleanyesWhether the project.faf is readable and valid

No examples provided.