Skip to main content
Glama

PermitStack

Search contractors

search_contractors
Read-onlyIdempotent

Search contractors by name, city, state or specialty. Returns up to 25 contractors per call with the contractor UUID, name, licence number and licence state, home city and state, total permit count, first and last permit dates, specialties and activity score (0-100), sorted by activity score (highest first). Project values are not included; get_contractor_permits lists a contractor's permits with their estimated values.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoCity where the contractor has worked
nameNoContractor name (partial match)
pageNoPage number, 1-based (default 1)
startNoInstead of page: 1-based position of the first result to return, e.g. start=24 continues after result 23 (as named in `_notes`)
stateNoTwo-letter state code
per_pageNoResults per page (default 25, max 25)
specialtyNoSpecialty/trade to filter by, e.g. 'solar', 'roofing', 'hvac'
min_permitsNoOnly contractors with at least this many permits

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial context on top: a hard 25-result cap per call, sort order by activity score descending, the exact field set returned, and the explicit exclusion of project values. With no output schema, this is the kind of disclosure that would otherwise be missing.

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

Conciseness4/5

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

Three sentences, front-loaded with the filterable dimensions, then the return contract, then the sibling hand-off. The return-field enumeration is dense but earns its place given there is no output schema; the only mild redundancy is repeating the 25-per-call cap twice.

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?

For an eight-parameter, zero-required search tool with no output schema, the description covers result fields, ordering, page cap, and the sibling escape hatch for values. It leaves open how multiple filters combine and what an unfiltered call returns, which an agent may need to reason about.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight parameters are already documented, including the page-vs-start pagination interplay and the per_page maximum. The description only restates the filter dimensions named in the schema (name, city, state, specialty) and adds no meaning about combinations, matching behavior, or defaults, so the baseline 3 applies.

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?

Names a specific verb and resource (search contractors) plus the exact filter dimensions (name, city, state, specialty), and explicitly contrasts itself with get_contractor_permits for the data it does not return. An agent can tell what this tool yields and what it does not without opening the schema.

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

Usage Guidelines4/5

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

Explicitly routes the agent to get_contractor_permits when project values are needed, which is a real selection criterion among the siblings. It gives no guidance on when to prefer this over search_permits or get_property_history, and does not state what to do when all filters are omitted.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources