Skip to main content
Glama
lmaniraruta

license-verify-mcp

by lmaniraruta

verify_license

Verify a contractor's license status by checking if it is active, expired, suspended, or revoked before awarding work. Uses license number or business name for WA and CA.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jurisdictionYesTwo-letter US state code. Supported: 'WA' (Washington, via WA L&I open data), 'CA' (California, via CSLB). Call list_supported_jurisdictions to see all options.
business_nameNoBusiness name or partial business name to search for. Case-insensitive partial match. May return multiple results if ambiguous — check the 'matches' array in that case.
license_numberNoContractor license or registration number to look up (e.g. 'ECOSTSC758NN'). Case-insensitive exact match. Preferred over business_name for unambiguous results.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries behavioral disclosure. It states the tool is read-only, returns structured JSON with status enum, details on bond/insurance, and explains the matches array for ambiguous business names. This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points (hyphens in text), front-loaded with the main purpose, and every sentence adds unique value. It is concise but covers all necessary aspects without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains return values (structured JSON with status, dates, bond info, raw source, and matches array). It covers jurisdiction support and input requirements. Minor deduction for not detailing every possible field, but sufficient for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value beyond schema: it explains preference for license_number, case-insensitive partial matching for business_name, and mentions that business_name may return multiple results. This extra guidance justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: verifying a contractor's license/registration status before awarding work. It specifies the verb 'verify', the resource 'license/registration', and includes context about when to use it. It also distinguishes from the sibling tool list_supported_jurisdictions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use scenarios (confirm licensing, check status, look up by number/name) and when-not-to (calling list_supported_jurisdictions first). It also clarifies behaviors like partial vs exact matching and multiple matches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lmaniraruta/license-verify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server