Skip to main content
Glama

Search building permits

search_permits
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
qNoFree-text search over description, address, and permit number
latNoLatitude for radius search (use with lng)
lngNoLongitude for radius search (use with lat)
cityNoCity name, e.g. 'Austin', 'Boston', 'Miami-Dade County'
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 US state code, e.g. 'TX', 'MA', 'FL'
statusNoPermit status, e.g. 'ISSUED', 'FINAL', 'EXPIRED', 'FILED'
categoryNoPermit category (case-insensitive). Common values: SOLAR, ROOFING, HVAC, NEW_CONSTRUCTION, POOL, ELECTRICAL, PLUMBING, DEMOLITION, MECHANICAL, RENOVATION.
per_pageNoResults per page (default 25, max 25)
zip_codeNo5-digit ZIP code
max_valueNoMaximum estimated project value in dollars
min_valueNoMinimum estimated project value in dollars
date_afterNoISO date (YYYY-MM-DD): only permits dated on or after this date, using the issue date, else the filing date
date_beforeNoISO date (YYYY-MM-DD): only permits dated on or before this date, using the issue date, else the filing date
filed_afterNoISO date (YYYY-MM-DD): only permits filed on or after this date
filed_beforeNoISO date (YYYY-MM-DD): only permits filed on or before this date
issued_afterNoISO date (YYYY-MM-DD): only permits issued on or after this date
jurisdictionNoJurisdiction name or partial name, e.g. 'Wake County', 'Tacoma'
radius_milesNoRadius in miles for lat/lng search (max 50, default 5)
issued_beforeNoISO date (YYYY-MM-DD): only permits issued on or before this date
property_typeNoProperty type, one of: residential, commercial, industrial, mixed_use, institutional, unknown (case-insensitive)
contractor_nameNoFilter by contractor name (partial match supported)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the annotations, which already establish read-only, idempotent, non-destructive behavior, the description adds substantial operational detail: the 25-result cap, total/total_capped/total_unknown semantics, account date-window clamping, HVAC/MECHANICAL category aliasing, issue-date-else-filing-date behavior, and the explicit absence of owner/applicant fields.

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

Conciseness5/5

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

The description is dense but appropriately sized for a 23-parameter search tool with no output schema. It is front-loaded with the searchable dimensions, then moves directly into return behavior and important edge cases, and each sentence contributes either scope, response semantics, or a caveat an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity, the high schema coverage, the annotations, and the absence of an output schema, the description is complete enough to call the tool safely. It explains return counts, result fields, coverage-window behavior, category aliasing, date ambiguity, and missing privacy-sensitive fields; the only notable omission is sibling routing guidance, which is captured under usage guidelines.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already carries the main parameter documentation. The description still adds useful semantic quirks not fully captured there, especially category HVAC/MECHANICAL mutual matching, date_after/date_before falling back to whichever date is published, and the account-window limitation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: search U.S. building permits, with a well-defined filter scope covering location, category, status, dates, value, contractor, and free text. It is distinguishable from a single-permit lookup, but it does not explicitly name or contrast with siblings such as get_permit or get_contractor_permits.

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

Usage Guidelines3/5

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

Usage is implied by the search-oriented purpose and filter list, so an agent can infer this is the tool for filtered permit searches. However, the description gives no explicit when-to-use guidance, no exclusions, and no comparison to siblings like get_permit, get_contractor_permits, or get_property_history.

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