Skip to main content
Glama

Server Details

U.S. building permits, permit histories by address and contractors from city and county records.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
PermitStack

TDQS

A3.8/5.0

Scored across 18 tools

Disambiguation4/5

The set is organized around a clear search_/get_ pairing per resource (permits, certificates, violations, pipeline cases), and descriptions explicitly state the difference (search by criteria vs. fetch by UUID or exact number). The main soft spots are get_coverage vs. get_dataset_coverage (platform totals vs. per-dataset sign-in detail) and get_contractor_licenses vs. lookup_license, which an agent could plausibly confuse, though descriptions do differentiate them.

Naming Consistency4/5

Most tools follow a predictable verb_noun pattern (search_permits, get_permit, search_inspections, get_pipeline_case), with resources named consistently across the search/get pairs. The one deviation is lookup_license, which breaks the get_/search_ convention and sits awkwardly next to get_contractor_licenses.

Tool Count4/5

Eighteen tools is on the high side, but the surface covers roughly nine distinct resource types (permits, contractors, licenses, certificates, inspections, violations, pipeline cases, decisions, coverage), each with search and/or get operations. Every tool maps to a distinct resource-action pair rather than duplicating functionality, so the count is justified even if slightly heavy.

Completeness4/5

The read-only surface is broad and coherent: search + get for every major record type, plus contractor work history, license lookup and coverage metadata, with explicit notes on known data gaps (no owner contact data, licensing has no coverage endpoint). Minor gaps remain — no direct get-by-UUID for a single contractor profile and no cross-resource aggregate view — but agents can work around these via the existing search tools.

Available Tools

18 tools
get_certificateOccupancy certificate detailsA
Read-onlyIdempotent
Inspect

Get an occupancy or completion certificate by UUID, including certificate_status and co_date_basis. A duplicate id resolves to its canonical record. Coverage varies; a completion certificate does not establish occupancy.

Inputs: certificate_id (required).

get_contractor_licensesContractor licensesA
Read-onlyIdempotent
Inspect

List public board licenses linked to a contractor UUID by the API's exact matching rules. Coverage and as_of dates vary by board. Access and locked_fields identify unavailable fields; a registration is not a license. No contact enrichment.

Inputs: contractor_id (required).

get_contractor_permitsContractor's permitsA
Read-onlyIdempotent
Inspect

List the permits pulled by one contractor, identified by the contractor UUID from search_contractors. Returns up to 25 permits per page with the contractor's work history fields (dates, categories, values). Results carry no property owner name, owner mailing address or permit applicant name fields.

Inputs: contractor_id (required), page, start, per_page.

get_coverageData coverageA
Read-onlyIdempotent
Inspect

Describe PermitStack's coverage: total permits, jurisdictions (active, archive, frozen) and states. On a signed-in connection it also lists covered jurisdictions with their permit counts, county and data_through (the date of the newest permit held), filterable by state and by name, up to 25 per call, largest first. Without sign-in it returns the platform totals only.

Inputs: name, state.

get_dataset_coverageDataset coverageA
Read-onlyIdempotent
Inspect

List source and place coverage for inspections, violations, pipeline cases/decisions or certificates. Includes the API's measured freshness, completeness and caveats where available. Counts have source-specific meanings; complaints are separate from violations. Requires sign-in. Licensing has no coverage endpoint.

Inputs: dataset (required), name, page, start, +3 more.

get_permitLook up a permit by numberA
Read-onlyIdempotent
Inspect

Look up a permit by the permit number assigned by the issuing jurisdiction, optionally narrowed by city and state. The number is matched exactly (ignoring case), and the same number can exist in several jurisdictions, so up to 5 matching permits are returned; give the city or state to tell them apart. If nothing matches exactly and a city or state was given, permits in that place whose number contains the text are returned instead, and match says "partial". When the connected account covers a limited date range, account_window_from is set and only permits from that date onward are searched. Results carry no property owner name, owner mailing address or permit applicant name fields.

Inputs: permit_number (required), city, state.

get_permit_inspectionsPermit inspectionsA
Read-onlyIdempotent
Inspect

List inspections linked to a permit UUID. Future scheduled inspections are excluded by default unless result=SCHEDULED or upcoming opts in. An empty list means no linked inspection is held. Coverage varies by source and place; an empty result does not establish that no record exists. Up to 25 results per call. total_capped marks a lower bound; total_unknown means the total is unknown. Pagination guidance is in _notes.

Inputs: permit_id (required), page, start, result, +3 more.

get_pipeline_casePlanning case detailsB
Read-onlyIdempotent
Inspect

Get a planning case by UUID with linked decisions and permits. A permit link matches site and time, not proof it was issued under this case; link_method and confidence describe the match. A planning case does not guarantee construction. Coverage varies.

Inputs: case_id (required).

get_property_historyProperty permit historyA
Read-onlyIdempotent
Inspect

Permit history for one property, looked up by street address (house number and street name, e.g. '123 Main St'). Optional city, state and ZIP narrow the match when the same street address exists in several places. Returns a property profile (permit timeline, category breakdown, contractors) and up to 25 permit records per page, newest first; has_more says whether the next page has more. Covers all permit categories. When the connected account covers a limited date range, the profile and records cover only that range, account_window_from is set, and _notes says so: the result is then not the property's full permit history. Results carry no property owner name, owner mailing address or permit applicant name fields.

Inputs: address (required), zip, city, page, +3 more.

get_violationCode violation or complaintA
Read-onlyIdempotent
Inspect

Get a violation or complaint by UUID, including source status and related copies. A complaint is not a confirmed violation. Coverage and published fines vary by source.

Inputs: violation_id (required).

lookup_licenseLook up a contractor licenseA
Read-onlyIdempotent
Inspect

Look up a license number in its issuing state across the public board rosters held, with matching contractors. Coverage and as_of dates vary by board. Access and locked_fields identify unavailable fields; a registration is not a license. No contact enrichment.

Inputs: state (required), license_number (required).

search_certificatesSearch occupancy certificatesA
Read-onlyIdempotent
Inspect

Search certificates of occupancy or completion. Defaults exclude renewals; co_date_basis states what each date means. Completion certificates do not establish occupancy, and pending applications are not issued certificates. Coverage varies by source and place; an empty result does not establish that no record exists. Up to 25 results per call. total_capped marks a lower bound; total_unknown means the total is unknown. Pagination guidance is in _notes.

Inputs: lat, lng, city, kind, +18 more.

search_contractorsSearch contractorsA
Read-onlyIdempotent
Inspect

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.

Inputs: city, name, page, start, +4 more.

search_inspectionsSearch building inspectionsA
Read-onlyIdempotent
Inspect

Search inspection logs by place, permit, type, result and date. Summaries and future scheduled inspections are excluded by default; upcoming and summaries opt in. Sources report data_through. Coverage varies by source and place; an empty result does not establish that no record exists. Up to 25 results per call. total_capped marks a lower bound; total_unknown means the total is unknown. Pagination guidance is in _notes.

Inputs: city, page, scope, start, +16 more.

search_permitsSearch building permitsA
Read-onlyIdempotent
Inspect

Search U.S. building permits by location (city, state, ZIP code, or a lat/lng radius), category, status, property type, filing or issue date range, estimated project value, contractor name, or free text. Returns up to 25 permits per call with address, dates, category, status, estimated value, contractor and description, plus the total number of matches. Response fields: total is exact unless total_capped is true, in which case it is a lower bound; when total_unknown is true the count could not be computed and total is null. account_window_clamped, account_window_days and account_window_from are set when the connected account covers a limited date range, and the results then cover only that range. Category HVAC also matches MECHANICAL, and MECHANICAL also matches HVAC. date_after/date_before match whichever date a permit has (issued, else filed), for feeds that publish only one of the two. Results carry no property owner name, owner mailing address or permit applicant name fields.

Inputs: q, lat, lng, city, +19 more.

search_pipeline_casesSearch planning casesA
Read-onlyIdempotent
Inspect

Search planning and zoning cases by place, type, status, dates and proposed size. A planning case does not guarantee construction. Sources report data_through. Coverage varies by source and place; an empty result does not establish that no record exists. Up to 25 results per call. total_capped marks a lower bound; total_unknown means the total is unknown. Pagination guidance is in _notes.

Inputs: lat, lng, city, page, +19 more.

search_pipeline_decisionsSearch planning decisionsA
Read-onlyIdempotent
Inspect

Search council, planning commission and zoning board decisions by place, body, action and meeting date. RECOMMENDED_* is a recommendation, not a final decision. A decision does not guarantee construction. Coverage varies by source and place; an empty result does not establish that no record exists. Up to 25 results per call. total_capped marks a lower bound; total_unknown means the total is unknown. Pagination guidance is in _notes.

Inputs: body, city, page, start, +12 more.

search_violationsSearch code violationsA
Read-onlyIdempotent
Inspect

Search agency findings by place, case number, status, category and date. record_kind defaults to violation; complaints are reports, not confirmed violations. Sources report data_through, coverage_window and count_unit. Coverage varies by source and place; an empty result does not establish that no record exists. Up to 25 results per call. total_capped marks a lower bound; total_unknown means the total is unknown. Pagination guidance is in _notes.

Inputs: lat, lng, city, page, +16 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources