AI-Infra-Guard MCP 动态信息收集 Agent 提示词工程:基于 tools 描述的可追溯服务画像与攻击面预判 AI-Infra-Guard MCP 动态信息收集 Agent 提示词工程基于 tools 描述的可追溯服务画像与攻击面预判【免费下载链接】AI-Infra-GuardA full-stack AI Red Teaming platform securing AI ecosystems via Agent Scan, Skills Scan, MCP scan, AI Infra scan and LLM jailbreak evaluation.项目地址: https://gitcode.com/GitHub_Trending/ai/AI-Infra-Guard导读本文深入剖析 AI-Infra-Guard 仓库中 mcp-scan 模块的动态扫描提示词模板——MCP 服务动态信息收集提示词。该模板驱动 LLM Agent 对运行中的 MCPModel Context ProtocolServer 进行第一阶段的信息收集在不触碰副作用工具的前提下仅凭工具名称、描述与输入/输出形态产出一份可追溯、可复用的服务概览与安全风险面报告。读完本文你将掌握该提示词的完整设计逻辑、报告章节规范、只读探测边界以及它在四阶段动态分析流水线中的实际调用位置与运行方法可直接用于对自有 MCP Server 做安全评估的前置侦察。一、定位动态分析流水线的第一块基石mcp-scan 的 Agent 支持两类扫描路径对源码目录的静态扫描agent.scan以及针对运行中 MCP Server的动态分析agent.dynamic_analysis。动态分析的入口在 agent.py由四个阶段串联而成阶段模板职责1agents/dynamic/project_summary.md本文主角基于 tools 描述生成信息收集报告为后续阶段提供项目概览上下文2agents/dynamic/malicious_behaviour_testing.md恶意行为检测生成威胁清单3agents/dynamic/vulnerability_testing.md漏洞测试用例生成与执行4agents/dynamic/general_analyzing_prompt_template.md基于前序报告与调用记录做漏洞整理输出vulnXML从 agent.py 可以看到阶段 1 的输出被写入result_meta[readme]同时以ctx_key1信息收集报告/Info Collection Report传入阶段 2 与阶段 3作为后续测试与分析的上下文基底。也就是说信息收集质量直接决定后续威胁映射、测试用例生成与漏洞判定的上限——这是整条流水线先知己、后知彼的关键步骤。二、模板的核心设计原则四条不可逾越的边界提示词开篇即定义本阶段的角色与信息来源其设计可用四条原则概括1. 信息来源以 tools 描述为绝对主体。模板明确要求信息来源以 MCP server 的 tools 描述为主即系统提示词中提供的mcp_tools工具描述块Agent 必须从工具的名称、描述、输入/输出形态中提炼项目概览信息。这一约束来自动态分析的系统提示词 system_prompt.md其中声明{mcp_tools}占位符会被远程 MCP 服务器的工具描述填充且 Agent 可以通过call_mcp_tool工具调用这些远程工具。换言之信息收集的食材就是 MCP 服务器自己暴露的工具清单。2. 结论必须可追溯。对项目类型/用途/集成点/暴露面的任何结论都必须能在报告中引用具体工具名称作为依据。这从根本上杜绝了模型幻觉式推测保证了审计报告的可复核性。3. 最小化动态探测。如需补充信息只允许调用只读、低风险的探测型工具语义如 list / describe / get / read / status / health / ping并须记录调用与结果严禁调用任何可能产生副作用的工具写入/删除/执行/支付/转账/修改配置/部署等。这是安全评估的底线侦察阶段不允许对目标造成任何状态变更。4. 安全视角前置。仅基于工具能力与描述识别高风险能力文件读写、命令执行、网络访问、凭据处理、上下文共享等与潜在攻击面为后续审计提供线索。这一步与后续阶段的 MCP01-MCP10 风险框架形成呼应详见下文第五节。三、输出要求详解五章结构的信息收集报告模板规定输出为一份 Markdown 格式的MCP 服务信息收集报告要求读者对项目一无所知能快速理解服务能力与风险面。若输入数据中存在相关信息必须包含以下章节项目概述基础信息与项目定位项目类型、核心功能、业务价值及用户群体技术架构与实现方案高层次描述整体设计。技术分析编程语言与技术栈主要语言、框架、库和工具接口与能力清单基于 tools 描述汇总工具能力矩阵模板建议以表格列出tool_name、用途、输入、输出、是否只读代码风格指南代码规范、格式化工具或约定如 linter 配置数据处理与存储方案数据流、数据库或文件处理方式网络通信接口设计API、协议或外部集成点。安全评估权限需求与访问控制身份验证、授权机制数据处理安全性输入验证、加密措施网络暴露面分析外部接口风险潜在安全隐患基于代码模式识别的弱点安全注意事项从文档或注释中提取的明确安全提示。开发与运维细节测试说明测试策略、覆盖范围及测试文件位置功能模块清单主要组件、依赖关系及敏感操作识别点部署流程如何构建和发布项目。附加信息其他关键发现如项目特有的约定或异常结构。值得注意工具能力矩阵中的是否只读一列正是把安全视角落到结构化产出上的关键设计——它让高风险能力如文件读写、命令执行在报告里一目了然直接服务于后续阶段挑选探测目标。四、事实边界不可确认即标注无相关信息模板在注意事项中给出了三条刚性纪律报告内容必须严格基于输入数据本阶段优先引用工具名称与工具描述作为来源依据语言简洁、客观避免主观推测无法从 tools 描述得到的信息必须明确标注无相关信息/无法从 tools 描述确认只读探测需留痕如进行了只读探测调用必须在报告中列出调用的工具、参数、返回摘要与结论。这三条纪律共同构成了证据链闭环结论 → 工具依据补充信息 → 只读调用记录缺失信息 → 显式标注。它保证了信息收集报告既是画像也是可审计的案卷底稿避免把猜测当事实传递给下游漏洞检测阶段。五、源码佐证阶段如何被装配与执行动态分析的信息收集阶段由 ScanPipeline.execute_stage_dynamic 驱动其装配过程清晰地体现了提示词模板的地位模板经prompt_manager.load_template(agents/dynamic/project_summary)加载为 Agent 的 system instructionAgent 以BaseAgent实例化名称即信息收集 Agent携带主 LLM、专用 LLMthinking/coding与ToolDispatcher用户消息为请进行信息收集进行MCP动态扫描随后追加由阶段 2/3 报告构成的上下文数据阶段 4 使用 general_analyzing_prompt_template.md 中的MCP 特定风险评估框架对最终漏洞归类包含 MCP01–MCP10 十类 MCP 特定风险Token 泄露、权限蔓延、工具投毒、供应链攻击、命令注入、提示注入、认证授权不足、审计缺失、影子服务器、上下文过度共享外加 Name Confusion、Rug Pull、Tool Shadowing 三类补充风险。信息收集阶段识别出的高风险能力文件读写、命令执行等正是这些风险维度在工具层面的落点。与之配合远程工具的执行依赖 mcp_tool 工具模块 与ToolDispatcher其构造参数mcp_server_url/mcp_headers在 agent.py 中传入后者负责把 Agent 生成的call_mcp_tool调用转发到目标 MCP 服务器并取回结果。六、实战如何运行动态信息收集扫描动态分析模式由 main.py 中的--server_url参数启用当该参数存在时Agent 调用dynamic_analysis(prompt)而非静态scan()。运行示例参见 README.md# 对运行在 http://localhost:8000/sse 的 MCP Server 做动态分析 python main.py \ --server_url http://localhost:8000/sse \ --prompt Test tool poisoning vulnerabilities常用配套参数参数说明默认值--server_url远程 MCP Server 地址SSE/流式端点启用动态分析None--header自定义 HTTP 头key:value可多次指定用于携带鉴权信息[]--model/-mLLM 模型名deepseek/deepseek-v3.2-exp--api_key/-kAPI Key缺省时回退到环境变量LLM_API_KEY/OPENAI_API_KEY/OPENROUTER_API_KEY来自环境变量--language报告语言zh/enzh-o FILE结果保存为 JSON 文件None配置优先级为CLI 参数 环境变量 代码默认值。建议配合--header Authorization: Bearer xxx传递目标 MCP 服务的鉴权头若目标服务无鉴权则信息收集报告中的权限需求与访问控制章节可直接标注无法从 tools 描述确认这本身就是一个值得记录的安全观察点。七、落地建议与进阶用法把报告当作下游测试的输入清单信息收集报告中的工具能力矩阵含只读标识应直接映射到阶段 3 的威胁 → 工具映射threat-to-tool mapping识别出能读取 secrets/config、返回用户可控文本、执行命令、拉取远程内容或操纵上下文的工具作为测试用例的优先目标。善用无相关信息标注模板刻意允许不确定性显式存在这比硬凑的推测更有利于下游漏洞判定的准确性阶段 4 的严格过滤规则排除正常业务功能、框架默认行为、无实际危害项也依赖上游信息的真实性。保持探测只读任何绕过最小化探测约束的行为如调用写/执行类工具做验证都会污染目标状态应通过--header与任务约束双重控制如需更激进的验证应交给后续恶意行为检测阶段在受控沙箱内完成。自定义场景main.py支持-p/--prompt注入自定义扫描提示词可在不修改模板的前提下追加聚焦指令例如重点识别文件读写类工具的暴露面模板本身的章节骨架与纪律约束仍然生效。通过工具画像 → 能力矩阵 → 攻击面线索这一层层收敛的信息漏斗MCP 动态信息收集提示词模板让安全评估在零副作用的前提下完成对目标的全面摸底是 AI-Infra-Guard 对 MCP 生态做系统性风险评估的第一道工序。【免费下载链接】AI-Infra-GuardA full-stack AI Red Teaming platform securing AI ecosystems via Agent Scan, Skills Scan, MCP scan, AI Infra scan and LLM jailbreak evaluation.项目地址: https://gitcode.com/GitHub_Trending/ai/AI-Infra-Guard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考