API安全扫描服务

APIsec NG MCP Server是一个用于管理和执行API安全扫描的工具,支持从OpenAPI、GraphQL和Postman等多种来源创建应用并启动安全扫描。

  • by kauaim
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kauaim/apisec-ng-mcp-server

使用说明

MCP服务器的Apisec

用于与APIsecNG平台交互的MCP(模型上下文协议)服务器。此服务器提供管理应用程序、启动安全扫描和查看扫描结果的工具。

特性

应用管理

  • 创建OAS应用程序:从OpenAPI规范文件或URL创建应用程序
  • 创建GraphQL应用程序:从GraphQL SDL文件或URL创建应用程序
  • 创建邮差应用程序:从Postman收藏文件或URL创建应用程序
  • 获取所有应用程序:列出所有支持分页的应用程序
  • 按ID获取应用程序:检索特定应用程序的详细信息

扫描管理

  • 开始扫描:对应用程序实例启动安全扫描
  • 获取扫描详细信息:检索扫描状态、结果和进度
  • 获取检测结果:获取带有描述和补救措施的安全调查结果
  • 按ID获取检测:获取特定安全检测的详细信息
  • 获得OWASP保障:检索OWASP覆盖率报告

安装

本地安装

  1. 安装所需的依赖项:
pip install -r requirements.txt
  1. 设置环境变量:
export APISEC_API_TOKEN="your_personal_access_token_here"
export APISEC_API_URL="https://api.apisecapps.com/v1"  # Optional, defaults to this

Docker安装

  1. 构建Docker镜像:
docker build -t apisec-ng/mcp-server:latest .
  1. 运行Docker容器:
docker run -it --rm \
  -e APISEC_API_TOKEN="your_token_here" \
  apisec-ng/mcp-server:latest

有关更多Docker部署选项,请参阅 医生.md.

配置

服务器使用环境变量进行配置:

  • APISEC_API_TOKEN (必填):您的APIsec NG个人访问令牌(PAT)
  • APISEC_API_URL (可选):API的基本URL(默认为 https://api.apisecapps.com/v1)

获取您的API代币

  1. 登录您的APIsec NG平台
  2. 导航到您的个人资料/设置
  3. 生成个人访问令牌(PAT)
  4. 将其设置为 APISEC_API_TOKEN 环境变量

用法

运行服务器

python apisec-ng-mcp-server.py

与MCP客户端一起使用

服务器遵循MCP协议,可以与任何兼容MCP的客户端一起使用。配置您的MCP客户端以连接到此服务器。

MCP客户端配置示例

对于Cursor或其他MCP客户端,请将以下内容添加到MCP配置中:

本地安装:

{
  "mcpServers": {
    "apisec-ng": {
      "command": "python",
      "args": ["/path/to/apisec-ng-mcp-server.py"],
      "env": {
        "APISEC_API_TOKEN": "your_token_here"
      }
    }
  }
}

Docker安装:

{
  "mcpServers": {
    "apisec-ng": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "APISEC_API_TOKEN=${APISEC_API_TOKEN}",
        "apisec-ng/mcp-server:latest"
      ],
      "env": {
        "APISEC_API_TOKEN": "your_token_here"
      }
    }
  }
}

可用工具

create_oas_application

根据OpenAPI规范创建新应用程序。

参数:

  • application_name (必填):申请名称
  • oas_url (可选):获取OAS内容的URL
  • file_path (可选):OAS文件的路径
  • origin (可选):原点值(默认值:“TENANT_PORTAL”)

create_graphql_application

从GraphQL SDL文件创建新应用程序。

参数:

  • application_name (必填):申请名称
  • sdl_url (可选):获取GraphQL SDL内容的URL
  • file_path (可选):GraphQL SDL文件的路径
  • origin (可选):原点值(默认值:“TENANT_PORTAL”)

create_postman_application

从Postman集合创建新应用程序。

参数:

  • application_name (必填):申请名称
  • collection_url (可选):获取Postman收藏的URL
  • file_path (可选):Postman收藏文件的路径
  • collection_id (可选):邮递员收款ID
  • api_key (可选):Postman API密钥
  • origin (可选):原点值(默认值:“TENANT_PORTAL”)

start_scan

对应用程序实例启动安全扫描。

参数:

  • application_id (必填):应用程序ID
  • instance_id (必填):实例ID
  • endpoint_ids (可选):要扫描的端点ID列表
  • scan_with_auth_id (可选):扫描的身份验证ID

get_scan_details

获取特定扫描的详细信息。

参数:

  • application_id (必填):应用程序ID
  • instance_id (必填):实例ID
  • scan_id (必填):扫描ID

get_detections

获取应用程序实例的安全检测。

参数:

  • application_id (必填):应用程序ID
  • instance_id (必填):实例ID
  • include_metadata (可选):包含元数据(默认值:true)
  • exclude_false_positives (可选):排除误报(默认值:true)

get_detection_by_id

获取特定检测的详细信息。

参数:

  • application_id (必填):应用程序ID
  • instance_id (必填):实例ID
  • detection_id (必填):检测ID

get_all_applications

获取所有应用程序的分页列表。

参数:

  • next_token (可选):分页标记

get_application_by_id

获取特定应用程序的详细信息。

参数:

  • application_id (必填):应用程序ID

get_owasp_coverage

获取应用程序实例的OWASP覆盖率报告。

参数:

  • application_id (必填):应用程序ID
  • instance_id (必填):实例ID

工作流示例

  1. 创建应用程序:

    create_oas_application(
        application_name="My API",
        oas_url="https://api.example.com/openapi.json"
    )
    
  2. 开始扫描:

    start_scan(
        application_id="app-123",
        instance_id="instance-456"
    )
    
  3. 检查扫描状态:

    get_scan_details(
        application_id="app-123",
        instance_id="instance-456",
        scan_id="scan-789"
    )
    
  4. 审查检测结果:

    get_detections(
        application_id="app-123",
        instance_id="instance-456"
    )
    

错误处理

所有工具都返回JSON响应。如果出现错误,响应将包括 error 字段,描述出了什么问题。

许可证

此MCP服务器按原样提供,用于APIsec NG平台。

支持

关于以下问题:

  • 此MCP服务器:请检查代码和配置
  • 平台Apisec:支持秒级联系