CodeInspectus:给 AI 写出的 Web App 做本地安全预检
AI coding agent 现在很擅长把一个想法快速做成能跑的 Web app,但安全问题往往不会用同样的速度暴露出来。客户端 bundle 里漏出的 secret、Supabase RLS 配错、把模型输出直接塞进 dangerouslySetInnerHTML、API 把内部错误细节返回给前端,这些东西在 demo 阶段不一定会炸,却很容易被带进真实部署。
今天推荐的 Synvoya/codeinspectus 正在处理这个缝隙。它是一个本地优先、隐私友好的 MCP security scanner,面向 AI 生成或 AI 大量参与生成的应用。核心工作流很直接:agent 调用扫描,工具报告问题,agent 解释和提出修复,用户批准后改代码,再 rescan 验证。它不直接改源码,也不在扫描时把代码传到云端。
按 GitHub repository API、repository page、README、Tags、Releases、LICENSE、package.json、公开 git history 和 changelog 在 2026-07-26 能核验的信息,Synvoya/codeinspectus 当前有 22 stars、6 forks。GitHub API 和项目元数据都指向主要语言 TypeScript,许可证为 MIT。GitHub API 显示仓库创建时间是 2026-07-01 13:24:45 UTC,最新 push 是 2026-07-26 10:03:39 UTC。公开 git history 的首个提交是 b69ce1a,提交时间 2026-06-25 12:33:53 UTC,提交信息为 CodeInspectus: local-first security MCP server for AI-generated code。当前默认分支 master 的最新提交是 69bdbf6,提交时间 2026-07-26 10:00:50 UTC,提交信息为 release: v0.4.1。GitHub Releases API 顶部仍是 v0.3.2,发布时间 2026-07-19 11:51:38 UTC;但 Git tags、package.json 和 changelog 已显示 v0.4.1,tag 时间为 2026-07-26 10:03:37 UTC。package.json 显示 npm 包名为 codeinspectus,版本 0.4.1,Node.js 要求 18+。
项目概览
| 属性 | 详情 |
|---|---|
| 仓库 | Synvoya/codeinspectus |
| 定位 | 面向 AI 生成应用的本地 MCP 安全扫描器 |
| Stars | 22 |
| Forks | 6 |
| 主要语言 | TypeScript |
| 许可证 | MIT |
| GitHub 创建时间 | 2026-07-01 13:24:45 UTC |
| 首个公开提交 | b69ce1a,2026-06-25 12:33:53 UTC |
| 当前默认分支提交 | 69bdbf6,2026-07-26 10:00:50 UTC |
| 最新 GitHub Release | v0.3.2,2026-07-19 11:51:38 UTC |
| 最新 tag / npm 元数据 | v0.4.1,2026-07-26 10:03:37 UTC |
| npm 包 | codeinspectus 0.4.1 |
| Node 要求 | 18+ |
| 关键词 | MCP、local-first、SAST、secrets、SCA、SBOM、OWASP、Supabase、Trivy、Gitleaks、Opengrep |
它把几类扫描放进同一个 agent 工具
CodeInspectus 不是从零写一个大而全的 SAST。README 里写得比较清楚:它把 Opengrep、Gitleaks、Trivy 这三类成熟开源引擎编排在一起,再加上自己针对 AI 生成代码的规则。Opengrep 负责 SAST/OWASP Top 10 这类源码模式,Gitleaks 找 secret,Trivy 处理依赖 CVE、IaC misconfig、license 和 SBOM。CodeInspectus 自己补的是更贴近 “AI 写 Web app” 的检查。
这部分补规则才是项目的角度。README 提到的 AI-code checks 包括客户端 secret/bundle 暴露、Supabase RLS 或 inverted-auth 问题、prompt-injection sinks、用客户端可写的 user_metadata 做授权、把模型或用户输出未经清理渲染到 dangerouslySetInnerHTML,以及 API 边界泄漏、原始 request 直接写数据库、敏感日志、安全 header/CSP/session cookie/Supabase CAPTCHA 配置等。
如果你让 agent 写一个 Next.js + Supabase 的内部工具,这些坑很现实。功能看起来能用,代码 review 时也未必有人逐行追前后端边界。CodeInspectus 的意义,是把这类检查包装成 agent 可以主动调用的本地工具,而不是等 CI、渗透测试或线上告警才发现。
工作流是 scan -> explain -> approve -> rescan
它的 MCP 设计很强调边界。README 说 CodeInspectus 只读源码并报告 findings,不编辑、不删除源码;agent 负责解释和提出修复,用户批准后才改。每次 scan 也会报告 git safety 状态,如果仓库没有 git 或存在未提交修改,会建议先做 checkpoint。
接入方式也很普通。MCP server 可以这样注册:
{
"mcpServers": {
"codeinspectus": {
"command": "npx",
"args": ["-y", "codeinspectus"]
}
}
}
对 Codex CLI,README 给出的命令是:
codex mcp add codeinspectus -- npx -y codeinspectus
项目还提醒 Codex 用户把 MCP tool timeout 设到 600 秒,因为它可能并行跑多个安全引擎,大仓库的 60 秒默认值不一定够。这个细节有点朴素,但说明作者真的在按 agent 客户端的行为调集成,而不是只写一个泛泛的 MCP demo。
本地优先,但不是“永不联网”
CodeInspectus 的隐私表述比较精确:扫描时 zero network egress。也就是说,真正读代码和产出 findings 的阶段不上传代码,没有账号,也没有 telemetry。它会把引擎数据和扫描历史存在 ~/.codeinspectus,可选 SBOM 默认写到受控目录。
但安装和修复引擎时仍然需要联网。v0.4.1 changelog 里新增的 repair-engines 就围绕这个问题展开:只下载缺失或不健康的 engine artifacts,用 shipped pins 校验,原子替换二进制,必要时刷新 Trivy DB,并用本机锁避免并发 repair。README 也强调没有 npm postinstall 的静默下载,agent 应先解释覆盖状态并拿到许可再做网络修复。
这比笼统喊 “local-first” 更可信。安全工具最怕自己变成新的供应链风险,CodeInspectus 至少把 “什么时候联网、下载什么、怎么验证、扫描时是否出站” 拆成了可以检查的行为。
v0.4.x 的维护信号
这次核验时有一个值得记录的细节:GitHub Releases API 还停在 v0.3.2,但 tags、package.json、changelog 和默认分支提交已经到 v0.4.1。对用户来说,这意味着安装包和源码元数据比 GitHub Release 页面更新,查版本时要看清来源。
从 changelog 看,v0.4.0 和 v0.4.1 不是小修文档。v0.4.0 加了 API 边界检测、credentialed arbitrary-origin CORS、运行时控制证据,以及更多安全 header、CSP、cookie、Supabase CAPTCHA 配置检查。v0.4.1 则把重点放在离线 engine health、增量 repair、immutable lockfile enforcement 和中断 repair 后的原子恢复。
这类变化说明项目正在从 “能扫出问题” 走向 “扫描结果可解释、可复查、不会轻易制造误导”。尤其是 rescan 语义和 engine provenance,对于 agent 自动修复很重要。没有这个层,agent 很容易把 “这次没看到” 误说成 “已经修好”。
适合哪些场景
第一类是 AI 快速生成的 Web app。特别是 Next.js、React、Supabase、serverless API、MCP tool 或 agent integration 拼在一起的项目。它们常见问题不是语法错,而是边界错:谁能读数据、secret 会不会进 bundle、模型输出是否被当 HTML、错误响应有没有泄漏内部结构。
第二类是想把安全检查前移到 agent 会话里的团队。传统 SAST 常在 CI 里跑,反馈到开发者时已经离代码变更有一段距离。MCP 形式让 agent 在改代码前后都能扫描,把 findings 和 diff 放在同一个上下文里讨论,修复后再验证。
第三类是对代码外传敏感的小团队。CodeInspectus 不是完整的企业安全平台,但它可以作为本地预检层:先在机器上把明显的 secret、依赖漏洞、AI 生成代码特有的边界问题扫一遍,再决定是否进入更重的审计流程。
需要注意的地方
第一,项目很新。GitHub 仓库创建于 2026-07-01,star 数只有 22,公开提交历史也很短。它值得观察和试用,但不应替代正式安全 review。
第二,AI-code checks 目前主要面向 JavaScript / TypeScript。README 明确说更深的 AI-code 检查覆盖 .js/.ts/.jsx/.tsx/.mjs/.cjs,客户端 secret 检查还会看 .vue/.svelte/.astro/.html。其他语言可以从 secrets、依赖、IaC 等通用引擎受益,但项目的特色规则还没有同等覆盖。
第三,compliance 映射不能当审计结论。README 反复强调它只报告 code-visible controls,不给认证结论,也不说你通过了某个框架。这个诚实是优点,但使用时也要接受它的边界。
第四,安装/repair 引擎需要信任下载和校验流程。项目已经做了 SHA pin、cosign/checksum、原子替换和锁,但安全工具自身仍然是供应链的一部分。团队接入前应该固定版本、看 lockfile、在隔离环境里跑一轮。
总结
Synvoya/codeinspectus 有意思的地方,是它把 AI 编码里的一个实际问题说得很具体:agent 生成的应用不只是可能有 bug,也可能把安全边界写错,而且这些错误经常在功能测试里看不出来。
如果你已经在用 Claude Code、Cursor、Codex 或其他 MCP 客户端写 Web app,CodeInspectus 值得放进本地预检工具箱。它还很年轻,release 元数据也有一点不同步,但方向清楚:让 agent 在交付代码之前,先用本地安全扫描把最常见、最尴尬、也最容易被忽略的问题翻出来。