By os-tack
Query and refactor Rust codebases using intent-level commands that invoke local Cargo for building, compiling, testing, and analyzing code via subprocesses, enabling seamless local toolchain integration without secrets or remote dependencies.
MCP server for Rust codebases via rust-analyzer.
fcp-rust lets LLMs navigate, inspect, and refactor Rust code through intent-level commands. Instead of reading raw source files, the LLM sends operations like find Config @kind:struct or rename old_name new_name @file:main.rs and fcp-rust routes them through rust-analyzer's LSP for accurate, project-aware results. Built on the FCP framework.
Written in Rust using rmcp for MCP transport and rust-analyzer as the language intelligence backend.
rust_session('open /path/to/my-project')
rust_query('find Config @kind:struct')
rust_query('refs Config @file:main.rs')
rust_query('diagnose')
rust([
'rename old_handler handle_request @file:routes.rs',
'generate Display @struct:Config',
])
rust_query('map')
| Tool | Purpose |
|---|---|
rust(ops) | Batch mutations — rename, extract, inline, generate, import |
rust_query(q) | Inspect the codebase — find, def, refs, symbols, diagnose, map |
rust_session(action) | Lifecycle — open, status, close |
rust_help() | Full reference card |
enrich(path) | Extract diagnostics and symbols from a single .rs file (no session required) |
| Verb | Syntax |
|---|---|
find | find QUERY [kind:KIND] [@selectors...] |
def | def SYMBOL [@selectors...] |
refs | refs SYMBOL [@selectors...] |
symbols | symbols PATH [kind:KIND] |
impl | impl SYMBOL [@selectors...] |
| Verb | Syntax |
|---|---|
diagnose | diagnose [PATH] [@all] |
inspect | inspect SYMBOL [@selectors...] |
callers | callers SYMBOL [@selectors...] |
callees | callees SYMBOL [@selectors...] |
map | map |
unused | unused [@file:PATH] |
| Verb | Syntax |
|---|---|
rename | rename SYMBOL NEW_NAME [@selectors...] |
extract | extract FUNC_NAME @file:PATH @lines:N-M |
inline | inline SYMBOL [@selectors...] |
generate | generate TRAIT @struct:NAME |
import | import SYMBOL @file:PATH @line:N |
| Verb | Syntax |
|---|---|
open | open PATH |
status | status |
close | close |
@file:PATH Filter by file path substring
@struct:NAME Filter by containing struct
@trait:NAME Filter by containing trait
@kind:KIND Filter by symbol kind (function, struct, enum, etc.)
@module:NAME Filter by module name
@line:N Filter by exact line number
@lines:N-M Line range (for extract)
cargo install --git https://github.com/os-tack/fcp-rust
{
"mcpServers": {
"fcp-rust": {
"command": "fcp-rust"
}
}
}
src/main.rs MCP server — 4 tools, stdio transport
│
src/mcp/ MCP integration
├── server.rs RustServer (rmcp tool handlers)
└── params.rs Request/response types
│
src/domain/ Domain layer
├── verbs.rs Verb registration (query + mutation + session)
├── model.rs RustModel (workspace state, LSP client, symbol index)
├── query.rs Query handlers (find, def, refs, diagnose, map, etc.)
├── mutation.rs Mutation handlers (rename, extract, inline, generate)
└── format.rs Output formatting
│
src/resolver/ Symbol resolution
├── selectors.rs @file, @struct, @trait, @kind, @module, @line, @lines
├── index.rs In-memory SymbolIndex
├── pipeline.rs Multi-tier resolution (index → LSP → tree-walk)
└── fuzzy.rs Fuzzy matching
│
src/lsp/ rust-analyzer integration
├── client.rs JSON-RPC client
├── transport.rs stdio transport
├── types.rs LSP type definitions
├── workspace_edit.rs Apply edits to disk
└── lifecycle.rs Server lifecycle management
│
src/fcpcore/ FCP framework (Rust port)
├── tokenizer.rs DSL tokenizer
├── parsed_op.rs Operation parser
├── verb_registry.rs Verb spec registry + reference card
├── event_log.rs Event sourcing (undo/redo)
├── session.rs Session lifecycle
└── formatter.rs Response formatter
cargo test # Run all tests
cargo build # Build binary
cargo clippy # Run lints
MIT
Admin access level
Server config contains admin-level keywords
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub os-tack/fcp --plugin fcp-rustCreate and edit draw.io diagrams through intent-level commands
Create and edit PowerPoint presentations through semantic commands
Build regexes via named fragment composition — no raw syntax, no escaping burden
Query and refactor Python codebases through intent-level commands
Generate Terraform HCL through resource declarations
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.
Create content, plan campaigns, and analyze performance across marketing channels. Maintain brand voice consistency, track competitors, and report on what's working.
Prospect, craft outreach, and build deal strategy faster. Prep for calls, manage your pipeline, and write personalized messaging that moves deals forward.