topo^alpin
Avalanche bulletins, mountain weather, stations, huts, ski and snowshoe tours in the Alps.
Description from the maker (original English)
Korea travel & K-pop live data for agents: concerts, Seoul trip packs, crowd, subway, airport.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
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:
https://api.k-agentpay.com/mcpRun this in your terminal
claude mcp add --transport http kaia-x402 https://api.k-agentpay.com/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"kaia-x402": {
"url": "https://api.k-agentpay.com/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.
Paste into .vscode/mcp.json in your project
{
"servers": {
"kaia-x402": {
"type": "http",
"url": "https://api.k-agentpay.com/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:
https://api.k-agentpay.com/mcpMenu 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.
Tool names and descriptions exactly as the server reported them on Nov 8, 2026. The maker wrote them, not us; we show them as plain text.
kpop_searchFree. Search K-pop / pop concerts in Korea for the next 6 months by artist or title (any language). Returns concert ids.
seoul_placesFree. The 121 Seoul places (with codes) accepted by seoul_now.
request_korea_dataFree. Ask for Korea data these tools don't cover yet; the most requested is added first.
incheon_airport_waitLive Incheon Airport departure-hall waiting minutes and queue per hall (T1/T2) and the shortest hall. 10 free calls/day.
seoul_subway_nowNext trains at a Seoul subway station right now (station in English, Japanese or Korean). 10 free calls/day.
seoul_nowLive crowd level, 12-hour crowd forecast and weather for a Seoul place (e.g. Myeongdong, Hongdae). 10 free calls/day.
kpop_new_concertsConcerts in Korea newly registered or updated since a date (YYYYMMDD, default 7 days), optional artist. 10 free calls/day.
korea_festivalsFestivals and events in Korea from a date (YYYYMMDD). 10 free calls/day.
seoul_trip_packSeoul concert trip pack (tickets, venue, last trains, crowd, hotels/food nearby) — paid only: returns how to buy it.
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 8, 2026
The registry name was verified against the domain k-agentpay.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 606 ms (HTTP 200)
No sign-in needed
Read 9 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 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.
The registry does not list a required key, though some servers ask you to sign in on first use.
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.
The GitHub repo last changed –, and the latest version (0.3.1) reached the registry 24 days ago.
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.
In the same category: topo^alpin, Openvan Travel, Matryoshka Mind Map
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
Avalanche bulletins, mountain weather, stations, huts, ski and snowshoe tours in the Alps.
Vanlife & RV data: roadbooks, fuel, tolls, ferries, visas, holidays, hazards, weather. openvan.camp
Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents.
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.
x402 payments on Kaia. AI agents pay per request in JPYC or USDT on Kaia: no account, no API key, and no KAIA needed by the buyer.
eip155:8217, headers PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE (v1 X-PAYMENT still accepted).@x402/fetch + @x402/evm) pays this server unmodified — see examples/official_client.mjs. The official client only allows its default assets (e.g. USDC) unless told otherwise, so allow JPYC on Kaia in its config: spendControls: { allowedAssets: [{ network: "eip155:8217", asset: "0xe7c3d8c9a439fede00d2600032d5db0be71c3c29", maxAmountPerPayment: "100000000000000000000" }] } // ¥100 cap
/v1). Every endpoint takes lang=ja (default) | en | ko; the MCP tools pass the user's language.The steps to buy from the live service. The *Quick start* further down (keys.mjs, facilitator.mjs, server.mjs) is for sellers running their own API; buyers do not need it.
npm installnode client.mjs "https://api.k-agentpay.com/v1/kpop/search?q=EVNNE"node client.mjs "https://api.k-agentpay.com/v1/seoul/trip-pack?id= " Add &lang=en or &lang=ko for English or Korean (default Japanese).client.mjs prints wallet: 0x… first. If that wallet has no balance, it says so; the wallet owner decides whether to fund it with JPYC on Kaia (a few hundred yen covers several purchases). No KAIA is needed for gas. After funding, step 3 can be run again.Safety notes:
~/.kaia-x402/buyer.key (or $KAIA_X402_HOME/buyer.key). Run this on your own computer. In temporary cloud environments (e.g. Claude Code on the web) the key disappears when the session ends, together with any funds sent to it.MAX_CALL_YEN, MAX_DAY_YEN). They are computed from the amount actually signed (USDT is converted at our own ECB-based rate; a server's own price label can only raise it), each signed payment counts toward the day as soon as it is sent, and every signature expires within 2 minutes.This repo contains:
/verify, /settle, /supported) for the exact scheme, which pays the gas itself (logic in facilitator_core.mjs):transferWithAuthorization (one tx) — the standard x402 exact EVM method;permit + transferFrom (two txs; spender = the facilitator, allowance = the price). Non-standard extension: Kaia USDT has no EIP-3009, and the x402 Permit2 proxy (0x402085c2…20001) is not deployed on Kaia yet (Permit2 itself is). Official clients will pick the JPYC option;server.mjs, sample data in examples/): a free search and a ¥50 *ソウル遠征パック* (Seoul concert trip pack for Japanese fans);agent ──GET /v1/seoul/trip-pack?id=…──▶ API ◀── 402 Payment Required (accepts: JPYC ¥50 | USDT $0.32, payTo)
agent signs a JPYC authorization (EIP-3009) or a USDT permit (EIP-2612), gasless for the agent agent ──GET + X-PAYMENT──▶ API ──verify / settle──▶ facilitator ──▶ funds move on Kaia agent ◀── 200 + data + X-PAYMENT-RESPONSE (tx hash)
Data is returned only after the payment has settled. If the upstream data fails, or the request is invalid (e.g. unknown id), the buyer is not charged. A payment payload is served at most once.
Settlement edge cases: a transfer that was broadcast but has no receipt within 45 s is treated as settled (the signature and balance were verified), the data is returned, and the final outcome is confirmed in the background. Every attempt is written to data/settlements.jsonl (settled, reverted, pending → pending_settled / pending_reverted). refund.mjs sends a manual refund from the seller, gasless for the seller (dry run by default, --live to send).
Payments on 2026-10-14 (the buyer held 0 KAIA for the JPYC payments):
| What was bought | Paid | Tx |
|---|---|---|
| Seoul concert trip pack (Japanese) | ¥50 JPYC | 0x004de750… |
| Seoul concert trip pack (Japanese) | $0.32 USDT | 0xb0d30aad… |
| Seoul pop concerts | ¥3 JPYC | 0x6adc96bd… |
| Korea festivals (Japanese) | ¥3 JPYC | 0xe40c3fe7… |
Settlement gas, paid by the facilitator: JPYC ≈ 81k gas (≈ 0.002 KAIA); USDT ≈ 71k + 49–66k gas (≈ 0.003 KAIA).
| Token | Address | Gasless method | EIP-712 domain |
|---|---|---|---|
| JPYC | 0xe7c3d8c9a439fede00d2600032d5db0be71c3c29 (18 dp) | EIP-3009 transferWithAuthorization | name JPY Coin, version 1, chainId 8217 |
| USDT | 0xd077a400968890eacc75cdc901f0356c943e4fdb (6 dp) | EIP-2612 permit (no EIP-3009) | name Tether USD, version 1, chainId 8217 (matches DOMAIN_SEPARATOR()) |
USDT payment payload (our extension of exact for permit-only tokens): payload = { signature, permit: { owner, spender, value, nonce, deadline } }, where spender is extra.spender from the 402 response. The facilitator moves exactly value to payTo.
| Endpoint | Price | Returns |
|---|---|---|
GET /v1/kpop/search?q= | free | concerts matching an artist or title, with ids (the discovery step) |
GET /v1/seoul/trip-pack?id= | ¥50 | Japanese trip pack: schedule, seat prices in yen, ticket sellers, venue + map link, nearby hotels/food/spots |
GET /v1, GET /.well-known/x402 | free | machine-readable catalog |
The example serves one sample concert (examples/trip_pack_sample.json); replace the handlers with your own data. paid(describe, handler, priceYen) is the reusable part: it returns 402 with both payment options, verifies, runs the handler, settles, and only then returns the data.
Prices are set in yen. The USDT price is the yen price converted at the ECB euro reference rates (daily), rounded up to the cent.
npm install
node keys.mjs # creates facilitator / seller / buyer keys in secrets/ (prints addresses only)
node facilitator.mjs & # 127.0.0.1:8402 node server.mjs & # 127.0.0.1:8403 node client.mjs # pays the example trip pack
Environment: KAIA_RPC_URL (default https://public-en.node.kaia.io), PRICE_YEN (3), PACK_YEN (50), PUBLIC_BASE (public URL used in the 402 resource), PAY_TO (payTo address; the seller key is then not needed on the server).
One-click (Claude Desktop): download kaia-x402-mcp.mcpb from the latest release and open it.
mcp-name: com.k-agentpay/kaia-x402The MCP server runs next to the agent, with the agent's own wallet:
{
"mcpServers": { "kculture-x402": { "command": "node", "args": ["/path/to/kaia-x402/mcp.mjs"], "env": { "API_BASE": "https://api.k-agentpay.com" } } } }
KAIA_X402_KEY_FILE, else secrets/buyer.key in this checkout, else ~/.kaia-x402/buyer.key (created on first use, mode 0600). Call wallet_info to see the address and balances, then send it JPYC or USDT on Kaia.PAY_ASSET: auto (default: JPYC when the balance covers the price, else USDT), JPYC or USDT.MAX_CALL_YEN (100) and MAX_DAY_YEN (300). The daily budget is reserved before each payment, so parallel tool calls cannot overshoot it.API_BASE defaults to the live service https://api.k-agentpay.com.
Tools: wallet_info (free), kpop_search(q) (free), seoul_places() (free), request_korea_data(want) (free: ask for Korea data we don't have yet), seoul_trip_pack(id), kpop_new_concerts(q?, since?), seoul_now(place), seoul_subway_now(station), incheon_airport_wait(), kpop_concerts(from?, to?), korea_festivals(lang, from?). Each paid call returns the data with the payment tx. (The example server implements kpop_search and seoul_trip_pack; the hosted K-culture service implements all of them.)
Open a data request, or let your agent call GET https://api.k-agentpay.com/v1/request?want=... (free) / the MCP tool request_korea_data. The most requested data is built first.
deploy/push.sh copies the app to a fresh Amazon Linux 2023 host and runs deploy/setup_server.sh: Node, systemd units for the facilitator (private, 127.0.0.1) and the API, and Caddy for HTTPS. Only the facilitator gas key (plus any files in DEPLOY_SECRETS) goes to the host; payTo is an address.
HOST=<ip> DOMAIN=<api host> SSH_KEY=~/.ssh/<key> bash deploy/push.sh
npm test — offline facilitator tests (stubbed chain): valid v1/v2 payloads; rejects wrong recipient, low amount, expired / not-yet-valid authorization, forged signature, used nonce, insufficient balance, wrong network, unsupported asset, replay; USDT permit spender / nonce / deadline; pending settlement.node examples/official_client.mjs — pays a running server with the official x402 v2 client (real funds).test/ also runs the full flow on a local Hardhat fork of Kaia mainnet against the real JPYC contract (test/fund_fork.mjs funds the demo wallets on the fork only).MIT