Sorted Travel Docs
Search Sorted Travel developer docs for MCP, API, SDK, and auth questions.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Live weather anywhere, with the radar drawn as text characters, not an image.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://echorune.net/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http echorune-radar https://echorune.net/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"echorune-radar": {
"url": "https://echorune.net/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"echorune-radar": {
"type": "http",
"url": "https://echorune.net/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://echorune.net/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ผู้ลงทะเบียน (luoshu-echorune) ไม่ใช่เจ้าของ repo (eirik-rune) อาจเป็นคนอื่นที่นำมาลงต่อ
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 0 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Sorted Travel Docs, Sorted Travel, 方睿科技 FUNRAISE|台灣不動產資料 Taiwan Real Estate Data
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Search Sorted Travel developer docs for MCP, API, SDK, and auth questions.
Travel ranking, place facts, weather, visa, and profile tools for Sorted Travel.
台灣不動產與企業資料:實價登錄、地籍、使用分區、都更、公司登記 / Taiwan real estate & company data: actual prices, parcels, zoning
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo