Semgrep MCP 服务器
一个模型上下文协议 (MCP) 服务器,用于使用Semgrep扫描代码以查找安全漏洞。保护你的Vibe 代码安全!😅
模型上下文协议 (MCP)是面向 LLM、代理和 IDE(例如 Cursor、VS Code、Windsurf 或任何支持 MCP 的 IDE)的标准化 API,用于获取专业帮助、获取上下文并充分利用工具的强大功能。Semgrep 是一款快速、确定性的静态分析工具,能够从语义上理解多种语言,并拥有超过5,000 条规则。🛠️
此 Beta 项目正在积极开发中。我们期待您的反馈、错误报告、功能请求和代码。加入
#mcp
社区 Slack频道!
内容
入门
或者,作为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
- CLI(
如有需要,请联系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 团队倾情打造
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
MCP 服务器为 Semgrep 提供全面的接口,使用户能够扫描代码中的安全漏洞、创建自定义规则并通过模型上下文协议分析扫描结果。
Related Resources
Related MCP Servers
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityEnables integration of Semgrep in development environments via the MCP protocol, supporting static code analysis, rule management, and scan result operations.Last updated -1JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server for querying the CVE-Search API. This server provides comprehensive access to CVE-Search, browse vendor and product、get CVE per CVE-ID、get the last updated CVEs.Last updated -615PythonMIT License
- -securityAlicense-qualityA server implementation that exposes grep functionality through the Model Context Protocol, allowing MCP-compatible clients to search for patterns in files using regular expressions.Last updated -1PythonGPL 3.0