关于 Ast Metrics
AST Metrics 是面向开发者和编码 Agent 的静态代码分析工具,可在本地评估复杂度、架构耦合、风险和测试质量,并比较 Pull Request 中新增或恶化的问题。它可离线运行,并提供 MCP 服务供 Agent 按需查询代码结构指标。
主要功能
- 01分析复杂度、可维护性与代码量
- 02评估耦合、架构和社区结构
- 03检查提交历史与 bus factor
- 04按阈值执行架构与代码 lint
- 05生成多种报告格式
适用场景
- 01在 Pull Request 中仅检查新增或恶化的问题
- 02在 CI 中按规则阻止违规变更
- 03定位高风险文件与重构热点
- 04让编码 Agent 查询依赖和耦合影响
MCP 相关
以 MCP 服务形式提供代码复杂度、耦合、依赖和风险信息,供 AI 编码 Agent 按需查询。可通过 `ast-metrics mcp .` 启动。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
无需服务器。无需账户。一个二进制文件。
代码的编写速度已经超过了审查速度。AST Metrics 会度量你的代码库
(复杂度、架构、耦合、巴士因子、测试质量),并在每个拉取请求中
只标记出变差的部分。
确定性:相同的代码,相同的结论。可离线运行:没有任何数据离开你的机器。
快速:在笔记本电脑上,每秒可分析 20,000+ 行代码。
Go · PHP · Python · Rust · Java · C# · TypeScript
AST Metrics 正在分析自身。在线查看这份报告,或者对任意公开仓库试用,无需安装任何东西。
快速开始
使用 Homebrew 安装(macOS、Linux):
brew install ast-metrics/tap/ast-metrics
或使用安装脚本(适用于任何平台,会在当前目录下载一个 ./ast-metrics 二进制文件):
curl -fsSL https://install.ast-metrics.dev | sh
然后分析你的项目:
ast-metrics analyze /path/to/your/code
你会直接在终端中看到一份摘要:可维护性、预估的缺陷概率、耦合,以及最值得优先重构的热点。想要完整报告时,加上 --report-html=<dir>;或者用 --tui 在全屏仪表盘中浏览结果。除非你主动要求,否则不会向磁盘写入任何内容。
Docker 镜像、npm、pip、Composer、
.deb/.rpm包以及手动下载:请参阅安装说明。
审查拉取请求,远离噪音
ast-metrics review
它会将你的分支与其基础分支进行比较,只报告新增或恶化的发现:新增的过于复杂的函数、耦合度回归、失去可维护性的类。遗留代码保持沉默。与 AI 代码审查工具不同,它是确定性的且免费:相同的代码,相同的判定,没有按席位定价。当你希望它阻止合并时,添加 --fail-on=high。
➡️ 审查你的更改
你将获得
| PR 审查 | ast-metrics review 只标记相对于基础分支恶化的部分 |
| 架构分析 | 耦合、不稳定性、社区检测:及早发现设计漂移 |
| 代码指标 | 圈复杂度、可维护性指数、代码行数 |
| 活动指标 | 提交历史和巴士因子:了解谁负责什么 |
| 代码检查器 | 对复杂度、耦合、体积和架构强制执行阈值 |
| CI/CD 就绪 | GitHub Actions、GitLab CI、任何流水线;违规时以非零状态退出 |
| 报告格式 | HTML 仪表板、JSON、Markdown、SARIF、OpenMetrics |
| MCP 服务 | 赋予 AI 编码 Agent 架构感知能力 |
检查你的架构
ast-metrics init # create a .ast-metrics.yaml config file
ast-metrics ruleset add architecture # pick rulesets (volume, complexity...)
ast-metrics lint
阈值位于你的 YAML 配置中:最大复杂度、耦合限制、组件之间禁止的依赖、每个方法的大小限制……遗留代码库有数百个违规?运行一次 ast-metrics baseline:它会快照当前的违规,lint 只对新增的违规失败。
➡️ 规则集、阈值和基线
在 CI 中运行
ast-metrics ci 运行代码检查器,生成所有报告(HTML、JSON、Markdown、SARIF、OpenMetrics),并在发现违规时以非零状态退出。在 GitHub 上,一个步骤就足够了:
- uses: ast-metrics/action-ast-metrics@v2
在每个拉取请求上,该 action 运行 ast-metrics review,并只评论新增或恶化的发现。
➡️ CI/CD 指南:GitHub Actions、GitLab CI
赋予你的 AI Agent 架构感知能力
AI 编码 Agent 线性地阅读代码。作为 MCP 服务 运行时,AST Metrics 为 Claude Code、Cursor 或 Copilot 提供对复杂度、耦合、依赖和风险的按需访问,因此你可以问类似*“哪些文件重构风险最高?”或“如果我更改 UserService 类,会破坏什么?”*的问题。
ast-metrics mcp .
➡️ MCP 服务设置和工具
支持的语言
Go、PHP、Python、Rust、Java、C# 和 TypeScript。
贡献
欢迎讨论、错误报告和拉取请求:从这里开始。AST Metrics 是开源软件,基于 MIT 许可证授权。
支持项目
AST Metrics 是在空闲时间构建和维护的。如果它为你节省了一些时间:
- ⭐ 为仓库加星。它不花费任何东西,而且这是大多数开发者发现该工具的方式。
- ❤️ 成为赞助者。赞助直接资助维护时间以及新增语言和指标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
