Rust Faf Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Rust Faf Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- faf: rust-faf-mcp | Rust | mcp-server | RMCP — the Rust-native MCP server for FAF (Foundational AI-context Format). Single binary, stdio transport, 4.3 MB stripped. cargo install rust-faf-mcp. Built on the rmcp Rust MCP SDK + faf-rust-sdk. --> <!-- mcp-name: io.github.Wolfe-Jam/rust-faf-mcp -->
Persistent Project Context for Rust MCP clients. Native. Fast. cargo install
FAF defines. MD instructs. AI codes.
Stop re-explaining your project to every AI session. One .faf file 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.
cargo install 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-mcpfaf_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.
| Tool | What it does |
|---|---|
faf_auto | Zero to AI context in one command — init, enhance, sync, score, done |
faf_init | Create or enhance project.faf from Cargo.toml, package.json, pyproject.toml, or go.mod |
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) |
| 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 is iterative — run it again and it fills in what's missing. Score goes up each time.
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 Valuetokio single-threaded (current_thread)reqwest async (only used by faf_git for GitHub API)faf-rust-sdk 1.3 for parsing, validation, compression, discoveryrmcp 1.1 with #[tool_router] macro — handles JSON-RPC, schema generation, transportTools return serde_json::Value. The server adapts them to Result<String, String> for rmcp's IntoCallToolResult.
112 tests across 6 files:
cargo test # runs all 112| File | Tests | Coverage |
|---|---|---|
mcp_protocol.rs | 9 | Init handshake, tools/list, resources, schema validation, ID preservation |
tools_functional.rs | 25 | All 9 tools — happy path, error paths, language detection |
tier1_security.rs | 12 | Path traversal, null bytes, shell injection, oversized input, malformed JSON |
tier2_engine.rs | 35 | 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 | 21 | Manifest structure, version sync, server.json, manifest-server cross-validation |
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 |
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.
application/vnd.faf+yamlmcp-name: io.github.Wolfe-Jam/rust-faf-mcpMIT
Built by @wolfe_jam | wolfejam.dev
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.