BuilderVet: NSW and QLD builder licence and risk history
Server Details
BuilderVet: is this NSW or QLD builder licensed, insolvent or disciplined? 290k+ official records.
- Status
- Healthy
- Uptime
- 100.0% over 69 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 5 tools
search_builders, get_builder_risk and get_builder_coverage each target a clearly distinct thing (find entity, read licence/flags, read check states). The one weak boundary is get_builder_timeline vs get_builder_changes, which both return the same newest-first event feed; the descriptions mitigate this by stating timeline is the first 50 rows and changes pages further, but an agent can still reasonably pick the wrong one.
Four tools follow a clean get_builder_<noun> pattern and the search tool follows verb_noun (search_builders), so the whole surface is a predictable verb_noun convention with no style mixing. Names are readable and map directly to the resource they touch.
Five tools is well-scoped for a read-only licence/risk lookup service and none feels like filler. The only knock is that timeline and changes are two tools for one feed, which is mild redundancy rather than bloat.
The surface covers the full read path: find a builder, read identity/licences/flags, read per-source check coverage, and walk the dated event history. It is deliberately read-only (no monitoring enablement or re-runs) which is disclosed, but there is no batch or multi-builder lookup for comparing entities.
Available Tools
5 toolsget_builder_changesARead-onlyInspect
Page the public dated event timeline, newest event date first. This is recorded history, not private monitoring notifications or a since-last-run feed. Default 25, maximum 100 events. Pass nextCursor unchanged; restart without a cursor if the timeline changed. Public API response is capped at 500 rows.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Builder slug from search_builders. | |
| limit | No | ||
| cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint=false), and the description still adds real behavior: default 25/max 100 page size, newest-first ordering, the 500-row public API cap, and cursor stability rules ('pass nextCursor unchanged; restart without a cursor if the timeline changed'). It does not say how the caller detects more pages or what happens with an expired/invalid cursor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six tight sentences, front-loaded with what the tool is, then ordering, semantics of contrast, pagination, and the API cap. Every sentence carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated list tool with no output schema, the description covers ordering, page size, cursor lifecycle, and the row cap, which is most of what an agent needs. It leaves unstated whether the response exposes a next-page cursor and what the event records contain, so completeness is strong but not airtight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only slug is documented), so the description must compensate, and it does for cursor: it explains to pass the cursor unchanged and to restart without one if the timeline changed. It also restates limit bounds (25/100) that the schema already enforces; the parameter name mismatch ('nextCursor' in text vs 'cursor' in schema) is a minor friction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('page the public dated event timeline') plus ordering ('newest event date first'), so the agent knows exactly what is returned. It differentiates the resource from recording/notification feeds ('not private monitoring notifications or a since-last-run feed'), but never distinguishes itself from the sibling get_builder_timeline, which sounds closely related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context of use (retrieving historical recorded events rather than live/since-last-run notifications) and an explicit exclusion of what this tool is not. It stops short of naming the sibling tools or stating when an agent should prefer get_builder_timeline or search_builders over this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_builder_coverageARead-onlyInspect
Read public per-source check states, result details, last attempt/success dates, next due dates and source URLs. This reads recorded state; it does not rerun checks or enable monitoring. Unchecked, stale and unavailable are gaps, not clear results.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Builder slug from search_builders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds real value beyond them: it clarifies that the tool reads recorded state rather than rerunning checks, and it warns that gap states are not positive results — an interpretive nuance annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the returned data, then the behavioral boundary, then the interpretation caveat. No filler, no repetition of the title or annotations, and each sentence changes what the agent knows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return payload, and it does so field-by-field while also flagging that absence of a check is not a passing check. For a one-parameter read tool this is complete enough to invoke and interpret correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter and schema description coverage is 100%; the schema already explains that slug is the 'Builder slug from search_builders.' The description adds no further meaning about the slug (source of the value, format, lookup behavior), so the baseline 3 applies when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and enumerates the exact resource contents (per-source check states, result details, attempt/success dates, next due dates, source URLs), so an agent knows precisely what comes back. It does not explicitly name or contrast itself with siblings like get_builder_risk or get_builder_timeline, so sibling differentiation is only implicit via the 'coverage/check state' scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear negative boundary: 'This reads recorded state; it does not rerun checks or enable monitoring,' which tells the agent not to expect any triggering behavior. It also tells the agent how to read ambiguous results ('Unchecked, stale and unavailable are gaps, not clear results'). It stops short of naming an alternative tool or stating a positive 'use this when' condition, so it does not reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_builder_riskARead-onlyInspect
Read one builder's public identity, licences, company status and stored source flags. Facts only: flags are not a safety rating, and missing records are not a clearance. Use get_builder_coverage for check dates and gaps.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Builder slug from search_builders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuine interpretive context that annotations cannot: flags are not a safety rating and missing records are not a clearance, which prevents a real misreading of the data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler: the resource contents come first, then the caveat and the alternative. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned contents and warns about the two most likely misinterpretations of absent/flagged data. Return format and structure remain unspecified, a minor gap for a single-record read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and schema description coverage is 100% (the slug is documented as coming from search_builders, with a pattern). The description adds no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Read') plus a clearly enumerated resource ('one builder's public identity, licences, company status and stored source flags'). It also names the sibling get_builder_coverage, so an agent can distinguish this tool without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to get_builder_coverage for check dates and gaps, which is real when-to-use guidance. It stops short of stating exclusions for the other siblings (changes, timeline, search), so it is clear context rather than complete routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_builder_timelineARead-onlyInspect
Read the first 50 public timeline events, newest event date first. Each event retains its source, occurrence/detection dates and archive flag. Use get_builder_changes to page further; the public API holds at most 500 timeline rows in this response.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Builder slug from search_builders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false, destructiveHint=false). The description adds real behavioral detail beyond them: a hard 50-event cap on the first response, newest-first ordering, a 500-row ceiling for the public API, and the fields each event retains. It stops short of error or rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler. The result cap and ordering come first, then the retained fields, then the routing hint, which is the right front-loading for a list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by describing cardinality limits, ordering, and returned fields. It does not explain what 'public' excludes or how failures surface, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single slug parameter is documented as coming from search_builders, so the schema carries the load. The description adds nothing about the parameter beyond implying the returned events belong to that builder, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Read) plus resource (public timeline events) with an explicit scope: first 50, newest event date first. It also names the sibling get_builder_changes as the paging path, so an agent can separate it from the other builder tools without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent when to reach for another tool (use get_builder_changes to page further) and constrains the initial call to the first 50 events. It does not, however, say when this tool is the wrong choice relative to get_builder_risk, get_builder_coverage, or get_builder_changes for non-paging use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_buildersARead-onlyInspect
Find NSW and Queensland builders by name, ABN, ACN or licence number (NSW or QBCC), optionally within a postcode. Resolve the legal entity before reading its record. Try the legal company name if a trading name misses.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| postcode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior: the jurisdictional scope (NSW + QLD, QLD via QBCC licence), the workflow ordering relative to record reads, and the trading-name fallback heuristic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each doing distinct work: scope/inputs first, then workflow placement, then the retry tip. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a two-parameter search with no output schema: inputs, jurisdiction, sequencing, and a fallback strategy are all covered, and return values need not be explained. Missing only minor operational detail such as result limits or ambiguity handling when a query matches multiple builders.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the load and does it well: it enumerates the identifier types accepted by `query` (name, ABN, ACN, NSW/QBCC licence) and marks `postcode` as an optional narrowing filter. It omits expected identifier formats and the length bounds enforced by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and resource (NSW and Queensland builders) plus the exact identity keys accepted (name, ABN, ACN, NSW/QBCC licence number). Combined with the sibling names (get_builder_*), it is clear this is the lookup/entry-point tool that precedes record reads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Resolve the legal entity before reading its record" and "Try the legal company name if a trading name misses" give real when-to-use and retry guidance. It stops short of explicitly naming the sibling tools to hand off to (get_builder_risk, get_builder_timeline, etc.), so it is clear context rather than a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Added
get_builder_changes - Added
get_builder_coverage - Changed
get_builder_risk3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / slug / descriptionPrevious value: -"Builder slug from search_builders, e.g. 'acme-building-pty-ltd-1a2b'"New value: +"Builder slug from search_builders." - added
Input schema / properties / slug / patternAdded value: +"^[a-z0-9-]{1,120}$"
- Changed
get_builder_timeline3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / slug / descriptionPrevious value: -"Builder slug from search_builders"New value: +"Builder slug from search_builders." - added
Input schema / properties / slug / patternAdded value: +"^[a-z0-9-]{1,120}$"
- Changed
search_builders5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / postcode / descriptionRemoved value: -"Optional NSW postcode filter, e.g. '2099'" - added
Input schema / properties / postcode / patternAdded value: +"^[0-9]{4}$" - removed
Input schema / properties / query / descriptionRemoved value: -"Builder or company name, e.g. 'Acme Building'" - added
Input schema / properties / query / maxLengthAdded value: +160
3 tool updates
- First observed
get_builder_risk - First observed
get_builder_timeline - First observed
search_builders
Related MCP Connectors
Did this contractor's licence change? Observed lapses and reinstatements, not a snapshot.
Verify ANZ businesses against government registers. Surfaces cross-jurisdictional findings.
Official US and UK records: licenses, NPI, carriers, contracts, inspections, permits, house prices
Confirm a US business is real and find who controls it. 32.6M official registry records.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.422 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and procurement systems to verify contractor licenses against official state boards, search contractors by trade and location, audit workers' comp, surety bonds and OSHA safety records, and check SAM.gov federal debarment status. It returns a deterministic ALLOW/WARN/BLOCK compliance decision plus registry health metrics for US trade contractors.MIT
- AlicenseNot gradedqualityDmaintenanceVerify Australian and New Zealand businesses against government registers via any MCP-compatible AI agent. Returns registration status, directors, licences, trading names, and a three-tier risk assessment (CLEAR / ADVISORY / FLAGS_FOUND) that surfaces regulatory findings across jurisdictions — including bans, disqualifications, and insolvencies that may not appear in any single register.MIT
- AlicenseAqualityCmaintenanceEnables listing and verifying licensed contractors across California, Texas, Washington, Oregon, and Louisiana by state, trade, city, county, license number, or business name, returning license status, expiration, classifications, owners, address, and phone.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.