返回市场
持续-snyk-mcp

持续-snyk-mcp

作者:chipper-teapot2 星标更新:2025-11-17

项目介绍

Continue + Snyk MCP:安全扫描与修复

使用开源AI编码助手Continue,将Snyk的安全扫描能力直接集成到您的开发工作流程中。

┌─────────────────────────────────────────────────────────────────┐
│                    您的开发环境                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────────────────┐         ┌────────────────────┐    │
│  │   Continue IDE           │         │   您的项目 /   │    │
│  │  (VS Code / JetBrains)   │         │      PyGoat        │    │
│  │                          │         │   (要扫描的代码)   │    │
│  │  ┌────────────────────┐  │         └────────────────────┘    │
│  │  │ 代理聊天面板     │  │                                   │
│  │  │ (启用MCP)      │  │                                   │
│  │  └─────────┬──────────┘  │                                   │
│  │            │             │                                   │
│  │      "扫描项目"      │                                   │
│  └────────────┼─────────────┘                                   │
│               │                                                 │
│               │ 调用MCP工具                                 │
│               ▼                                                 │
│  ┌──────────────────────────────────────────────┐               │
│  │  Snyk MCP服务器 (.continue/mcpServers/)     │               │
│  │  (连接Continue和Snyk CLI的桥梁)      │               │
│  └──────────────┬───────────────────────────────┘               │
│                 │                                               │
│            调用                                              │
│                 │                                               │
│                 ▼                                               │
│  ┌──────────────────────────┐                                   │
│  │    Snyk CLI              │                                   │
│  │  (snyk mcp -t stdio)     │                                   │
│  │                          │                                   │
│  │  需要: snyk auth     │                                   │
│  │  (存储API令牌)      │                                   │
│  └──────────────┬───────────┘                                   │
│                 │                                               │
│              扫描                                              │
│                 │                                               │
│                 └──────────► 项目文件(逐行)       │
│                                                                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │            漏洞检测结果                            │   │
│  ├──────────────────────────────────────────────────────────┤   │
│  │  • SQL注入(高)          • 硬编码密钥     │   │
│  │  • XSS漏洞           • 弱加密算法     │   │
│  │  • 路径遍历                • 不安全默认值     │   │
│  └─────────────┬────────────────────────────────────────────┘   │
│                │                                                │
│           通过MCP返回                                       │
│                │                                                │
│                ▼                                                │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │    Continue代理(LLM)                                  │   │
│  ├──────────────────────────────────────────────────────────┤   │
│  │  • 按严重程度总结发现                       │   │
│  │  • 建议修复(参数化查询,输入验证)    │   │
│  │  • 应用补丁到代码                               │   │
│  │  • 再次扫描以验证修复                                │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │    Continue聊天中的结果                              │   │
│  │  ✓ 漏洞已修复并验证                      │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

数据流:您请求Continue → MCP调用Snyk CLI → 扫描代码 → 返回发现 → Continue LLM分析 → 建议/应用修复 → 再次扫描以验证

为什么选择Continue?

Continue从根本上不同于闭源AI编码助手:

  • 开源且透明:确切了解您的代码发生了什么;无供应商锁定
  • 模型无关:选择自己的LLM(OpenAI,Anthropic,本地Ollama等)
  • 隐私优先:如果需要,可以完全离线运行本地模型
  • IDE原生:作为轻量级VS Code或JetBrains扩展工作(不是分支或替代品)
  • 可扩展性:构建自定义命令、上下文来源和工具

快速开始

1. 安装Continue

  • VS Code:从Visual Studio Marketplace安装
  • JetBrains:从插件仓库安装(IntelliJ IDEA,PyCharm,WebStorm)
  • 终端:使用npm i -g @continuedev/cli安装Continue CLI

2. 配置您的模型

安装后,点击代理选择器下拉菜单并选择您偏好的提供商:

  • 云端:OpenAI,Anthropic(Claude),OpenRouter
  • 本地:Ollama,ggml
  • 自定义:任何兼容的API端点

3. 安装Snyk CLI

# 通过npm安装
npm install -g snyk

# 或从https://docs.snyk.io/developer-tools/snyk-cli/install-or-update-the-snyk-cli下载

使用您的Snyk账户进行身份验证:

snyk auth

添加Snyk MCP服务器

通过Continue UI

  1. 点击侧边栏上的Continue图标
  2. 在聊天输入顶部选择“配置工具”
  3. 点击“MCP服务器”旁边的“+”图标
  4. 这会创建一个新的.continue/mcpServers/new-mcp-server.yaml文件

手动配置YAML文件

您可以将创建的文件重命名为.continue/mcpServers/snyk-mcp.yaml(在您的项目根目录)。它应包含:

使用npx(始终是最新版本):

name: Snyk Security Scanner
version:  0.0.1
schema: v1
mcpServers:
  - name: Snyk
    command: npx
    args:
      - "-y"
      - "snyk@latest"
      - "mcp"
      - "-t"
      - "stdio"
    env: {}

使用本地Snyk安装:

name: Snyk Security Scanner
version:  0.0.1
schema: v1
mcpServers:
  - name: Snyk
    command: /path/to/snyk  # 例如,在Linux上从`which snyk`获取
    args:
      - "mcp"
      - "-t"
      - "stdio"
    env: {}

使用PyGoat测试

此研讨会参考了adeyosemanputra的故意易受攻击的测试应用程序,用于学习和演示目的。

克隆PyGoat

将故意易受攻击的Django应用程序克隆到子目录中:

git clone https://github.com/adeyosemanputra/pygoat.git

什么是PyGoat?

PyGoat是一个OWASP项目教育应用程序,旨在教授安全漏洞。它包含了不同严重级别广泛记录的漏洞,包括:

  • SQL注入
  • 路径遍历
  • 代码注入
  • 命令注入
  • 硬编码密钥
  • 反序列化漏洞
  • XXE注入
  • 更多

这使得它非常适合测试您的安全扫描和修复工作流程,而不会影响生产代码。

使用Continue扫描和修复漏洞

启用代理模式

MCP工具仅在代理模式下可用。点击代理选择器下拉菜单并确保其处于活动状态。

扫描您的项目

在Continue聊天(代理模式)中询问:

请对当前项目运行Snyk代码扫描。

Continue将:

  • 使用Snyk MCP工具执行扫描
  • 按严重程度分类发现(关键,高,中,低)
  • 突出显示漏洞类型(SQL注入,XSS,硬编码密钥等)
  • 显示文件路径和行号

修复漏洞

向Continue提供具体的漏洞详情:

扫描发现一个高严重性的SQL注入漏洞位于:
路径:introduction/views.py,第871行
问题:来自HTTP参数的未经处理的输入流入原始SQL查询。

你能修复这个漏洞然后再次扫描以验证是否已修复吗?

Continue的代理将:

  1. 阅读并理解易受攻击的代码
  2. 应用修复(通常使用参数化查询,输入验证等)
  3. 自动重新扫描以验证漏洞已解决
  4. 显示前后对比

全局与项目特定配置

基于工作区的配置.continue/mcpServers/

  • 项目特定的MCP服务器
  • 仅在该工作区内激活
  • 对于项目特定的工具非常有用

全局配置~/.continue/config.yaml

  • 跨所有项目的MCP服务器
  • 对于希望在任何地方使用的工具如Snyk非常完美
  • mcpServers块下定义

MCP配置迁移

如果您正在从Cursor,Cline或Claude Desktop迁移,请直接将它们的JSON MCP配置复制到.continue/mcpServers/中,Continue将自动检测它们。

Continue CLI(终端使用)

对于主要在终端工作的开发者:

# 全局安装
npm i -g @continuedev/cli

# 启动交互模式
cn

# 继续之前的对话
cn --resume

# 使用特定配置
cn --config ~/.continue/config.yaml

使用与IDE扩展相同的@和/语法来获取文件上下文和斜杠命令。CLI还支持无头模式,用于CI/CD自动化。

使此工作流程强大的因素

  • 左移安全:在开发期间捕获漏洞,而不是在代码审查时
  • AI辅助修复:LLMs处理常规、已知的修补程序(SQL注入,XSS,硬编码密钥)
  • 人类关注:开发人员可以专注于需要架构思维的新安全挑战
  • 无供应商锁定:根据需求切换模型、主机或工具
  • 完全可扩展:按需构建自定义MCP服务器或斜杠命令

下一步

随着MCP采用的增长,Continue代理可以:

  • 生成安全测试以防止回归
  • 自动更新安全修复的文档
  • 创建详细的票证以手动审查复杂问题
  • 与CI/CD管道集成以提供合并前的安全反馈
  • 通过CLI在计划任务中运行自动安全扫描

资源