Semgrep MCP 服务器
一个模型上下文协议 (MCP) 服务器,用于使用Semgrep扫描代码以查找安全漏洞。保护你的Vibe 代码安全!😅
模型上下文协议 (MCP)是面向 LLM、代理和 IDE(例如 Cursor、VS Code、Windsurf 或任何支持 MCP 的 IDE)的标准化 API,用于获取专业帮助、获取上下文并充分利用工具的强大功能。Semgrep 是一款快速、确定性的静态分析工具,能够从语义上理解多种语言,并拥有超过5,000 条规则。🛠️
此 Beta 项目正在积极开发中。我们期待您的反馈、错误报告、功能请求和代码。加入
#mcp社区 Slack频道!
内容
Related MCP server: Semgrep MCP Server
入门
或者,作为Docker 容器运行:
光标
示例mcp.json
向您的.cursor/rules添加一条指令以自动使用:
托管服务器
警告:这是一个实验性的服务器,可能会崩溃。一旦 MCP 规范在不久的将来获得对 HTTP 流和 OAuth 的支持,它将获得新功能。🚀
mcp.json
演示
API
工具
使 LLM 能够执行操作、进行确定性计算并与外部服务交互。
扫描代码
security_check:扫描代码以查找安全漏洞semgrep_scan:使用给定的配置字符串扫描代码文件中的安全漏洞semgrep_scan_with_custom_rule:使用自定义 Semgrep 规则扫描代码文件
理解代码
get_abstract_syntax_tree:输出代码的抽象语法树(AST)
元
supported_languages:返回 Semgrep 支持的语言列表semgrep_rule_schema:获取最新的 semgrep 规则 JSON Schema
提示
可重复使用的提示来标准化常见的 LLM 交互。
write_custom_semgrep_rule:返回提示以帮助编写 Semgrep 规则
资源
向法学硕士 (LLM) 公开数据和内容
semgrep://rule/schema:使用 JSON 模式指定 Semgrep 规则 YAML 语法semgrep://rule/{rule_id}/yaml:来自 Semgrep 注册表的 YAML 格式的完整 Semgrep 规则
用法
该 Python 包以semgrep-mcp的形式发布到 PyPI,可以使用pip 、 pipx 、 uv 、 poetry或任何 Python 包管理器进行安装和运行。
标准输入/输出(stdio)
stdio 传输支持通过标准输入和输出流进行通信。这对于本地集成和命令行工具尤其有用。更多详情请参阅规范。
Python
默认情况下,Python 包将以stdio模式运行。由于它使用标准输入和输出流,因此该工具看起来就像挂起一样,没有任何输出,但这是正常现象。
Docker
该服务器已发布到 Github 的容器注册表( ghcr.io/semgrep/mcp )
默认情况下,Docker 容器处于SSE模式,因此您必须在镜像名称后包含-t stdio并使用-i运行才能在交互模式下运行。
服务器发送事件 (SSE)
SSE 传输支持服务器到客户端的流式传输,通过 HTTP POST 请求实现客户端到服务器的通信。更多详情请参阅规范。
默认情况下,服务器在0.0.0.0:8000/sse上监听客户端连接。如需更改此设置,请设置FASTMCP_*环境变量。服务器必须处于运行状态,客户端才能连接到它。
Python
默认情况下,Python 包将在stdio模式下运行,因此您必须包含-t sse 。
Docker
Semgrep 应用安全平台
或者,要连接到 Semgrep AppSec 平台:
登录或注册
从“设置”生成令牌
将令牌添加到您的环境变量中:
CLI(
export SEMGREP_APP_TOKEN=<token>)Docker(
docker run -e SEMGREP_APP_TOKEN=<token>)MCP 配置 JSON
如有需要,请联系support@semgrep.com。☎️
集成
游标 IDE
将以下 JSON 块添加到您的~/.cursor/mcp.json全局配置文件或.cursor/mcp.json项目特定配置文件中:

请参阅光标文档以了解更多信息。
VS Code/Copilot
单击此自述文件顶部的安装按钮,即可实现最快安装。
手动配置
将以下 JSON 块添加到 VS Code 中的“用户设置 (JSON)”文件中。您可以按下Ctrl + Shift + P并输入Preferences: Open User Settings (JSON)来执行此操作。
或者,您可以将其添加到工作区中名为.vscode/mcp.json的文件中:
使用 Docker
有关详细信息,请参阅VS Code 文档。
风帆冲浪
将以下 JSON 块添加到您的~/.codeium/windsurf/mcp_config.json文件:
请参阅Windsurf 文档以了解更多信息。
克劳德桌面
以下是一个简短的视频,展示了 Claude Desktop 使用该服务器编写自定义规则。
将以下 JSON 块添加到您的claude_desktop_config.json文件:
请参阅Anthropic 文档以了解更多信息。
OpenAI
有关更多信息,请参阅OpenAI Agents SDK 文档。
自定义客户端
Python SSE 客户端示例
请参阅examples/sse_client.py中的完整示例
一些客户端库需要
URL: http://localhost:8000/sse ,而其他客户端库只需要HOST:localhost:8000。请在 Web 浏览器中尝试该URL,确认服务器正在运行,并且没有网络问题。
请参阅官方 SDK 文档以了解更多信息。
贡献、社区和从源代码运行
我们期待您的反馈、错误报告、功能请求和代码。加入
#mcp社区 Slack频道!
有关如何从源代码运行 MCP 服务器的更多信息和详细信息,请参阅CONTRIBUTING.md 。
类似工具🔍
semgrep-vscode - 官方 VS Code 扩展
semgrep-intellij - IntelliJ 插件
社区项目🌟
semgrep-rules - Semgrep 规则的官方集合
mcp-server-semgrep - 由Szowesgad和stefanskiasan编写的原始灵感
MCP 服务器注册表
由Semgrep 团队倾情打造