关于 Darkmoon
Darkmoon 是让客户端操作自托管 Darkmoon Pro 仪表板、执行自动化渗透测试的 MCP 服务。它支持授权测试及只读访问活动和发现项;需要 Darkmoon Pro,单独的开源 CLI 不适用。
主要功能
- 01启动渗透测试任务
- 02查询任务状态
- 03列出仪表板中的活动
- 04读取活动发现项及严重性统计
适用场景
- 01对授权目标启动安全评估
- 02检查测试任务是否完成
- 03查看仪表板可见的活动
- 04检查发现项及严重性统计
MCP 相关
该 MCP 服务提供启动和查询渗透测试,以及读取活动和发现项的工具。它连接用户指定的自托管 Darkmoon Pro Dashboard API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @darkmoon_ai/mcp-serverDARKMOON_BASE_URLBase URL of your self-hosted Darkmoon Pro Dashboard APIDARKMOON_USERNAMEDashboard userDARKMOON_PASSWORD密钥Dashboard passwordDARKMOON_TOKEN密钥Pre-issued JWT, alternative to username/password本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
@darkmoon_ai/mcp-server
一种 模型上下文协议 服务,可让 MCP 客户端(Claude Desktop、Goose、Continue、LibreChat 等)操控 Darkmoon,这是一个开源(GPL-3.0)的自主 AI 渗透测试平台。
需要 Darkmoon Pro
Darkmoon 引擎和 CLI 为开源项目。此服务会连接 Darkmoon Dashboard API,该 API 属于 Darkmoon Pro,且始终需要自托管:没有公开托管的端点,因此你需要提供自己实例的基础 URL。仅使用开源 CLI 时无法运行此服务。
工具
| 工具 | 描述 |
|---|---|
run_pentest | 针对一个获准的目标启动自主渗透测试,并返回 run_id |
get_run_status | 根据运行日志报告某次运行的状态:running、completed、error 或 unknown |
list_campaigns | 列出仪表板用户可见的活动(只读) |
get_findings | 返回某个活动的漏洞和严重程度统计(只读) |
仅针对你拥有或获得明确书面授权进行测试的系统运行评估。发现结果可能包含误报,必须由合格的人员审核。
配置
| 变量 | 描述 |
|---|---|
DARKMOON_BASE_URL | Darkmoon Pro Dashboard API 的基础 URL(必需) |
DARKMOON_USERNAME、DARKMOON_PASSWORD | 仪表板凭据;每次调用都会请求 JWT,且不会缓存 |
DARKMOON_TOKEN | 用户名/密码的替代方式:预先签发的 JWT |
DARKMOON_TIMEOUT_MS | 可选的单次请求超时时间,默认值为 60000 |
客户端配置
Claude Desktop(claude_desktop_config.json)、Continue 和 LibreChat 使用相同的 mcpServers 格式:
{
"mcpServers": {
"darkmoon": {
"command": "npx",
"args": ["-y", "@darkmoon_ai/mcp-server"],
"env": {
"DARKMOON_BASE_URL": "https://darkmoon.example.internal",
"DARKMOON_USERNAME": "your-dashboard-user",
"DARKMOON_PASSWORD": "your-dashboard-password"
}
}
}
}
Goose(~/.config/goose/config.yaml):
extensions:
darkmoon:
type: stdio
enabled: true
name: darkmoon
cmd: npx
args: ["-y", "@darkmoon_ai/mcp-server"]
envs:
DARKMOON_BASE_URL: https://darkmoon.example.internal
DARKMOON_USERNAME: your-dashboard-user
DARKMOON_PASSWORD: your-dashboard-password
Continue(.continue/mcpServers/darkmoon.yaml):
name: Darkmoon
version: 0.1.0
schema: v1
mcpServers:
- name: darkmoon
command: npx
args: ["-y", "@darkmoon_ai/mcp-server"]
env:
DARKMOON_BASE_URL: https://darkmoon.example.internal
DARKMOON_USERNAME: your-dashboard-user
DARKMOON_PASSWORD: your-dashboard-password
开发
npm install
npm run build
npm test # mocked Dashboard API, in-memory MCP client and a real stdio process
许可证
GPL-3.0-only,与 Darkmoon 相同。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。