Miklat MCP: An MCP Server for Finding Public Shelters in Israel
An MCP server that enables AI agents to help users find public bomb shelters (miklatim) in Israel, starting with 198 shelters in Jerusalem.
Living in Israel means thinking about shelter access in a way that most people elsewhere don't have to. When rocket alerts sound, you have between 15 seconds and 90 seconds to reach a protected space, depending on your distance from the border. Knowing where your nearest public shelter is can be a matter of life and death — and yet the data for these locations is scattered across municipal websites in inconsistent formats. Miklat MCP is a project I built to make that data accessible to AI agents via the Model Context Protocol (MCP).

Architecture and Tools
The server is built in TypeScript and deployed to Cloudflare Workers, which gives it edge-level latency globally. It exposes a set of MCP tools — search_shelters, find_nearest_shelters, get_directions_link, and others — that any MCP-compatible client (Claude Desktop, Claude Code, Cursor, ChatGPT) can connect to via streamable HTTP transport at mcp.jlmshelters.com/mcp. The underlying data is GeoJSON, with each shelter represented as a Feature containing coordinates, capacity, accessibility info, shelter type, and alert zone.
Currently it covers Jerusalem with 198 public shelters. You can search by free text (name, address, neighborhood), find the nearest shelter from GPS coordinates, filter by type (public shelter, protected parking, school shelter) or accessibility, and generate Google Maps or Waze navigation links directly to a shelter. The get_stats tool provides summary data: total count, breakdown by type, and aggregate capacity numbers.

Data Pipeline and Expansion
The geodata lives in a separate repository — Miklat-MCP-Data — which serves as the upstream source. This separation was intentional: it means community contributions to shelter data can be reviewed independently of the server code, and new cities can be added by people who don't need to touch the TypeScript codebase. The data pipeline has three stages: raw first-entry data (PDFs, CSVs, scraped pages), AI-structured GeoJSON conforming to the schema, and a validated stage that passes QC before being promoted to production. It's designed for humans and AI agents to collaborate on data ingestion.
A data manifest tracks all 199 Israeli areas (cities, local councils, regional councils) with unique IDs (MKT-001 through MKT-199), so expansion beyond Jerusalem is just a matter of sourcing and processing the geodata. The Cloudflare deployment includes a WAF rule that restricts the parent domain to Israeli traffic while keeping the MCP endpoint globally accessible.
Check out the MCP server on GitHub, and the data repository at Miklat-MCP-Data.
danielrosehill/Miklat-MCP View on GitHub danielrosehill/Miklat-MCP-Data View on GitHub