Claude FAF
claude-faf-mcp FAF MCP server for Claude-compatible clients, with 33 tools for creating, validating, scoring, and syncing .faf Project DNA files.
What it can do
- Get Soul: Fetch a context soul by name. Returns structured AI context.
- List Souls: List all available context souls.
- Write Soul: Append an entry to a soul or replace it entirely. Entries can be typed as note, fact, todo, or question.
What data it sees
Do you need an account
No: the server works without sign-in
claude-faf-mcp
FAF MCP server for Claude-compatible clients, with 33 tools for creating, validating, scoring, and syncing .faf Project DNA files.
Install: npm install -g claude-faf-mcp
It helps reduce AI context drift by making project context operations structured and repeatable across sessions and IDE agents.
GitHub: https://github.com/Wolfe-Jam/claude-faf-mcp
npm: https://www.npmjs.com/package/claude-faf-mcp
Smithery (auto-CLI): https://smithery.ai/servers/wolfe-jam/claude-faf-mcp

How to connect
How to connect Claude FAF to Claude
The server address to paste into Claude settings:
https://claude-faf-mcp--wolfe-jam.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Claude FAF to ChatGPT
The server address to paste into ChatGPT settings:
https://claude-faf-mcp--wolfe-jam.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Claude FAF to Cursor
The server address to paste into Cursor settings:
https://claude-faf-mcp--wolfe-jam.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (23)
Raw names from tools/list. Only developers need these.
| get_soul | Fetch a context soul by name. Returns structured AI context. |
| list_souls | List all available context souls. |
| write_soul | Append an entry to a soul or replace it entirely. Entries can be typed as note, fact, todo, or question. |
| delta_check | Determine if a topic needs FULL, DELTA, or X-DELTA soul. |
| list_tags | List all unique tags used in a soul, with counts. |
| search_by_tag | Find all entries in a soul with a specific tag. |
| search_context | Full-text search across souls. Returns matching lines only (token-efficient). |
| create_soul | Create a new soul with initial content. Admin-only operation. |
| update_soul | Replace entire content of an existing soul. Admin-only operation. |
| delete_soul | Permanently delete a soul from storage. Admin-only operation. |
| tag_intel | Discover tag patterns, co-occurrence, candidates, and merge suggestions across all namepoints. Optionally suggest tags for a specific handle. |
| generate_faf_from_github | Generate a .faf file from any public GitHub repository WITHOUT cloning. Extracts 6 Ws from README, analyzes stack from languages and package.json, and generates Championship-grade AI context. Returns .faf content, quality score, and metadata. |
| faf_score | Score .faf YAML content via the Mk4 Zig-WASM engine. Returns 0-100 (capped). Same engine as xai-faf-rust + xai-faf-zig (parity-tested). Sub-ms at the edge. |
| faf_validate | Validate .faf YAML content via the Mk4 Zig-WASM engine. Returns true if mission-ready (>= 100). |
| faf_get_tier | Resolve the FAF tier for a given numeric score. Returns the tier symbol (Trophy/Gold/Silver/Bronze/etc.) per the canonical tier-table. |
| faf_estimate_tokens | Estimate token count for arbitrary content via the Zig WASM engine. Sub-millisecond, zero allocations. Useful for context-budget planning. |
| faf_analyze | One-call composite — returns score, tier-ready, valid, and engine identifier. Two WASM calls, sub-millisecond total. |
| refresh_faf | Re-ground on .faf content — re-score via the Mk4 Zig-WASM Enterprise scorer (33-slot, honors the authored app-type shape), report drift vs an optional baseline score, and return a stamped re-ground. The explicit re-grounding primitive for long sessions: drift → refresh → re-grounded. Built for Grok, by request. |
| faf_orchestrate_recommendation | Takes raw content strings (`.faf`, `.fafm`, and optionally `package.json`/`CHANGELOG.md`/`README.md`) and runs deterministic drift + contradiction signals across the FAF substrate. Returns a structured `Recommendation` (recommend, severity, reason, summary) with `hints` containing the current `effective_policy` and `partial[]` for any stateful signals unavailable on the current surface. Light-lane execution (hosted) is WASM-pure with no filesystem access. Heavy-lane execution (local via bunx/rust-faf-mcp) has full FS + persisted state. Advisory only — never auto-fires. |
| faf_gate | Phase III (FRC) — pre-promotion quality gate. Scores .faf content (edge Mk4) + estimates tokens and returns a deterministic promote/hold verdict BEFORE it goes to a Grok Collection. Promote IFF score >= min_score AND tokens <= max_tokens (defaults 85/8000). Edge parity with the local gate; the hold-hint can't list empty slots at the edge. |
| faf_section | Phase III (FRC) — returns an EXACT, WHOLE .faf section by dotted path (e.g. "stack", "human_context"), structure preserved — the deterministic complement to blind chunking. Omit "section" to list every path. |
| faf_memory | Phase III (FRC) — query the durable .fafm model by type/tag/priority/text. Omit filters for a structured summary. .fafm is NOT scored: this SELECTS facts (provenance preserved), never grades them. |
| faf_collections_search | Phase III (FRC §7b) — semantic search over a Grok Collection at the edge, KV-cached (1h TTL). Returns matched chunks (content, score, file). Requires the XAI_API_KEY secret; composes with faf_section (structural) for hybrid retrieval. Handled env-aware in the MCP handler (needs the key + KV). |