AI-powered system architecture analysis platform based on LLM with MCP client support for application data collection
Server has 8 tools with basic schemas and descriptions in Chinese. All tools have input schemas with type definitions and descriptions present. However, descriptions are minimal (10-30 chars), parameter descriptions lack actionable detail, and output schemas are not documented. No tool annotations (readOnlyHint/destructiveHint). Error handling exists but lacks recovery guidance. Tool naming follows verb_noun pattern (start_, get_, cancel_) which is good, but descriptions are too terse to guide LLM selection effectively. No evidence of idempotency guarantees or composition patterns.
取消正在执行的架构分析任务
下载指定任务的架构分析报告
获取当前系统配置(调试用途)
获取已完成架构分析任务的详细结果
查询架构分析任务的执行状态和进度
获取所有任务列表
检查服务和组件的健康状态
开始架构分析任务
Descriptions are too terse (10-30 chars). LLMs cannot determine when to select each tool or distinguish between similar tools (e.g., get_task_status vs get_task_result vs get_tasks). Descriptions must be 50-200 chars and answer: what does it do, when to use it, what does it return?
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields. TaskStatus, TaskResultResponse, HealthCheckResponse structures are defined in models.py but not visible in tool definitions.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine which tools are safe to retry or have side effects. start_architecture_analysis and cancel_task are destructive but unmarked.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Error responses lack recovery guidance. Exception handlers return generic error objects without actionable next steps. E.g., 'task not found' should suggest 'call get_tasks() to list available tasks'.
Parameter descriptions lack format/constraint details. E.g., 'task_id' has no description of format (UUID? alphanumeric?). 'report_format' enum is present but description does not explain when to use each format or what each produces.