Passive, static scanner of AI-agent readiness signals. Fetches public documents (robots.txt, sitemaps, llms.txt, JSON-LD, MCP/OAuth/UCP discovery files) and analyzes them for agent readiness without running a browser, calling MCP endpoints, or authenticating.
Five tools with complete schemas and descriptions. Naming follows verb_noun convention (scan_site, get_core_score, list_checks, explain_check, get_finding). Descriptions are adequate (50-150 chars) and explain purpose clearly. All parameters have types and descriptions. However, descriptions lack actionable context for LLM selection (e.g., when to call scan_site vs get_core_score), parameter constraints are minimal (no enums, ranges, or format specs), and output schemas are not documented. Error handling guidance is absent. Security posture is good (READ_ONLY classification, no secrets exposed), but composition could be tighter, get_finding requires a prior scan_id, creating implicit state dependency not documented in descriptions.
Passive/static only. Explain one check: why it matters, limitations, Cloud extension, references.
Passive/static only. Run the scan and return only the Static Signal Score summary.
Passive/static only. Return one finding from a scan this server already ran (no re-scan).
Passive/static only. List every check in the registry with category, weight, profiles and experimental flag.
Passive/static only. Run Scovant Core's checks against one URL. format: findings (default — non-PASS findings with evidence, PASS ids only) | summary | json (full report) | markdown. allow_private_networks lets a localhost/private entry host be scanned (that host only).
Output schemas not documented. LLMs cannot plan downstream operations or extract fields without knowing response structure (e.g., what fields does scan_site return? Is it a list or object? What are the field names and types?).
Parameter constraints missing. 'profile' accepts 'auto' (default) but no enum of valid profiles documented. 'format' accepts 'findings|summary|json|markdown' but not declared as enum. LLMs will hallucinate invalid values.
Descriptions lack LLM-optimized context. No guidance on WHEN to call each tool or how they differ. 'Run Scovant Core's checks' is functional but doesn't explain: Is this for security? Performance? Accessibility? When should I call get_core_score instead of scan_site?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Implicit state dependency in get_finding. Requires scan_id from a prior scan_site call, but this dependency is not documented in the description. LLMs may attempt to call get_finding without a valid scan_id, causing failures.
No error handling guidance. Descriptions do not explain what errors are possible, how to recover, or what to try next. E.g., if scan_site fails on a private network, should the LLM retry with allow_private_networks=true?