MITBenAHammond/code-auditor-mcp

Code Auditor

你的代码库有你的 AI 智能体不知道的规则。安装一个技能——它会在智能体每次编辑时强制执行这些规则。

两条命令,随处安装:

npm install -g code-auditor-mcp
code-audit install --agent all

支持 Claude Code、Cursor、Codex、Gemini CLI 以及任何 SKILL.md 智能体。在 Claude Code 和 Codex 上有阻断式钩子;在其他地方通过 MCP 报告。 code-audit install --list 显示支持矩阵。

工作原理

审计整个代码库来清理你的代码,并让你的智能体在每次编辑时保持它干净。无论哪种方式,分析都是确定性的。

清理你的代码

code-audit audit

对任何 TypeScript、JavaScript、Go 或 CSS/SCSS 项目运行它,获得一份完整、结构化的报告,列出所有问题。修复真正的问题,将其余的设为基线,从一张白纸重新开始。

  1. 确定性,而非模型驱动

    tree-sitter 和 ast-grep 负责分析——每次运行结果都完全一致,无论使用任何模型,或完全不使用模型。

  2. 一份可执行的报告

    HTML · JSON · CSV · SARIF 2.1.0

    每个发现都包含文件、行号、严重级别、规则 ID 和一条消息。将已知问题设为基线作为技术债,只有新问题才会凸显出来。

保持代码干净

code-audit changed --fail-on critical

安装后,你的智能体只审计它刚刚改动的文件。严重违规在进入仓库之前就被捕获并修复——无需重新读取整个代码库,因此模型成本保持低廉。

  1. 安装技能

    code-audit install --agent claude

    将一个 SKILL.md 以及一个 PostToolUse 钩子放入你的智能体——支持 Claude Code 和 Codex。

  2. 它审计改动

    code-audit changed --fail-on critical

    只审计发生变化的文件,而不是整个项目。钩子在每次 Write 和 Edit 之后触发。

  3. 严重违规会阻止编辑

    no-lodash · critical · src/utils/format.ts:3

    智能体读取规则 ID、严重级别、文件、行号和消息——修复它——只有通过的代码才会进入你的仓库。

TypeScript、JavaScript、Go 和 CSS/SCSS——使用 tree-sitter 和 ast-grep 语法进行解析。

它能发现什么

十三个分析器,覆盖 TypeScript、JavaScript、Go 和 CSS/SCSS——发现你的智能体引入、而你的审查漏掉的那些 bug。

SQL 注入

`SELECT * FROM users WHERE id = ${id}`

字符串拼接的查询。数据访问分析器会在这些问题进入审查之前就标记出注入、租户泄漏和 N+1。

跨租户泄漏

SELECT * FROM orders // no org filter

一个多租户查询缺少 WHERE org_id = ?。一个客户的数据,出现在另一个客户的屏幕上。

禁用导入

import _ from "lodash"

你禁用了 lodash。智能体还是导入了它。它在编辑时就发现,而不是在 PR 里。

循环依赖

a.ts → b.ts → a.ts

破坏 tree-shaking,导入时未定义,在发布之前就被捕获。

完整目录——十三个分析器

SOLID 原则

五大原则,机械式强制执行。

DRY 违规

复制粘贴,在变成技术债之前被捕获。

数据访问与安全

SQL 注入、租户泄漏、N+1。

文档质量

没有文档的导出就是未来的 bug。

React 最佳实践

那些能逃过审查的错误。

Schema 感知

引用了不存在的列的查询。

不变量规则

你团队的规则,作为硬性不变量强制执行。

Schema 定义

当 schema 和代码不一致时。

API 契约

端点、字段、鉴权是否符合契约。

依赖图

循环、耦合、枢纽、孤儿。

样式

令牌漂移、z-index 泛滥。

约定

挖掘你代码的约定,标记偏离。

跨域

只有跨越边界才能看到的东西。

逐改动、每次编辑

你的智能体在它刚刚改动的文件上运行 code-audit changed ,而不是整个项目。每个分析器返回结构化的违规——文件、行号、严重级别、规则 ID,以及智能体可以读取并修复的消息。

JSON 输出
SARIF 2.1.0 输出
CSV 输出
HTML 输出