Maproll
Make production-ready static maps. Every map is a URL you can embed anywhere.
Beschreibung vom Entwickler (englisches Original)
Live weather anywhere, with the radar drawn as text characters, not an image.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://echorune.net/mcpFühre das in deinem Terminal aus
claude mcp add --transport http echorune-radar https://echorune.net/mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"echorune-radar": {
"url": "https://echorune.net/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"echorune-radar": {
"type": "http",
"url": "https://echorune.net/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://echorune.net/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Herausgeber (luoshu-echorune) ist nicht der Repo-Inhaber (eirik-rune); vielleicht hat jemand anderes ihn eingetragen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 0 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.0) kam vor 3 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Maproll, Agro API MCP by usefulapi, FieldClimate MCP by usefulapi
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Make production-ready static maps. Every map is a URL you can embed anywhere.
Read satellite, NDVI, weather and soil data; create and delete fields in Agro API.
Read weather station data, sensors, farms, fields and crop zones in FieldClimate.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
An LLM-friendly weather service. Every answer comes as text and as PNG, and people and models can read both. One HTTP request, no API key, no account. The text renders in a terminal, in a prompt or in a log line; the picture is sized for a phone screen, in the reader's language:
Frozen 2026-11-05 at 14:15 UTC, while it was raining in all three. Live: echorune.net/saopaulo.png · echorune.net/武汉.png · echorune.net/sapporo/ja.png · full length: São Paulo · 武汉 · 札幌
Measured 2026-11-04, in English, with the next 24 hours and 5 days included: 2.4 KB for Taipei under a clear sky, 5.2 KB for Shanghai in rain, and 1.3 KB for Reykjavik, where we have no radar and the reply says so in one line instead of drawing an empty grid.
curl echorune.net/wuhan
Radar is normally a picture, and plenty of LLM agents still take only text. So when such an agent asks *"is it about to rain on me, and from which direction?"*, what comes back is a sentence somebody else already summarised, and the two-dimensional structure is gone. A character grid keeps it: where the rain is, how strong it is, and which way it is moving -- about 600 tokens for 48x24.
# Wuhan, Wuhan Shi, Hubei, CN weather scene
now: MODERATE_RAIN 16C humidity 100% wind 3km/h precip 3.59mm/h feels 18C today 12~22C wind NE 3km/h AQI(CN) 52 good sunrise 06:40 sunset 17:32 Rain intensity gradually increases. After 46 minute, shifts to moderate rain, but after one hour, the rain stops
rain curve (next 2h, 6min/bucket): ▄▂▁▂▄▄▄▆▇▄▄▂▁ ▂▂▄█▄▁ ├────┼────┼────┼────┤ 0 30 60 90 120min peak 8.83mm/h in 104min chance per 30min: 100% 97% 84% 98%
radar: predict 22:16 obs age: 6min ok obs at: 14:11Z ~6km/char, [><]=Wuhan, Wuhan Shi, Hubei, CN
░░░░░ ░░░░░▒░░░░░░░░░ ░░░░░░ ░░░░ ░░░ ░ ░░░░ ░░░░░░░░░░░░░ ░░░░░░░ ░░░░░░░░░░░ ░░░░ ░░░░░░▒░░░░░░░░░░▒▒▒▓▓▒▒▒▒▒░░░░▒░░░░░░░░░░ ░░░░░░░░░░░░▒░░░░░░▒▒░▒▓▓▓▓▓▓▓▒▒▒░░░░░░░░░░▒▒░░░ ░░░░░░░░▒▒▒▒░▒░░░░░░░░░░><░░░░░░░ ░░░░░▒▒▒▒░░░ ░░░░░░░░▒▓▓▒▒░░░▓▓▒▒░░░ ░░▒░░░ ░░▒▒░░░░░ ░▒▒░▒▒░░░░▒▒▒▒░░▓▓▓▒░░░░░░░░░ ░░░░░▒▒▒ ░░▒▒▒▒▓▒▓▒░░░░░░░░░░░░░▒▒░░░░░ ░░░░░░▒▓▓▓▓ ░░▒▒▒▓██▓▓▓▓▓▓▒░░░░░ ░░░░▒▓▓▓▒░▓▓▓▓▓ ▒▒▓▒▓▒▓▓▓█▓█▓▓▓▓▒░░░░░░░░░▓▓▓▓█░░░░░▓▓▓▓▓▒▓▒▒▒▒▒ ░▒▒▒▓▓▓▓▓█▓█▓▓▓▓▓▓▒▒▓▓▓▒▓▓▓▓▓▓█▒▒░░░░░░▒░▓▓▓▓▒░░ ░░▒▒░▓▓▓▓▓▓▓▓▓██▓█▓▓▓▓▒▒░▒░░░░▒▒▒▒▒░░░░▒▒░▒▒░░░░ ░░▒▒░▒▒▒▒▓▓▓▓▒▓▓▓▓▓▓▓▓▓░▒▒░░░▒▒▓▓▒▓▓▓▒▒▒▒▒░░░▒▒▒ ░░░░░▒▓▒▒░░▒▓▓░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒░░░░░░░▒▒░░ ░░░░░░▒▓▓▓▒░░░░░░░▓▓▓▓▓███▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░░ ░░░░░░░░░▒░ ░░░▓██▓▓███▓▓▓░░▒▓▓▓▒▒░░░░░░░░ → E ~20 km/h echo motion, upstream forecast legend: · drizzle ░ light ▒ moderate ▓ heavy █ storm blank=no echo
next 24h (local time, every 3h): 22:00 16C LIGHT_RAIN rain 98% 0.6mm/h AQI 52 01:00 16C PARTLY_CLOUDY_NIGHT AQI 55 04:00 16C LIGHT_RAIN rain 60% AQI 52 07:00 16C PARTLY_CLOUDY_DAY AQI 52 10:00 19C PARTLY_CLOUDY_DAY AQI 50 13:00 23C PARTLY_CLOUDY_DAY AQI 47 16:00 24C CLEAR_DAY AQI 47 19:00 21C CLEAR_NIGHT AQI 53
next 5 days (AQI: the day's highest): 11-05 Thu 12~22C MODERATE_RAIN rain 70% AQI 55 good 11-06 Fri 16~24C PARTLY_CLOUDY_DAY AQI 55 good 11-07 Sat 14~19C MODERATE_RAIN rain 70% AQI 53 good 11-08 Sun 13~17C CLOUDY AQI 32 excellent 11-09 Mon 11~16C PARTLY_CLOUDY_DAY AQI 35 excellent
picture: https://echorune.net/wuhan.png data: Caiyun Weather caiyunapp.com | runemap (github.com/eirik-rune/runemap)
*Frozen sample: Wuhan, 2026-11-05 22:17 UTC+8, in moderate rain -- two minutes after the Chinese picture above.* Deliberately not live -- a pasted "live" reading starts lying six minutes after it is pasted. What freezing protects is the weather, not the format: this sample sat unchanged from 2026-07-29 while the header, the radar line and the legend all moved, so anyone following it would have compared their real answer against fields we no longer print. It is re-frozen when the format changes. Run the curl above for today.
The same weather as one picture: echorune.net/wuhan.png (or /wuhan/zh.png, /wuhan/ja.png), sized for a phone screen, in one request like the text. A name written in Chinese or Japanese picks the language by itself: /武汉.png comes back in Chinese. Han characters alone read as Chinese unless the phone asks for Japanese, so for a Japanese picture write the name in kana or ask for it, as the Sapporo one above was: /sapporo/ja.png. A QR code at the bottom opens the latest picture for the same place, so whoever receives a forwarded copy can get a fresh one. Every text reply links it on its second-to-last line, so an agent can hand it on without knowing the route.
The radar map also comes on its own: echorune.net/wuhan/radar.png, 800x800, the map the text grid is drawn from, with towns, the motion arrow and a legend. A model reads the phone picture too, but an image input is scaled down to fit, and inside a 1080-wide page the map ends up a few hundred pixels across; the square one arrives at full size. The MCP tool attaches it to every reply; an agent with a shell can download either picture and look.
If you are an agent, or you run one, you can keep this instead of remembering a URL:
npx skills add https://github.com/eirik-rune/runemap --skill echorune-radar
On a machine with no agent installed -- CI, a container, an agent's own automation -- that command opens an interactive picker and, with no terminal attached, exits 0 having installed nothing. Name the agents and it never asks:
npx skills add https://github.com/eirik-rune/runemap --skill echorune-radar --agent '*' -y
That installs skills/echorune-radar/SKILL.md, which is also served live at curl echorune.net/skill.md -- one file, not a copy of one. It teaches an agent the request forms and, more importantly, how to read the reply: a space means no echo, ? means *outside radar coverage*. Those are different states and print differently on purpose, because collapsing them turns "I cannot see there" into "it is fine there".
No key, no account, no SDK. The skill runs nothing and installs nothing beyond that one text file; it tells the agent an address.
Point your client at the URL. There is nothing to install and no key to get:
https://echorune.net/mcp # remote MCP server, streamable HTTP
One tool, get_weather, taking a place (any language, or lon,lat) and an optional language. It returns exactly what curl returns -- the text, and the radar map as an image (/ /radar.png) for a model that can see -- because the tool calls the same routes rather than re-implementing them: a second renderer would agree today and drift by Thursday. When the map is not ready yet the reply says so in a line instead of the image.
Listed in the official MCP registry as io.github.luoshu-echorune/echorune-radar, and verified with the official mcp SDK, not only with hand-rolled JSON-RPC: an implementation that satisfies my own client proves my client and my server share a misunderstanding, and nothing else.
curl echorune.net # your location, guessed from your IP curl echorune.net/bangkok # by name curl echorune.net/bangkok/zh # language suffix: en (default) | zh | ja curl echorune.net/100.50,13.75 # by coordinate (lon first) curl -o bkk.png echorune.net/bangkok.png # the same, as one picture curl echorune.net/help # full door plate curl echorune.net/healthz
Path style exists for a reason: & is a shell operator, so ?q=x&lang=zh has to be quoted, and that is where agent-generated curl commands die most often. A path needs no quotes. The query form keeps working forever, with no redirect to it: LLM agents do not follow 301 by default.
Coordinates are lon,lat -- longitude first, the order Caiyun and Dark Sky take, and the order this service's own first line has always printed. It used to guess instead, swapping when a value exceeded 90; the guess fell silent exactly where both numbers are <= 90, which is the Americas and Europe, so /-74.0,40.7 meaning New York answered 200 with a map of the Southern Ocean. A latitude outside -90..90 is a 400 now, carrying the convention and a corrected command to copy. Nobody can do better than that: someone who really means that stretch of ocean types the same bytes, so the place name in the first line is what shows a reader where the answer came from.
IP to coordinate is a local lookup (DB-IP City Lite, CC-BY, ~0.5ms), never a third-party call; the label then comes from GeoNames in either language, so the two capabilities compose instead of overlapping. A guess says it is a guess and prints the one-line escape. The access log stores only the first three octets.
The service above renders any point on demand. To render one yourself, without the service, bring your own caiyunapp.com token:
CAIYUN_TOKEN=xxx python3 scripts/scene_at.py --lat 18.7883 --lon 98.9853 --lang zh
Flags: --lang en|zh, --label NAME (shown in the headline), --tz HOURS (default lon/15), --code XX (2-char marker drawn at the point).
Radar PNGs are cached in ~/.cache/runemap (30 min; radar index 5 min; current weather is never cached). Override the path with RUNEMAP_CACHE.
Agents ask "is it raining in Bangkok", not "100.50,13.75". So names work too:
python3 scripts/build_geo.py # once: builds ~/geonames/geo.sqlite (~65MB) CAIYUN_TOKEN=xxx python3 scripts/serve.py # binds 127.0.0.1:8788
curl 'localhost:8788/scene?q=bangkok&lang=zh' curl 'localhost:8788/scene?q=%E9%A1%BA%E5%BE%B7' # county level, Chinese name curl 'localhost:8788/scene?lat=18.7883&lon=98.9853' # label reverse-looked-up
Backed by GeoNames cities1000 (CC-BY 4.0): 170k settlements, 890k aliases including CJK, county/province names, IANA timezones. Fully offline, ~1ms per lookup, no rate limit. Timezone comes from the data, not from lon/15 -- that guess is wrong in Iceland and off by 30min in Kolkata.
echorune.net does not run on a free tier of somebody else's platform. It runs on a server the operating partner rented itself:
Both purchases were quoted, signed and broadcast by the machine, with no human touching a keyboard. They are on Base and you can check them:
serve
Nur der Anfang wird gezeigt; den Rest findest du im Repo