rust-faf-mcp RMCP
Enables the generation of project context files directly from GitHub repository URLs through the GitHub API, allowing AI agents to understand repository DNA and project goals without requiring a local clone.
rust-faf-mcp
Persistent Project Context for Rust MCP clients. Native. Fast. cargo install
The one.faf Edition (v0.4.3) — one.faf/rust-faf-mcp · rmcp 3.0.1 (MCP Tier 1 foundation) · solid cargo-native Rust MCP for Rust devs
v0.4.3 — npm Trusted Publishing (OIDC) fixed — the dummy NODE_AUTH_TOKEN setup-node injected was 404ing the OIDC token exchange; CI now publishes npm clean.
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.
Quickstart
# Rust toolchain:
cargo install rust-faf-mcp
# No Rust (downloads GH Release binary for darwin/linux x64):
npx rust-faf-mcpThen point any MCP client at it:
# Claude Code
claude mcp add faf rust-faf-mcp// WARP / Cursor / Zed / Claude Desktop — any stdio MCP client
{
"mcpServers": {
"faf": {
"command": "rust-faf-mcp"
}
}
}No flags, no config files, no network listener. Pure stdio JSON-RPC.
Or via Homebrew (macOS, pre-built):
brew install Wolfe-Jam/faf/rust-faf-mcpRelated MCP server: gemini-faf-mcp
One command, done forever
faf_auto detects your project, creates a .faf, enhances it to max score, and syncs CLAUDE.md — in one shot:
faf_auto complete
━━━━━━━━━━━━━━━━━
Score: 0% → 85% (+85) ◇ BRONZE
Steps:
1. Created project.faf
2. Second enhancement pass
3. Created CLAUDE.md
Path: /home/user/my-projectWhat it produces:
# project.faf — your project, machine-readable
faf_version: "3.3"
project:
name: my-api
goal: REST API for user management
main_language: Rust
version: "0.1.0"
license: MIT
instant_context:
what_building: REST API for user management
tech_stack: Rust 2024
key_files:
- Cargo.toml
- src/main.rs
- README.md
commands:
build: cargo build
test: cargo test
stack:
backend: Rust
build_tool: cargoEvery AI agent reads this once and knows exactly what you're building. No 20-minute onboarding. No wrong assumptions.
Tools
Create & Detect
Tool | What it does |
| Zero to AI context in one command — init, enhance, sync, score, done |
| Create or enhance |
| Generate |
| Walk up the directory tree to find the nearest |
Score & Validate
Tool | What it does |
| Score AI-readiness 0-100% with field-level breakdown |
| Sync |
Optimize
Tool | What it does |
| Parse and display |
| Compress |
| Estimate token count at each compression level |
faf_init is iterative — run it again and it fills in what's missing. Score goes up each time.
Architecture
src/
├── main.rs # ~20 lines — tokio entry, rmcp stdio transport
├── server.rs # FafServer: #[tool_router], ServerHandler, resources
└── tools.rs # Business logic — all 9 tools, pure functions returning ValueRuntime:
tokiosingle-threaded (current_thread)HTTP:
reqwestasync (only used byfaf_gitfor GitHub API)SDK:
faf-rust-sdk1.3 (Cargo pin — parse / validate / compress / discover; foundation 3.x lives in faf-rust)Server:
rmcp3.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.
Testing
117 tests (113 integration + 4 unit):
cargo test # runs all 117
# Full ship bar (same gates as GitHub CI — run before push)
bash scripts/ci.sh
# Optional: block push on red CI twin
bash scripts/install-hooks.shFile | Tests | Coverage |
| 9 | Init handshake, tools/list, resources, schema validation, ID preservation |
| 25 | All 9 tools — happy path, error paths, language detection |
| 12 | Path traversal, null bytes, shell injection, oversized input, malformed JSON |
| 35 | Corrupt YAML, sync replacement, pipelines, dual manifests, legacy filenames, direct paths |
| 10 | Unicode, CJK, score boundaries, unknown fields, GitHub URL parsing |
| 22 | Manifest structure, version sync, server.json, context block, manifest-server cross-validation |
| 4 | Skills extension digest + scoring resource |
Tests spawn the compiled binary as a subprocess and communicate via stdin/stdout JSON-RPC — true integration tests against the real server.
FAF Ecosystem
One format, every AI platform.
Package | Platform | Registry |
rust-faf-mcp | Rust | crates.io |
Anthropic | npm + MCP #2759 | |
PyPI | ||
xAI | npm | |
Universal | npm |
Build from source
git clone https://github.com/Wolfe-Jam/rust-faf-mcp
cd rust-faf-mcp
cargo build --release
# Binary at target/release/rust-faf-mcp (4.3 MB)Edition: 2024 | LTO: enabled | Strip: symbols
If rust-faf-mcp has been useful, consider starring the repo — it helps others find it.
Links
npmjs.com/package/rust-faf-mcp —
npx rust-faf-mcp(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+yamlMCP Registry name:
mcp-name: one.faf/rust-faf-mcp
Citation
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
License
MIT
Built by @wolfe_jam | wolfejam.dev
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenance.FAF (Foundational AI-context Format) with 50+ tools - Only Persistent project context that integrates seamlessly with Claude Desktop workflows. Officially merged (#2759) Anthropic MCP server.1273722MIT
- AlicenseAqualityAmaintenancePersistent project context for Google Gemini. 12 MCP tools for .faf Project DNA — auto-detect your stack, validate, score, and sync across CLAUDE.md, GEMINI.md, and AGENTS.md. Python/FastMCP. IANA-registered format (application/vnd.faf+yaml). 183 tests. One file, every AI platform.122MIT
- AlicenseAqualityAmaintenancePersistent project context MCP server that syncs a single .faf file to all AI tool formats (Cursor, Windsurf, Cline, etc.), enabling eternal bi-sync and optimized context for AI assistants.152156MIT
- AlicenseAqualityAmaintenanceDeterministic dependency + CVE context for AI coding tools, over the Model Context Protocol. A ~0.85 MB pure-Rust MCP server.21MIT
Related MCP Connectors
Persistent project context for xAI Grok. IANA-registered .faf format.
Persistent project context for Claude. IANA-registered .faf format.
Artifact store for AI agents. Hosted OAuth at mcp.artifacta.io/mcp; local stdio via npm/PyPI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rust-faf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server