Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/nwiizo/tfmcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/nwiizo/tfmcp/001_rust)<a href="https://agentmods.dev/rules/nwiizo/tfmcp/001_rust"><img src="https://agentmods.dev/badge/rules/nwiizo/tfmcp/001_rust/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/nwiizo/tfmcp/001_rust"><img src="https://agentmods.dev/badge/rules/nwiizo/tfmcp/001_rust.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00477 | $0.00477 |
| Opus 5.5 | $0.00191 | $0.00191 |
| Sonnet 5.5 | $0.00095 | $0.00095 |
| Haiku 4.5 | $0.00048 | $0.00048 |
Grade A, and why
001_rust scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 64 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Rust Coding Style Guide
Code Style
- Follow the Rust style guide as enforced by
rustfmtandcargo fmt. - Use 4 spaces for indentation, not tabs.
- Maximum line length is 100 characters.
- Always run
cargo fmtbefore committing code.
Error Handling
- Use
ResultandOptiontypes appropriately. - Propagate errors with the
?operator where appropriate. - Create custom error types in modules with complex error handling.
- Use
thiserrorfor defining error types. - Use
anyhowfor error propagation in application code.
Documentation
- Document all public functions, methods, and types with rustdoc comments.
- Include examples in documentation when useful.
- Document complex or non-obvious code sections.
Best Practices
- Prefer immutable variables (
letinstead oflet mut) when possible. - Use strong typing rather than type aliases for clarity.
- Leverage Rust's ownership system properly.
- Avoid
unsafecode unless absolutely necessary. - Use
clippyto catch common mistakes.
Rust Architecture Guidelines
Project Structure
- Follow the modular structure in
src/:core/: Core tfmcp functionality and abstractionsmcp/: Model Context Protocol implementationterraform/: Terraform integration servicesconfig/: Configuration handlingshared/: Shared utilities
Module Organization
- Each module should have a clear, single responsibility.
- Public APIs should be exposed through the module's
mod.rsorlib.rs. - Keep implementation details private whenever possible.
- Use feature flags for optional functionality.
Dependencies
- Be conservative with external dependencies.
- Evaluate new dependencies carefully:
- Is it actively maintained?
- Is it widely used/trusted?
- Would it be better to implement the functionality ourselves?
- Pin dependency versions in Cargo.toml for reproducible builds.
Asynchronous Programming
- Use
async/awaitfor asynchronous code. - Use
tokiofor async runtime. - Be careful with blocking operations in async contexts.
- Consider using channels for communication between components.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 64 lines · 477 tokens per session scan A a3d9c2240c73
001_rust is a cursor rule published in the GitHub repository nwiizo/tfmcp (372 stars, last pushed 4d ago), licensed MIT. It adds 477 tokens to every session, about $0.0019 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
rust-architect
PoolAI — Rust Architect workflow: runtime stack, MSYS2, target/ disk, pre-push checks, docs sync.
arc-deref-pattern
When implementing parallel (Mt) algorithms in Verus, do NOT assume.
wrap-vs-specify
When to use externaltypespecification vs wrapper struct for Verus specs.
core
Core STT/TTS abstraction layer documentation.
assume-false-diverge
The pattern assume(false); diverge() in a JoinHandle::join() error arm is a valid and unavoidable Verus idiom, not a proof hole to fix.
spec-fn-naming
Spec function naming conventions.