关于 AGZ Rust MCP
AGZ Rust MCP 是基于 Cargo 和 rustc 输出进行有界 Rust 正确性检查的 stdio MCP 服务。它面向 Rust 开发者,提供验证、源码分析、Rust Analyzer 导航,以及不修改工作区文件的编辑方案。
主要功能
- 01有界 Cargo 检查、测试和文档验证
- 02Rust 源码静态审计
- 03精确版本的 crate 文档查询
- 04Rust Analyzer 导航与符号查询
- 05不应用更改的已验证重命名和重构方案
适用场景
- 01对 Rust 工作区运行有界验证门
- 02查看引用、定义和调用层级
- 03查询指定版本的 crate 文档
- 04准备重命名或重构编辑以供审阅
MCP 相关
通过 MCP 工具、提示词和资源提供 Rust 验证、分析、导航及不写入工作区的变更工作流。它以独立 stdio MCP 服务运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AGZ Rust MCP
English | Türkçe
AGZ Yazılım 产品。 agz-rust-mcp 是一个独立的 stdio MCP 服务,用于基于 Cargo 和 rustc 进行有界 Rust 正确性验证。它运行有界 Cargo 验证、审计源代码、解析精确版本的 crate 文档、提供 Rust Analyzer 导航,并返回不写入文件的重命名/重构方案包。
安装
# installer script (Linux x86_64): download install.sh and SHA256SUMS from the
# latest release, verify the script, then run it
bash install.sh
# crates.io (requires Rust 1.88.0 or newer)
cargo install agz-rust-mcp --locked
agz-rust-mcp --version
提供适用于 Linux x86_64、macOS arm64 和 Windows x86_64 的预编译 .tar.gz 压缩包及 .sha256 文件。0.2.0 及之前的版本使用旧版 agz-rust-coder-* 资源名称;从 0.3.0 起,名称为 agz-rust-mcp-*。
分步说明、各操作系统注意事项、校验和验证及故障排查:docs/install.md · Türkçe。
MCP 客户端配置
当前源代码还捆绑了四个离线技能:agz-rust-workflow、agz-rust-repair、agz-rust-refactor 和 agz-rust-performance。一个可执行文件即可通过 MCP 提示词/资源提供工具及其工作流;无需第二个 MCP。
基于文件系统的客户端可以使用 agz-rust-mcp skills export。
请参阅捆绑技能。
捆绑技能从 0.4.0 起提供;0.3.0 二进制文件不包含这些技能。
| 客户端 | 配置 | 指南 |
|---|---|---|
| ZCode | ~/.zcode/cli/config.json → mcp.servers.rust | ZCode |
| OpenCode | opencode.jsonc → mcp.rust | OpenCode |
| OpenCode2 | opencode.jsonc → mcp.servers.rust | OpenCode2 |
| Codex | ~/.codex/config.toml → mcp_servers.rust | Codex |
请使用适用于你的客户端的示例;OpenCode 和 OpenCode2 的配置布局不同。
它们都会启动已安装的 agz-rust-mcp 二进制文件。连接前运行一次 agz-rust-mcp --version;如果客户端的 PATH 不同,请使用绝对路径。
当前目录是默认授权根目录。如果客户端从其他位置启动,请使用重复的 --allow-root 参数添加明确的根目录;客户端提供的 MCP 根目录可以缩小已配置的访问范围,但不能扩大范围。各客户端的配置方法请参阅 docs/install.md。
文档
请按以下顺序阅读文档:
- 安装和客户端配置 - 所有安装方式及客户端配置。
- 工具和配置参考 - 工具、操作、结果语义及所有配置项。
- 架构 - 进程模型、协议生命周期及权限边界。
- 验证和基准测试协议 - 冒烟测试、门禁及证据。
- 安全策略和贡献指南。
包含完整阅读路径的双语索引见 docs/README.md / docs/README.tr.md。
标识信息
| 项目 | 值 |
|---|---|
| Crate、二进制文件、服务 | agz-rust-mcp |
| MCP Registry | io.github.agzyazilim/rust-mcp |
| 源代码版本 | 0.4.0 |
| 首次发布 | 0.1.0 |
| 发布标签 | agz-rust-mcp-v<version> |
| Rust edition / MSRV | 2024 / 1.88.0 |
| Rust MCP SDK | rmcp 3.1.4 |
| 默认/发现的协议 | 2025-11-25 / 2026-07-28 |
MCP 包所有权标记:mcp-name: io.github.agzyazilim/rust-mcp。
工具
OpenCode2 通常会将 MCP 工具按组公开为 rust_*。
| MCP 工具 | OpenCode2 直接名称 | 默认状态 | 用途 |
|---|---|---|---|
check | rust_check | enabled | 运行受限的 Cargo 检查、Clippy、测试、文档检查或完整检查门禁。 |
profile | rust_profile | enabled | 分析观测到的 Cargo 重建行为,并对比受限的构建证据,不声称未经测量的提速效果。 |
audit | rust_audit | enabled | 扫描 Rust 源码,查找受限范围内的静态问题。 |
crate_lookup | rust_crate_lookup | enabled | 在 crates.io 上验证 crate 及其可选的确切版本。 |
docs | rust_docs | enabled | 从缓存、本地源码或 docs.rs 获取确切版本的文档。 |
context | rust_context | enabled | 准备、扩展或生成差异形式的修订绑定语义上下文胶囊,并说明每项内容的原因。 |
api | rust_api | enabled | 根据受限的分析器证据解析 API 签名,或在工作区配置的隔离副本中对候选代码片段进行类型检查。 |
explain | rust_explain | enabled | 说明宏展开来源、trait 约束或 cfg 启用情况。 |
verify | rust_verify | enabled | 规划或运行受限的 feature、目标、工具链和阶段矩阵。 |
symbol | rust_symbol | enabled | 读取单个符号的 Rust Analyzer 悬停数据。 |
references | rust_references | enabled | 查找受限范围内的引用。 |
definition | rust_definition | enabled | 查找选定的定义。 |
symbols | rust_symbols | enabled | 列出单个 Rust 文件中的符号。 |
implementations | rust_implementations | enabled | 查找实现。 |
hierarchy | rust_hierarchy | enabled | 跟踪受限范围内的调用层次结构。 |
rename | rust_rename | enabled | 生成经过验证的重命名编辑包,但不应用它。 |
refactor | rust_refactor | enabled | 生成经过验证的重构编辑包,但不应用它。 |
change | rust_change | enabled | 在服务端管理的临时目录中创建、暂存、迁移并验证修订绑定的变更集,不写入工作区。 |
repair | rust_repair | enabled | 针对失败的变更修订分析、尝试、比较并精简由编译器驱动的修复候选方案,不写入工作区。 |
work | rust_work | enabled | 通过 change/validate 推进类型化意图,明确指定门禁和预算,并返回真实的门禁证据或受限的单次使用交接。 |
每个工具都会返回确定性的结构化数据,以及等效的受限文本回退内容。
外部数据均保留在 untrustedData 下。编译失败、缺少 crate 或文档不可用等预期领域结果会以类型化结果表示;无效输入、授权失败、资源耗尽以及语义基础设施不可用则属于协议错误。
配置
优先级依次为 CLI、AGZ_RUST_MCP_* 环境变量、显式指定的 --config TOML 文件,最后是默认值。环境变量键在各区段之间使用 __,例如 AGZ_RUST_MCP_GATE__HARD_TIMEOUT_MS=600000。
| 键 | 默认值 | 含义 |
|---|---|---|
server.allow_roots | canonical CWD | 工作区读取/命令边界。 |
server.allow_dependency_roots | 空 | 显式指定的外部路径依赖根目录。 |
gate.hard_timeout_ms | 600000 | Cargo 操作截止时间。 |
gate.scope | shadow | 验证目标:workspace、shadow 或 affected。 |
gate.cache | auto | 缓存策略:auto、project 或 isolated。 |
rust_analyzer.workspace_code | deny | 除非禁用工作区代码,否则拒绝启动 RA。 |
docs.fallback | auto | 文档来源策略。 |
profile.max_report_bytes | 4194304 | 单个 Cargo 计时产物的读取/存储上限。 |
profile.max_runs | 4 | 一次 profile 调用可执行的全新 Cargo 运行次数。 |
profile.compare_samples | 3 | 在提出任何速度结论前,每侧所需的样本数。 |
limits.tool_output_bytes | 49152 | 序列化工具结果的最大大小。 |
change.max_bytes | 268435456 | 每个变更集可捕获的候选内容最大字节数。 |
repair.max_candidates | 4 | 一次 repair 操作可尝试的候选项数。 |
repair.max_compiles | 4 | 一次 repair 操作可运行的 Cargo 验证次数。 |
repair.wall_time_ms | 120000 | 一次 repair 操作的墙钟时间预算。 |
repair.minimize_max_candidates | 32 | 一次 repair(action=minimize) 可尝试的编译评估缩减次数。 |
repair.minimize_max_compiles | 16 | 一次 repair(action=minimize) 可执行的 Cargo 运行次数,包括复现和导出验证。 |
work.max_candidates | 4 | 一个工作项可暂存的主机候选修订数。 |
work.max_compiles | 12 | 一个工作项可运行的门禁验证次数。 |
work.wall_time_ms | 600000 | 一个工作项的墙钟时间预算。 |
telemetry.enabled | true | 记录有界的本地活动信息,不包含提示词或源代码。 |
profile 证据有存储上限:最新的 64 条记录保留在内存中;服务器管理的 profile-evidence 目录下的持久化计时产物会在 24 小时后或文件数超过 64 个时清理。profile 结果会报告此保留策略,因此过期证据会明确显示,而不会被悄然重复使用。
运行 agz-rust-mcp --help 可查看所有 CLI 字段。完整行为说明和默认值表见 docs/tools.md。
安全
该服务不会修改工作区源代码,但它不是操作系统沙箱。Cargo 构建脚本、测试、过程宏、本地 rustdoc,以及已选择启用的 Rust Analyzer 工作区代码,都以服务运行用户的权限执行。如果需要此类隔离,请使用容器或操作系统沙箱。工作区、依赖项、缓存、租约、日志、文档和遥测路径都会经过规范化和范围限制,并采用失败时默认拒绝的策略;标准输出仅用于 MCP 帧传输。请按照 SECURITY.md 中的说明,私下报告漏洞。
链接
- 仓库:https://github.com/agzyazilim/rust-mcp
- Crate:https://crates.io/crates/agz-rust-mcp
- SDK 文档:https://docs.rs/rmcp/3.1.4/rmcp/
- MCP
2025-11-25:https://modelcontextprotocol.io/specification/2025-11-25 - MCP
2026-07-28:https://modelcontextprotocol.io/specification/2026-07-28
许可证
MIT,版权所有 (c) 2026 Ugur Murat Altintas。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。