终端用户界面客户端

一个基于文本的终端用户界面客户端,专为HackTheBox模型上下文协议(MCP)服务器设计,用于浏览和选择CTF事件、团队和挑战,执行MCP工具,管理Docker容器,并保存挑战数据。

  • by TheRealFREDP3D
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 TheRealFREDP3D/HTB-MCP-Client

使用说明

HTB MCP客户端

HackTheBox模型上下文协议(MCP)服务器的基于文本的TUI(终端用户界面)客户端。作为业余Python项目构建,用于学习CTF工具、MCP集成和终端UI设计。

特性

  • 通过交互式TUI浏览和选择CTF活动、团队和挑战
  • 直接从界面执行MCP工具
  • 启动/停止Docker容器以应对挑战
  • 下载挑战文件
  • 会话间的持久状态(自动保存到 htb_mcp_state.json)
  • 将挑战数据保存到 .json 或 .md 文件

项目结构

HTB-MCP-Client/
├── htb_mcp_client.py       # Entry point
├── app.py                  # HTBMCPApp (Textual App) + MainMenu screen
├── client.py               # HTBMCPClient — MCP session wrapper + state management
├── config.py               # Constants (CATEGORY_MAP, etc.)
├── screens/
│   ├── __init__.py         # Package exports
│   ├── data_list.py        # DataListScreen — browse tools/resources
│   ├── tool_screens.py     # ToolSelectionScreen, ToolExecutionScreen, ResultScreen
│   ├── challenge.py        # ChallengeSelectionScreen
│   ├── event_team.py       # EventSelectionScreen, TeamSelectionScreen
│   ├── play.py             # PlayPage — container management
│   └── help.py             # GettingStartedScreen (modal)
├── doc/                    # Documentation and screenshots
├── htb_mcp_output/         # Saved tool output files (auto-created at runtime)
├── htb_mcp_state.json      # Persisted session state (auto-created at runtime)
├── .env                    # API credentials (never commit this)
├── .env.example            # Environment variables template
├── pyproject.toml          # Project configuration and dependencies
├── requirements.txt        # Python dependencies
├── CHANGELOG.md            # Version history
├── CONTRIBUTING.md         # Contribution guidelines
├── PROJECT_OVERVIEW.md     # Detailed project documentation
├── ROADMAP.md              # Future plans
└── HTB-MCP-Client-Banner.png # Project banner

需求

  • Python 3.10+
  • 使用API访问令牌的HackTheBox帐户
  • uv(推荐)或pip用于包装管理

安装

使用紫外线(推荐)

uv sync

使用pip

pip install -r requirements.txt

或者从pyproject.toml安装:

pip install -e .

配置

复制示例环境文件并添加您的凭据:

copy .env.example .env

然后编辑 .env 使用您的API证书:

API_ACCESS_TOKEN=your_htb_api_token_here
HTB_MCP_URL=https://mcp.hackthebox.ai/v1/ctf/mcp/

⚠️ 永远不要承诺你的 .env 文件。它列在 .gitignore.

用法

python htb_mcp_client.py

工作流程

  1. 选择事件 --选择活动的CTF事件
  2. 选择团队 --选择您的参与团队
  3. 选择挑战 --浏览并选择挑战
  4. 播放页面 --启动/停止容器,下载文件

更新日志

v1.0.0

  • 带有文本TUI界面的初始版本
  • 活动、团队和挑战选择屏幕
  • 使用参数模式显示工具执行
  • 使用Markdown格式显示结果
  • 导出功能(JSON/Markdown)
  • 跨会话的状态持久性

看 更改日志.md 查看详细的版本历史。

安全

  • 使用日志记录进行适当的异常处理(无无声故障)
  • 敏感凭据的环境变量
  • .env 文件被排除在版本控制之外
  • API令牌从未在输出中记录或暴露

贡献

看 贡献.md 关于贡献指南。

文档

许可证

麻省理工学院——弗雷德P3D