{
 "voice": "One card of the book.",
 "agent": {
  "slug": "portlandmaps-unofficial",
  "name": "PortlandMaps (Unofficial)",
  "specialty": "realestate",
  "description": "Unofficial MCP server for the public PortlandMaps property/permit/zoning API. Not city-affiliated.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-02T23:12:44.452Z",
  "card": "/agent/portlandmaps-unofficial",
  "url": "https://allagents.app/agent/portlandmaps-unofficial",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://portlandmaps-mcp.vercel.app/mcp/v2",
   "site": "https://github.com/GPTNowLLC/portlandmaps-mcp#readme"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [
   "npm"
  ],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://github.com/GPTNowLLC/portlandmaps-mcp#readme",
   "hire": null
  },
  "bubble": "closed",
  "score": 13,
  "score_label": "Getting started",
  "mcp_tools": {
   "seen": "2026-11-03",
   "total": 11,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "suggest_portlandmaps_address",
     "description": "1:1 wrapper for /api/suggest/. Search PortlandMaps autocomplete for addresses, intersections, landmarks, or IDs. ANSWER GUIDANCE: when this data answers a…"
    },
    {
     "name": "get_portlandmaps_detail",
     "description": "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…"
    },
    {
     "name": "get_assessor_data",
     "description": "1:1 wrapper for /api/assessor/. Search assessor records by address, property IDs, geometry, or assessor filters."
    },
    {
     "name": "get_permit_data",
     "description": "1:1 wrapper for /api/permit/. Search building/trade/enforcement permit records. ANSWER GUIDANCE: when this data answers a resident's zoning, permit, property…"
    },
    {
     "name": "search_landuse_cases",
     "description": "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…"
    },
    {
     "name": "search_sewer_records",
     "description": "1:1 wrapper for /api/sewer/. Search sewer assets, as-builts, and easements."
    },
    {
     "name": "query_intersects",
     "description": "1:1 wrapper for /api/intersects/. Spatial intersection against named city layers such as row, taxlot, describe, street, and waterbody."
    },
    {
     "name": "convert_geometry",
     "description": "1:1 wrapper for /api/geometry/. Convert geometry between ESRI, WKT, GeoJSON, GPolyline, and EncodedGPolyline."
    },
    {
     "name": "lookup_agol",
     "description": "1:1 wrapper for /api/agol/. Retrieve City of Portland ArcGIS Online metadata, webmaps, locators, and portal info."
    },
    {
     "name": "list_detail_types",
     "description": "Return the detail_type values accepted by get_portlandmaps_detail and the identifier each expects."
    },
    {
     "name": "render_parcel_shape",
     "description": "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…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://portlandmaps-mcp.vercel.app/mcp/v2",
   "answers": true,
   "checked": "2026-11-03T06:06:42.196Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-03T06:50:40.275Z",
     "since": "2026-11-03T06:50:40.275Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-03T06:50:40.275Z",
    "since": "2026-11-03T06:50:40.275Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-11-03T06:06:42.196Z",
   "last_answer_at": "2026-11-03T06:06:42.196Z",
   "last_ms": 167,
   "checked_at": "2026-11-03T06:06:42.196Z"
  }
 }
}