Persistent project context β Rust-native MCP server. IANA-registered .faf format.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Persistent Project Context for Rust MCP clients. Native. Fast. cargo install
The Table-of-8 Edition (v0.7.1) β one.faf/rust-faf-mcp Β· rmcp 3.0.1 (MCP Tier 1 foundation) Β· faf-rust-sdk 3.1 (the same always-33 kernel faf-wasm-sdk uses) Β· solid cargo-native Rust MCP for Rust devs
v0.7.1 β Pin the install. PATH rust-faf-mcp is not the pin. See CHANGELOG.
FAF defines. MD instructs. AI codes.
Stop re-explaining your project to every AI session. One
.faffile holds your persistent project context. Every AI reads it once and knows what you're building.
Rust-native MCP (Model Context Protocol) server for FAF β structured AI project context in YAML (application/vnd.faf+yaml). Single binary, stdio transport, 4.3 MB stripped. Built on rmcp and faf-rust-sdk.
Point an MCP client at the pin. A bare rust-faf-mcp on PATH may be an old Homebrew binary.
After cargo install rust-faf-mcp --version 0.7.1, "command": "rust-faf-mcp" is the install. Until you have proven that binary, use the npx pin.
No flags, no config files, no network listener. Pure stdio JSON-RPC.
Or via Homebrew (macOS, pre-built). If you already have it, upgrade β an old keg can sit on PATH as rust-faf-mcp:
faf_auto runs setup if project.faf is missing (tree detection writes mechanical facts), then syncs CLAUDE.md. It does not rewrite an existing file. Confirm setup (sweeps) lists what setup occupied β walk it; not a second write-gate. Empty human slots stay empty until you state them.
What it produces:
Every AI agent reads this once and knows exactly what you're building. No 20-minute onboarding. No wrong assumptions.
| Tool | What it does |
|---|---|
faf_auto | Setup if missing, sync CLAUDE.md, score β Confirm setup (sweeps); does not invent 6Ws |
faf_init | Setup: first write from the tree. Refuses if the file exists. Confirm setup (sweeps). 6Ws stay empty |
faf_go | Table-of-8 + Confirm setup (sweeps). 6Ws score after β. Below 100: add Human Context. After 100: courtesy check every 30 days (90 max) |
faf_git | Generate project.faf from any GitHub repo URL β no clone needed |
faf_discover | Walk up the directory tree to find the nearest project.faf |
| Tool | What it does |
|---|---|
faf_score | Score AI-readiness 0-100% with field-level breakdown |
faf_sync | Sync project.faf β CLAUDE.md (preserves existing content) |
faf_agents | Generate AGENTS.md from project.faf (non-destructive, preserves hand-written content) |
| Tool | What it does |
|---|---|
faf_read | Parse and display project.faf contents |
faf_compress | Compress .faf for token-limited contexts (minimal / standard / full) |
faf_tokens | Estimate token count at each compression level |
faf_init will not overwrite an existing file. Setup occupies mechanical facts; Confirm setup (sweeps) is the walk. Empty human slots stay empty until faf_go.
tokio single-threaded (current_thread)reqwest async (only used by faf_git for GitHub API)faf-rust-sdk 3.1 (Cargo pin β the facade over faf-kernel/faf-fafb in faf-rust; score() for the real Mk4 number, validate() for structural checks only)rmcp 3.0.1 with #[tool_router] / #[tool_handler] β JSON-RPC, schema generation, stdio transport (Tier-1 assessed SDK cut)Tools return serde_json::Value. The server adapts them to Result<String, String> for rmcp's IntoCallToolResult.
171 tests (136 integration + 35 unit):
| File | Tests | Coverage |
|---|---|---|
mcp_protocol.rs | 9 | Init handshake, tools/list, resources, schema validation, ID preservation |
tools_functional.rs | 31 | Tools β happy path, error paths, language detection, faf_go |
tier1_security.rs | 12 | Path traversal, null bytes, shell injection, oversized input, malformed JSON |
tier2_engine.rs | 36 | Corrupt YAML, sync replacement, pipelines, dual manifests, legacy filenames, direct paths |
tier3_edge_cases.rs | 10 | Unicode, CJK, score boundaries, unknown fields, GitHub URL parsing |
tier4_aero.rs | 22 | Manifest structure, version sync, server.json, context block, manifest-server cross-validation |
wjttc_setup.rs | 16 | Setup / Confirm setup (sweeps) β BRAKE Β· ENGINE Β· AERO Β· TYRE Β· PIT |
src unit | 35 | setup sweep, skills digest, agents::, inject::, intent, app-type |
Tests spawn the compiled binary as a subprocess and communicate via stdin/stdout JSON-RPC β true integration tests against the real server.
One format, every AI platform.
| Package | Platform | Registry |
|---|---|---|
| rust-faf-mcp | Rust | crates.io |
| claude-faf-mcp | Anthropic | npm + MCP #2759 |
| gemini-faf-mcp | PyPI | |
| grok-faf-mcp | xAI | npm |
| faf-cli | Universal | npm |
Edition: 2024 | LTO: enabled | Strip: symbols
If rust-faf-mcp has been useful, consider starring the repo β it helps others find it.
npmjs.com/package/rust-faf-mcp β npx --yes rust-faf-mcp@0.7.1 (no Rust toolchain; downloads GH Release binary)
Dual-package publish guide β cargo + npm (this server is the product example)
docs/DUAL-PACKAGE.md β pointer + OIDC docs for this repo
docs/SKILLS-OVER-MCP.md β J1 Agent Skill faf-context (skills/list Β· digests)
faf-rust-sdk β the parser this depends on
faf.one β FAF home
IANA registration β application/vnd.faf+yaml
MCP Registry name: mcp-name: one.faf/rust-faf-mcp
If you use rust-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
MIT
Built by @wolfe_jam | wolfejam.dev
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/rust-faf)<a href="https://allmcps.com/mcp/rust-faf"><img src="https://allmcps.com/api/badge/rust-faf?style=directory" alt="Rust FAF on AllMCPs" /></a>