Verify US contractor license + surety bond + insurance from official state data. MCP-native, agent-payable, pay-per-success. WA live, CA beta.
Two tools with clear, detailed descriptions and proper JSON Schema. verify_license has comprehensive documentation (450+ chars) explaining when to use it, what it returns, and supported jurisdictions. list_supported_jurisdictions is simpler but adequate. Both tools have typed input schemas with descriptions. However, output schemas are not documented, LLMs cannot see what fields to expect in responses. Error handling is present in code (MISSING_JURISDICTION, UNSUPPORTED_JURISDICTION, MISSING_QUERY) but not surfaced in tool descriptions. No parameter validation constraints (enums, ranges) are declared. Tool names follow verb_noun pattern correctly.
List all US states (jurisdictions) supported by this contractor license verification server, with their data source and availability status. Call this tool when: - You need to check whether a specific state is supported before calling verify_license - You want to display available options to the user - You need the authoritative data source URL for a jurisdiction Returns an array of jurisdictions with code, full name, source, and status (live or coming_soon).
Verify a contractor's current license or registration status before awarding work, signing a contract, or performing due diligence. Call this tool when you need to: - Confirm a contractor is currently licensed and in good standing - Check whether a license is active, expired, suspended, or revoked - Look up a contractor by license/registration number (preferred — exact match) or by business name (partial match, may return multiple) - Retrieve license type, effective and expiration dates from official government records Currently supports: WA (Washington State) via WA L&I open data (includes real bond + insurance data); CA (California) via CSLB Check-A-License. Call list_supported_jurisdictions first if unsure whether a state is supported. Returns structured JSON with found status, normalized status enum (active|expired|suspended|revoked|unknown), license type, dates, bond/insurance notes, and the raw source record. If business_name matches multiple contractors, a "matches" array (up to 10) is returned instead of a single result. At least one of license_number or business_name must be provided.
Output schemas not documented. LLMs cannot see what fields verify_license returns (e.g., status enum values, date formats, bond/insurance structure). Descriptions mention 'structured JSON' and 'matches array' but do not formally specify the response schema.
jurisdiction parameter lacks enum constraint. Description lists 'WA' and 'CA' as examples but does not declare them as the only valid values. LLMs may hallucinate other state codes.
Error handling guidance missing from tool descriptions. Code returns JSON errors (MISSING_JURISDICTION, UNSUPPORTED_JURISDICTION, MISSING_QUERY) but descriptions do not explain these error cases or recovery steps. LLMs cannot anticipate failures.
No parameter validation constraints documented. license_number and business_name lack format, length, or pattern guidance. Description says 'case-insensitive' but does not specify min/max length or allowed characters.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
list_supported_jurisdictions returns array structure not documented. Description says 'code, full name, source, and status' but does not specify field names, types, or example structure for LLM planning.