Skip to main content
Glama

Permits near an address or a point

permits_near
Read-onlyIdempotent

Use this tool when someone asks what is being built near an address or a place: new buildings next door, construction on the block, what's permitted around a home they might buy or rent. Give a city and street address, or a latitude and longitude. The tool returns building permits within a radius (default 400 meters, about a quarter mile) issued since a date (default about six months back), newest first, each with distance in meters and compass direction from the point. It covers the last 24 months of city open data. counts.total is exact even when the list is capped. It matches a loosely typed address the same way permits_at_address does. If more than one address matches, the answer has found set to false and lists the addresses in did_you_mean.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude, used instead of city and address.
lonNoLongitude, used instead of city and address.
cityNoCity slug, e.g. chicago. Needed with address; optional with lat and lon.
limitNoMost permits to list, default 50.
sinceNoEarliest date, YYYY-MM-DD, or 6m, 1y, 2y. Default 6m (the first of the month five months back).
addressNoStreet address with house number, e.g. '2443 W Warren Blvd'.
radius_mNoRadius in meters, default 400.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the already-strong annotations (readOnly, idempotent, non-destructive), the description discloses defaults for radius and date, sort order, per-permit distance and compass direction, 24-month coverage limit, that counts.total is exact even when the list is capped, and the ambiguity branch (found=false with did_you_mean). This is rich behavioral context that structured fields do not carry.

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?

Front-loaded with the triggering scenario before mechanics, and each sentence carries information. Slight redundancy from restating defaults already present in the schema, but overall dense and well-ordered.

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?

There is no output schema, and the description compensates fully: it describes the returned items (distance in meters, compass direction, newest first), the exactness of counts.total, and the found/did_you_mean ambiguity response. An agent has everything needed to call and interpret this tool.

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 the baseline is 3. The description restates defaults (radius 400m, six months back) and the since format, but adds no format or syntax detail beyond what the schema already documents for each parameter.

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?

States a specific verb and resource ('the tool returns building permits within a radius') scoped to proximity queries, and explicitly differentiates itself from sibling permits_at_address ('It matches a loosely typed address the same way permits_at_address does'). An agent can distinguish it from the other siblings without opening any 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?

Opens with an explicit use scenario ('when someone asks what is being built near an address or a place: new buildings next door...'). It names sibling permits_at_address as a behavioral reference but does not state when to prefer it over permits_at_address or the other siblings like recent_permits or zoning_requests_near, so routing is clear but not complete.

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