Miklat MCP Data

March 9, 2026 · View on GitHub

Community-maintained geodata repository for Israeli public shelters (miklatim tziburim). This repository serves as the upstream data source for the Miklat MCP server.

Purpose

The Miklat MCP server provides AI agents with tools to find public shelters in Israel via the Model Context Protocol. The shelter geodata powering it lives here, in a separate repository, so that:

  • Community contributions can be reviewed and merged independently of the MCP server code
  • Data quality can be validated before it reaches the live MCP endpoint
  • New cities can be added by contributors who don't need to work with the server codebase

Data from this repository is periodically pulled downstream into the MCP server and deployed.

Repository Structure

data-manifest/
  manifest.json                    # Ground truth: all 199 areas, IDs, and raw source URLs
data/
  <area>/shelters.json             # Production-ready GeoJSON (consumed by MCP server)
pipeline/
  first-entry/                     # Raw data in any format (PDFs, CSVs, scraped pages)
    tracking.json                  # Pipeline status tracker for each area
    <area>/                        # Raw source files per area
  structured/                      # AI-processed data conforming to schema
    <area>/                        # Structured intermediate data
    shelter-resources.json         # Municipal resource directory
  validated/                       # Final review stage before promotion to data/
    <area>/                        # QC-approved data awaiting promotion

Each area (city, local council, or regional council) has a unique identifier (MKT-001 through MKT-199) defined in the data manifest. The manifest is the single source of truth for what areas are tracked and where their raw data can be found.

Data Pipeline

This repository is designed for humans and AI agents to work together. Data moves through a three-stage pipeline before reaching production:

  1. First Entry (pipeline/first-entry/) — Raw data is collected from municipal sources in any format: PDFs, spreadsheets, web scrapes, or CSV exports. Contributors (human or AI) drop source material here.
  2. Structured (pipeline/structured/) — AI agents process the raw data, geocode addresses, and structure it into the GeoJSON schema defined below. Human contributors can also do this step manually.
  3. Validated (pipeline/validated/) — Structured data undergoes quality control: coordinate accuracy, schema conformance, and deduplication checks. This is the final gate before production.
  4. Production (data/) — Validated data is promoted here and becomes available to the MCP server. Only data that has passed through all pipeline stages should live in this folder.

Schema

Each shelter is a GeoJSON Feature with the following structure:

{
  "type": "Feature",
  "id": 1,
  "geometry": {
    "type": "Point",
    "coordinates": [35.2189683, 31.75959347]
  },
  "properties": {
    "slug": "shelter-1",
    "name": "Shelter 681",
    "neighborhood": "Baka",
    "address": "8 Efrayim St, Jerusalem, Israel",
    "shelterType": "Public Shelter",
    "capacity": 80,
    "accessible": false,
    "mapAddress": "8 Efrayim St, Jerusalem, Israel",
    "designatedFloors": null,
    "deepestFloor": null,
    "alertZone": "Jerusalem South"
  }
}

Field Reference

FieldTypeRequiredDescription
idintegerYesUnique numeric ID within the city dataset
geometry.coordinates[lng, lat]YesWGS84 coordinates as [longitude, latitude]
slugstringYesURL-friendly unique identifier (e.g., shelter-1)
namestringYesDisplay name of the shelter
neighborhoodstringYesNeighborhood or area name
addressstringYesStreet address
shelterTypestringYesOne of: Public Shelter, Protected Parking, Residential Protected Parking, School Shelter
capacityinteger | nullNoNumber of people the shelter can hold
accessiblebooleanYesWhether the shelter is wheelchair accessible
mapAddressstringYesAddress as used for map lookups
designatedFloorsstring | nullNoDescription of designated safe floors
deepestFloorinteger | nullNoDeepest underground floor (negative number, e.g., -3)
alertZonestring | nullNoHome Front Command alert zone name

Contributing

Contributions of shelter data for any Israeli municipality or region are welcome. See CONTRIBUTING.md for full details including:

  • How to submit a pull request with shelter data
  • The data schema, data dictionary, and format specification
  • How to contribute raw URLs or source data you can't convert yourself
  • Contact information for discussing data formats

Municipalities and official data providers are especially encouraged to contribute directly.

Data Sources

License

Shelter data is licensed under the Open Database License (ODbL).

Downstream

This data is consumed by the Miklat MCP server, which exposes it to AI agents via the Model Context Protocol at:

https://mcp.jlmshelters.com/mcp

Disclaimer

Shelter data is gathered periodically from official sources and no guarantee is offered as to its accuracy or completeness. Shelters may be added, removed, or changed between updates. Do not rely solely on this data for personal safety or emergency preparedness. Always verify shelter locations with official municipal sources and follow instructions from local authorities during emergencies.