Metadata-Version: 2.4
Name: sast-fixer-mcp
Version: 1.0.2
Summary: A Model Context Protocol server for SAST vulnerability analysis and fixing
Author: zhanlu
Maintainer: zhanlu
License: MIT
Keywords: llm,mcp,sast,security,vulnerability
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: click>=8.1.7
Requires-Dist: mcp>=1.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-docx>=1.1.0
Description-Content-Type: text/markdown

# SAST 漏洞修复 MCP 服务

本项目提供一个专用于处理静态应用安全测试（SAST）报告的 MCP 服务器，具备SAST报告的Docx文档解析、漏洞修复状态跟踪及修复报告导出等核心功能。本MCP server支持湛卢AI程序员中`漏洞修复`进行SAST相关漏洞的下修复，参见[静态应用安全测试（SAST）修复流程](docs/SAST_FIXER_WORKFLOW.md)。



## 功能概述

* **Docx转JSON**：将SAST报告的Word文档解析转换为结构化JSON格式
* **漏洞状态管理**：自动检测待处理的漏洞JSON文件，支持状态查询与更新
* **报告导出**：基于已修复漏洞数据生成标准CSV格式的修复报告



## 可用工具



- convert_sast_docx_to_json - 将SAST报告的docx文档转换为JSON格式
    - file_path (string, 必填): SAST报告docx文件路径

- get_pending_vulnerability_json_files - 获取.scanissuefix目录中所有待处理的漏洞JSON文件(_new.json)

- generate_csv_report - 从所有已完成的漏洞JSON文件(_finished.json)生成CSV报告


## 安装

### 使用 uv (推荐)

使用 [`uv`](https://docs.astral.sh/uv/) 时无需特殊安装。可以直接使用 [`uvx`](https://docs.astral.sh/uv/guides/tools/) 运行 *sast-fixer-mcp*。

### 使用 PIP

或者可以通过 pip 安装 `sast-fixer-mcp`：

```
pip install sast-fixer-mcp
```

安装完成后，可以作为脚本运行：

```
python -m sast_fixer_mcp
```

## 配置

### 使用 Claude Desktop

将以下配置添加到您的 `claude_desktop_config.json` 中：

<details>
<summary>使用 uvx</summary>

```json
{
  "mcpServers": {
    "sast-fixer": {
      "command": "uvx",
      "args": ["sast-fixer-mcp"]
    }
  }
}
```
</details>

<details>
<summary>使用 pip 安装</summary>

```json
{
  "mcpServers": {
    "sast-fixer": {
      "command": "python",
      "args": ["-m", "sast_fixer_mcp"]
    }
  }
}
```
</details>

### 湛卢AI程序员集成配置

在湛卢AI程序员MCP服务管理中添加如下配置：

<details>
<summary>使用 uvx</summary>

```json
{
  "mcpServers": {
    "SAST_FIXER_MCP": {
      "command": "uvx",
      "args": ["sast-fixer-mcp"],
      "enabled": true,
      "alwaysAllow": [
        "convert_sast_docx_to_json",
        "get_pending_vulnerability_json_files",
        "generate_csv_report"
      ],
      "timeout": 1800
    }
  }
}
```
</details>

<details>
<summary>使用 pip 安装</summary>

```json
{
  "mcpServers": {
    "SAST_FIXER_MCP": {
      "command": "python",
      "args": ["-m", "sast_fixer_mcp"],
      "enabled": true,
      "alwaysAllow": [
        "convert_sast_docx_to_json",
        "get_pending_vulnerability_json_files",
        "generate_csv_report"
      ],
      "timeout": 1800
    }
  }
}
```
</details>

> **备注**：
>
> * 如使用特定Python环境，建议使用`which python`命令获取完整路径，如果使用venv或conda环境，请指定python运行文件的绝对路径。
> * 处理较大SAST报告时，请适当调高`timeout`以避免超时。



## 全局设置

进入右上角设置，调整以下选项以获得最佳体验：

* **模型选择**：deepseek-v3（当前仅支持该模型进行漏洞修复）
* **自动批准权限**：启用读取、写入、重试、MCP及命令执行权限
* **执行命令白名单**：建议添加以下命令，避免频繁询问权限

  ```text
  rm -rf .scanissuefix
  mv .scanissuefix
  mkdir -p .scanissuefix
  ren .scanissuefix
  del .scanissuefix
  del ".scanissuefix"
  dir .scanissuefix
  ren ".scanissuefix"
  move .scanissuefix
  ```



## 使用流程

1. 获取目标代码库对应的SAST报告Word文档。
2. 将代码库克隆到VSCode中并切换至对应分支。
3. 打开湛卢AI程序员对话框，选择“代码安全漏洞修复”功能。
4. 将SAST报告的文件路径（相对或绝对）粘贴至对话框，提交后按提示完成漏洞修复。

> **注意**：修复过程中涉及系统命令操作文件目录，请确保VSCode的终端当前路径定位于项目根目录。当出现修复流程不符合预期的情况可尝试使用自然语言和AI程序员对话，如: `继续修复`，`生成csv报告`，`自动修复`等。