返回市场
MCP服务器

MCP服务器

作者:semgrep613 星标更新:2025-10-29

项目介绍

⚠️ Semgrep MCP 服务器已从独立仓库迁移到了 主要的 semgrep 仓库! ⚠️

此仓库已被弃用,Semgrep MCP 服务器的进一步更新将通过官方的 semgrep 二进制文件进行。

<p align="center"> <a href="https://semgrep.dev"> <picture> <source media="(prefers-color-scheme: light)" srcset="images/semgrep-logo-light.svg"> <source media="(prefers-color-scheme: dark)" srcset="images/semgrep-logo-dark.svg"> <img src="https://raw.githubusercontent.com/semgrep/mcp/main/images/semgrep-logo-light.svg" height="60" alt="Semgrep logo"/> </picture> </a> </p> <p align="center"> <a href="https://semgrep.dev/docs/"> <img src="https://img.shields.io/badge/Semgrep-docs-2acfa6?style=flat-square" alt="文档" /> </a> <a href="https://go.semgrep.dev/slack"> <img src="https://img.shields.io/badge/Slack-4.5k%20-4A154B?style=flat-square&logo=slack&logoColor=white" alt="加入 Semgrep 社区 Slack" /> </a> <a href="https://www.linkedin.com/company/semgrep/"> <img src="https://img.shields.io/badge/LinkedIn-follow-0a66c2?style=flat-square" alt="在 LinkedIn 上关注我们" /> </a> <a href="https://x.com/intent/follow?screen_name=semgrep"> <img src="https://img.shields.io/badge/semgrep-000000?style=flat-square&logo=x&logoColor=white?style=flat-square" alt="在 X 上关注 @semgrep" /> </a> </p>

Semgrep MCP 服务器

添加 Semgrep MCP 服务器到 LM Studio 在 Cursor 中安装 在 VS Code UV 中安装 在 VS Code Docker 中安装 在 VS Code semgrep.ai 中安装 PyPI Docker 在 VS Code Insiders 中安装 在 VS Code Insiders 中安装

一个用于使用 Semgrep 扫描代码中的安全漏洞的 Model Context Protocol (MCP) 服务器。保护您的 vibe 编码! 😅

Model Context Protocol (MCP) 是一种标准化的 API,适用于像 Cursor、VS Code、Windsurf 或任何支持 MCP 的工具,以获取专业帮助、上下文信息并利用工具的力量。Semgrep 是一个快速、确定性的静态分析工具,能够语义理解多种 语言,并且自带超过 5,000 条规则。🛠️

[!NOTE] 这是一个正在进行积极开发的测试项目。我们非常希望收到您的反馈、错误报告、功能请求和代码。加入 #mcp 社区 Slack 频道

内容

开始使用

运行 Python 包 作为 CLI 命令,使用 uv

uvx semgrep-mcp # 使用 --help 查看更多选项

或者,作为 Docker 容器 运行:

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

Cursor

示例 mcp.json

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"],
      "env": {
        "SEMGREP_APP_TOKEN": "<token>"
      }
    }
  }
}

在您的 .cursor/rules 中添加指令以自动使用:

始终扫描使用 Semgrep 生成的代码的安全漏洞

ChatGPT

  1. 转到 连接器设置 页面(直接链接
  2. 将连接命名为 Semgrep
  3. 设置 MCP 服务器 URLhttps://mcp.semgrep.ai/sse
  4. 设置 身份验证无身份验证
  5. 勾选 我信任此应用程序 复选框
  6. 点击 创建

更多信息请参阅 官方文档

托管服务器

[!WARNING] mcp.semgrep.ai 是一个实验性服务器,可能会意外中断。它将迅速获得新功能。🚀

Cursor

  1. Cmd + Shift + J 打开 Cursor 设置
  2. 选择 MCP 工具
  3. 点击 新建 MCP 服务器
{
  "mcpServers": {
    "semgrep": {
      "type": "streamable-http",
      "url": "https://mcp.semgrep.ai/mcp"
    }
  }
}

演示

<a href="https://www.loom.com/share/8535d72e4cfc4e1eb1e03ea223a702df"> <img style="max-width:300px;" src="https://gips0.baidu.com/it/u=2897004777,3244828507&fm=3081&app=3081&f=GIF?w=389&h=360"> </a>

API

工具

启用 LLM 执行操作、进行确定性计算并与外部服务交互。

扫描代码

  • security_check: 扫描代码的安全漏洞
  • semgrep_scan: 使用给定的配置字符串扫描代码文件的安全漏洞
  • semgrep_scan_with_custom_rule: 使用自定义 Semgrep 规则扫描代码文件

理解代码

  • get_abstract_syntax_tree: 输出代码的抽象语法树(AST)

云平台(需要登录和 Semgrep 令牌)

  • semgrep_findings: 从 Semgrep AppSec 平台 API 获取 Semgrep 发现

元数据

  • supported_languages: 返回 Semgrep 支持的语言列表
  • semgrep_rule_schema: 获取最新的 Semgrep 规则 JSON Schema

提示

可重复使用的提示,以标准化常见的 LLM 交互。

  • write_custom_semgrep_rule: 返回一个提示,帮助编写 Semgrep 规则

资源

向 LLM 暴露数据和内容

  • semgrep://rule/schema: 使用 JSON Schema 规范 Semgrep 规则 YAML 语法
  • semgrep://rule/{rule_id}/yaml: 从 Semgrep 注册表中获取完整的 Semgrep 规则 YAML 格式

使用

这个 Python 包发布到了 PyPI,名为 semgrep-mcp,可以使用 pippipxuvpoetry 或任何 Python 包管理器进行安装和运行。

$ pipx install semgrep-mcp
$ semgrep-mcp --help

用法:semgrep-mcp [选项]

  MCP 服务器的入口点

  支持 stdio 和 sse 传输协议。对于 stdio,它将从标准输入读取并写入标准输出。对于 sse,它将在端口 8000 启动一个 HTTP 服务器。

选项:
  -v, --version                显示版本并退出。
  -t, --transport [stdio|sse]  使用的传输协议(stdio 或 sse)
  -h, --help                   显示此消息并退出。

标准输入/输出(stdio)

stdio 传输允许通过标准输入和输出流进行通信。这对于本地集成和命令行工具特别有用。更多信息请参阅 规范

Python

semgrep-mcp

默认情况下,Python 包将以 stdio 模式运行。因为它使用的是标准输入和输出流,所以看起来像是工具挂起而没有输出,但这是预期的行为。

Docker

此服务器已发布到 GitHub 的容器注册表 (ghcr.io/semgrep/mcp)

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

默认情况下,Docker 容器处于 SSE 模式,因此您需要在镜像名称后包含 -t stdio 并使用 -i交互模式 运行。

可流式传输的 HTTP

可流式传输的 HTTP 允许通过 HTTP POST 请求进行 JSON RPC 流式传输响应。更多信息请参阅 规范

默认情况下,服务器监听 127.0.0.1:8000/mcp 以接受客户端连接。要更改这些设置,请设置 FASTMCP_* 环境变量。客户端必须在服务器运行时才能连接到它。

Python

semgrep-mcp -t streamable-http

默认情况下,Python 包将以 stdio 模式运行,因此您需要包含 -t streamable-http

Docker

docker run -p 8000:0000 ghcr.io/semgrep/mcp

服务器发送事件(SSE)

[!WARNING] MCP 社区认为这是一个遗留传输协议,主要用于向后兼容。推荐使用 可流式传输的 HTTP

SSE 传输允许服务器到客户端的流式传输,使用 Server-Send Events 进行客户端到服务器和服务器到客户端的通信。更多信息请参阅 [规范](https://modelcontextprotocol.io/docs/con