io.github.GPTNowLLC/portlandmaps-mcp

PortlandMaps (Unofficial)

Unofficial MCP server for the public PortlandMaps property/permit/zoning API. Not city-affiliated.

Endpointhttps://portlandmaps-mcp.vercel.app/mcp/v2 (streamable-http)
Registry version0.2.5
Now11 tools · grade C (72) · pin ts_82188b29017442b4321acadf402b0618 · protocol 2025-06-18
First / last listed2026-10-25 07:15 UTC / 2026-10-25 07:15 UTC
Grade over time2026-10-25: C (72), 11 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-25 07:15 UTC
11 tools, grade C (72)

Tools: suggest_portlandmaps_address get_portlandmaps_detail get_assessor_data get_permit_data search_landuse_cases search_sewer_records query_intersects convert_geometry lookup_agol list_detail_types render_parcel_shape

Current tools (11)

suggest_portlandmaps_address1:1 wrapper for /api/suggest/. Search PortlandMaps autocomplete for addresses, intersections, landmarks, or IDs. ANSWER GUIDANCE: when this data answers a resident's zoning, permit, property, or city-code question, write for a Portland resident or small-business owner with no code, zoning, or permitting background. Lead with a 3–5 sentence plain-English summary (never open with a data table). Then
params: query*, city, county, jurisdiction, unit, units, idMatches, intersections, landmarks, altCoords, altIds, elements, cache, status, exact, ags, centerline, geometry, count, page, extraParams
get_portlandmaps_detail1:1 wrapper for /api/detail/. Fetch a detail record by detail_type, detail_id, and sections. ANSWER GUIDANCE: when this data answers a resident's zoning, permit, property, or city-code question, write for a Portland resident or small-business owner with no code, zoning, or permitting background. Lead with a 3–5 sentence plain-English summary (never open with a data table). Then cite EVERY rule, fe
params: detailType*, detailId*, sections, geometry, propertyId, fileType, fileId, cacheClear, extraParams
get_assessor_data1:1 wrapper for /api/assessor/. Search assessor records by address, property IDs, geometry, or assessor filters.
params: address, city, county, propertyId, stateId, parentStateId, zipCode, legalDescription, altAccountNumber, builtAfter, builtBefore, sqftLarger, sqftSmaller, soldAfter, soldBefore, marketLarger, marketSmaller, primary, geometry, sortField, sortOrder, cache, count, page, download, extraParams
get_permit_data1:1 wrapper for /api/permit/. Search building/trade/enforcement permit records. ANSWER GUIDANCE: when this data answers a resident's zoning, permit, property, or city-code question, write for a Portland resident or small-business owner with no code, zoning, or permitting background. Lead with a 3–5 sentence plain-English summary (never open with a data table). Then cite EVERY rule, fee, number, ti
params: ivrNumber, applicationNumber, address, propertyId, stateId, searchTypeId, neighborhood, neighborhoodDistrict, businessAssociation, county, ccbNumber, dateType, dateFrom, dateTo, sortField, sortOrder, cache, count, page, download, extraParams
search_landuse_cases1:1 wrapper for /api/landuse/. Search land use review cases, including Historic Resource Review and Tree Review. ANSWER GUIDANCE: when this data answers a resident's zoning, permit, property, or city-code question, write for a Portland resident or small-business owner with no code, zoning, or permitting background. Lead with a 3–5 sentence plain-English summary (never open with a data table). Then
params: searchTypeId, neighborhood, neighborhoodDistrict, historicDistrict, conservationDistrict, planDistrict, businessAssociation, milestoneStatus, dateFrom, dateTo, ivrNumber, applicationNumber, sortField, sortOrder, cache, count, page, download, extraParams
search_sewer_records1:1 wrapper for /api/sewer/. Search sewer assets, as-builts, and easements.
params: type*, unitId, compkey, workOrderNumber, tvInspectionNumber, serviceRequestNumber, jobNumber, jobName, quarterSection, location, comments, trackingNumber, date, quitClaim, ordinanceNumber, rightOfWay, book, page, sortField, sortOrder, count, pageNum, download, extraParams
query_intersects1:1 wrapper for /api/intersects/. Spatial intersection against named city layers such as row, taxlot, describe, street, and waterbody.
params: geometry*, include, buffer, detail
convert_geometry1:1 wrapper for /api/geometry/. Convert geometry between ESRI, WKT, GeoJSON, GPolyline, and EncodedGPolyline.
params: from*, to*, geometry*, srid
lookup_agol1:1 wrapper for /api/agol/. Retrieve City of Portland ArcGIS Online metadata, webmaps, locators, and portal info.
params: type*, id
list_detail_typesReturn the detail_type values accepted by get_portlandmaps_detail and the identifier each expects.
params: none
render_parcel_shapeRender a property's lot as an interactive UI component (inline SVG): a City of Portland aerial photo underlay (showing the true roofline) with the parcel outline, the building footprint(s) on the lot, approximate setback dimensions, a north arrow, and faint neighbouring parcels overlaid on top. Provide a detailType+detailId to fetch geometry, or pass rings directly. Aerial, footprints, and neighbo
params: detailType, detailId, rings, title, includeContext, basemap

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.