contractorroster
Server Details
Verified US licensed-contractor data: 879k+ state-board records, metered per record, free discovery.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct purpose: reference data, counting, searching, and usage monitoring. The similarity between count_contractors and search_contractors is resolved by explicit charging and qualification roles.
All tool names follow a consistent verb_noun snake_case pattern: count_, get_, list_, list_, search_. This makes the API predictable and easy to navigate.
Five tools is well-scoped for a contractor lookup service: two reference lists, a qualifying count, a charged search, and a usage endpoint. Each tool earns its place without redundancy.
The set covers the full read-only workflow: discovering capabilities, estimating cost, fetching results, and monitoring account usage. Dry-run and shortfall handling also address practical edge cases.
Available Tools
5 toolscount_contractorsAInspect
Count contractors matching a state × trade × geo query, without charging. Use to qualify a query before calling search_contractors. Returns total count and estimated cost in cents at the caller's price tier.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| trade | Yes | ||
| geo_type | Yes | ||
| geo_value | Yes | ||
| active_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It discloses the key behavior that the call is free and returns both total count and estimated cost at the caller's price tier. However, it does not mention pagination, limits, or whether no results return 0, and with no annotations a higher score would require more behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences with the core purpose and the most important side effect (no charge) front-loaded, then the usage guidance. Every clause earns its place, and it is easy to scan and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a lightweight count tool with no output schema, the description covers what it returns (total count and estimated cost), how it differs from the main search tool, and the cost property. It is slightly short on edge cases like empty results or behavior when active_only is omitted, but overall it is enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning, but it only references the three concepts (state × trade × geo) and not the per-parameter specifics. Enum values provide some semantics already for state, trade, and geo_type, but active_only and geo_value are undocumented in both schema and description, so the 0% coverage yields a baseline below needing full compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Count') with a precise resource ('contractors matching a state × trade × geo query') and explicitly distinguishes its cost-free behavior. It clearly separates this tool from its sibling search_contractors by stating the count purpose and the no-charge property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it 'to qualify a query before calling search_contractors,' which tells the agent both when to use this tool and points to the alternative. This is a clear routing instruction to the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageAInspect
Return the partner's current balance, pricing, and the 20 most recent transactions (top-ups + api calls). No charge.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the 'No charge' behavior and the 20-transaction limit, which are valuable for an agent deciding whether to invoke it. It does not explicitly state read-only or side-effect-free status, but 'Return' and 'No charge' strongly imply a safe query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no fluff. It front-loads the main purpose and adds the useful 'No charge' note without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool without an output schema, the description sufficiently conveys what is returned: balance, pricing, and 20 recent transactions. It does not describe the response shape in detail, but the core call behavior is clear and complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per the rubric. The description correctly omits parameter details because none exist; the input schema is already complete with an empty properties object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Return') and a distinct resource: the partner's balance, pricing, and recent transactions. This is unambiguous and differentiates get_usage from the contractor-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when the tool would be appropriate: when a partner's current balance, pricing, or recent transactions are needed. It does not explicitly name alternatives or state when not to use it, but sibling tools are clearly unrelated in purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_statesAInspect
List supported US states with their available geo types and per-trade availability. Free; no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It clearly signals a read-only, free operation with no auth, which covers much of the risk profile for a zero-parameter list endpoint. However, it does not disclose response shape, pagination, or any edge cases, leaving some behavioral details unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, front-loaded with the core action and resource, and every clause earns its place: supported states, return contents, free, and no auth. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list with no output schema, the description is nearly complete: it names the resource and the included data points, and covers auth/cost. It could be slightly more explicit about the response contract, but the low complexity makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4 and there are no parameter semantics to document. The description still mentions the kind of data returned, which adds meaningful context even though no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'List' and a clear resource, 'supported US states,' and further specifies the returned content: geo types and per-trade availability. This distinguishes it from siblings like list_trades and search_contractors without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides useful context by noting the tool is free and requires no auth, but it does not explicitly state when to prefer this tool over alternatives or any exclusions. There is no close sibling for listing states, so the absence is not misleading, but the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tradesAInspect
List supported trade codes with display names. Free; no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It adds useful access context ('Free; no auth required'), which is non-obvious, but it doesn't mention output ordering, limits, or any side effects beyond the inherent read-only nature of listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action and resource front-loaded. The free/no-auth note adds meaningful information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema listing operation, the description covers the resource, the content (codes with display names), and access requirements (free, no auth). Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the schema is fully described with empty properties, so no parameter documentation is needed. The baseline for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the exact resource ('supported trade codes') and what is included ('display names'). It is clear and distinguishable from siblings like list_states, though it doesn't explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool instead of count_contractors, get_usage, list_states, or search_contractors. The 'list' verb implies a lookup use case, but there is no explicit context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_contractorsAInspect
Fetch enriched contractor records for a state × trade × geo query. Charges the partner balance at price_per_record_cents × records_delivered. Set dry_run:true for a free cost preview. Returns structured shortfall info on insufficient balance so the agent can prompt the user to top up.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | Yes | ||
| trade | Yes | ||
| dry_run | No | ||
| geo_type | Yes | ||
| geo_value | Yes | ||
| active_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It prominently reveals the billing side effect (charges partner balance at price_per_record_cents × records_delivered), offers dry_run for a free preview, and mentions structured shortfall info on insufficient balance. This is strong behavioral disclosure, though it omits pagination, sort, or auth details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each adding distinct value: core action, cost behavior, dry-run option, and failure/error handling. No filler or redundancy, and the most important identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paid query tool with 7 params and no output schema, the description covers essential usage, cost, and agent-relevant error handling. It leaves a real gap around active_only and the success response shape, but overall it is adequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the core state/trade/geo query dimensions, the dry_run parameter, and implicitly limit via records_delivered. It leaves active_only unmentioned and does not disambiguate geo_type values (zip vs city), but it still adds substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch'), resource ('enriched contractor records'), and query dimensions ('state × trade × geo'). The wording clearly distinguishes it from sibling count_contractors and list tools: this returns records, not counts or metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use: for a state/trade/geo record query, with cost implications and a dry-run option. However, it does not explicitly name alternatives or exclusion conditions (e.g., when to use count_contractors instead), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
count_contractors - First observed
get_usage - First observed
list_states - First observed
list_trades - First observed
search_contractors
Related MCP Connectors
Search licensed US contractors by trade or location, fetch profiles and reviews, and submit leads.
Verify contractor licenses: 50 states + DC + 8 cities — status, expiration, disciplinary history.
Contractor dataset discovery, masked previews, pricing, and production API plans from $39/month.
Verify a contractor, real estate or cosmetology license in 12 US states from the boards' own files.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.461MIT
- AlicenseNot gradedqualityDmaintenanceAccess ServiceGraph — a structured catalog of 100k+ US professional-services firms (law, marketing, consulting, accounting, IT services, architecture, engineering, HR, PR, design) with filters for industry, services offered, location, size, ratings, and third-party listing presence.62MIT

LocalPro MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceProvides verified local trade and service business data (e.g., radon mitigation, foundation repair) to AI agents via tools like search_providers and list_niches.1MIT- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to match users with licensed, rated contractors in Miami, providing pricing and direct contact details.2MIT