使用说明
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
工作流程
- 选择事件 --选择活动的CTF事件
- 选择团队 --选择您的参与团队
- 选择挑战 --浏览并选择挑战
- 播放页面 --启动/停止容器,下载文件
更新日志
v1.0.0
- 带有文本TUI界面的初始版本
- 活动、团队和挑战选择屏幕
- 使用参数模式显示工具执行
- 使用Markdown格式显示结果
- 导出功能(JSON/Markdown)
- 跨会话的状态持久性
看 更改日志.md 查看详细的版本历史。
安全
- 使用日志记录进行适当的异常处理(无无声故障)
- 敏感凭据的环境变量
.env文件被排除在版本控制之外- API令牌从未在输出中记录或暴露
贡献
看 贡献.md 关于贡献指南。
文档
- 项目_奥维德.md -详细的技术文档
- ROADMAP.md -未来发展规划
- 更改日志.md -版本历史
许可证
麻省理工学院——弗雷德P3D
