安全#安全扫描

Semgrep MCP:让编程智能体写完代码先过一遍安全扫描

Semgrep 内置的 MCP 服务器:智能体可调用 Semgrep 扫描代码、用自定义规则查漏洞、查依赖风险和 AST,命令是 semgrep mcp。

项目与安装文档

查看项目

https://github.com/semgrep/semgrep

编程智能体写代码很快,但 SQL 拼接、硬编码密钥、不安全的反序列化这类问题,它不一定会自己发现。Semgrep MCP 让智能体直接调用 Semgrep 这个确定性的静态分析工具:生成或修改代码后跑一遍扫描,拿到具体的规则命中和行号再去修。服务器已经并入 Semgrep 主仓库,装好 Semgrep CLI 后用 semgrep mcp 子命令启动,原来独立的 semgrep/mcp 仓库已归档。Semgrep 主仓库截至 2026-10-06 约 1.7 万 star。

能做什么

  • 扫描代码:semgrep_scan 用 Semgrep 规则扫描代码文件,规则库超过 1 万条,覆盖多种语言。
  • 自定义规则:semgrep_scan_with_custom_rule 用你写的规则扫描;内置提示词 write_custom_semgrep_rule 帮模型写出准确的规则,semgrep_rule_schema 提供规则格式说明。
  • 依赖风险:semgrep_scan_supply_chain 检查依赖里的供应链问题。
  • 语法树:get_abstract_syntax_tree 返回代码的 AST,方便模型理解结构、调试规则。
  • 平台结果:配置 SEMGREP_APP_TOKEN 后,semgrep_findings 可以读取 Semgrep AppSec Platform 上的已有发现。

适合谁

  • 希望 Claude Code 或 Cursor 每次改完代码都先过安全扫描再交付的开发者。
  • 在用 Semgrep 做应用安全、想把同一套规则延伸到 AI 生成代码上的安全团队。

接入方式

先安装 Semgrep CLI,然后以 stdio 模式启动 MCP 服务器:

brew install semgrep
semgrep mcp

Claude Code 和 Cursor 也可以从插件市场安装 Semgrep 插件(Semgrep Guardian),装好后运行 /setup-semgrep-plugin 完成配置。Docker 用户可以用 docker run -i --rm semgrep/semgrep semgrep mcp -t stdio。

编辑点评

代码扫描类 MCP 里,Semgrep 的优势是确定性:同样的代码、同样的规则,结果一致,不像让模型自己审代码那样时好时坏。插件版 Semgrep Guardian 把 MCP、Hooks 和 Skills 打包在一起,会扫描智能体生成的文件,发现问题就提示它重写,直到扫描通过或你选择忽略。需要知道的是:README 标注项目仍在活跃开发;读取平台发现等功能需要注册 Semgrep 账号并配置令牌;社区版规则的覆盖面不如付费的 Semgrep Code、Supply Chain 和 Secrets。MCP 代码位于 Semgrep CLI 中,许可证为 LGPL-2.1。