
SanAlert
io.github.plrojekPublished by GitHub account plrojekv1.1.0Updated Nov 3, 2026
Unofficial threat level from the air for a place in Poland, worked out on your own computer.
The publisher's own server: Alertcamp
Overview
SanAlert's local MCP server; no sign-in required; STDIO.
No AI overview yet: these facts come from the registry entry and the server itself.
Installation
In SourceWeft
- Open SanAlert in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
SanAlert for AI assistants
The unofficial threat level from the air for a place in Poland, for an AI assistant that can run a local MCP server (Claude Code, Claude Desktop and others). Ask it "what is the level in Przemyśl?" and the assistant gets the answer the website would show for that place. Not an official warning system: it does not replace sirens, Alert RCB or instructions from the authorities.
What it does, and what it sends
- It runs on your computer and talks to the assistant over stdio.
- When the assistant asks about a place, it fetches
https://api.sanalert.pl/v1/state, the same public document the website and the apps read: at most once every 5 s, withIf-None-Matchand the User-AgentSanAlert-MCP/<version>. Once per run it fetches the public grid (/v1/grid/1.json) to find the place's ~11 km square and its voivodeship. - It looks the place's level up in that document with the rules SanAlert's website and apps follow (sanalert.pl/jak-to-dziala). The place stays on your computer: no request carries it, and a town's name is never looked up online.
- The privacy page says the same (sanalert.pl/prywatnosc, "Serwer SanAlert dla asystentów AI"). Terms (Regulamin, Умови).
The tool
sanalert_level takes place, one of the website's towns (Przemyśl, Lublin, Rzeszów, Chełm and
the rest of its list; Polish letters optional, and Warsaw and Cracow work too), or latitude and longitude, and language:
pl, en or uk.
The towns place accepts are also a resource, sanalert://towns (1.1.0), with their coordinates.
Blind is not calm. When the document is missing, cannot be read or is older than 60 s, or the
grid cannot be read, the level is no_data, never quiet, and say says so. The age is never less
than the time the server has held the document, so a computer clock that runs behind cannot keep an
old "quiet" fresh while the API is down. A point outside
Poland's grid is out_of_range. A name that is not on the list is an error that names the list:
give coordinates instead.
For the whole of Poland (the state summarised, official messages of the last 24 hours, night
reports, the reliability record) SanAlert runs a remote MCP server, https://api.sanalert.pl/mcp.
It takes no place.
Install
It needs uv.
Claude Code:
Or both at once, as a Claude Code plugin: /plugin marketplace add plrojek/agent-skills, then
/plugin install sanalert@plrojek. Straight from GitHub instead of PyPI:
uvx --from git+https://github.com/plrojek/sanalert-mcp sanalert-mcp.
Claude Desktop (claude_desktop_config.json):
Conditions of use
Whoever shows or repeats the data keeps notice visible with it and a visible link to every
attribution entry, always refers readers to the official air-raid alarms (sirens, Alert RCB, the
instructions of the authorities), keeps a visible link to NEPTUN (https://neptun.in.ua, for example
"Дані: Карта повітряних тривог — NEPTUN") next to the level, never turns no data into quiet, and
says that the level is SanAlert's inference, not an official warning. In full:
terms and the API description.
Development
uv run pytest runs the tests; none of them goes online.
Three files in src/sanalert_mcp/ are generated, never edited by hand:
core.pyis the Home Assistant integration'score.py, the same rules in the same words;towns.jsonis the apps' town list (ios/SanAlertKit/Sources/SanAlertKit/Resources/towns-v1.json, made from the website'sweb/src/lib/cities.ts);api_texts.jsonis the API's notice, attribution and pass-through (api/sanalert/state.py,api/sanalert/mcp_server.py).
python scripts/sync.py copies the first two and python scripts/sync.py --check fails on any
difference (CI runs it). The API's tests fail when api_texts.json no longer matches the API.
The source is integrations/mcp/ in SanAlert's own repository; the public repository
(github.com/plrojek/sanalert-mcp) is a copy of it, refreshed with each release, so a fix in
core.py reaches users with the next release.
License
MIT, Applied AI sp. z o.o.
Source: README.md at commit f71d99a
Tools
0Version history
2- v1.1.0LatestNov 3, 2026
- v1.0.1Oct 21, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Alert integrations
Alertcamp
camp.alertOfficial publisher
Remote MCP server that lets an assistant look for campsite, cabin, permit and day-use cancellations at parks in Canada and the US.
AlertForge
Published by GitHub account lasan713
AlertForge's hosted MCP server lets an assistant create stream overlays, AI alert packs and transparent videos, spending the user's AlertForge credits.

Japan Price Alert MCP
Published by GitHub account atushi1841
Monitors product prices on Japanese e-commerce sites and alerts an assistant's user when prices drop, via a local stdio server.

Incident Assignment Desk
Published by GitHub account Wxt-ai
Incident Assignment Desk's hosted MCP server; no sign-in required; Streamable HTTP.

Service Assignment Guide
Published by GitHub account Wxt-ai
Remote MCP endpoint that maps incident severity and service context to an accountable response owner and queue.