MCP安全扫描服务 - 使用LangGraph ReAct多智能体架构对MCP工具进行安全性评估,包括命令注入、SQL注入、敏感数据泄露、越权访问等攻击检测
This security scanning server has significant definition quality gaps. Tool names follow verb_noun convention (start_scan, get_scan_status, get_scan_result), which is positive. However, descriptions are in Chinese and lack critical clarification for LLM selection. Input schemas are present but incomplete, several parameters lack descriptions or have minimal ones. The 'token' parameter with a 'Bearer' format hint is problematic as it appears to accept credentials as input, violating secret-injection patterns. Overall, the tools are registered with basic schemas but fall short of production-grade definition quality due to missing parameter descriptions, unclear output schemas, and absence of error handling guidance.
获取扫描任务的最终结果。只有当任务状态为 completed 或 failed 时才有结果。
查询扫描任务的状态和进度。
启动 MCP 安全扫描任务(异步模式)。该工具会立即返回任务ID,扫描在后台执行。使用 get_scan_status 查询进度,使用 get_scan_result 获取结果。
Token/credential parameter accepted as input. The 'token' parameter in start_scan accepts authentication credentials (Bearer format) directly, violating the secret-injection pattern. Credentials in tool parameters are logged and traced, exposing secrets.
Output schemas completely undocumented. No tool documents what its response structure contains. LLMs cannot plan downstream calls or extract required fields (e.g., what is the structure of start_scan's returned task_id? What fields does get_scan_result return?).
No error handling guidance. Tools lack recovery instructions. If get_scan_result is called before the task completes, what error is returned? Can the agent retry? What should it do instead?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Enum parameters lack JSON Schema constraints. The 'mode' parameter (fast|full) and 'llm_provider' parameter (qwen|azure) are documented as strings with defaults, but lack explicit enum definitions in the schema. This invites hallucinated values from LLMs.
Descriptions in Chinese limit LLM accessibility. Tool descriptions and parameter descriptions are in Chinese, reducing clarity for LLMs trained primarily on English. International support is valuable, but English descriptions are required for baseline LLM compatibility.
Parameter 'url' lacks format constraints. The URL parameter in start_scan has no documentation of expected format, protocol (http|https), or constraints. What if an invalid URL is passed?
No tool-chaining metadata. The start_scan tool returns a task_id (inferred from description), but this is not documented. Downstream tools (get_scan_status, get_scan_result) depend on this field, but the chain is not formally declared in output schemas.