Skip to main content
Glama

rust-faf-mcp

Хватит пересказывать свой проект каждой сессии ИИ. Один файл .faf фиксирует ДНК вашего проекта. Любой ИИ считывает его один раз и понимает, что вы создаете.

Crates.io Tests IANA License

Нативный Rust-сервер MCP (Model Context Protocol) для FAF — структурированный контекст ИИ-проекта в формате YAML (application/vnd.faf+yaml). Один бинарный файл, транспорт stdio, 4.3 МБ после strip. Построен на базе rmcp и faf-rust-sdk.

Быстрый старт

cargo install rust-faf-mcp

Затем укажите на него любому MCP-клиенту:

# Claude Code
claude mcp add faf rust-faf-mcp
// WARP / Cursor / Zed / Claude Desktop — any stdio MCP client
{
  "mcpServers": {
    "faf": {
      "command": "rust-faf-mcp"
    }
  }
}

Никаких флагов, никаких файлов конфигурации, никаких сетевых слушателей. Чистый stdio JSON-RPC.

Или через Homebrew (macOS, готовая сборка):

brew install Wolfe-Jam/faf/rust-faf-mcp

Одна команда — и готово навсегда

faf_auto обнаруживает ваш проект, создает .faf, улучшает его до максимальной оценки и синхронизирует CLAUDE.md — за один раз:

faf_auto complete
━━━━━━━━━━━━━━━━━
Score: 0% → 85% (+85) 🥈 Silver
Steps:
  1. Created project.faf
  2. Second enhancement pass
  3. Created CLAUDE.md

Path: /home/user/my-project

Что он создает:

# 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 2021
  key_files:
    - Cargo.toml
    - src/main.rs
    - README.md
  commands:
    build: cargo build
    test: cargo test
stack:
  backend: Rust
  build_tool: cargo

Каждый ИИ-агент считывает это один раз и точно знает, что вы строите. Никакого 20-минутного онбординга. Никаких неверных предположений.

Инструменты

Создание и обнаружение

Инструмент

Что он делает

faf_auto

От нуля до ИИ-контекста одной командой — инициализация, улучшение, синхронизация, оценка, готово

faf_init

Создание или улучшение project.faf из Cargo.toml, package.json, pyproject.toml или go.mod

faf_git

Генерация project.faf из любого URL репозитория GitHub — клонирование не требуется

faf_discover

Поиск вверх по дереву каталогов для нахождения ближайшего project.faf

Оценка и проверка

Инструмент

Что он делает

faf_score

Оценка готовности к ИИ (0-100%) с разбивкой по полям

faf_sync

Синхронизация project.fafCLAUDE.md (сохраняет существующее содержимое)

Оптимизация

Инструмент

Что он делает

faf_read

Парсинг и отображение содержимого project.faf

faf_compress

Сжатие .faf для контекстов с ограничением по токенам (minimal / standard / full)

faf_tokens

Оценка количества токенов на каждом уровне сжатия

faf_init работает итеративно — запустите его снова, и он заполнит недостающее. Оценка растет с каждым разом.

Архитектура

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 однопоточный (current_thread)

  • HTTP: reqwest асинхронный (используется только faf_git для GitHub API)

  • SDK: faf-rust-sdk 1.3 для парсинга, проверки, сжатия, обнаружения

  • Server: rmcp 1.1 с макросом #[tool_router] — обрабатывает JSON-RPC, генерацию схем, транспорт

Инструменты возвращают serde_json::Value. Сервер адаптирует их к Result<String, String> для IntoCallToolResult в rmcp.

Тестирование

112 тестов в 6 файлах:

cargo test    # runs all 112

Файл

Тесты

Покрытие

mcp_protocol.rs

9

Инициализация рукопожатия, список инструментов, ресурсы, проверка схемы, сохранение ID

tools_functional.rs

25

Все 9 инструментов — основной сценарий, пути ошибок, определение языка

tier1_security.rs

12

Обход пути, нулевые байты, инъекции оболочки, чрезмерный ввод, поврежденный JSON

tier2_engine.rs

35

Поврежденный YAML, замена при синхронизации, конвейеры, двойные манифесты, устаревшие имена файлов, прямые пути

tier3_edge_cases.rs

10

Unicode, CJK, границы оценок, неизвестные поля, парсинг URL GitHub

tier4_aero.rs

21

Структура манифеста, синхронизация версий, server.json, перекрестная проверка манифест-сервер

Тесты запускают скомпилированный бинарный файл как подпроцесс и общаются через stdin/stdout JSON-RPC — настоящие интеграционные тесты реального сервера.

Экосистема FAF

Один формат, любая ИИ-платформа.

Пакет

Платформа

Реестр

rust-faf-mcp

Rust

crates.io

claude-faf-mcp

Anthropic

npm + MCP #2759

gemini-faf-mcp

Google

PyPI

grok-faf-mcp

xAI

npm

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 (4.3 MB)

Edition: 2021 | LTO: включено | Strip: символы

Если rust-faf-mcp оказался полезен, подумайте о том, чтобы поставить звезду репозиторию — это помогает другим найти его.

Ссылки

Лицензия

MIT


Создано @wolfe_jam | wolfejam.dev

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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