mcp-contractor-license-lookup
LocalAbout mcp-contractor-license-lookup
An MCP server for querying contractor license records from public state boards in five states. It supports trade-based lists and checks by license number or business name, with runs handled through Apify.
Key features
- 01List licensed contractors by trade and location
- 02Check licenses by number or business name
- 03Return status, expiry, classifications, and contacts
- 04Support CA, TX, WA, OR, and LA
Use cases
- 01Build a roofing contractor list for a county
- 02Verify a contractor's license status
- 03Find HVAC contractors and contact details
MCP support
Exposes the `lookup_contractor_licenses` tool to MCP clients. It starts the Apify actor, waits for the run, and returns dataset rows.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-contractor-license-lookupAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 4d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | enum | No | list (default): states and trades in, licensed contractors out. lookup: license numbers or business names in, their licenses out.list | lookup |
| cities | array | No | List mode. Keep contractors in these cities; each city is searched separately. |
| county | string | No | List mode. Keep contractors in this county (CA, TX, and OR record county). |
| states | array | No | State codes: CA, TX, WA, OR, LA. In lookup mode, used for lines that name no state. |
| trades | array | No | List mode. Trade words such as plumbing, electrical, hvac, roofing, general, solar, landscaping, painting, concrete, or pool. |
| lookups | array | No | Lookup mode. One per line: a state code, a pipe, then a license number or business name, for example WA | 04CONCL862CR or LA | Acadian Builders. |
| proxy_mode | enum | No | auto uses the Apify proxy and moves a refused request to residential addresses; residential uses residential only. A reliability choice; proxy use adds nothing to the price. Default auto.auto | residential |
| active_only | enum | No | Keep only active, unexpired licenses. Default true.true | false |
| max_results | string | No | License rows per search, up to 5000. Each license row is billed. Default 100 in list mode, 10 in lookup mode. |
| business_name | string | No | List mode: keep only names that contain this text. Lookup mode: one more business name to look up. |
| include_owners | enum | No | Washington: read the current principals of each license. Default true.true | false |
| license_number | string | No | Lookup mode. One more license number, searched in states. |
| max_charge_usd | string | No | Optional. The run stops before any row that would take its charges over this amount. |
Details
From the project READMEContractor License Lookup MCP Server
An MCP server for the Mamba Labs Contractor License Lookup actor on Apify. Give it a state and a trade to list licensed contractors, or a license number or business name to verify one. Each run reads the state licensing board's own public register.
What's Inside
- What it does
- Quick start
- Prerequisites
- Example prompts
- Tool
- Inputs
- Pricing
- Your keys
- Full actor documentation
- License
What it does
Two modes:
- list: give
statesandtrades(for example CA and roofing), optionallycitiesor acounty. You get one row per licensed contractor with license number, status, expiration date, classifications, owners or qualifying parties, address, and phone. - lookup: give
lookups, one per line, for exampleWA | 04CONCL862CRorLA | Acadian Builders. You get the matching license with its status.
States covered: California (CSLB Data Portal lists), Texas (TDLR open data), Washington (Labor and Industries open data), Oregon (CCB open data), and Louisiana (LSLBC public search). California name and number lookups work only inside a trade list, because the CSLB license check page uses a reCAPTCHA. Each search ends with one free summary row. All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-contractor-license-lookup": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-contractor-license-lookup"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}
Restart the client. The lookup_contractor_licenses tool appears.
Prerequisites
- Node.js 18 or newer.
- An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.
Example prompts
- "List the licensed roofing contractors in San Diego County, California."
- "Is Washington contractor license 04CONCL862CR active, and who are the principals?"
- "Find licensed HVAC contractors in Austin, Texas, with their phone numbers."
Tool
lookup_contractor_licenses. One tool. Example arguments:
{
"mode": "list",
"states": ["CA"],
"trades": ["roofing"],
"county": "San Diego",
"max_results": "100"
}
Inputs
Every buyer facing input of the actor, unchanged. Omitted inputs take the actor's own defaults. Numbers and booleans are sent as strings.
| Input | Type | Description |
|---|---|---|
mode | string | list (default) or lookup |
states | array | CA, TX, WA, OR, LA |
trades | array | List mode. Trade words |
cities | array | List mode. Cities, searched separately |
county | string | List mode. County (CA, TX, OR) |
business_name | string | List mode: name filter. Lookup mode: one more name |
lookups | array | Lookup mode. Lines such as WA | 04CONCL862CR |
license_number | string | Lookup mode. One more license number |
active_only | string | true or false. Default true |
include_owners | string | Washington principals. Default true |
max_results | string | Rows per search, up to 5000 |
max_charge_usd | string | Optional cost cap for the run |
proxy_mode | string | auto or residential. Default auto |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
license-row, per license returned | $0.004 | $0.0038 | $0.0036 | $0.0034 |
apify-actor-start, per run start | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Search summary rows, and skipped, blocked, and no result rows, are free.
Your keys
The actor needs no key. It reads the state boards' public registers and holds no key of any kind. Proxy traffic adds nothing to your price: Mamba Labs pays the platform costs of the run. proxy_mode is a reliability setting.
Full actor documentation
apify.com/mambalabs/contractor-license-lookup
License
MIT. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.