Skip to main content
Glama

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.

QuickstartToolsLimitationsRoadmap

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.


Related MCP server: skill4agent MCP Server

🔥 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

Tool

Source

API key

What it does

search_mtr_schedule

MTR via data.gov.hk

Journey planning with transfers + real-time arrivals; all 10 lines, all 98 stations

hk_weather_current

HK Observatory

Current conditions + active warnings

search_transit_route

MTR / Amap

CN only

Unified HK/CN routing; picks the right provider

system_run_selftest

all of the above

Live reachability check of every upstream

amap_search_poi

Amap (Gaode)

POI search in Mainland China

amap_walking_direction

Amap (Gaode)

Walking route

amap_driving_direction

Amap (Gaode)

Driving route

amap_transit_direction

Amap (Gaode)

Public transit route

amap_bicycling_direction

Amap (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.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
9dResponse time
1dRelease cycle
2Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    12306 ticket purchase search server based on Model Context Protocol (MCP). It provides a simple API interface, allowing large models to search for 12306 ticket purchasing information through the interface.
    Last updated
    8
    1
    Apache 2.0
  • A
    license
    -
    quality
    B
    maintenance
    RollingGo MCP is a high-performance hotel search and recommendation service built on the MCP (Model Context Protocol) standard. It connects large language models with a massive database of domestic and international hotel data, providing real-time structured hotel search capabilities for AI assistants, agents, travel planning tools, or IDE plugins like Cursor/Windsurf.
    Last updated
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    这是一个面向中文圈的MCP服务器,将中国互联网常用能力(如地图、快递、RSS、B站等)封装为标准MCP工具,方便AI Agent安全调用。
    Last updated
    13
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

  • First AI Agent e-commerce marketplace with 74+ AI products, MCP protocol, and Alipay payments

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arthurpanhku/DragonMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server