Dragonmcp について
DragonMCPは、香港と中国本土の境界地域のリアルタイム交通、天気、ルート情報をAIエージェントに提供するMCPサーバーです。香港のデータはキー不要で、中国本土向けAmapツールには利用者のキーが必要です。上流データが利用できない場合は、その状態を返します。
主な機能
- 01MTRの到着時刻と乗換ルートの検索
- 02香港の天気と警報の取得
- 03香港・中国本土のルート検索
- 04Amapによる地点検索と各種ルート案内
- 05上流データソースの疎通確認
活用シーン
- 01MTRの次の列車と到着時刻の確認
- 02香港の天気や台風・豪雨警報の確認
- 03中国本土の徒歩・車・公共交通・自転車ルートの検索
- 04交通・天気APIの利用可否の確認
MCP 対応
stdioまたはHTTPで、リアルタイム交通、天気、地点検索、ルート案内のツールをMCPクライアントに公開します。香港向けツールはキー不要で、Amapツールには利用者のAPIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DragonMCP
AI エージェント向けの香港および越境オープンデータ
Model Context Protocol を通じて、MTR のリアルタイム到着情報、香港天文台の天気、そして中国本土のルート情報を提供します。
🌟 DragonMCP とは?
香港および中国本土との国境地域の実際に検証可能な公共データを AI エージェントに提供する MCP サーバーです。
このサーバーのすべてのツールは、実際の API を呼び出します。モックはありません。 上流のデータソースが停止している場合、ツールはその旨を伝えます。もっともらしい回答を捏造することはありません。組み込みの system_run_selftest ツールを使えば、いつでも自分で検証できます。このツールはすべての上流サービスに ping を送信し、実際に到達可能なサービスを報告します。
このニッチな領域に取り組む理由は、香港の公共データは本当にオープンで(data.gov.hk、API キー不要、レート制限の申請手続きも不要)、各機関に分散しており、形式も統一されていないためです。また、MTR、中国本土の鉄道網、そして異なる気象機関2つにまたがる越境移動は、単一の機関では提供する動機がない、まさにそのようなケースです。
🔥 ライブの使用例
MTR のリアルタイム到着情報 — API キーは不要です:
> 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)
香港天文台 — API キー不要。発令中の警報も含まれます:
> 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.
🛠️ ツール
| ツール | データソース | API キー | 機能 |
|---|---|---|---|
search_mtr_schedule | data.gov.hk 経由の MTR | — | 乗り換えを含む経路検索とリアルタイム到着情報。全10路線、全98駅に対応 |
hk_weather_current | 香港天文台 | — | 現在の気象状況と発令中の警報 |
hk_typhoon_signal | 香港天文台 | — | 台風、暴雨、その他の発令中の警報状況を構造化して提供 |
search_transit_route | MTR / Amap | 中国本土のみ | 香港/中国本土の統合ルート検索。適切なプロバイダーを選択 |
system_run_selftest | 上記すべて | — | すべての上流サービスへのライブ到達可能性チェック |
amap_search_poi | Amap(Gaode) | ✅ | 中国本土の POI 検索 |
amap_walking_direction | Amap(Gaode) | ✅ | 徒歩ルート |
amap_driving_direction | Amap(Gaode) | ✅ | 車のルート |
amap_transit_direction | Amap(Gaode) | ✅ | 公共交通機関のルート |
amap_bicycling_direction | Amap(Gaode) | ✅ | 自転車ルート |
MTR の対応範囲 — 全10路線。駅名は英語または中国語で指定できます:
港島線 (Island) · 荃湾線 (Tsuen Wan) · 观塘线 (Kwun Tong) · 将军澳线 (Tseung Kwan O) · 東鉄線(East Rail、羅湖および落馬洲まで運行) · 屯馬線 (Tuen Ma) · 南港島線 (South Island) · 東涌線 (Tung Chung) · 機場快線 (Airport Express) · 迪士尼線 (Disneyland Resort)
⚠️ 制限事項
最初に明記します。制限を隠すツールは、エージェントに嘘をつくツールだからです。
- ルートは所要時間ではなく、乗り換え回数を最小化します。 駅間の所要時間は公開されていないため、実際に測定できる項目を基準に最適化しています。そのため、返された乗り換え1回のルートよりも、乗り換え2回のルートのほうが速い場合があります。
- リアルタイム到着情報は、乗車する区間のみを対象とします。 所要時間がわからないため、乗り換え駅に到着する時刻はお伝えできません。そのため、後続区間の到着時刻を提示すると、事実ではない情報を作り出すことになります。
- 2つの駅にはリアルタイム情報のフィードがありません。 上流 API から Tin Hau または Prince Edward の到着情報は提供されていません。これらの駅を経由するルートは利用できますが、到着情報は捏造せず、利用不可として報告します。
- Amap のツールにはご自身のキーが必要です。また、中国本土のみを対象としています。
- 越境の旅程計画にはまだ対応していません。 East Rail は国境の駅まで運行していますが、香港から深圳までの旅程全体をつなぐ機能はロードマップのステージ 2 です。
🚀 クイックスタート
前提条件: Node.js >= 18
git clone https://github.com/arthurpanhku/DragonMCP.git
cd DragonMCP
npm install
npm run build
香港向けのツールでは .env は不要です。Amap のツールを使う場合は、テンプレートをコピーしてキーを追加してください。
cp .env.example .env
Claude Desktop に接続する
claude_desktop_config.json に追加してください。
{
"mcpServers": {
"DragonMCP": {
"command": "node",
"args": ["/absolute/path/to/DragonMCP/dist/stdio.js"]
}
}
}
中国本土向けのツールを使う場合のみ、"env": { "AMAP_API_KEY": "your_key" } を追加してください。
その他の実行方法
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
stdio モードでは、stdin/stdout が MCP JSON-RPC を伝送します。プロトコルのストリームをクリーンに保つため、診断情報は stderr に出力されます。
🏗️ アーキテクチャ
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
🗺️ ロードマップ
ステージ 1 — データの出所と設定不要の利用
- すべてのツールの応答に
source、fetched_at、freshnessを含める - npm に公開し、クローンもキーも不要で
npx dragon-mcpを使えるようにする - ステータスバッジ付きの日次 CI セルフテストを実施し、「今日、データソースが稼働していること」を誰でも確認できるようにする
ステージ 2 — 越境
- MTR の乗り換え計画
- 国境検問所、Guangzhou–Shenzhen–Hong Kong Express Rail、Airport Express との統合
-
plan_cross_border_trip:境界の両側にまたがる旅程を1回の呼び出しで計画
ステージ 3 — 対応範囲の拡大
-
data.gov.hkのデータソースを追加(バス/フェリーの到着予定時刻、台風シグナル、空気質) - Macau
🧪 テスト
npm test # unit + integration; hermetic, no network required
npm run check # typecheck
npm run lint
代わりに稼働中の上流サービスを確認するには、任意の MCP クライアントから system_run_selftest ツールを呼び出してください。
🤝 コントリビューション
CONTRIBUTING.md をご覧ください。
厳守事項:モックツールは禁止です。 捏造したデータを返すツールは、存在しないツールよりも有害です。エージェントがその違いを判断できないからです。上流 API が利用できない場合は、そのツールを登録しないのが正しい対応です。
取り組みやすい分野:MTR の乗り換え計画、data.gov.hk のデータソースの追加、East Rail と Tseung Kwan O の分岐処理。
🙏 謝辞
- Anthropic — Model Context Protocol のため
- MTR Corporation と data.gov.hk — オープンなリアルタイム交通機関 API のため
- Hong Kong Observatory — オープンな気象 API のため
- Amap (Gaode) — 地図とルート検索のため
📄 ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。