Skip to main content
Glama

htb-mcp

Python License MCP

htb-mcp is an MCP server for Hack The Box.
It wraps HTB API operations as MCP tools so assistants can query and operate HTB directly.

Features

  • MCP over stdio (works with common local MCP clients)

  • Structured JSON responses from all tools

  • Environment-based auth/config (no credential files required)

  • API-focused actions for users, machines, challenges, VPN metadata, prolabs, seasons, badges, sherlocks, pwnbox

Related MCP server: openclaw-tools-mcp

Requirements

  • Python 3.10+

  • Hack The Box App Token

Create your HTB App Token in:

  • https://app.hackthebox.com/account-settings

Installation

cd /path/to/htb-mcp
python3.10 -m venv .venv
source .venv/bin/activate
pip install -e .

For development:

pip install -e ".[dev]"

Environment Variables

Required:

  • HTB_APP_TOKEN: HTB App Token

Optional:

  • HTB_API_BASE_URL: default https://labs.hackthebox.com/api/

  • HTB_USER_AGENT: default htb-mcp/<version>

  • HTB_VERIFY_SSL: true|false|1|0|yes|no (default true)

  • HTB_HTTP_PROXY

  • HTB_HTTPS_PROXY

MCP Configuration

Option A: installed command (htb-mcp)

{
  "mcpServers": {
    "htb": {
      "command": "htb-mcp",
      "env": {
        "HTB_APP_TOKEN": "YOUR_HTB_APP_TOKEN"
      }
    }
  }
}

Option B: run module directly from source

{
  "mcpServers": {
    "htb": {
      "command": "python3.10",
      "args": ["-m", "htb_mcp"],
      "env": {
        "PYTHONPATH": "/absolute/path/to/htb-mcp/src",
        "HTB_APP_TOKEN": "YOUR_HTB_APP_TOKEN"
      }
    }
  }
}

Running Manually

HTB_APP_TOKEN=YOUR_HTB_APP_TOKEN htb-mcp

Response Envelope

All tool responses follow one envelope:

Success:

{
  "ok": true,
  "data": {}
}

Error:

{
  "ok": false,
  "error": {
    "type": "ErrorType",
    "message": "Human readable message",
    "details": {}
  }
}

Tool Catalog

User:

  • htb_user_get

  • htb_user_activity

  • htb_user_respect

Machine:

  • htb_machine_list

  • htb_machine_get

  • htb_machine_active

  • htb_machine_start

  • htb_machine_stop

  • htb_machine_reset

  • htb_machine_extend

  • htb_machine_submit_flag

  • htb_machine_rate_flag

Challenge:

  • htb_challenge_list

  • htb_challenge_search

  • htb_challenge_get

  • htb_challenge_submit

  • htb_challenge_instance_start

  • htb_challenge_instance_stop

  • htb_challenge_instance_status

Prolabs and Certificates:

  • htb_prolabs_list

  • htb_prolabs_get

  • htb_prolabs_submit

  • htb_certificate_list

VPN:

  • htb_vpn_servers_list

  • htb_vpn_accessible_list

  • htb_vpn_switch

  • htb_vpn_active_connections

Pwnbox:

  • htb_pwnbox_status

  • htb_pwnbox_terminate

Sherlocks:

  • htb_sherlock_categories

  • htb_sherlock_list

Badges:

  • htb_badges_list

Seasons:

  • htb_season_list

  • htb_season_details

  • htb_season_current_machines

Development

Run tests:

PYTHONPATH=src python3.10 -m pytest -q

Quick syntax check:

PYTHONPATH=src python3.10 -m py_compile src/htb_mcp/*.py src/htb_mcp/htbapi/*.py

Project Layout

htb-mcp/
  src/htb_mcp/
    server.py
    tools.py
    config.py
    client_factory.py
    serialization.py
    htbapi/
  tests/

Notes

  • This project depends on HTB API behavior and can be affected by HTB-side changes.

  • Keep your HTB_APP_TOKEN secret.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cativist/htb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server