
PortlandMaps (Unofficial)
Unofficial MCP server for the public PortlandMaps property/permit/zoning API.
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Unofficial MCP server for the public PortlandMaps property/permit/zoning API. Not city-affiliated.
Server tool list (11)
Raw names from tools/list. Only developers need these.
| suggest_portlandmaps_address | 1: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 cite EVERY rule, fee, number, timeline, or contact INLINE in the same sentence with both its exact code section AND a full https:// portland.gov URL (e.g. PCC 33.110.255.C, https://www.portland.gov/code/33/110/255) — never cite vaguely ("Title 33", "the BDS website") and never drop the URL. Define every acronym, add a numbered "what to do next" list, and if a number can't be cited to a specific section + URL, say so rather than stating it bare. |
| get_portlandmaps_detail | 1: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, fee, number, timeline, or contact INLINE in the same sentence with both its exact code section AND a full https:// portland.gov URL (e.g. PCC 33.110.255.C, https://www.portland.gov/code/33/110/255) — never cite vaguely ("Title 33", "the BDS website") and never drop the URL. Define every acronym, add a numbered "what to do next" list, and if a number can't be cited to a specific section + URL, say so rather than stating it bare. |
| get_assessor_data | 1:1 wrapper for /api/assessor/. Search assessor records by address, property IDs, geometry, or assessor filters. |
| get_permit_data | 1: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, timeline, or contact INLINE in the same sentence with both its exact code section AND a full https:// portland.gov URL (e.g. PCC 33.110.255.C, https://www.portland.gov/code/33/110/255) — never cite vaguely ("Title 33", "the BDS website") and never drop the URL. Define every acronym, add a numbered "what to do next" list, and if a number can't be cited to a specific section + URL, say so rather than stating it bare. |
| search_landuse_cases | 1: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 cite EVERY rule, fee, number, timeline, or contact INLINE in the same sentence with both its exact code section AND a full https:// portland.gov URL (e.g. PCC 33.110.255.C, https://www.portland.gov/code/33/110/255) — never cite vaguely ("Title 33", "the BDS website") and never drop the URL. Define every acronym, add a numbered "what to do next" list, and if a number can't be cited to a specific section + URL, say so rather than stating it bare. |
| search_sewer_records | 1:1 wrapper for /api/sewer/. Search sewer assets, as-builts, and easements. |
| query_intersects | 1:1 wrapper for /api/intersects/. Spatial intersection against named city layers such as row, taxlot, describe, street, and waterbody. |
| convert_geometry | 1:1 wrapper for /api/geometry/. Convert geometry between ESRI, WKT, GeoJSON, GPolyline, and EncodedGPolyline. |
| lookup_agol | 1:1 wrapper for /api/agol/. Retrieve City of Portland ArcGIS Online metadata, webmaps, locators, and portal info. |
| list_detail_types | Return the detail_type values accepted by get_portlandmaps_detail and the identifier each expects. |
| render_parcel_shape | Render 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 neighbours come from Portland's public ArcGIS layers; set basemap="none" to drop the photo and includeContext=false for just the bare outline. Renders in MCP Apps hosts (Claude) and legacy mcp-ui hosts. |