Token导航 LogoToken导航TokenDH.com
Goberbot Semgrep logo
开发工具stdio官方级别未说明来源级核验

Goberbot Semgrep

MCP Server

一个生产就绪的模型上下文协议(MCP)服务器,集成了Semgrep静态分析工具,支持自定义安全与代码质量规则,并提供Docker部署方案。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
静态分析ShellClaude开发工具ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sergio-kushki

提供方

sergio-kushki

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install semgrep

详细介绍

Goberbot Semgrep MCP服务器

一个生产就绪的模型上下文协议(MCP)服务器,将Semgrep静态分析与Cursor IDE和其他MCP兼容客户端集成在一起。基于Docker的部署具有自定义安全和代码质量规则。

🚀 快速启动(新机器设置)

使用3个命令启动并运行:

# 1. Clone and navigate
git clone  goberbot-semgrep && cd goberbot-semgrep

# 2. Start the server
./start-server.sh

# 3. Configure Cursor IDE (see SETUP.md)

📚 完整的设置指南:SETUP.md 详细说明

📖 包含内容

  • 自定义MCP服务器 -FastMCP 2.13.1,具有原生流式http传输
  • Semgrep集成 -版本1.144.0,完全支持CLI
  • 自定义规则 -14安全和代码质量规则
  • Docker部署 -一个命令启动 docker-compose
  • 测试文件 -用于验证的易受攻击的代码示例

项目阶段

第一阶段:本地STDIO设置✅ 完成

在本地设置和测试Semgrep集成。

结果:

  • Semgrep命令行界面 -自定义规则功能齐全
  • 自定义规则 -测试文件中检测到17个漏洞
  • 远程MCP -工作在 https://mcp.semgrep.ai/mcp
  • 本地MCP -弃用的软件包(无扫描工具)

关键发现: 生产使用所需的自定义MCP服务器(第3阶段)

第二阶段:码头化和远程部署🔄 (下一页)

容器化并部署Semgrep MCP以进行远程访问。

第三阶段:定制包装📋 (未来)

构建包装器代码以适应特定的用例。

______________________________________________________________________

第一阶段:本地STDIO设置

先决条件

  • Python 3.8+
  • pipx(推荐)或pip
  • Semgrep命令行界面(1.138.0+版本)

安装

  1. 安装Semgrep命令行界面:
# Using Homebrew (macOS/Linux)
brew install semgrep

# Or using pip
pip install semgrep

# Verify installation
semgrep --version
  1. 安装Semgrep MCP:
# Recommended: Using pipx for isolated environment
pipx install semgrep-mcp

# Alternative: Using pip
pip install semgrep-mcp
  1. 登录到Semgrep(可选-用于Pro功能):
semgrep login

运行MCP服务器(STDIO模式)

默认STDIO模式:

semgrep-mcp

明确的STDIO规范:

semgrep-mcp -t stdio

服务器将:

  • 读取自 标准输入 (标准输入)
  • 写信给 标准输出 (标准输出)
  • 将错误记录到 标准错误 (标准误差)

测试MCP服务器

选项1:使用MCP检查器(推荐)

npx @modelcontextprotocol/inspector semgrep-mcp

选项2:使用curl进行手动测试

创建测试请求文件 test-request.json:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

发送请求:

cat test-request.json | semgrep-mcp

客户端的MCP配置

适用于克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "semgrep": {
      "command": "semgrep-mcp",
      "args": []
    }
  }
}

用于游标IDE

添加到光标MCP设置:

{
  "mcpServers": {
    "semgrep": {
      "command": "semgrep-mcp",
      "args": []
    }
  }
}

自定义规则设置

  1. 创建规则目录:
mkdir -p custom-rules
  1. 添加自定义规则 (例如: custom-rules/security.yaml):
rules:
  - id: detect-eval-usage
    pattern: eval(...)
    message: "Dangerous use of eval() detected"
    languages: [javascript, typescript]
    severity: ERROR
    
  - id: hardcoded-secrets
    pattern: |
      password = "..."
    message: "Potential hardcoded password detected"
    languages: [python, javascript]
    severity: WARNING
  1. 本地测试规则:
semgrep --config custom-rules/ path/to/code

可用的MCP工具

Semgrep MCP服务器提供以下工具:

  • 代码扫描:分析代码片段或文件
  • 漏洞检测:识别安全问题
  • 自定义规则执行:应用组织特定规则
  • 支持多种语言:JavaScript、Python、Java、Go等

故障排除

问题:找不到命令

# Ensure pipx bin directory is in PATH
pipx ensurepath

问题:Semgrep版本太旧

# Upgrade Semgrep
pip install --upgrade semgrep

问题:MCP服务器没有响应

# Check if server is running
ps aux | grep semgrep-mcp

# Check logs
semgrep-mcp 2> debug.log

______________________________________________________________________

第二阶段:Docker和远程部署(WIP)

Docker设置

拉取官方图片:

docker pull ghcr.io/semgrep/mcp

使用STDIO运行:

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

使用HTTP传输运行:

docker run -p 8000:8000 --rm ghcr.io/semgrep/mcp -t streamable-http

部署选项

选项A:云运行/ECS/类似

  • 最适合有状态的容器服务
  • 支持HTTP和STDIO
  • 易于扩展和管理

选项B:Fly.io

# Install flyctl
curl -L https://fly.io/install.sh | sh

# Deploy
fly launch

方案C:铁路

# Install Railway CLI
npm install -g @railway/cli

# Deploy
railway up

备注Cloudflare Wrangler是为Workers(JS/WASM)设计的,不适合Python容器。考虑Cloudflare的容器平台或替代方案。

______________________________________________________________________

第3阶段:自定义MCP服务器✅ 完成 - 推荐路径

为什么定制? 经过第一阶段的测试,我们发现:

  • ❌ 本地 semgrep-mcp 软件包已弃用(没有扫描工具)
  • ⚠️ 远程服务器(mcp.semgrep.ai)有效但有风险:

- 外部依赖(可以关闭) - 隐私问题(代码发送到外部服务器) - 无法进行自定义 - 无法使用来自的自定义规则 custom-rules/

解决方案: 内置自定义MCP服务器包装Semgrep CLI✅

已实现的功能:

  • ✅ 具有流式HTTP的FastMCP 2.0
  • ✅ 完全控制功能
  • ✅ 本地执行(隐私和安全)
  • ✅ 自定义规则集成(custom-rules/)
  • ✅ 混合规则加载(URL→ 捆绑的→ S3就绪)
  • ✅ Docker原生部署
  • ✅ EC2部署就绪
  • ✅ 健康检查和监测
  • ✅ 三个MCP工具:scan_code、list_available_rules、reload_rules

快速入门:

cd mcp-server
./quick-start.sh

请参阅:

  • mcp-server/README.md 用途
  • EC2-DEPLOYMENT.md 用于云部署

______________________________________________________________________

项目结构

goberbot-semgrep/
├── README.md                    # This file
├── EC2-DEPLOYMENT.md            # AWS EC2 deployment guide
├── PHASE1-CHECKLIST.md          # Phase 1 testing results
├── PHASE3-ARCHITECTURE.md       # Phase 3 technical design
├── STRATEGIC-SUMMARY.md         # Strategic analysis
├── custom-rules/                # Custom Semgrep rules
│   ├── security.yaml            # Security vulnerability rules
│   └── code-quality.yaml        # Code quality rules
├── mcp-server/                  # Custom MCP Server (Phase 3) ✅
│   ├── server.py                # FastMCP 2.0 server
│   ├── semgrep_runner.py        # Semgrep CLI wrapper
│   ├── requirements.txt         # Python dependencies
│   ├── Dockerfile               # Container definition
│   ├── docker-compose.yml       # Local testing setup
│   ├── Makefile                 # Convenience commands
│   ├── quick-start.sh           # One-command startup
│   ├── test-server.sh           # Integration tests
│   └── README.md                # Server documentation
├── scripts/                     # Test and utility scripts
│   ├── test-local-scan-custom.sh
│   ├── test-local-scan-native.sh
│   └── test-local-scan-all.sh
└── tests/                       # Test files and results
    ├── sample-code/
    │   ├── vulnerable.js
    │   └── vulnerable.py
    └── results-*.json

资源

后续步骤

已完成(第一阶段)

  1. ✅ 在本地安装并测试Semgrep CLI
  2. ✅ 创建自定义安全和代码质量规则
  3. ✅ 使用Cursor IDE(远程MCP服务器)进行测试
  4. ✅ 验证自定义规则(测试文件中有17个发现)
  5. ✅ 记录学习和局限性

已完成(第3阶段)✅

  1. 内置自定义MCP服务器 -完成了

- 使用HTTP传输实现FastMCP 2.0 - 带有混合规则加载的Semgrep CLI包装器 - Docker化,易于部署 - EC2部署指南已创建

下一步(生产就绪)

  1. 部署到EC2 (参见 EC2-DEPLOYMENT.md)

- 启动EC2实例 - 部署Docker容器 - 配置游标IDE

  1. 团队整合

- 与团队共享EC2端点 - 设置VPN或SSH隧道以确保安全 - 考虑多个实例的可用性

可选增强功能

  • 添加身份验证(JWT令牌)
  • 实现S3规则获取
  • 添加缓存以提高性能
  • Git差异扫描集成
  • 指标仪表板

目录标签

目录标签

静态分析ShellClaude开发工具本地部署代码安全Docker部署MCP协议

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP