Python SDK, MCP server, and CLI for Australian heavy vehicle compliance — fatigue rules, mass limits, dimensions, chain of responsibility, and more.
12 tools with consistent naming (verb_noun pattern: get_*, search_*, nhvr_ prefix). All have descriptions (avg 95 chars, within 10-1024 range). Input schemas present with types and descriptions for all parameters. However, output schemas are undocumented, tools return formatted strings (markdown/json) with no structured field definitions. Parameter descriptions are minimal (avg 45 chars) and lack constraint details (e.g., valid enum values for 'scheme', 'breach_type', 'role', 'module', 'permit_type'). No error handling guidance visible. No tool annotations (readOnlyHint, etc.). Composition is sound, each tool has one responsibility. Missing: output schema documentation, parameter constraints as enums, error recovery guidance.
NHVAS and HVA accreditation guidance, optionally filtered by module.
Breach severity categories, optionally filtered by breach type (mass, dimension, loading, fatigue, speed).
Chain of Responsibility duties, optionally filtered by role.
Heavy vehicle dimension limits (height, width, length, overhang).
Work and rest hour requirements by scheme (standard, bfm, afm).
Higher Mass Limits eligibility, limits, and application guidance.
General mass limits, with optional Higher Mass Limits data.
Output schemas undocumented. All tools return formatted strings (markdown or json) with no structured field definitions. LLMs cannot plan downstream tool calls or extract specific fields without knowing response structure.
Parameter constraints missing. 'scheme' accepts 'standard|bfm|afm' but no enum defined. 'breach_type' accepts 'mass|dimension|loading|fatigue|speed' but undocumented. 'role', 'module', 'permit_type' have no valid value guidance. LLMs will hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Access permit guidance, optionally filtered by permit type.
Heavy vehicle speed limits and speed limiter rules.
Scrape a specific nhvr.gov.au page.
Natural-language NHVR topic search with live scraping and static fallback.
Vehicle registration lookup. Monitored by NHVR; intended for operator fleet management, not bulk extracts.
No error handling guidance. Tools may fail (e.g., vehicle not found, scrape timeout, invalid URL) but no recovery hints provided. LLMs cannot determine if errors are retryable or require user intervention.
No tool annotations. All tools are read-only but lack readOnlyHint annotation. This prevents clients from optimizing caching, retry logic, or permission checks.
Parameter descriptions too brief. Average 45 chars; baseline is 72. E.g., 'Output format (markdown or json)' repeated 12 times without explaining when to use each format or what fields appear in each.