com.stackhawk/stackhawk

平台与服务

by stackhawk

一个 MCP server,可与 StackHawk 安全扫描平台交互,便于发起与管理扫描任务。

什么是 com.stackhawk/stackhawk

一个 MCP server,可与 StackHawk 安全扫描平台交互,便于发起与管理扫描任务。

README

StackHawk MCP Server

Current Version: 1.2.4 Requires Python 3.10 or higher

A Model Context Protocol (MCP) server for integrating with StackHawk's security scanning platform. Helps developers set up StackHawk, run security scans, and triage findings to fix vulnerabilities — all from within an LLM-powered IDE or chat.


Table of Contents


Features

  • Setup: Detect your project, create a StackHawk application, and generate a ready-to-scan stackhawk.yml
  • Scan: Run StackHawk scans directly from your IDE or chat (with install help if the CLI is missing)
  • Triage: Get actionable findings at or above your failure threshold for remediation
  • Validate: Check YAML configs against the official schema and validate field paths to prevent hallucination
  • Custom User-Agent: All API calls include a versioned User-Agent header

Installation

  1. Install via pip (make sure you have write permission to your current python environment):
    bash
    > pip install stackhawk-mcp
    # Requires Python 3.10 or higher
    

Or Install via pip in a virtual env:

bash
> python3 -m venv ~/.virtualenvs/mcp
> source ~/.virtualenvs/mcp/bin/activate
> (mcp) pip install stackhawk-mcp
# Requires Python 3.10 or higher

Or Install via pip using pyenv:

bash
> pyenv shell 3.10.11
> pip install stackhawk-mcp
# Requires Python 3.10 or higher

Or Install locally from this repo:

bash
> pip install --user .
# Run this command from the root of the cloned repository
  1. Set your StackHawk API key:
    bash
    > export STACKHAWK_API_KEY="your-api-key-here"
    

Usage

Running the MCP Server

bash
python -m stackhawk_mcp.server

Running the HTTP Server (FastAPI)

bash
python -m stackhawk_mcp.http_server

Running Tests

bash
pytest

Integrating with LLMs and IDEs

StackHawk MCP can be used as a tool provider for AI coding assistants and LLM-powered developer environments, enabling security scanning setup, YAML validation, and vulnerability triage directly in your workflow.

Cursor (AI Coding Editor)

  • Setup:
    • Follow the installation instructions above to install stackhawk-mcp in your python environment.
    • In Cursor, go to Cursor Settings->Tools & Integrations->MCP Tools
    • Add a "New MCP Server" with the following json, depending on your setup:
      • Using a virtual env at ~/.virtualenvs/mcp:
        json
        {
          "mcpServers": {
            "stackhawk": {
              "command": "/home/bobby/.virtualenvs/mcp/bin/python",
              "args": ["-m", "stackhawk_mcp.server"],
              "env": {
                "STACKHAWK_API_KEY": "${env:STACKHAWK_API_KEY}"
              },
              "disabled": false
            }
          }
        }
        
      • Using pyenv:
        json
        {
          "mcpServers": {
            "stackhawk": {
              "command": "/home/bobby/.pyenv/versions/3.10.11/bin/python3",
              "args": ["-m", "stackhawk_mcp.server"],
              "env": {
                "STACKHAWK_API_KEY": "${env:STACKHAWK_API_KEY}"
              },
              "disabled": false
            }
          }
        }
        
      • Or use python directly:
        json
        {
          "mcpServers": {
            "stackhawk": {
              "command": "python3",
              "args": ["-m", "stackhawk_mcp.server"],
              "env": {
                "STACKHAWK_API_KEY": "${env:STACKHAWK_API_KEY}"
              }
            }
          }
        }
        
      • Then make sure the "stackhawk" MCP Tool is enabled
  • Usage:
    • Use Cursor's tool invocation to call StackHawk MCP tools (e.g., vulnerability search, YAML validation).
    • Example prompt: Validate this StackHawk YAML config for errors.

OpenAI, Anthropic, and Other LLMs

  • Setup:
    • Deploy the MCP HTTP server and expose it to your LLM system (local or cloud).
    • Use the LLM's tool-calling or function-calling API to connect to the MCP endpoint.
    • Pass the required arguments (e.g., org_id, yaml_content) as specified in the tool schemas.
  • Example API Call:
    json
    {
      "method": "tools/call",
      "params": {
        "name": "validate_stackhawk_config",
        "arguments": {"yaml_content": "..."}
      }
    }
    
  • Best Practices:
    • Use anti-hallucination tools to validate field names and schema compliance.
    • Always check the tool's output for warnings or suggestions.

IDEs like Windsurf

  • Setup:
    • Add StackHawk MCP as a tool provider or extension in your IDE, pointing to the local or remote MCP server endpoint.
    • Configure environment variables as needed.
  • Usage:
    • Invoke setup, scanning, validation, and triage tools directly from the IDE's command palette or tool integration panel.

General Tips

  • Ensure the MCP server is running and accessible from your LLM or IDE environment.
  • Review the Available Tools & API section for supported operations.
  • For advanced integration, see the example tool usage in this README or explore the codebase for custom workflows.

GitHub Copilot Agents

StackHawk can be added to the GitHub Coding Agent as an MCP server or as its own GitHub Custom Agent.

Add to GitHub Coding Agent

You can add StackHawk MCP to the GitHub Copilot Coding Agent. This gives the agent all the stackhawk/ tools.

StackHawk MCP installation into the Coding Agent

General instructions on GitHub

For StackHawk MCP, the MCP Configuration JSON should look something like this:

yaml
{
  "mcpServers": {
    "stackhawk": {
      "type": "local",
      "tools": [
        "*"
      ],
      "command": "uvx",
      "args": [
        "stackhawk-mcp"
      ],
      "env": {
        "STACKHAWK_API_KEY": "COPILOT_MCP_STACKHAWK_API_KEY"
      }
    }
  }
}

Then in the Repository's Settings->Environments->copilot->Environment Secrets, add COPILOT_MCP_STACKHAWK_API_KEY with your StackHawk API Key.

Installation verification instructions

StackHawk Onboarding Agent as a GitHub Copilot Custom Agent

You can the StackHawk Onboarding Agent as a custom agent at the enterprise, organization, or repository level in GitHub. When added, the StackHawk Onboarding Agent becomes a selectable option in the Copilot Agent Chat with context to help with onboarding, plus it installs stackhawk-mcp so the agent has access to all of those tools.

StackHawk Onboarding Agent installation

The general approach is to take the StackHawk Onboarding Agent defintion and apply it to either the desired repository, enterprise, or organization in GitHub.

Note that the mcp-servers block in the StackHawk Onboarding Agent definition references an environment variable called COPILOT_MCP_STACKHAWK_API_KEY. Go to the Repository's Settings->Environments->copilot->Environment Secrets, add COPILOT_MCP_STACKHAWK_API_KEY with your StackHawk API Key.


Configuration

  • All HTTP requests include a custom User-Agent header:
    code
    User-Agent: StackHawk-MCP/{version}
    
  • The version is set in stackhawk_mcp/server.py as STACKHAWK_MCP_VERSION.
  • Set your API key via the STACKHAWK_API_KEY environment variable.

Available Tools

The MCP server exposes 7 tools organized around the developer workflow:

PhaseToolDescription
Discoverget_organization_infoGet org details, teams, and applications
Discoverlist_applicationsList applications in an organization
Setupsetup_stackhawk_for_projectDetect language, find/create app, generate stackhawk.yml
Validatevalidate_stackhawk_configValidate YAML against the official StackHawk schema
Validatevalidate_field_existsCheck if a field path is valid in the schema (anti-hallucination)
Scanrun_stackhawk_scanRun a StackHawk scan via the CLI (returns install help if CLI is missing)
Triageget_app_findings_for_triageGet findings at/above the configured failure threshold

Example Tool Usage

python
# Set up StackHawk for a project
result = await server.call_tool("setup_stackhawk_for_project", {"host": "http://localhost:3000"})

# Validate a YAML config
result = await server.call_tool("validate_stackhawk_config", {"yaml_content": "..."})

# Run a scan
result = await server.call_tool("run_stackhawk_scan", {})

# Get findings to triage
result = await server.call_tool("get_app_findings_for_triage", {})

Official Schema URL: https://download.stackhawk.com/hawk/jsonschema/hawkconfig.json


Testing & Development

Running All Tests

bash
pytest

Running Individual Tests

bash
pytest tests/test_ux_improvements.py
pytest tests/test_user_scenarios.py

Code Formatting

bash
black stackhawk_mcp/

Type Checking

bash
mypy stackhawk_mcp/

Example Configurations

Basic Configuration

yaml
app:
  applicationId: "12345678-1234-1234-1234-123456789012"
  env: "dev"
  host: "http://localhost:3000"
  name: "Development App"
  description: "Local development environment"

Production Configuration with Authentication

yaml
app:
  applicationId: "87654321-4321-4321-4321-210987654321"
  env: "prod"
  host: "https://myapp.com"
  name: "Production App"
  description: "Production environment"
  authentication:
    type: "form"
    username: "your-username"
    password: "your-password"
    loginUrl: "https://myapp.com/login"
    usernameField: "username"
    passwordField: "password"

hawk:
  spider:
    base: true
    ajax: false
    maxDurationMinutes: 30
  scan:
    maxDurationMinutes: 60
    threads: 10
  startupTimeoutMinutes: 5
  failureThreshold: "high"

tags:
  - name: "environment"
    value: "production"
  - name: "application"
    value: "myapp"

Contributing

Contributions are welcome! Please open issues or pull requests for bug fixes, new features, or documentation improvements.


License

Apache License 2.0. See LICENSE for details.

Release and Version Bumping

Version bumps are managed via the "Prepare Release" GitHub Actions workflow. When triggering this workflow, you can select whether to bump the minor or major version. The workflow will automatically update version files, commit, and push the changes to main.

Note: The workflow is protected against infinite loops caused by automated version bump commits.

GitHub Actions Authentication

All CI/CD git operations use a GitHub App token for authentication. The git user and email are set from the repository secrets HAWKY_APP_USER and HAWKY_APP_USER_EMAIL.

Workflow Protections

Workflows are designed to skip jobs if the latest commit is an automated version bump, preventing workflow loops.

How to Trigger a Release

  1. Go to the "Actions" tab on GitHub.
  2. Select the "Prepare Release" workflow.
  3. Click "Run workflow" and choose the desired bump type (minor or major).
  4. The workflow will handle the rest!
<!-- mcp-name: com.stackhawk/stackhawk -->

常见问题

com.stackhawk/stackhawk 是什么?

一个 MCP server,可与 StackHawk 安全扫描平台交互,便于发起与管理扫描任务。

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描114.1k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描114.1k

MCP服务构建器

by alirezarezvani

Universal
热门

从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。

帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。

平台与服务
未扫描10.2k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
83.4k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.3k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
35.4k

评论