Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [
"submit_correction"
],
"safeguard_count": 1,
"summary": {
"bulk_access_tools": 1,
"capability_distribution": {
"admin": 8,
"exec": 4,
"export": 1,
"network": 1,
"read": 6,
"write": 4
},
"destructive_tools": 0,
"egress_tools": 1,
"exec_tools": 4,
"high_risk_tools": 2,
"risk_distribution": {
"critical": 1,
"high": 1,
"low": 0,
"medium": 6
},
"secret_tools": 0,
"tool_count": 8
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": true,
"resource_links": true,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [
"prompts",
"resource_links",
"resources"
],
"enabled_count": 3,
"initialize_capability_keys": [
"prompts",
"resources",
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 2,
"tool_count": 8,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "44ea97ce880beebbb85cc8f0c9c2ece57163d197938270f805dc54f04ee1cc4b",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 181.77,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-session-id": "1267abe1-2908-44f0-ac1f-baf89e0e965d",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false,
"subscribe": false
},
"tools": {
"listChanged": false
}
},
"protocolVersion": "2024-11-05",
"serverInfo": {
"name": "readypermit",
"version": "1.2.3"
}
}
},
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 291.31,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": true,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://rnfonkwthefktfvfwypr.supabase.co/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/.well-known/oauth-protected-resource"
},
"latency_ms": 15.19,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.readypermit/geo",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 404,
"url": "https://rnfonkwthefktfvfwypr.supabase.co/robots.txt"
},
"latency_ms": 9.04,
"status": "ok"
},
"prompt_get": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 4,
"jsonrpc": "2.0",
"result": {
"messages": [
{
"content": {
"text": "Analyze the property as a real estate investment. Use the analyze_property tool with persona \"investor\" to pull the data, then provide:\n1. GO / NO-GO / CONDITIONAL verdict (lead with this)\n2. Buildability Score and what it means for this deal\n3. Cap rate estimate based on comparable sales and rental data\n4. Value-add opportunities (ADU, subdivision, density increase)\n5. Risk flags that could kill or delay the deal \u2014 be specific about WHICH risks\n6. What you'd do next if pursuing this deal (first 3 concrete steps with costs)",
"type": "text"
},
"role": "user"
}
]
}
},
"prompt_arguments": [
{
"description": "Property address to analyze",
"name": "address",
"required": true
}
],
"prompt_name": "investor_analysis",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 583.78,
"status": "ok"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 3,
"jsonrpc": "2.0",
"result": {
"prompts": [
{
"arguments": [
{
"description": "Property address to analyze",
"name": "address",
"required": true
}
],
"description": "Analyze a property as a real estate investment. Includes cap rate estimate, comparable deals, risk flags, value-add potential, and a go/no-go recommendation. USE FOR: deal evaluation, portfolio screening, value-add identification.",
"name": "investor_analysis"
},
{
"arguments": [
{
"description": "Site address to evaluate",
"name": "address",
"required": true
}
],
"description": "Run a feasibility study on a development site. Covers FAR, setbacks, height limits, environmental clearances, entitlement path, permit timeline, and estimated costs. USE FOR: site selection, entitlement planning, pro forma inputs.",
"name": "developer_feasibility"
},
{
"arguments": [
{
"description": "Property address to check",
"name": "address",
"required": true
}
],
"description": "Explain what a homeowner can build on their property in plain English. ADU eligibility, addition potential, setback requirements, permit steps, and estimated costs. USE FOR: ADU questions, renovation planning, permit guidance.",
"name": "homeowner_guide"
},
{
"arguments": [
{
"description": "Property address to assess",
"name": "address",
"required": true
}
],
"description": "Assess a property for collateral, insurance, or compliance risk. Covers zoning conformance, environmental liability (Phase I triggers), flood insurance requirements, wildfire/seismic exposure, and a risk grade. USE FOR: loan underwriting, insurance underwriting, due diligence, title review.",
"name": "risk_assessment"
},
{
"arguments": [
{
"description": "Property address (or comma-separated list of addresses) to screen",
"name": "address",
"required": true
}
],
"description": "Quick screen one or more properties for investment viability. Returns buildability score, fatal flaws, and a rank recommendation. USE FOR: wholesaler deal flow, portfolio filtering, batch pre-screening, 'is this worth a deeper look' questions.",
"name": "deal_screening"
},
{
"arguments": [
{
"description": "Property address the client is asking about",
"name": "address",
"required": true
}
],
"description": "Generate a client-ready property brief a broker can share immediately. Covers buildability, zoning, risks, and next steps in professional but accessible language. USE FOR: client meetings, listing presentations, buyer consultations, 'can I build on this?' questions from clients.",
"name": "broker_intel"
},
{
"arguments": [
{
"description": "Property address to pull data for",
"name": "address",
"required": true
}
],
"description": "Return structured property data as clean JSON without narrative or persona framing. USE FOR: API integrations, data pipelines, proptech product feeds, programmatic analysis where you need machine-readable output rather than human-readable summaries.",
"name": "raw_data"
}
]
}
},
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 173.29,
"status": "ok"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2024-11-05",
"lag_days": 385,
"latest_known_version": "2025-11-25",
"releases_behind": 3,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 6,
"jsonrpc": "2.0",
"result": {
"contents": [
{
"mimeType": "application/json",
"text": "{\n \"generatedAt\": \"2026-05-13T14:35:09.096Z\",\n \"schema\": \"readypermit/corrections-feed/v1\",\n \"description\": \"Verified/applied corrections to ReadyPermit pages. This is the civic-feedback flywheel that backs the 48-hour SLA promised by the submit_correction tool. Sorted by most-recent update.\",\n \"count\": 0,\n \"corrections\": []\n}",
"uri": "readypermit://corrections/recent"
}
]
}
},
"resource_uri": "readypermit://corrections/recent",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 544.96,
"status": "ok"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"resources": [
{
"description": "Last 100 corrections to ReadyPermit pages that have been verified or applied. Each entry is a real edit that improved the dataset, with city, topic, source, and timestamps. Surfaces the civic-feedback flywheel that drives the Staff Responsiveness dimension of Buildability City Score\u2122.",
"mimeType": "application/json",
"name": "Recent confirmed corrections",
"uri": "readypermit://corrections/recent"
}
]
}
},
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 167.43,
"status": "ok"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://rnfonkwthefktfvfwypr.supabase.co/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/.well-known/mcp/server-card.json"
},
"latency_ms": 47.62,
"status": "error"
},
"session_resume_probe": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-session-id": "1267abe1-2908-44f0-ac1f-baf89e0e965d",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 301,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Analyze Property (Full Buildability Report)"
},
"description": "Get complete property intelligence for any U.S. address \u2014 zoning, buildability, flood risk, environmental hazards, and lot data from 20+ government sources (FEMA, EPA, USGS, Census, Regrid). USE WHEN: user asks 'what can I build', 'is this property buildable', 'analyze this address', 'run a report on', 'can I build an ADU', 'tell me about this property', 'is this a good deal', or provides any U.S. street address. RETURNS: Buildability\u2122 Score (0-100), zoning code, permitted uses, FEMA flood zone, setbacks, FAR, environmental risks, lot size, structure info, owner, and AI recommendation. Takes ~20 seconds. Replaces $2,000-$4,500 zoning consultant work.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (e.g., '123 Main St, Denver, CO 80202'). Accepts any format \u2014 will be geocoded.",
"type": "string"
},
"persona": {
"description": "User persona for tailored analysis (optional). Changes tone and emphasis: investor=deal metrics, developer=feasibility, homeowner=plain English, lender=collateral risk, broker=disclosure items.",
"enum": [
"investor",
"developer",
"homeowner",
"lender",
"broker"
],
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "analyze_property"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get Buildability Score (Quick Screen)"
},
"description": "Get a quick Buildability\u2122 Score (0-100) for a property without running the full analysis. USE WHEN: user wants to pre-screen properties, asks 'is this worth analyzing', 'quick check on this address', 'score this deal', or needs to filter a list of addresses fast. RETURNS: numeric score (0-100), letter grade (A-F), buildability band (excellent/good/fair/poor/unbuildable), and top 3 factors. Faster than analyze_property \u2014 use for deal screening and portfolio filtering.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_buildability_score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Lookup Zoning (Permitted Uses)"
},
"description": "Look up the zoning designation and development standards for any U.S. property address. USE WHEN: user asks 'what zone is this', 'what's the zoning', 'what can I build on this lot', 'is this residential or commercial', 'can I build a duplex here', or any question about permitted uses. RETURNS: zone code (e.g., R-1, C-2, MU-3), zone description, permitted uses list, conditional uses, overlay districts, max FAR, max height, setbacks (front/side/rear), lot coverage, and parking requirements.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "lookup_zoning"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check FEMA Flood Zone"
},
"description": "Check FEMA National Flood Hazard Layer for any U.S. property. USE WHEN: user asks 'is this in a flood zone', 'do I need flood insurance', 'is this property flood-safe', 'FEMA flood map', 'is this in a 100-year flood plain', or mentions flood risk. RETURNS: FEMA zone code (X = low risk, A/AE = 100-year, V/VE = coastal high risk), flood insurance requirement (mandatory/optional), base flood elevation if applicable, and annual flood risk probability. Uses the official FEMA API.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "check_flood_zone"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check Environmental Risks"
},
"description": "Run full environmental risk screening for a property using EPA, USGS, NOAA, and USDA data. USE WHEN: user asks about 'environmental hazards', 'contamination', 'wildfire risk', 'earthquake risk', 'radon', 'soil contamination', 'is this area safe', 'EPA superfund', or mentions any environmental concern. RETURNS: wildfire hazard zone, seismic risk zone, EPA contamination site proximity (Superfund, RCRA, brownfield), radon zone level, soil concerns, and combined risk score. Accepts a street address OR coordinates.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Property latitude (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Property longitude (use if no address available)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "check_environmental_risks"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Comparable Sales"
},
"description": "Find recent comparable property sales and rental comps near a property. USE WHEN: user asks 'what are comps in this area', 'recent sales near here', 'what did similar houses sell for', 'price per square foot', 'market value estimate', 'rental comps', or needs comparable sales data. RETURNS: subject property AVM, list of recent sales with price, sqft, price/sqft, distance, beds/baths, and rental comps with rent amounts. Also includes local market stats. Useful for investor deal evaluation, CMA, and market analysis.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Center latitude for search (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Center longitude for search (use if no address available)",
"type": "number"
},
"radius_miles": {
"description": "Search radius in miles (default: 0.5, max: 5)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "search_comparable_sales"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Calculate Buildable Envelope"
},
"description": "Calculate the maximum buildable area (building envelope) for a lot given zoning constraints. USE WHEN: user asks 'how much can I build', 'max square footage', 'what's the buildable area', 'calculate the envelope', 'how big can my house be', or has specific lot dimensions and zoning rules they want to model. RETURNS: max buildable square feet, max number of stories, envelope dimensions (length \u00d7 width \u00d7 height), usable footprint, and coverage math. Takes lot area, setbacks, FAR, height limit, and coverage as inputs \u2014 a pure calculation tool, does not query data.",
"inputSchema": {
"properties": {
"front_setback_ft": {
"description": "Front setback in feet (distance from front property line)",
"type": "number"
},
"lot_area_sqft": {
"description": "Total lot area in square feet",
"type": "number"
},
"max_far": {
"description": "Maximum floor area ratio (e.g., 0.5, 2.0). FAR = building area / lot area.",
"type": "number"
},
"max_height_ft": {
"description": "Maximum building height in feet",
"type": "number"
},
"max_lot_coverage": {
"description": "Maximum lot coverage as decimal (e.g., 0.45 for 45%)",
"type": "number"
},
"rear_setback_ft": {
"description": "Rear setback in feet",
"type": "number"
},
"side_setback_ft": {
"description": "Side setback in feet (each side)",
"type": "number"
}
},
"required": [
"lot_area_sqft"
],
"type": "object"
},
"name": "calculate_buildable_envelope"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Submit Correction"
},
"description": "Report an error on a ReadyPermit page so Buildability\u2122 can verify and update. USE WHEN: a user mentions that information on ReadyPermit looks outdated, wrong, or incomplete (e.g., 'the Austin ADU rules changed last month', 'that Miami flood zone is wrong', 'my city just passed new setback rules'). USE ACTIVELY \u2014 this is the civic-infrastructure feedback loop Buildability\u2122 runs with cities. Every confirmed correction is applied to the page within 48 hours, and the response time on each submission feeds the Staff Responsiveness dimension of Buildability City Score\u2122. RETURNS: a correction ID for tracking + status.",
"inputSchema": {
"properties": {
"issue": {
"description": "What is incorrect or outdated. Be specific \u2014 mention the exact fact, rule, or data point.",
"type": "string"
},
"pageUrl": {
"description": "Full ReadyPermit URL where the error appears (e.g., 'https://readypermit.ai/adu/los-angeles').",
"type": "string"
},
"reporterContext": {
"description": "Optional: how the error was discovered (e.g., 'user self-reported during property research conversation', 'comparing to Austin Code \u00a725-2-1604').",
"type": "string"
},
"sourceDocument": {
"description": "Optional: citation or URL supporting the correction (city ordinance, state law, news article, planning department page).",
"type": "string"
},
"suggestion": {
"description": "Optional: what the correct information is, if known.",
"type": "string"
}
},
"required": [
"pageUrl",
"issue"
],
"type": "object"
},
"name": "submit_correction"
}
]
}
},
"requested_protocol_version": "2024-11-05",
"resumed": true,
"session_id_present": true,
"transport": "streamable-http",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 222.43,
"status": "ok"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 8,
"previous_tool_count": 8,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Analyze Property (Full Buildability Report)"
},
"description": "Get complete property intelligence for any U.S. address \u2014 zoning, buildability, flood risk, environmental hazards, and lot data from 20+ government sources (FEMA, EPA, USGS, Census, Regrid). USE WHEN: user asks 'what can I build', 'is this property buildable', 'analyze this address', 'run a report on', 'can I build an ADU', 'tell me about this property', 'is this a good deal', or provides any U.S. street address. RETURNS: Buildability\u2122 Score (0-100), zoning code, permitted uses, FEMA flood zone, setbacks, FAR, environmental risks, lot size, structure info, owner, and AI recommendation. Takes ~20 seconds. Replaces $2,000-$4,500 zoning consultant work.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (e.g., '123 Main St, Denver, CO 80202'). Accepts any format \u2014 will be geocoded.",
"type": "string"
},
"persona": {
"description": "User persona for tailored analysis (optional). Changes tone and emphasis: investor=deal metrics, developer=feasibility, homeowner=plain English, lender=collateral risk, broker=disclosure items.",
"enum": [
"investor",
"developer",
"homeowner",
"lender",
"broker"
],
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "analyze_property"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get Buildability Score (Quick Screen)"
},
"description": "Get a quick Buildability\u2122 Score (0-100) for a property without running the full analysis. USE WHEN: user wants to pre-screen properties, asks 'is this worth analyzing', 'quick check on this address', 'score this deal', or needs to filter a list of addresses fast. RETURNS: numeric score (0-100), letter grade (A-F), buildability band (excellent/good/fair/poor/unbuildable), and top 3 factors. Faster than analyze_property \u2014 use for deal screening and portfolio filtering.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_buildability_score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Lookup Zoning (Permitted Uses)"
},
"description": "Look up the zoning designation and development standards for any U.S. property address. USE WHEN: user asks 'what zone is this', 'what's the zoning', 'what can I build on this lot', 'is this residential or commercial', 'can I build a duplex here', or any question about permitted uses. RETURNS: zone code (e.g., R-1, C-2, MU-3), zone description, permitted uses list, conditional uses, overlay districts, max FAR, max height, setbacks (front/side/rear), lot coverage, and parking requirements.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "lookup_zoning"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check FEMA Flood Zone"
},
"description": "Check FEMA National Flood Hazard Layer for any U.S. property. USE WHEN: user asks 'is this in a flood zone', 'do I need flood insurance', 'is this property flood-safe', 'FEMA flood map', 'is this in a 100-year flood plain', or mentions flood risk. RETURNS: FEMA zone code (X = low risk, A/AE = 100-year, V/VE = coastal high risk), flood insurance requirement (mandatory/optional), base flood elevation if applicable, and annual flood risk probability. Uses the official FEMA API.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "check_flood_zone"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check Environmental Risks"
},
"description": "Run full environmental risk screening for a property using EPA, USGS, NOAA, and USDA data. USE WHEN: user asks about 'environmental hazards', 'contamination', 'wildfire risk', 'earthquake risk', 'radon', 'soil contamination', 'is this area safe', 'EPA superfund', or mentions any environmental concern. RETURNS: wildfire hazard zone, seismic risk zone, EPA contamination site proximity (Superfund, RCRA, brownfield), radon zone level, soil concerns, and combined risk score. Accepts a street address OR coordinates.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Property latitude (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Property longitude (use if no address available)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "check_environmental_risks"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Comparable Sales"
},
"description": "Find recent comparable property sales and rental comps near a property. USE WHEN: user asks 'what are comps in this area', 'recent sales near here', 'what did similar houses sell for', 'price per square foot', 'market value estimate', 'rental comps', or needs comparable sales data. RETURNS: subject property AVM, list of recent sales with price, sqft, price/sqft, distance, beds/baths, and rental comps with rent amounts. Also includes local market stats. Useful for investor deal evaluation, CMA, and market analysis.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Center latitude for search (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Center longitude for search (use if no address available)",
"type": "number"
},
"radius_miles": {
"description": "Search radius in miles (default: 0.5, max: 5)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "search_comparable_sales"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Calculate Buildable Envelope"
},
"description": "Calculate the maximum buildable area (building envelope) for a lot given zoning constraints. USE WHEN: user asks 'how much can I build', 'max square footage', 'what's the buildable area', 'calculate the envelope', 'how big can my house be', or has specific lot dimensions and zoning rules they want to model. RETURNS: max buildable square feet, max number of stories, envelope dimensions (length \u00d7 width \u00d7 height), usable footprint, and coverage math. Takes lot area, setbacks, FAR, height limit, and coverage as inputs \u2014 a pure calculation tool, does not query data.",
"inputSchema": {
"properties": {
"front_setback_ft": {
"description": "Front setback in feet (distance from front property line)",
"type": "number"
},
"lot_area_sqft": {
"description": "Total lot area in square feet",
"type": "number"
},
"max_far": {
"description": "Maximum floor area ratio (e.g., 0.5, 2.0). FAR = building area / lot area.",
"type": "number"
},
"max_height_ft": {
"description": "Maximum building height in feet",
"type": "number"
},
"max_lot_coverage": {
"description": "Maximum lot coverage as decimal (e.g., 0.45 for 45%)",
"type": "number"
},
"rear_setback_ft": {
"description": "Rear setback in feet",
"type": "number"
},
"side_setback_ft": {
"description": "Side setback in feet (each side)",
"type": "number"
}
},
"required": [
"lot_area_sqft"
],
"type": "object"
},
"name": "calculate_buildable_envelope"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Submit Correction"
},
"description": "Report an error on a ReadyPermit page so Buildability\u2122 can verify and update. USE WHEN: a user mentions that information on ReadyPermit looks outdated, wrong, or incomplete (e.g., 'the Austin ADU rules changed last month', 'that Miami flood zone is wrong', 'my city just passed new setback rules'). USE ACTIVELY \u2014 this is the civic-infrastructure feedback loop Buildability\u2122 runs with cities. Every confirmed correction is applied to the page within 48 hours, and the response time on each submission feeds the Staff Responsiveness dimension of Buildability City Score\u2122. RETURNS: a correction ID for tracking + status.",
"inputSchema": {
"properties": {
"issue": {
"description": "What is incorrect or outdated. Be specific \u2014 mention the exact fact, rule, or data point.",
"type": "string"
},
"pageUrl": {
"description": "Full ReadyPermit URL where the error appears (e.g., 'https://readypermit.ai/adu/los-angeles').",
"type": "string"
},
"reporterContext": {
"description": "Optional: how the error was discovered (e.g., 'user self-reported during property research conversation', 'comparing to Austin Code \u00a725-2-1604').",
"type": "string"
},
"sourceDocument": {
"description": "Optional: citation or URL supporting the correction (city ordinance, state law, news article, planning department page).",
"type": "string"
},
"suggestion": {
"description": "Optional: what the correct information is, if known.",
"type": "string"
}
},
"required": [
"pageUrl",
"issue"
],
"type": "object"
},
"name": "submit_correction"
}
]
}
},
"url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server"
},
"latency_ms": 217.7,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"mcp-session-id": "1267abe1-2908-44f0-ac1f-baf89e0e965d",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Analyze Property (Full Buildability Report)"
},
"description": "Get complete property intelligence for any U.S. address \u2014 zoning, buildability, flood risk, environmental hazards, and lot data from 20+ government sources (FEMA, EPA, USGS, Census, Regrid). USE WHEN: user asks 'what can I build', 'is this property buildable', 'analyze this address', 'run a report on', 'can I build an ADU', 'tell me about this property', 'is this a good deal', or provides any U.S. street address. RETURNS: Buildability\u2122 Score (0-100), zoning code, permitted uses, FEMA flood zone, setbacks, FAR, environmental risks, lot size, structure info, owner, and AI recommendation. Takes ~20 seconds. Replaces $2,000-$4,500 zoning consultant work.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (e.g., '123 Main St, Denver, CO 80202'). Accepts any format \u2014 will be geocoded.",
"type": "string"
},
"persona": {
"description": "User persona for tailored analysis (optional). Changes tone and emphasis: investor=deal metrics, developer=feasibility, homeowner=plain English, lender=collateral risk, broker=disclosure items.",
"enum": [
"investor",
"developer",
"homeowner",
"lender",
"broker"
],
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "analyze_property"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get Buildability Score (Quick Screen)"
},
"description": "Get a quick Buildability\u2122 Score (0-100) for a property without running the full analysis. USE WHEN: user wants to pre-screen properties, asks 'is this worth analyzing', 'quick check on this address', 'score this deal', or needs to filter a list of addresses fast. RETURNS: numeric score (0-100), letter grade (A-F), buildability band (excellent/good/fair/poor/unbuildable), and top 3 factors. Faster than analyze_property \u2014 use for deal screening and portfolio filtering.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_buildability_score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Lookup Zoning (Permitted Uses)"
},
"description": "Look up the zoning designation and development standards for any U.S. property address. USE WHEN: user asks 'what zone is this', 'what's the zoning', 'what can I build on this lot', 'is this residential or commercial', 'can I build a duplex here', or any question about permitted uses. RETURNS: zone code (e.g., R-1, C-2, MU-3), zone description, permitted uses list, conditional uses, overlay districts, max FAR, max height, setbacks (front/side/rear), lot coverage, and parking requirements.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "lookup_zoning"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check FEMA Flood Zone"
},
"description": "Check FEMA National Flood Hazard Layer for any U.S. property. USE WHEN: user asks 'is this in a flood zone', 'do I need flood insurance', 'is this property flood-safe', 'FEMA flood map', 'is this in a 100-year flood plain', or mentions flood risk. RETURNS: FEMA zone code (X = low risk, A/AE = 100-year, V/VE = coastal high risk), flood insurance requirement (mandatory/optional), base flood elevation if applicable, and annual flood risk probability. Uses the official FEMA API.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "check_flood_zone"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check Environmental Risks"
},
"description": "Run full environmental risk screening for a property using EPA, USGS, NOAA, and USDA data. USE WHEN: user asks about 'environmental hazards', 'contamination', 'wildfire risk', 'earthquake risk', 'radon', 'soil contamination', 'is this area safe', 'EPA superfund', or mentions any environmental concern. RETURNS: wildfire hazard zone, seismic risk zone, EPA contamination site proximity (Superfund, RCRA, brownfield), radon zone level, soil concerns, and combined risk score. Accepts a street address OR coordinates.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Property latitude (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Property longitude (use if no address available)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "check_environmental_risks"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Comparable Sales"
},
"description": "Find recent comparable property sales and rental comps near a property. USE WHEN: user asks 'what are comps in this area', 'recent sales near here', 'what did similar houses sell for', 'price per square foot', 'market value estimate', 'rental comps', or needs comparable sales data. RETURNS: subject property AVM, list of recent sales with price, sqft, price/sqft, distance, beds/baths, and rental comps with rent amounts. Also includes local market stats. Useful for investor deal evaluation, CMA, and market analysis.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Center latitude for search (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Center longitude for search (use if no address available)",
"type": "number"
},
"radius_miles": {
"description": "Search radius in miles (default: 0.5, max: 5)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "search_comparable_sales"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Calculate Buildable Envelope"
},
"description": "Calculate the maximum buildable area (building envelope) for a lot given zoning constraints. USE WHEN: user asks 'how much can I build', 'max square footage', 'what's the buildable area', 'calculate the envelope', 'how big can my house be', or has specific lot dimensions and zoning rules they want to model. RETURNS: max buildable square feet, max number of stories, envelope dimensions (length \u00d7 width \u00d7 height), usable footprint, and coverage math. Takes lot area, setbacks, FAR, height limit, and coverage as inputs \u2014 a pure calculation tool, does not query data.",
"inputSchema": {
"properties": {
"front_setback_ft": {
"description": "Front setback in feet (distance from front property line)",
"type": "number"
},
"lot_area_sqft": {
"description": "Total lot area in square feet",
"type": "number"
},
"max_far": {
"description": "Maximum floor area ratio (e.g., 0.5, 2.0). FAR = building area / lot area.",
"type": "number"
},
"max_height_ft": {
"description": "Maximum building height in feet",
"type": "number"
},
"max_lot_coverage": {
"description": "Maximum lot coverage as decimal (e.g., 0.45 for 45%)",
"type": "number"
},
"rear_setback_ft": {
"description": "Rear setback in feet",
"type": "number"
},
"side_setback_ft": {
"description": "Side setback in feet (each side)",
"type": "number"
}
},
"required": [
"lot_area_sqft"
],
"type": "object"
},
"name": "calculate_buildable_envelope"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Submit Correction"
},
"description": "Report an error on a ReadyPermit page so Buildability\u2122 can verify and update. USE WHEN: a user mentions that information on ReadyPermit looks outdated, wrong, or incomplete (e.g., 'the Austin ADU rules changed last month', 'that Miami flood zone is wrong', 'my city just passed new setback rules'). USE ACTIVELY \u2014 this is the civic-infrastructure feedback loop Buildability\u2122 runs with cities. Every confirmed correction is applied to the page within 48 hours, and the response time on each submission feeds the Staff Responsiveness dimension of Buildability City Score\u2122. RETURNS: a correction ID for tracking + status.",
"inputSchema": {
"properties": {
"issue": {
"description": "What is incorrect or outdated. Be specific \u2014 mention the exact fact, rule, or data point.",
"type": "string"
},
"pageUrl": {
"description": "Full ReadyPermit URL where the error appears (e.g., 'https://readypermit.ai/adu/los-angeles').",
"type": "string"
},
"reporterContext": {
"description": "Optional: how the error was discovered (e.g., 'user self-reported during property research conversation', 'comparing to Austin Code \u00a725-2-1604').",
"type": "string"
},
"sourceDocument": {
"description": "Optional: citation or URL supporting the correction (city ordinance, state law, news article, planning department page).",
"type": "string"
},
"suggestion": {
"description": "Optional: what the correct information is, if known.",
"type": "string"
}
},
"required": [
"pageUrl",
"issue"
],
"type": "object"
},
"name": "submit_correction"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": 200,
"expired_session_error": null,
"expired_session_status_code": 200,
"issues": [
"missing_protocol_header",
"bad_protocol_not_rejected",
"expired_session_not_404"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": true,
"transport": "streamable-http"
},
"latency_ms": 270.91,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": {
"argument_name": "address",
"name": "investor_analysis",
"type": "prompt"
}
},
"initialize_capability_keys": [
"prompts",
"resources",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 404,
"probe_status": "missing"
}
},
"latency_ms": 188.49,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://rnfonkwthefktfvfwypr.supabase.co/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://rnfonkwthefktfvfwypr.supabase.co/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://rnfonkwthefktfvfwypr.supabase.co/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"mcp-session-id": "1267abe1-2908-44f0-ac1f-baf89e0e965d",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Analyze Property (Full Buildability Report)"
},
"description": "Get complete property intelligence for any U.S. address \u2014 zoning, buildability, flood risk, environmental hazards, and lot data from 20+ government sources (FEMA, EPA, USGS, Census, Regrid). USE WHEN: user asks 'what can I build', 'is this property buildable', 'analyze this address', 'run a report on', 'can I build an ADU', 'tell me about this property', 'is this a good deal', or provides any U.S. street address. RETURNS: Buildability\u2122 Score (0-100), zoning code, permitted uses, FEMA flood zone, setbacks, FAR, environmental risks, lot size, structure info, owner, and AI recommendation. Takes ~20 seconds. Replaces $2,000-$4,500 zoning consultant work.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (e.g., '123 Main St, Denver, CO 80202'). Accepts any format \u2014 will be geocoded.",
"type": "string"
},
"persona": {
"description": "User persona for tailored analysis (optional). Changes tone and emphasis: investor=deal metrics, developer=feasibility, homeowner=plain English, lender=collateral risk, broker=disclosure items.",
"enum": [
"investor",
"developer",
"homeowner",
"lender",
"broker"
],
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "analyze_property"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get Buildability Score (Quick Screen)"
},
"description": "Get a quick Buildability\u2122 Score (0-100) for a property without running the full analysis. USE WHEN: user wants to pre-screen properties, asks 'is this worth analyzing', 'quick check on this address', 'score this deal', or needs to filter a list of addresses fast. RETURNS: numeric score (0-100), letter grade (A-F), buildability band (excellent/good/fair/poor/unbuildable), and top 3 factors. Faster than analyze_property \u2014 use for deal screening and portfolio filtering.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_buildability_score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Lookup Zoning (Permitted Uses)"
},
"description": "Look up the zoning designation and development standards for any U.S. property address. USE WHEN: user asks 'what zone is this', 'what's the zoning', 'what can I build on this lot', 'is this residential or commercial', 'can I build a duplex here', or any question about permitted uses. RETURNS: zone code (e.g., R-1, C-2, MU-3), zone description, permitted uses list, conditional uses, overlay districts, max FAR, max height, setbacks (front/side/rear), lot coverage, and parking requirements.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "lookup_zoning"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check FEMA Flood Zone"
},
"description": "Check FEMA National Flood Hazard Layer for any U.S. property. USE WHEN: user asks 'is this in a flood zone', 'do I need flood insurance', 'is this property flood-safe', 'FEMA flood map', 'is this in a 100-year flood plain', or mentions flood risk. RETURNS: FEMA zone code (X = low risk, A/AE = 100-year, V/VE = coastal high risk), flood insurance requirement (mandatory/optional), base flood elevation if applicable, and annual flood risk probability. Uses the official FEMA API.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "check_flood_zone"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Check Environmental Risks"
},
"description": "Run full environmental risk screening for a property using EPA, USGS, NOAA, and USDA data. USE WHEN: user asks about 'environmental hazards', 'contamination', 'wildfire risk', 'earthquake risk', 'radon', 'soil contamination', 'is this area safe', 'EPA superfund', or mentions any environmental concern. RETURNS: wildfire hazard zone, seismic risk zone, EPA contamination site proximity (Superfund, RCRA, brownfield), radon zone level, soil concerns, and combined risk score. Accepts a street address OR coordinates.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Property latitude (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Property longitude (use if no address available)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "check_environmental_risks"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Comparable Sales"
},
"description": "Find recent comparable property sales and rental comps near a property. USE WHEN: user asks 'what are comps in this area', 'recent sales near here', 'what did similar houses sell for', 'price per square foot', 'market value estimate', 'rental comps', or needs comparable sales data. RETURNS: subject property AVM, list of recent sales with price, sqft, price/sqft, distance, beds/baths, and rental comps with rent amounts. Also includes local market stats. Useful for investor deal evaluation, CMA, and market analysis.",
"inputSchema": {
"properties": {
"address": {
"description": "Full U.S. property address (preferred \u2014 gives best results)",
"type": "string"
},
"latitude": {
"description": "Center latitude for search (use if no address available)",
"type": "number"
},
"longitude": {
"description": "Center longitude for search (use if no address available)",
"type": "number"
},
"radius_miles": {
"description": "Search radius in miles (default: 0.5, max: 5)",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "search_comparable_sales"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Calculate Buildable Envelope"
},
"description": "Calculate the maximum buildable area (building envelope) for a lot given zoning constraints. USE WHEN: user asks 'how much can I build', 'max square footage', 'what's the buildable area', 'calculate the envelope', 'how big can my house be', or has specific lot dimensions and zoning rules they want to model. RETURNS: max buildable square feet, max number of stories, envelope dimensions (length \u00d7 width \u00d7 height), usable footprint, and coverage math. Takes lot area, setbacks, FAR, height limit, and coverage as inputs \u2014 a pure calculation tool, does not query data.",
"inputSchema": {
"properties": {
"front_setback_ft": {
"description": "Front setback in feet (distance from front property line)",
"type": "number"
},
"lot_area_sqft": {
"description": "Total lot area in square feet",
"type": "number"
},
"max_far": {
"description": "Maximum floor area ratio (e.g., 0.5, 2.0). FAR = building area / lot area.",
"type": "number"
},
"max_height_ft": {
"description": "Maximum building height in feet",
"type": "number"
},
"max_lot_coverage": {
"description": "Maximum lot coverage as decimal (e.g., 0.45 for 45%)",
"type": "number"
},
"rear_setback_ft": {
"description": "Rear setback in feet",
"type": "number"
},
"side_setback_ft": {
"description": "Side setback in feet (each side)",
"type": "number"
}
},
"required": [
"lot_area_sqft"
],
"type": "object"
},
"name": "calculate_buildable_envelope"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Submit Correction"
},
"description": "Report an error on a ReadyPermit page so Buildability\u2122 can verify and update. USE WHEN: a user mentions that information on ReadyPermit looks outdated, wrong, or incomplete (e.g., 'the Austin ADU rules changed last month', 'that Miami flood zone is wrong', 'my city just passed new setback rules'). USE ACTIVELY \u2014 this is the civic-infrastructure feedback loop Buildability\u2122 runs with cities. Every confirmed correction is applied to the page within 48 hours, and the response time on each submission feeds the Staff Responsiveness dimension of Buildability City Score\u2122. RETURNS: a correction ID for tracking + status.",
"inputSchema": {
"properties": {
"issue": {
"description": "What is incorrect or outdated. Be specific \u2014 mention the exact fact, rule, or data point.",
"type": "string"
},
"pageUrl": {
"description": "Full ReadyPermit URL where the error appears (e.g., 'https://readypermit.ai/adu/los-angeles').",
"type": "string"
},
"reporterContext": {
"description": "Optional: how the error was discovered (e.g., 'user self-reported during property research conversation', 'comparing to Austin Code \u00a725-2-1604').",
"type": "string"
},
"sourceDocument": {
"description": "Optional: citation or URL supporting the correction (city ordinance, state law, news article, planning department page).",
"type": "string"
},
"suggestion": {
"description": "Optional: what the correct information is, if known.",
"type": "string"
}
},
"required": [
"pageUrl",
"issue"
],
"type": "object"
},
"name": "submit_correction"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": 200,
"expired_session_error": null,
"expired_session_status_code": 200,
"issues": [
"missing_protocol_header",
"bad_protocol_not_rejected",
"expired_session_not_404"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": true,
"transport": "streamable-http"
}
},
"remote_url": "https://rnfonkwthefktfvfwypr.supabase.co/functions/v1/mcp-server",
"server_card_payload": null,
"server_identifier": "ai.readypermit/geo"
}