Install
git clone https://github.com/arthurpanhku/DragonMCP.git
cd DragonMCP
npm install
npm run buildWho it is for
If you want an agent to query live public data around Hong Kong and the mainland border, instead of wiring many open APIs yourself, this service matches. Official docs describe it as an MCP server for agents that provides verifiable public data.
It fits people who already have Node.js 18 or newer and can clone the repository locally, then run a stdio process with node. Hong Kong tools do not need .env. If you want Amap/Gaode tools, official docs require copying the template and then filling in a secret; do not take that path on the first try. Start with Hong Kong tools that need no secret.
This is not an offline archive: every tool calls a live API, with no mock. When an upstream is unavailable the tool says so directly; it will not invent a plausible answer.
First try in 3 minutes
The official recommended path is to clone locally and build. Prerequisite: Node.js 18 or newer on this machine. Hong Kong weather queries need no environment variables.
Follow the official steps:
git clone https://github.com/arthurpanhku/DragonMCP.git
cd DragonMCP
npm install
npm run build
After the build, in the MCP client set command to node and args to dist/stdio.js inside this machine’s clone. Official examples use an absolute-path placeholder; replace it with the real path after your clone. Do not copy the placeholder directory. Save and reload the client, then confirm the service is connected.
Then do one read-only query: call hk_weather_current. The official table says it talks to the Hong Kong Observatory and is for current weather and active warnings. The table does not write parameter fields; call it according to the tool definition the client shows. Do not invent a station number or a parameter that never appears.
Success signal: it returns current weather and active warnings. If an upstream is unavailable, the tool explains that instead of inventing weather. You may also call system_run_selftest, which probes each upstream and reports which are reachable now; that is the official verification path, not a required first-try step.
Usage examples
Example 1: check Hong Kong current weather and warnings. Call hk_weather_current. Official docs say it talks to the Hong Kong Observatory and returns Current conditions + active warnings. No field table or sample station is given; on success you should see current conditions and active warnings, and treat them as a live API result, not an offline cache.
Example 2: MTR journey and arrival queries. Call search_mtr_schedule. Official docs say the data comes from data.gov.hk, for interchange journey planning and live arrivals, covering all 10 lines, 98 stations. Official docs do not write how to pass origin and destination; use only the fields the client shows. On success you should see journey or arrival information. Do not read it as a way to change the timetable.
The same page also names hk_typhoon_signal, for structured status of typhoon, rainstorm, and other active warnings, also talking to the Hong Kong Observatory. You do not need to call it on the first try.
Limits
The prerequisite is Node.js 18+. Hong Kong tools need no .env; Amap/Gaode tools need a secret filled from the official template. This page does not write the secret variable name; do not guess it on the first try. Every tool hits a live API, goes online, and can expose the line or weather topic you queried.
Official docs give no rate limit, quota, or cache lifetime. If an upstream is down the tool says so; system_run_selftest can probe whether each upstream is reachable. Official docs give no undo or rollback. These queries are read-only public data, but they are not zero risk.
dist/stdio.js in the config must point at the build artifact on this machine. Do not use an unbuilt source path, and do not invent mainland tool names that were never named.