MCP 概述
TestNet 实现了 MCP(Model Context Protocol) 协议,允许 Claude Code、Cursor、Windsurf、Codex 等 AI 助手直接调用 TestNet 平台的能力。
MCP 是什么?
MCP 是 Anthropic 发布的开放标准协议,用于 AI 助手与外部系统的集成。通过 MCP,AI 助手可以:
- 调用工具(Tools):执行资产检索与录入、工作流编排、任务调度、HTTP 渗透测试与网络测绘等操作
- 访问资源(Resources):读取项目列表、工作流列表、工具列表等数据
- 使用提示词(Prompts):使用预定义的 Prompt 模板辅助资产分析与决策
TestNet 提供的 MCP 能力
平台向外部 AI 助手提供 14 个核心门面 MCP 工具、5 个 MCP 资源与 5 个提示词模板。全部门面工具常驻 tools/list 暴露;每个门面工具通过 action 参数覆盖一个完整业务域。历史 57 个原子工具名称保持向后兼容(仍可 tools/call 调用),但不再列入 tools/list。

14 个核心门面工具一览
| # | 工具名称 | 业务域 | 功能说明 |
|---|---|---|---|
| 1 | testnet_asset | 资产中台 | 8 类资产(company/domain/sub_domain/ip/port/web/api/vul)增删改查、全局搜索与自动标签匹配 |
| 2 | testnet_query_asset_graph | 资产拓扑 | 项目级资产拓扑关联图谱与风险统计(支持 statsOnly 概况模式) |
| 3 | testnet_project | 项目上下文 | 项目容器管理(同名幂等创建) |
| 4 | testnet_blackboard | 会话与决策链 | 渗透会话生命周期、决策树登记与状态黑板治理 |
| 5 | testnet_memory | 持久记忆 | 跨会话 Markdown 备忘录读写与分类管理 |
| 6 | testnet_search_tools | 工具检索 | 按自然语言意图检索扫描工具与工作流(扫描前必查) |
| 7 | testnet_workflow | 工作流编排 | DAG 工作流触发、跟踪、取消与模板检索 |
| 8 | testnet_task | 任务调度 | 单工具扫描派发、批量等待、日志流、大输出切片与中断 |
| 9 | testnet_get_system_status | 集群健康度 | 探针节点集群状态与任务队列就绪情况 |
| 10 | testnet_http | HTTP 渗透 | 精密发包留痕、响应差异比对、批量探活与响应体切片读取 |
| 11 | testnet_web_recon | Web 侦察 | 无头 DOM 解析、隐蔽参数挖掘与前端 JS 静态审计 |
| 12 | testnet_access_control | 凭据与越权 | 目标凭据托管(不回显明文)与多身份越权矩阵测试 |
| 13 | testnet_vuln | 漏洞治理 | 漏洞分级检索、研判状态流转与误报删除 |
| 14 | testnet_cyberspace | 空间测绘 | FOFA/Hunter/Quake/Shodan 等引擎暴露面检索与配额监控 |
5 个 MCP 资源
| 资源 URI | 内容 |
|---|---|
testnet://projects | 项目列表 |
testnet://workflows | 工作流列表 |
testnet://tools | 工具列表 |
testnet://engagements | 渗透测试会话列表 |
testnet://memory | AI Agent 记忆库备忘录 |
5 个 MCP 提示词模板
| 提示词名称 | 功能 |
|---|---|
asset_inventory_summary | 资产盘点摘要 |
workflow_selector | 工作流推荐选择器 |
vul_triage | 漏洞分级与处置建议 |
recon_plan | 资产侦察计划生成 |
mock_test_guide | Mock 测试编写指导 |
使用场景示例
场景 1:AI 助手全自动资产盘点与图谱分析
用户: 帮我分析项目 proj_001 下的所有对外暴露资产并检查是否存在未修复高危漏洞
Claude: 我来调用 TestNet 检索资产图谱与漏洞...
[调用 testnet_query_asset_graph(projectId="proj_001", statsOnly=true)]
[调用 testnet_vuln(action="search", projectId="proj_001", fixStatus="OPEN", severity="HIGH")]
项目当前拥有 2 个主域名、15 个子域名、8 个开放端口服务及 2 个待修复高危漏洞...场景 2:AI 助手执行自动化扫描工作流
用户: 对 example.com 执行全自动化域名资产侦察工作流
Claude: 好的,我先确认可用工作流,再为您触发...
[调用 testnet_search_tools(query="域名资产侦察")]
[调用 testnet_workflow(action="run", workflowId="domain-recon-pipeline", target="example.com", assetType="DOMAIN", projectId="proj_001")]
工作流已启动,生成运行 ID: run_abc123...场景 3:AI 助手辅助 HTTP 渗透测试与审计存证
用户: 测试目标接口 https://api.example.com/user/profile 是否存在越权 (IDOR)
Claude: 我将使用 TestNet HTTP 门面进行响应差异比对,并把结论沉淀到决策链...
[调用 testnet_http(action="diff", request_a={url: "https://api.example.com/user/profile?id=1001", headers: {Authorization: "Bearer token_a"}}, request_b={url: "https://api.example.com/user/profile?id=1002", headers: {Authorization: "Bearer token_a"}})]
[调用 testnet_blackboard(action="log_decision", phase="exploit", target="https://api.example.com/user/profile", rationale="越权读取成功,响应体包含用户敏感手机号与地址信息")]MCP 传输协议与端点
TestNet MCP 同时支持标准 SSE 流式长连接、JSON-RPC 2.0 传输 与 REST API 扩展:
| 端点 | 方法 | 协议与说明 |
|---|---|---|
/mcp/v1 或 /mcp/v1/sse | GET | MCP SSE 传输端点(标准 MCP 协议握手,下发 endpoint 事件) |
/mcp/v1/message | POST | MCP JSON-RPC 2.0 消息处理端点(处理 initialize, tools/list, tools/call 等标准请求) |
/mcp/v1/info | GET | 获取 MCP 服务配置、版本与状态 |
/mcp/v1/tools | GET | 获取工具定义列表(REST 方式) |
/mcp/v1/tools/call | POST | 调用指定工具(REST 方式) |
/mcp/v1/resources | GET | 获取资源列表 |
/mcp/v1/resources/read | GET | 读取资源内容 |
/mcp/v1/prompts | GET | 获取提示词列表 |
/mcp/v1/prompts/get | POST | 获取提示词渲染内容 |
/mcp/v1/skill | GET | 获取平台 Skill 规约内容 (Markdown) |
相关文档
- 与 Claude / Cursor 集成 — 配置 Claude Code、Cursor 或 Windsurf 使用 TestNet MCP
- AI 技能中心 — 管理注入 AI Agent 的技能知识卡
- AI 记忆管理 — 查看 AI 跨会话沉淀的持久记忆