Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

echorune radar

by eirik-runeversion 1.0.0i★ –iRuns in the cloud
Registry nameio.github.luoshu-echorune/echorune-radar

Install

Overview

Description from the maker (original English)

Live weather anywhere, with the radar drawn as text characters, not an image.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Travel, maps & weather

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 0 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • The registry lists no key to fill in.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://echorune.net/mcp

Run this in your terminal

claude mcp add --transport http echorune-radar https://echorune.net/mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "echorune-radar": {
      "url": "https://echorune.net/mcp"
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "echorune-radar": {
      "type": "http",
      "url": "https://echorune.net/mcp"
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://echorune.net/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026

  • ! Caution

    Maker matches the repo

    The publisher (luoshu-echorune) is not the repo owner (eirik-rune); someone else may have listed it

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Travel, maps & weatheri

  • More stars than 0% of the other 1736 servers in this category
  • Published to the registry more recently than 25% of the other 1736 servers in this category
  • Basic checks equal to or better than 17% of the other 1736 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is echorune radar safe?

It passed 0 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: US Weather Alerts (NWS Warnings & Watches) — buy per-query in-session (usweathe…, Marine buoy weather observations (marinewatch), topo^alpin

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

topo^alpin

Avalanche bulletins, mountain weather, stations, huts, ski and snowshoe tours in the Alps.

by topoalpin.appEarlyUpdated today

Runs in the cloud✓ topoalpin.app

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

runemap

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

updated 2026-11-05 22:17 UTC+8 (lon 114.26667, lat 30.58333)

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.

install it as an Agent Skill

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.

use it from an MCP client

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.

the service: echorune.net

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.

any coordinate

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.

place names (offline geocoding)

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.

who runs this, and on whose machine

echorune.net does not run on a free tier of somebody else's platform. It runs on a server the operating partner rented itself:

  • Host -- a 1 GB VPS in Singapore, paid for out of the company treasury.
  • Domain -- echorune.net, registered for a year, paid the same way.
  • Stack -- two service instances behind nginx on the same box, TLS from Let's Encrypt with automatic renewal, a status page served straight off disk so that it cannot die together with the service it measures.

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

Only the beginning is shown; read the rest in the repo

Ask PopNx