Zornade MCP - Italian Cadastre, Geospatial & Real Estate Data

MCP serverDev tools

Italian cadastral parcels, geocoding, OMI valuations, risk and demographic data. 85M parcels.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the zornade geocode search tool from Zornade MCP - Italian Cadastre, Geospatial & Real Estate Data

Install Zornade MCP - Italian Cadastre, Geospatial & Real Estate Data

The server’s own address, for the clients that take one directly. Or connect ahel once and every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user zornade-mcp-italian-cadastre-geo 'https://mcp.zornade.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.zornade.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=zornade-mcp-italian-cadastre-geo&config=eyJ1cmwiOiJodHRwczovL21jcC56b3JuYWRlLmNvbS9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.zornade.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add zornade-mcp-italian-cadastre-geo --url 'https://mcp.zornade.com/mcp'

    Run it once, then sign in with codex mcp login zornade-mcp-italian-cadastre-geo if the server asks for an account.

From the project's README

As published by zornade/zornade-mcp in README.md.

Model Context Protocol server for Italian cadastral, geospatial and real estate data, powered by the Zornade API v2.

Add it to any MCP client (Claude, Cursor, VS Code Copilot, Cline, ...) and ask questions about Italian properties in natural language: geocoding, cadastral parcels, risk layers, valuations, solar potential, administrative lists.

Endpoint

https://mcp.zornade.com/mcp

Authentication

A free Zornade API key (zrn_...) from https://app.zornade.com/api is required. Send it as x-api-key header, Authorization: Bearer, or ?api_key= query parameter. Rate limits and scopes are the ones of your key (10,000 requests/hour).

Tools

ToolDescription
zornade_geocode_searchForward geocoding on 18.7M+ Italian addresses (ANNCSU)
zornade_geocode_reverseReverse geocoding by WGS84 coordinates
zornade_parcel_by_idEnriched cadastral parcel profile (risk, economics, solar, valuations, POI, ...)
zornade_parcel_locateParcels by point, multiple points, or bounding box
zornade_parcel_searchParcels by comune, foglio, label
zornade_admin_listsRegions, provinces, municipalities

Connect

Claude Code:

claude mcp add zornade -t http https://mcp.zornade.com/mcp \
  --header "x-api-key: zrn_YOUR_KEY"

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "zornade": {
      "type": "http",
      "url": "https://mcp.zornade.com/mcp",
      "headers": { "x-api-key": "zrn_YOUR_KEY" }
    }
  }
}

Test

curl -X POST https://mcp.zornade.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "x-api-key: zrn_YOUR_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Example

A typical conversation, from natural language to a structured answer:

  1. The user asks: "Is this parcel at risk of flooding, and what is it worth?"
  2. The agent calls zornade_geocode_search with { "query": "via del corso 1, roma" }, then zornade_parcel_by_id with the returned fid.
  3. The answer comes back as compact JSON with English field names:
{
  "fid": 28007851,
  "municipality": { "code": "H501", "name": "Roma", "province": "Roma", "region": "Lazio" },
  "cadastral": { "foglio": "481", "urban_section": null, "municipality_code": "H501", "postal_code": "00186" },
  "risk": { "seismic_zone": 3, "pga": 0.058, "flood_level": null, "landslide_level": null },
  "subsidence": { "velocity_mm_year": -0.8, "risk_class": 1, "risk_label": "negligible", "direction": "stable" },
  "economics": { "avg_residential_price_m2": 6283.33, "tax_year": 2023 },
  "meta": { "licenses": ["..."], "zornade_attribution_required": true }
}

(abridged for brevity; geometry is omitted from tool replies). Field names are English across the API (area_m2, pga, risk_label, ...). A few official cadastral terms stay in Italian on purpose (foglio, sezione), and values like street, municipality and region names are proper names and stay as they are.

Architecture

  • functions/mcp/index.ts - Supabase Edge Function (Deno), built with mcp-lite + Hono, streamable HTTP transport. Pattern from the official Supabase MCP guide.
  • netlify.toml + public/ - Netlify reverse proxy for the clean hostname mcp.zornade.com (no build step).

Documentation

Known limitations

  • The HTTP transport is stateless: no persistent SSE sessions. Some modern SDK clients open a persistent SSE GET after initialize and receive a 400; request/response calls work normally and that error is harmless.
  • Protocol revision negotiation: the server supports the 2025 MCP revisions (2025-03-26 and 2025-06-18). A client requesting a newer or unknown revision is answered with the oldest supported revision instead of an error.
  • Tool responses are text-only: geometries are omitted to keep the LLM context light.
  • Tool calls require a free Zornade API key. Direct API v2 calls are the right tool for batch pipelines, see api.zornade.com.

License

Two distinct layers:

  • Server code: MIT. Free to use, modify and redistribute, also for commercial purposes. The full text is in LICENSE.
  • Data: licenses of the original sources, which remain in force for every consumer of the API and of this server. Key ones:
    • cadastral parcels and cadastral data: Agenzia delle Entrate (free reuse, attribution required)
    • addresses: ANNCSU, ISTAT and Agenzia delle Entrate (CC BY 4.0, partly CC BY 3.0 IT)
    • buildings and map layers: OpenStreetMap (ODbL 1.0)
    • risk and environmental layers: ISPRA, INGV, Copernicus (CC BY 4.0 / Copernicus Data Policy)
    • solar potential: PVGIS-SARAH3, JRC European Union (free reuse)
    • real estate market data: OMI and MEF (free reuse)

Every API response lists the applicable licenses in meta.licenses and the required attribution text. Two attribution levels exist: source attributions are always mandatory; the "Dati elaborati da Zornade" attribution with link to zornade.com is required for free plan keys and can be waived with a commercial license (the response field meta.zornade_attribution_required tells you which rule applies). Full terms: zornade.com.

Tools it offers (6)

What this server listed when ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • zornade_geocode_search
  • zornade_geocode_reverse
  • zornade_parcel_by_id
  • zornade_parcel_locate
  • zornade_parcel_search
  • zornade_admin_lists

Signals

Last commit
Sep 2026
Advanced
Delivery
zornade-mcp MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-zornade-zornade-mcp
Source
github.com/zornade/zornade-mcp
Hosted endpoint
https://mcp.zornade.com/mcp