Free contractor-license checks from official state records; a no-match never proves unlicensed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Looks up a contractor's public credential in indexed state and local licensing records. Licenses, registrations and bond records mean different things. Each record carries a credential object (kind, label, note): kind is license, registration, business_license or bond when the source makes that clear; otherwise it is the generic "credential", and the note says what to verify with the issuing agency. The set of covered jurisdictions changes as sources are added, so this description does not list it. Inputs: a record number (license) or business name, with optional jurisdiction and exact listed city, or an entity_id from an earlier result, which selects that one record. Results: match (the credential record with its status and provenance); candidates (several records fit; each page holds up to 20 rows, total_candidates is the full count, offset pages through the rest, and entity_id selects one; a field with the same value on every row of a page is given once, in same_for_all_rows, and each row's entity block omits what the row already states); no_match_in_index (the index holds no record for that input, which does not mean the contractor is unlicensed; for a search across all jurisdictions, the message states how many covered jurisdictions were searched); or jurisdiction_not_covered (the requested jurisdiction is outside the index, with an official pointer URL where one is on file; the response message states exactly what the link is, or that none is on file, and for some jurisdictions the link is a consumer-protection or licensing-board page, not a license lookup). Each record carries as_of_date: the publisher's own last-updated date where we have read one, else the day of our fetch. The freshness field on a match, and freshness_notes on candidates and on a no-match with a jurisdiction, state when a source's copy is behind its normal update schedule, slow to refresh by design, or still on its first full pass, with a plain note, the dates, and the issuing body's own lookup.
Optional exact record-city filter, case-insensitive. Filters before pagination; does not represent service area or silently drop terms.
Business name, e.g. "Bayside Plumbing"
Pagination offset into the candidates list, a whole number, default 0. Each page holds up to 20 candidates; total_candidates in a candidates result is the full count. An offset past the end returns an empty candidates list with a message saying so; a negative or fractional offset returns an error.
License number, e.g. "1000002"
The exact entity.id from a previous response. It selects that one record, keeping records that share a number distinct, and overrides name and license. An id no record carries, or a jurisdiction or city that is not the record's own, returns an error that names the problem.
State or local jurisdiction: a state code ("CA" or "US-CA", any case), a full state name ("California", "District of Columbia"), or a local code such as "NYC". A state also covers the local jurisdictions inside it that the index holds (IL includes CHI, MD includes MD-HOWARD); each record states its own jurisdiction. Coverage spans dozens of US jurisdictions; a recognized place outside coverage returns jurisdiction_not_covered, and text that names no US state or local code returns an error listing the accepted forms.
Looks up a contractor's public credential in indexed state and local licensing records. Licenses, registrations and bond records mean different things. Each record carries a credential object (kind, label, note): kind is license, registration, business_license or bond when the source makes that clear; otherwise it is the generic "credential", and the note says what to verify with the issuing agency. The set of covered jurisdictions changes as sources are added, so this description does not list it. Inputs: a record number (license) or business name, with optional jurisdiction and exact listed city, or an entity_id from an earlier result, which selects that one record. Results: match (the credential record with its status and provenance); candidates (several records fit; each page holds up to 20 rows, total_candidates is the full count, offset pages through the rest, and entity_id selects one; a field with the same value on every row of a page is given once, in same_for_all_rows, and each row's entity block omits what the row already states); no_match_in_index (the index holds no record for that input, which does not mean the contractor is unlicensed; for a search across all jurisdictions, the message states how many covered jurisdictions were searched); or jurisdiction_not_covered (the requested jurisdiction is outside the index, with an official pointer URL where one is on file; the response message states exactly what the link is, or that none is on file, and for some jurisdictions the link is a consumer-protection or licensing-board page, not a license lookup). Each record carries as_of_date: the publisher's own last-updated date where we have read one, else the day of our fetch. The freshness field on a match, and freshness_notes on candidates and on a no-match with a jurisdiction, state when a source's copy is behind its normal update schedule, slow to refresh by design, or still on its first full pass, with a plain note, the dates, and the issuing body's own lookup.
| Argument | Type | Description |
|---|---|---|
| city | string | Optional exact record-city filter, case-insensitive. Filters before pagination; does not represent service area or silently drop terms. |
| name | string | Business name, e.g. "Bayside Plumbing" |
| offset | integer | Pagination offset into the candidates list, a whole number, default 0. Each page holds up to 20 candidates; total_candidates in a candidates result is the full count. An offset past the end returns an empty candidates list with a message saying so; a negative or fractional offset returns an error. |
| license | string | License number, e.g. "1000002" |
| entity_id | string | The exact entity.id from a previous response. It selects that one record, keeping records that share a number distinct, and overrides name and license. An id no record carries, or a jurisdiction or city that is not the record's own, returns an error that names the problem. |
| jurisdiction | string | State or local jurisdiction: a state code ("CA" or "US-CA", any case), a full state name ("California", "District of Columbia"), or a local code such as "NYC". A state also covers the local jurisdictions inside it that the index holds (IL includes CHI, MD includes MD-HOWARD); each record states its own jurisdiction. Coverage spans dozens of US jurisdictions; a recognized place outside coverage returns jurisdiction_not_covered, and text that names no US state or local code returns an error listing the accepted forms. |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Optional exact record-city filter, case-insensitive. Filters before pagination; does not represent service area or silently drop terms."
},
"name": {
"type": "string",
"description": "Business name, e.g. \"Bayside Plumbing\""
},
"offset": {
"type": "integer",
"description": "Pagination offset into the candidates list, a whole number, default 0. Each page holds up to 20 candidates; total_candidates in a candidates result is the full count. An offset past the end returns an empty candidates list with a message saying so; a negative or fractional offset returns an error."
},
"license": {
"type": "string",
"description": "License number, e.g. \"1000002\""
},
"entity_id": {
"type": "string",
"description": "The exact entity.id from a previous response. It selects that one record, keeping records that share a number distinct, and overrides name and license. An id no record carries, or a jurisdiction or city that is not the record's own, returns an error that names the problem."
},
"jurisdiction": {
"type": "string",
"description": "State or local jurisdiction: a state code (\"CA\" or \"US-CA\", any case), a full state name (\"California\", \"District of Columbia\"), or a local code such as \"NYC\". A state also covers the local jurisdictions inside it that the index holds (IL includes CHI, MD includes MD-HOWARD); each record states its own jurisdiction. Coverage spans dozens of US jurisdictions; a recognized place outside coverage returns jurisdiction_not_covered, and text that names no US state or local code returns an error listing the accepted forms."
}
},
"additionalProperties": false
}