mcpField
D
Dragonmcp

Dragonmcp

Local
github.com/arthurpanhkuMaps & Travel21Updated 11w ago

About Dragonmcp

DragonMCP is an MCP server for AI agents that provides live transit, weather, and routing data for Hong Kong and the Mainland China border region. Hong Kong data needs no key, while its Mainland China Amap tools require a user-supplied key; unavailable upstream data is reported rather than fabricated.

Key features

  1. 01Look up MTR arrivals and transfer routes
  2. 02Retrieve Hong Kong weather and warnings
  3. 03Route across Hong Kong and Mainland China
  4. 04Search places and plan routes with Amap
  5. 05Check upstream data-source reachability

Use cases

  1. 01Check the next MTR train and arrival time
  2. 02Review Hong Kong weather and storm warnings
  3. 03Find Mainland China walking, driving, transit, or cycling routes
  4. 04Check whether transit and weather APIs are reachable

MCP support

It exposes live transit, weather, place-search, and routing tools to MCP clients over stdio or HTTP. Hong Kong tools need no key; Amap tools require a user-provided API key.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README
DragonMCP Logo

DragonMCP

Hong Kong & cross-border open data for AI Agents

English | 简体中文

Live MTR arrivals, HK Observatory weather, and Mainland China routing — over the Model Context Protocol.

Quickstart • Tools • Limitations • Roadmap

License: MIT TypeScript MCP Node.js


🌟 What is DragonMCP?

An MCP server that gives AI agents real, verifiable public data for Hong Kong and the Mainland China border region.

Every tool in this server calls a live API. There are no mocks. If an upstream source is down, the tool says so — it never invents a plausible-looking answer. You can verify this yourself at any time with the built-in system_run_selftest tool, which pings every upstream and reports what is actually reachable.

Why this niche: Hong Kong's public data is genuinely open (data.gov.hk, no keys, no rate-limit paperwork) but scattered across agencies with inconsistent formats. And cross-border trips — where a single journey spans MTR, the Mainland rail network, and two different weather authorities — are exactly the case no single agency has any incentive to serve.


🔥 Live example

MTR real-time arrivals — no API key required:

> When is the next train from Admiralty to Central?

Next Island Line train from Admiralty to Central (towards Kennedy Town):
- Arriving in: 0 min(s) (14:02:27)
Subsequent trains:
- 4 min(s) (14:06:27)
- 7 min(s) (14:09:27)

Hong Kong Observatory — no API key required, includes active warnings:

> What's the weather in Hong Kong?

Current Weather in Hong Kong (Updated: 2026-08-04T13:02:00+08:00):
- Temperature: 30°C
- Humidity: 75%
- UV Index: 8 (very high)

Warnings:
The Thunderstorm Warning has been issued. It will remain effective until
3:00 p.m. today. Isolated thunderstorms are expected to occur over New
Territories West.

🛠️ Tools

ToolSourceAPI keyWhat it does
search_mtr_scheduleMTR via data.gov.hk—Journey planning with transfers + real-time arrivals; all 10 lines, all 98 stations
hk_weather_currentHK Observatory—Current conditions + active warnings
hk_typhoon_signalHK Observatory—Structured typhoon, rainstorm, and other active warning status
search_transit_routeMTR / AmapCN onlyUnified HK/CN routing; picks the right provider
system_run_selftestall of the above—Live reachability check of every upstream
amap_search_poiAmap (Gaode)✅POI search in Mainland China
amap_walking_directionAmap (Gaode)✅Walking route
amap_driving_directionAmap (Gaode)✅Driving route
amap_transit_directionAmap (Gaode)✅Public transit route
amap_bicycling_directionAmap (Gaode)✅Cycling route

MTR coverage — all 10 lines, station names accepted in English or Chinese:

Island (港岛线) · Tsuen Wan (荃湾线) · Kwun Tong (观塘线) · Tseung Kwan O (将军澳线) · East Rail (东铁线, runs to Lo Wu 罗湖 and Lok Ma Chau 落马洲) · Tuen Ma (屯马线) · South Island (南港岛线) · Tung Chung (东涌线) · Airport Express (机场快线) · Disneyland Resort (迪士尼线)


⚠️ Limitations

Stated up front, because a tool that hides its limits is a tool that lies to your agent:

  • Routes minimise transfers, not travel time. No inter-station running times are published, so we optimise for the thing we can actually measure. Occasionally a two-transfer route is faster than the one-transfer route returned.
  • Real-time arrivals cover the boarding leg only. Without running times we cannot say when you will reach a transfer station, so quoting arrivals for later legs would be invention.
  • Two stations have no real-time feed. The upstream API serves no arrivals for Tin Hau or Prince Edward. Routing through them works; arrivals at them are reported as unavailable rather than faked.
  • Amap tools need your own key and cover Mainland China only.
  • Cross-border journey planning is not built yet. East Rail reaches the border stations, but stitching a full HK→Shenzhen itinerary is Stage 2 on the roadmap.

🚀 Quickstart

Prerequisites: Node.js >= 18

git clone https://github.com/arthurpanhku/DragonMCP.git
cd DragonMCP
npm install
npm run build

No .env is needed for the Hong Kong tools. For the Amap tools, copy the template and add your key:

cp .env.example .env
Connect to Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "DragonMCP": {
      "command": "node",
      "args": ["/absolute/path/to/DragonMCP/dist/stdio.js"]
    }
  }
}

Add "env": { "AMAP_API_KEY": "your_key" } only if you want the Mainland China tools.

Other ways to run
npm run dev:stdio   # stdio transport, for local MCP clients
npm run dev         # HTTP server: Streamable HTTP at /mcp, legacy SSE at /mcp/sse
docker-compose up -d --build

In stdio mode, stdin/stdout carry MCP JSON-RPC; diagnostics go to stderr so the protocol stream stays clean.


🏗️ Architecture

graph TD
    A[AI Agent Client] -->|MCP: stdio or HTTP| B[DragonMCP Server]
    B --> C[Tool Registry]

    C --> D["Hong Kong (no key)"]
    C --> E["Mainland China (Amap key)"]
    C --> F["Cross-border aggregator"]

    D -.-> G[data.gov.hk: MTR real-time]
    D -.-> H[HK Observatory]
    E -.-> I[Amap Web Service API]
    F -.-> D
    F -.-> E

🗺️ Roadmap

Stage 1 — Provenance & zero-config

  • Every tool response carries source, fetched_at, freshness
  • Publish to npm so npx dragon-mcp works with no clone and no key
  • Daily CI self-test with a status badge, so "the data sources are alive today" is publicly verifiable

Stage 2 — Cross-border

  • MTR transfer planning
  • Border checkpoints, Guangzhou–Shenzhen–Hong Kong Express Rail, Airport Express integration
  • plan_cross_border_trip: one call spanning both sides of the boundary

Stage 3 — Coverage

  • More data.gov.hk sources (bus/ferry ETAs, typhoon signals, air quality)
  • Macau

🧪 Testing

npm test          # unit + integration; hermetic, no network required
npm run check     # typecheck
npm run lint

To verify live upstreams instead, call the system_run_selftest tool from any MCP client.


🤝 Contributing

See CONTRIBUTING.md.

One hard rule: no mock tools. A tool that returns fabricated data is worse than a missing tool, because the agent cannot tell the difference. If an upstream API isn't available, the right move is not to register the tool.

Good places to start: MTR transfer planning, additional data.gov.hk sources, branch handling for East Rail and Tseung Kwan O.


🙏 Acknowledgments

  • Anthropic — for the Model Context Protocol
  • MTR Corporation and data.gov.hk — for the open real-time transit API
  • Hong Kong Observatory — for the open weather API
  • Amap (Gaode) — for maps and routing

📄 License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.