{
  "markdown": "# Contractor License + Bond + Insurance Verify (MCP, agent-payable)\n\nThe only MCP-native license check that returns official SURETY BOND + INSURANCE from state data — not just active/inactive status. Pay-per-success: $0.03 full result, $0.01 status-only, FREE on a miss. WA live (official L&I), CA beta (CSLB).\n\nTools: `verify_license`, `list_supported_jurisdictions`.\n\n## Quickstart\n\n```json\n// Call\n{ \"tool\": \"verify_license\", \"jurisdiction\": \"WA\", \"license_number\": \"ECOSTSC758NN\" }\n```\n\n```json\n// Response (abridged)\n{\n  \"found\": true,\n  \"result\": {\n    \"status\": \"active\",\n    \"bonded\":  { \"is_bonded\": true, \"details\": \"Surety: NORTH RIVER INSURANCE COMPANY THE; Amount: $30,000\" },\n    \"insured\": { \"has_insurance\": true, \"details\": \"Carrier: State National Ins Co Inc; Coverage: $1,000,000\" }\n  }\n}\n```\n\n| Result | Price |\n|---|---|\n| Full (status + bond + insurance) | $0.03 |\n| Status-only (no bond/insurance match, or `statusOnly: true`) | $0.01 |\n| Miss (`found: false`) | FREE |\n\n---\n\n## Jurisdictions\n\n| State | Status | Source | Bond + Insurance |\n|---|---|---|---|\n| **WA** | ✅ Live | WA L&I open data (data.wa.gov) | ✅ Real data (bzff-4fmt + ciwg-agsx datasets) |\n| **CA** | ⚠️ Beta | CSLB HTML (cslb.ca.gov) | ✅ Parsed when CSLB is up |\n\n**Washington is the reliable, production-ready jurisdiction.** Official WA L&I open data is served via Socrata JSON — no scraping, no rate limits, bond and insurance data included from dedicated datasets.\n\n**California is beta.** CSLB does not publish an open API; the provider fetches the HTML detail page directly. CSLB rate-limits or 503s automated requests intermittently. When unavailable, `verify_license` returns a clean `SESSION_ERROR` — **you are never charged on source failures.** Do not rely on CA for production workflows until a stable server-side CSLB run is confirmed.\n\n---\n\n## Apify Actor\n\n**Agentic-payments eligible** — pay-per-event pricing + limited permissions + no Standby mode.\n\n### Pricing\n\n| Event | Price |\n|---|---|\n| `license-verification` | **$0.03** — full result (status + bond + insurance) |\n| `status-only-result` | **$0.01** — status found, no bond/insurance match (or `statusOnly: true`) |\n\nCharged **only on `found: true`**. Validation errors, not-found results, and source failures are not charged.\n\n### Input\n\n```json\n{\n  \"jurisdiction\": \"WA\",\n  \"license_number\": \"ECOSTSC758NN\"\n}\n```\n\n| Field | Type | Required | Notes |\n|---|---|---|---|\n| `jurisdiction` | `\"WA\" \\| \"CA\"` | ✅ | WA = live; CA = beta |\n| `license_number` | string | one of ↓ | WA: alphanumeric. CA: numeric, ≤8 digits |\n| `business_name` | string | one of ↑ | WA only. Partial match, may return `matches[]` |\n\n### Output (default dataset)\n\n```json\n{\n  \"found\": true,\n  \"jurisdiction\": \"WA\",\n  \"query\": { \"license_number\": \"ECOSTSC758NN\" },\n  \"result\": {\n    \"license_number\": \"ECOSTSC758NN\",\n    \"business_name\": \"!ECO STAR C G CONSTRUCTION LLC\",\n    \"status\": \"active\",\n    \"license_type\": \"CONSTRUCTION CONTRACTOR\",\n    \"bonded\": {\n      \"is_bonded\": true,\n      \"details\": \"Surety: NORTH RIVER INSURANCE COMPANY THE; Bond #: 46CF842686; Amount: $30,000; Effective: 2025-08-05; Expires: Until Canceled\"\n    },\n    \"insured\": {\n      \"has_insurance\": true,\n      \"details\": \"Carrier: State National Ins Co Inc; Policy: NXT9PTHTLT-01-GL; Coverage: $1,000,000; Agency: Next Insurance Inc; Effective: 2026-06-12; Expires: 2027-06-12\"\n    },\n    \"effective_date\": \"2025-08-15\",\n    \"expiration_date\": \"2027-08-15\"\n  },\n  \"source_url\": \"https://data.wa.gov/resource/m8qx-ubtq\",\n  \"retrieved_at\": \"2026-06-26T01:34:37.598Z\",\n  \"raw\": { ... }\n}\n```\n\n`status` is always one of: `active` | `expired` | `suspended` | `revoked` | `unknown`.\n\nOn failure: `{ \"found\": false, \"error\": \"SESSION_ERROR|NETWORK_ERROR|...\", \"message\": \"...\" }` — never a crash, never a charge.\n\n### Local test\n\n```bash\nnpm install\nnpm run build\necho '{\"jurisdiction\":\"WA\",\"license_number\":\"ECOSTSC758NN\"}' \\\n  > storage/key_value_stores/default/INPUT.json\nnpx apify run\n```\n\n---\n\n## MCP Server (stdio)\n\nFor use with Claude Desktop, Smithery, or any MCP-compatible agent.\n\n### Tools\n\n**`verify_license`** — verify a contractor's license status.\n- `jurisdiction` (required): `\"WA\"` or `\"CA\"`\n- `license_number` and/or `business_name` (at least one required)\n\n**`list_supported_jurisdictions`** — list all states with their status and data source.\n\n### Config (Claude Desktop)\n\n```json\n{\n  \"mcpServers\": {\n    \"license-verify\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/license-verify-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\n### Run\n\n```bash\nnpm install && npm run build\nnpm run start:mcp   # stdio MCP server\nnpm run smoke       # hit real WA + CA endpoints, must be 8/8 PASS\n```\n\n---\n\n## Adding a State\n\n1. Create `src/providers/<CODE>.ts` implementing the `Provider` interface (`{ info, verify() }`)\n2. Register it in `src/providers/index.ts`\n\nNo other changes needed in server or Actor.\n\n## License\n\nMIT\n",
  "bytes": 4950,
  "sha": "7efcbc69c9529844e976f7771e921d964e7336fe1aac74b3eccab38b0fc5ffd7",
  "repo_slug": "lmaniraruta/license-verify-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_lmaniraruta_license_verify_mcp_c274da0d/readme"
}