mcpField
R
Rust FAF

Rust FAF

本地服务
faf.one记忆与知识41 天前更新

关于 Rust FAF

Rust FAF 是以 Rust 编写的 MCP 服务,用于管理持久化的项目上下文文件 `project.faf`。它可检测项目结构、校验和压缩上下文,并同步生成面向 Agent 的说明文件。

主要功能

  1. 01创建并检测项目上下文
  2. 02评估 AI 就绪度并校验字段
  3. 03同步 `CLAUDE.md` 与生成 `AGENTS.md`
  4. 04解析、压缩并估算上下文令牌
  5. 05从 GitHub URL 生成项目描述

适用场景

  1. 01让不同 AI 会话复用项目背景
  2. 02为新项目生成结构化上下文
  3. 03压缩上下文以适配令牌限制
  4. 04从公开 GitHub 仓库生成项目描述

MCP 相关

这是基于 stdio 的 Rust MCP 服务,向客户端提供项目上下文管理工具及资源。除 `faf_git` 使用 GitHub API 外,工具在本地处理数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargorust-faf-mcp0.8.3
npmrust-faf-mcp0.8.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

rust-faf-mcp

为 Rust MCP 客户端提供持久化项目上下文。原生、高速。通过 cargo install 安装

传承版(v0.8.3) — one.faf/rust-faf-mcp · rmcp 3.0.1(MCP Tier 1 基础)· faf-rust-sdk 3.1.1(与 faf-wasm-sdk 使用的始终为 33 的内核相同)· 为 Rust 开发者打造的可靠 cargo 原生 Rust MCP

v0.8.3 — --version 和 --help 会直接响应,而不是启动服务。请参阅 更新日志。

FAF 定义。AGENTS.md 指示。AI 编码。

不必再向每个 AI 会话重复解释你的项目。一个 .faf 文件即可保存持久化项目上下文。每个 AI 只需读取一次,就能了解你正在构建什么。

Crates.io FAF Trophy 100% Tests IANA License Business card · Get yours →

面向 FAF 的 Rust 原生 MCP(Model Context Protocol)服务 — 以 YAML 格式提供结构化 AI 项目上下文(application/vnd.faf+yaml)。单一二进制文件,使用 stdio 传输,剥离后为 4.3 MB。基于 rmcp 和 faf-rust-sdk 构建。

快速开始

# Rust toolchain (install):
cargo install rust-faf-mcp --version 0.8.3

# No Rust (try — downloads GH Release binary for darwin/linux):
npx --yes [email protected]

让 MCP 客户端指向这个固定版本。PATH 中未固定版本的 rust-faf-mcp 可能是旧版 Homebrew 二进制文件。

# Claude Code
claude mcp add faf -- npx --yes [email protected]
// Cursor, Claude Desktop, Windsurf — any client that reads mcpServers
{
  "mcpServers": {
    "faf": {
      "command": "npx",
      "args": ["--yes", "[email protected]"]
    }
  }
}

运行 cargo install rust-faf-mcp --version 0.8.3 后,"command": "rust-faf-mcp" 就会指向安装的版本。在确认该二进制文件可用之前,请使用 npx 固定版本。

无需标志、配置文件或网络监听器。纯 stdio JSON-RPC。

也可以通过 Homebrew 安装(macOS,预编译)。如果已经安装,请升级 — 旧版 keg 可能仍会以 rust-faf-mcp 的名称出现在 PATH 中:

brew update
brew install Wolfe-Jam/faf/rust-faf-mcp
# already installed:
brew upgrade Wolfe-Jam/faf/rust-faf-mcp

一条命令,永久就绪

如果缺少 project.faf,faf_auto 会运行设置(通过树结构检测写入机械事实),然后同步 CLAUDE.md。它不会重写已有文件。**确认设置(扫描)**会列出设置时占用的内容 — 请逐项检查;这不是第二道写入关卡。人工填写的空字段会保持空白,直到你提供相应信息。

faf_auto complete
━━━━━━━━━━━━━━━━━
Score: 0% → 42% (+42) ● GREEN
Steps:
  1. Setup — created project.faf
  2. Created CLAUDE.md

Path: /home/user/my-project

Confirm setup (sweeps)
Walk these. Detection is already a fact. Not a second write-gate.
  project.name           my-api
  project.main_language  Rust
  stack.backend          Rust

生成内容:

# 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: cargo

每个 AI Agent 只需读取一次,就能准确了解你正在构建什么。无需 20 分钟的引导,也不会产生错误假设。

工具

创建与检测
工具功能
faf_auto缺少文件时运行设置,同步 CLAUDE.md 并评分 — 确认设置(扫描);不会编造 6Ws
faf_init设置:根据目录树首次写入。文件已存在时拒绝操作。确认设置(扫描)。6Ws 保持空白
faf_goTable-of-8 + 确认设置(扫描)。勾选 ☑ 后对 6Ws 评分。低于 100:补充人工上下文。达到 100 后:每 30 天进行一次礼貌检查(最多 90 次)
faf_git根据任意 GitHub 仓库 URL 编写 project.faf — 无需克隆。使用公开 GitHub API;返回文本,不写入任何内容
faf_discover沿目录树向上查找最近的 project.faf
评分与验证
工具功能
faf_score对 AI 就绪度进行 0–100% 评分,并提供字段级细分
faf_sync将 project.faf 同步到 CLAUDE.md(保留现有内容)
faf_agents根据 project.faf 编写 AGENTS.md(非破坏性操作,保留手写内容)
优化
工具功能
faf_read解析并显示 project.faf 内容
faf_compress压缩 .faf,以适应令牌受限的上下文(minimal / standard / full)
faf_tokens估算各压缩级别的令牌数量
血统
工具功能
faf_dna根据 .faf-dna 展示你的 FAF DNA 旅程:从诞生 DNA 到现在,并包含历史记录。faf_init 负责创建,faf_auto 记录成长——与 faf-cli 使用同一个文件

每个工具都会声明 MCP 注释:faf_read、faf_score、faf_compress、faf_discover、faf_tokens、faf_dna 和 faf_git 均为只读;写入工具不会造成破坏;只有 faf_git 会访问网络。

faf_init 不会覆盖现有文件。Setup 用于记录机械事实;Confirm setup(sweeps)则是实际操作。人类填写的空字段会一直留空,直到运行 faf_go。

架构

src/
├── main.rs      # ~20 lines — tokio entry, rmcp stdio transport
├── server.rs    # FafServer: #[tool_router], ServerHandler, resources
└── tools.rs     # Business logic — tools as pure functions returning Value
  • 运行时:tokio 单线程(current_thread)
  • HTTP:异步 reqwest(仅供 faf_git 调用 GitHub API)
  • SDK:faf-rust-sdk 3.1(Cargo 固定版本——faf-rust 中 faf-kernel/faf-fafb 的外观层;score() 用于始终为 33 的分数,validate() 仅用于结构检查)
  • 服务:rmcp 3.0.1,使用 #[tool_router] / #[tool_handler]——JSON-RPC、根据参数类型生成 JSON Schema、stdio 传输(经 Tier-1 评估的 SDK 版本)

工具返回 serde_json::Value。服务会将其适配为 Result<String, String>,以供 rmcp 的 IntoCallToolResult 使用。

测试

193 项测试(146 项集成测试 + 47 项单元测试):

cargo test    # runs all 193

# 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
文件测试数覆盖范围
mcp_protocol.rs10初始化握手、tools/list、工具注释、资源、架构验证、ID 保留
tools_functional.rs31工具——正常路径、错误路径、语言检测、faf_go
tier1_security.rs12路径遍历、空字节、命令注入、超大输入、格式错误的 JSON
tier2_engine.rs36损坏的 YAML、同步替换、流水线、双清单、旧版文件名、直接路径
tier3_edge_cases.rs10Unicode、CJK、分数边界、未知字段、GitHub URL 解析
tier4_aero.rs22清单结构、版本同步、server.json、上下文块、清单与服务交叉验证
wjttc_setup.rs16Setup / Confirm setup(sweeps)——BRAKE · ENGINE · AERO · TYRE · PIT
wjttc_faf_dna.rs7.faf-dna 血统——faf_init 诞生、faf_auto 成长、faf_dna、faf-cli 的对应行
src 单元测试47setup sweep、技能摘要、agents::、inject::、意图、应用类型、dna:: 血统 + faf-cli 测试夹具

测试会将编译后的二进制作为子进程启动,并通过 stdin/stdout JSON-RPC 通信——这是针对真实服务的集成测试。

FAF 生态系统

一种格式,适用于每个 AI 平台。

软件包平台注册表
rust-faf-mcpRustcrates.io
claude-faf-mcpAnthropicnpm + MCP #2759
gemini-faf-mcpGooglePyPI
grok-faf-mcpxAInpm
faf-cli通用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 (about 5 MB)

版本:2024 | LTO:已启用 | 剥离:符号

如果 rust-faf-mcp 对你有所帮助,不妨为仓库点个星——这能让更多人发现它。

链接

引用

如果你在研究或生产环境中使用 rust-faf-mcp 或 .faf / .fafa 格式,请引用格式论文:

Wolfe, J. (2025). 格式驱动的 AI 上下文架构:用于持久化项目理解的 .faf 标准. Zenodo. https://doi.org/10.5281/zenodo.18251362

Wolfe, J. (2026). Agent 为何需要护照:.fafa——Agent 时代的可移植身份. Zenodo. https://doi.org/10.5281/zenodo.21951641

许可证

MIT


由 @wolfe_jam 构建 | wolfejam.dev

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。