rust-faf-mcp 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
**Persistent Project Context for Rust MCP clients. Native. Fast. cargo install**
|
|
8
8
|
|
|
9
|
-
**The
|
|
9
|
+
**The Lineage Edition (v0.8.0)** — `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
|
|
10
10
|
|
|
11
|
-
**v0.
|
|
11
|
+
**v0.8.0** — `.faf-dna` lineage, the same file as faf-cli and fafb: `faf_init` births it, `faf_auto` grows it, `faf_dna` shows the journey. fafb scores all 33 slots for monorepos and teams. See [CHANGELOG](./CHANGELOG.md#080---2026-09-13--the-lineage-edition).
|
|
12
12
|
|
|
13
13
|
**FAF defines. MD instructs. AI codes.**
|
|
14
14
|
|
|
@@ -26,17 +26,17 @@ Rust-native [MCP](https://modelcontextprotocol.io) (Model Context Protocol) serv
|
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
# Rust toolchain (install):
|
|
29
|
-
cargo install rust-faf-mcp --version 0.
|
|
29
|
+
cargo install rust-faf-mcp --version 0.8.0
|
|
30
30
|
|
|
31
31
|
# No Rust (try — downloads GH Release binary for darwin/linux):
|
|
32
|
-
npx --yes rust-faf-mcp@0.
|
|
32
|
+
npx --yes rust-faf-mcp@0.8.0
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Point an MCP client at the **pin**. A bare `rust-faf-mcp` on PATH may be an old Homebrew binary.
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
# Claude Code
|
|
39
|
-
claude mcp add faf -- npx --yes rust-faf-mcp@0.
|
|
39
|
+
claude mcp add faf -- npx --yes rust-faf-mcp@0.8.0
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
```jsonc
|
|
@@ -45,13 +45,13 @@ claude mcp add faf -- npx --yes rust-faf-mcp@0.7.1
|
|
|
45
45
|
"mcpServers": {
|
|
46
46
|
"faf": {
|
|
47
47
|
"command": "npx",
|
|
48
|
-
"args": ["--yes", "rust-faf-mcp@0.
|
|
48
|
+
"args": ["--yes", "rust-faf-mcp@0.8.0"]
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
After `cargo install rust-faf-mcp --version 0.
|
|
54
|
+
After `cargo install rust-faf-mcp --version 0.8.0`, `"command": "rust-faf-mcp"` is the install. Until you have proven that binary, use the npx pin.
|
|
55
55
|
|
|
56
56
|
No flags, no config files, no network listener. Pure stdio JSON-RPC.
|
|
57
57
|
|
|
@@ -122,7 +122,7 @@ Every AI agent reads this once and knows exactly what you're building. No 20-min
|
|
|
122
122
|
| `faf_auto` | Setup if missing, sync `CLAUDE.md`, score — Confirm setup (sweeps); does not invent 6Ws |
|
|
123
123
|
| `faf_init` | Setup: first write from the tree. Refuses if the file exists. Confirm setup (sweeps). 6Ws stay empty |
|
|
124
124
|
| `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) |
|
|
125
|
-
| `faf_git` |
|
|
125
|
+
| `faf_git` | Author `project.faf` from any GitHub repo URL — no clone needed |
|
|
126
126
|
| `faf_discover` | Walk up the directory tree to find the nearest `project.faf` |
|
|
127
127
|
|
|
128
128
|
### Score & Validate
|
|
@@ -131,7 +131,7 @@ Every AI agent reads this once and knows exactly what you're building. No 20-min
|
|
|
131
131
|
|------|-------------|
|
|
132
132
|
| `faf_score` | Score AI-readiness 0-100% with field-level breakdown |
|
|
133
133
|
| `faf_sync` | Sync `project.faf` → `CLAUDE.md` (preserves existing content) |
|
|
134
|
-
| `faf_agents` |
|
|
134
|
+
| `faf_agents` | Author `AGENTS.md` from `project.faf` (non-destructive, preserves hand-written content) |
|
|
135
135
|
|
|
136
136
|
### Optimize
|
|
137
137
|
|
|
@@ -141,6 +141,12 @@ Every AI agent reads this once and knows exactly what you're building. No 20-min
|
|
|
141
141
|
| `faf_compress` | Compress `.faf` for token-limited contexts (`minimal` / `standard` / `full`) |
|
|
142
142
|
| `faf_tokens` | Estimate token count at each compression level |
|
|
143
143
|
|
|
144
|
+
### Lineage
|
|
145
|
+
|
|
146
|
+
| Tool | What it does |
|
|
147
|
+
|------|-------------|
|
|
148
|
+
| `faf_dna` | Your FAF DNA journey from `.faf-dna`: Birth DNA to now, with history. `faf_init` births it, `faf_auto` records growth — the same file as faf-cli |
|
|
149
|
+
|
|
144
150
|
`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`.
|
|
145
151
|
|
|
146
152
|
## Architecture
|
|
@@ -155,16 +161,16 @@ src/
|
|
|
155
161
|
- **Runtime**: `tokio` single-threaded (`current_thread`)
|
|
156
162
|
- **HTTP**: `reqwest` async (only used by `faf_git` for GitHub API)
|
|
157
163
|
- **SDK**: `faf-rust-sdk` **3.1** (Cargo pin — the facade over `faf-kernel`/`faf-fafb` in [faf-rust](https://github.com/Wolfe-Jam/faf-rust); `score()` for the real Mk4 number, `validate()` for structural checks only)
|
|
158
|
-
- **Server**: **`rmcp` 3.0.1** with `#[tool_router]` / `#[tool_handler]` — JSON-RPC,
|
|
164
|
+
- **Server**: **`rmcp` 3.0.1** with `#[tool_router]` / `#[tool_handler]` — JSON-RPC, JSON Schema from the param types, stdio transport (Tier-1 assessed SDK cut)
|
|
159
165
|
|
|
160
166
|
Tools return `serde_json::Value`. The server adapts them to `Result<String, String>` for rmcp's `IntoCallToolResult`.
|
|
161
167
|
|
|
162
168
|
## Testing
|
|
163
169
|
|
|
164
|
-
|
|
170
|
+
190 tests (143 integration + 47 unit):
|
|
165
171
|
|
|
166
172
|
```bash
|
|
167
|
-
cargo test # runs all
|
|
173
|
+
cargo test # runs all 190
|
|
168
174
|
|
|
169
175
|
# Full ship bar (same gates as GitHub CI — run before push)
|
|
170
176
|
bash scripts/ci.sh
|
|
@@ -181,7 +187,8 @@ bash scripts/install-hooks.sh
|
|
|
181
187
|
| `tier3_edge_cases.rs` | 10 | Unicode, CJK, score boundaries, unknown fields, GitHub URL parsing |
|
|
182
188
|
| `tier4_aero.rs` | 22 | Manifest structure, version sync, server.json, context block, manifest-server cross-validation |
|
|
183
189
|
| `wjttc_setup.rs` | 16 | Setup / Confirm setup (sweeps) — BRAKE · ENGINE · AERO · TYRE · PIT |
|
|
184
|
-
| `
|
|
190
|
+
| `wjttc_faf_dna.rs` | 7 | `.faf-dna` lineage — `faf_init` birth, `faf_auto` growth, `faf_dna`, faf-cli's lines |
|
|
191
|
+
| `src` unit | 47 | setup sweep, skills digest, `agents::`, `inject::`, intent, app-type, `dna::` lineage + faf-cli fixtures |
|
|
185
192
|
|
|
186
193
|
Tests spawn the compiled binary as a subprocess and communicate via stdin/stdout JSON-RPC — true integration tests against the real server.
|
|
187
194
|
|
|
@@ -213,7 +220,7 @@ If `rust-faf-mcp` has been useful, consider starring the repo — it helps other
|
|
|
213
220
|
## Links
|
|
214
221
|
|
|
215
222
|
- [crates.io/crates/rust-faf-mcp](https://crates.io/crates/rust-faf-mcp)
|
|
216
|
-
- [npmjs.com/package/rust-faf-mcp](https://www.npmjs.com/package/rust-faf-mcp) — `npx --yes rust-faf-mcp@0.
|
|
223
|
+
- [npmjs.com/package/rust-faf-mcp](https://www.npmjs.com/package/rust-faf-mcp) — `npx --yes rust-faf-mcp@0.8.0` (no Rust toolchain; downloads GH Release binary)
|
|
217
224
|
|
|
218
225
|
- [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)
|
|
219
226
|
- [docs/DUAL-PACKAGE.md](./docs/DUAL-PACKAGE.md) — pointer + OIDC docs for this repo
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rust-faf-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"mcpName": "one.faf/rust-faf-mcp",
|
|
5
5
|
"description": "Persistent project context — Rust-native MCP server. IANA-registered .faf format. npm shim downloads the native binary from GitHub Releases.",
|
|
6
6
|
"license": "MIT",
|