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:
- 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. - 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. - Validated (
pipeline/validated/) — Structured data undergoes quality control: coordinate accuracy, schema conformance, and deduplication checks. This is the final gate before production. - 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
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Unique numeric ID within the city dataset |
geometry.coordinates | [lng, lat] | Yes | WGS84 coordinates as [longitude, latitude] |
slug | string | Yes | URL-friendly unique identifier (e.g., shelter-1) |
name | string | Yes | Display name of the shelter |
neighborhood | string | Yes | Neighborhood or area name |
address | string | Yes | Street address |
shelterType | string | Yes | One of: Public Shelter, Protected Parking, Residential Protected Parking, School Shelter |
capacity | integer | null | No | Number of people the shelter can hold |
accessible | boolean | Yes | Whether the shelter is wheelchair accessible |
mapAddress | string | Yes | Address as used for map lookups |
designatedFloors | string | null | No | Description of designated safe floors |
deepestFloor | integer | null | No | Deepest underground floor (negative number, e.g., -3) |
alertZone | string | null | No | Home 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
- Jerusalem: Sourced from the JLM-Shelters-Dot-Com project
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.