MCP server for Israel RedAlert emergency alerts - real-time alerts, statistics, shelter search, and city data
RedAlert MCP has 12 tools with consistent naming (verb_noun pattern) and descriptions. All tools have input schemas with Zod validation. However, descriptions are often generic (e.g., 'Get statistics summary of alerts' lacks context on when to use vs. similar tools). Parameter descriptions are present but minimal, many lack format guidance, constraints, or examples of valid values. Output schemas are not documented in the source code, forcing LLMs to infer response structure. Error handling uses formatErrorResult() but lacks recovery guidance or error categorization. No tool annotations (readOnlyHint, destructiveHint) despite clear read/write distinctions.
Get real-time snapshot of cities currently under alert, grouped by alert type (missiles, earthquakes, etc.)
Check the current real-time alert subscription status including connection state, subscribed types, and buffer size.
Get city catalog for lookups - raw location records with optional translations, coordinates, and countdown times
Get statistics by cities
Get distribution statistics of alerts
Get historical statistics of alerts
Get statistics summary of alerts
Output schemas not documented. LLMs cannot infer response structure for any tool. No documentation of which fields are returned, their types, or how to chain results to downstream tools.
Stats tools (get_stats_*) have generic descriptions that do not distinguish when to use each. 'Get statistics summary' vs 'Get statistics by cities' vs 'Get historical statistics' lacks clarity on use cases and data differences.
Parameter descriptions lack format guidance and constraints. E.g., 'startDate' and 'endDate' have no format specification (ISO 8601? Unix timestamp?). 'sort' and 'order' parameters lack enum values. LLMs will guess and pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Check the health status of the RedAlert API
Retrieve buffered real-time alerts that arrived since the last poll. Must call subscribe_alerts first.
Search for emergency shelters by location
Connect to RedAlert Socket.IO server and start receiving real-time emergency alerts. Optionally filter by alert types and enable test mode for simulated alerts.
Disconnect from RedAlert Socket.IO server and stop receiving real-time alerts. Clears the alert buffer.
Error handling returns formatErrorResult(error) with no recovery guidance. LLMs receive raw errors with no actionable next steps. E.g., 'Connection failed' tells agent nothing about retry strategy or fallback tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). subscribe_alerts and unsubscribe_alerts are clearly destructive (state-changing), but LLMs have no metadata to distinguish them from read-only tools like get_active_alerts.