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。