Persistent Project Context for Rust MCP clients — IANA-registered .faf format · Rust-native MCP server
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add rust-faf-mcp -- npx -y rust-faf-mcp{
"mcpServers": {
"rust-faf-mcp": {
"command": "npx",
"args": ["-y", "rust-faf-mcp"]
}
}
}MCP Servers overview
<!-- 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: one.faf/rust-faf-mcp -->
# 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 `.faf` file holds your persistent project context. Every AI reads it once and knows what you're building.
[](https://crates.io/crates/rust-faf-mcp)
[](https://faf.one)
[](https://github.com/Wolfe-Jam/rust-faf-mcp)
[](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml)
[](LICENSE)
Rust-native [MCP](https://modelcontextprotocol.io) (Model Context Protocol) server for [FAF](https://faf.one) — structured AI project context in YAML (`application/vnd.faf+yaml`). Single binary, stdio transport, 4.3 MB stripped. Built on [`rmcp`](https://crates.io/crates/rmcp) and [`faf-rust-sdk`](https://crates.io/crates/faf-rust-sdk).
## Quickstart
```bash
# Rust toolchain:
cargo install rust-faf-mcp
# No Rust (downloads GH Release binary for darwin/linux x64):
npx rust-faf-mcp
```
Then point any MCP client at it:
```bash
# Claude Code
claude mcp add faf rust-faf-mcp
```
```jsonc
// 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):
```bash
brew install Wolfe-Jam/faf/rust-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-project
```
What it produces:
```yaml
# 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: cargo
```
Every 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 |
|------|-------------|
| `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` |
### Score & Validate
| 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) |
### Optimize
| 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.
## 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 Value
```
- **Runtime**: `tokio` single-threaded (`current_thread`)
- **HTTP**: `reqwest` async (only used by `faf_git` for GitHub API)
- **SDK**: `faf-rust-sdk` **1.3** (Cargo pin — parse / validate / compress / discover; foundation **3.x** lives in [faf-rust](https://github.com/Wolfe-Jam/faf-rust))
- **Server**: **`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`.
## Testing
117 tests (113 integration + 4 unit):
```bash
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.sh
```
| 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` | 22 | Manifest structure, version sync, server.json, context block, manifest-server cross-validation |
| `src` unit | 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** |
| [claude-faf-mcp](https://npmjs.com/package/claude-faf-mcp) | Anthropic | npm + MCP #2759 |
| [gemini-faf-mcp](https://pypi.org/project/gemini-faf-mcp/) | Google | PyPI |
| [grok-faf-mcp](https://npmjs.com/package/grok-faf-mcp) | xAI | npm |
| [faf-cli](https://npmjs.com/package/faf-cli) | Universal | npm |
## Build from source
```bash
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
- [crates.io/crates/rust-faf-mcp](https://crates.io/crates/rust-faf-mcp)
- [npmjs.com/package/rust-faf-mcp](https://www.npmjs.com/package/rust-faf-mcp) — `npx rust-faf-mcp` (no Rust toolchain; downloads GH Release binary)
- [Dual-package publish guide](https://github.com/Wolfe-Jam/mcp-better/blob/main/docs/DUAL-PACKAGE-RUST-MCP.md) — cargo + npm (this server is the product example)
- [docs/DUAL-PACKAGE.md](./docs/DUAL-PACKAGE.md) — pointer + OIDC docs for this repo
- [docs/SKILLS-OVER-MCP.md](./docs/SKILLS-OVER-MCP.md) — J1 Agent Skill `faf-context` (skills/list · digests)
- [faf-rust-sdk](https://crates.io/crates/faf-rust-sdk) — the parser this depends on
- [faf.one](https://faf.one) — FAF home
- [IANA registration](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml) — `application/vnd.faf+yaml`
- MCP Registry name: `mcp-name: one.faf/rust-faf-mcp`
- [CHANGELOG](CHANGELOG.md)
## 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](https://x.com/wolfe_jam) | [wolfejam.dev](https://wolfejam.dev)
What people ask about rust-faf-mcp
What is Wolfe-Jam/rust-faf-mcp?
+
Wolfe-Jam/rust-faf-mcp is mcp servers for the Claude AI ecosystem. Persistent Project Context for Rust MCP clients — IANA-registered .faf format · Rust-native MCP server It has 4 GitHub stars and its last recorded update is dated 2026-08-20.
How do I install rust-faf-mcp?
+
You can install rust-faf-mcp by cloning the repository (https://github.com/Wolfe-Jam/rust-faf-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Wolfe-Jam/rust-faf-mcp safe to use?
+
Our security agent has analyzed Wolfe-Jam/rust-faf-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains Wolfe-Jam/rust-faf-mcp?
+
Wolfe-Jam/rust-faf-mcp is maintained by Wolfe-Jam. The last recorded GitHub activity is dated 2026-08-20, with 0 open issues.
Are there alternatives to rust-faf-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy rust-faf-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/wolfe-jam-rust-faf-mcp)<a href="https://claudewave.com/repo/wolfe-jam-rust-faf-mcp"><img src="https://claudewave.com/api/badge/wolfe-jam-rust-faf-mcp" alt="Featured on ClaudeWave: Wolfe-Jam/rust-faf-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!