Mcp Open Data Hk について
Mcp Open Data Hkは、香港政府のオープンデータポータルDATA.GOV.HKのデータセットを探索するMCPサーバーです。データセットやカテゴリの検索、ファセット表示、形式による絞り込みに対応し、英語、繁体字中国語、簡体字中国語を選べます。
主な機能
- 01データセットとカテゴリの一覧取得
- 02データセットとカテゴリの詳細取得
- 03Solrクエリによるデータセット検索
- 04ファセット検索結果の探索
- 05ファイル形式によるデータセット絞り込み
- 06英語、繁体字中国語、簡体字中国語の選択
活用シーン
- 01香港の交通や天候のデータセット検索
- 02データセットのメタデータ確認
- 03カテゴリやファセットによる探索
- 04CSVやGeoJSON形式のデータセット検索
MCP 対応
DATA.GOV.HKのデータセットやカテゴリの検索、詳細取得、ファセット表示、形式絞り込みのツールをMCPクライアントに公開します。言語はen、tc、scから選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | any | いいえ | 返すデータセットの最大数(デフォルト:1000) |
| offset | any | いいえ | 返す最初のデータセットのオフセット |
| language | string | いいえ | 言語コード(en、tc、sc) |
詳細
mcp-open-data-hk
これは、香港政府の公式オープンデータポータルであるDATA.GOV.HKのデータにアクセスできるMCP(Model Context Protocol)サーバーです。
インストール
Smithery経由でインストールする
Smithery経由で、Claude Desktopにmcp-open-data-hkを自動的にインストールするには、次のようにします。
npx -y @smithery/cli install @mcp-open-data-hk/mcp-open-data-hk --client claude
uvを使用する(推奨)
uvを使用する場合、特別なインストールは必要ありません。uvxを使用して、_mcp-server-fetch_を直接実行します。
PIPを使用する
または、pipを使ってmcp-server-fetchをインストールできます。
pip install mcp-open-data-hk
インストール後、次のコマンドをスクリプトとして実行できます。
python -m mcp_open_data_hk
インストール後、settings.jsonに次の内容を追加して、MCP互換クライアント(Cursor、Claude Code、Claude Desktopなど)を設定します。
uvxを使用する
{
"mcpServers": {
"mcp-open-data-hk": {
"command": "uvx",
"args": ["mcp-open-data-hk"]
}
}
}
pipでのインストールを使用する
{
"mcpServers": {
"mcp-open-data-hk": {
"command": "python",
"args": ["-m", "mcp_open_data_hk"]
}
}
}
機能
このサーバーは、DATA.GOV.HK APIを操作するために次のツールを提供します。
list_datasets- データセットIDの一覧を取得しますget_dataset_details- 特定のデータセットの詳細情報を取得しますlist_categories- データカテゴリの一覧を取得しますget_category_details- 特定のカテゴリの詳細情報を取得しますsearch_datasets- 詳細オプションを指定して、検索語でデータセットを検索しますsearch_datasets_with_facets- データセットを検索し、ファセット形式の結果を返しますget_datasets_by_format- ファイル形式別にデータセットを取得しますget_supported_formats- サポートされているファイル形式の一覧を取得します
ツール
list_datasets
DATA.GOV.HKからデータセットIDの一覧を取得します
パラメーター:
limit(省略可):返すデータセットの最大数(デフォルト:1000)offset(省略可):返す最初のデータセットのオフセットlanguage(省略可):言語コード(en、tc、sc)—デフォルトは「en」
get_dataset_details
特定のデータセットの詳細情報を取得します
パラメーター:
dataset_id:取得するデータセットのIDまたは名前language(省略可):言語コード(en、tc、sc)—デフォルトは「en」include_tracking(省略可):データセットとリソースにトラッキング情報を追加します—デフォルトはFalse
list_categories
データカテゴリ(グループ)の一覧を取得します
パラメーター:
order_by(省略可):並べ替えに使用するフィールド('name'または'packages')—非推奨です。代わりにsortを使用してくださいsort(省略可):結果の並べ替え('name asc'、'package_count desc'など)—デフォルトは「title asc」limit(省略可):返すカテゴリの最大数offset(省略可):ページネーション用のオフセットall_fields(省略可):名前だけでなく、グループの完全な辞書を返します—デフォルトはFalselanguage(省略可):言語コード(en、tc、sc)—デフォルトは「en」
get_category_details
特定のカテゴリ(グループ)の詳細情報を取得します
パラメーター:
category_id:取得するカテゴリのIDまたは名前include_datasets(省略可):カテゴリのデータセット一覧(省略版)を含めます—デフォルトはFalseinclude_dataset_count(省略可):パッケージの合計数を含めます—デフォルトはTrueinclude_extras(省略可):カテゴリの追加フィールドを含めます—デフォルトはTrueinclude_users(省略可):カテゴリのユーザーを含めます—デフォルトはTrueinclude_groups(省略可):カテゴリのサブグループを含めます—デフォルトはTrueinclude_tags(省略可):カテゴリのタグを含めます—デフォルトはTrueinclude_followers(省略可):カテゴリのフォロワー数を含めます—デフォルトはTruelanguage(省略可):言語コード(en、tc、sc)—デフォルトは「en」
search_datasets
package_search API を使用して、クエリ語でデータセットを検索します。
この関数は、データセットのタイトル、説明、その他のメタデータを対象に検索し、クエリ語に一致するデータセットを見つけます。高度な Solr 検索パラメーターに対応しています。
パラメーター:
query(任意):Solr クエリ文字列(例:「transport」、「weather」、すべてを対象とする「:」)。デフォルトは「:」です。limit(任意):返すデータセットの最大数(デフォルト:10、最大:1000)offset(任意):ページネーションのオフセット。デフォルトは0です。language(任意):言語コード(en、tc、sc)。デフォルトは「en」です。
戻り値: 以下を含む辞書:
count:一致したデータセットの合計数results:一致したデータセットのリスト(最大 limit 件)search_facets:検索結果のファセット情報has_more:さらに結果があるかどうかを示すブール値
search_datasets_with_facets
データセットを検索し、データをより適切に探索できるよう、ファセット付きの結果を返します。
この関数は、タグ、組織、その他のファセットごとに分類したデータセット数を表示することで、利用可能なデータの種類を調べる際に役立ちます。
パラメーター:
query(任意):Solr クエリ文字列。デフォルトは「:」です。language(任意):言語コード(en、tc、sc)。デフォルトは「en」です。
戻り値: 以下を含む辞書:
count:一致したデータセットの合計数search_facets:検索結果のファセット情報sample_results:一致したデータセットの最初の3件
get_datasets_by_format
特定のファイル形式のリソースを含むデータセットを取得します。
パラメーター:
file_format:絞り込みに使用するファイル形式(例:「CSV」、「JSON」、「GeoJSON」)limit(任意):返すデータセットの最大数。デフォルトは10です。language(任意):言語コード(en、tc、sc)。デフォルトは「en」です。
戻り値: 以下を含む辞書:
count:一致したデータセットの合計数results:一致したデータセットのリスト
get_supported_formats
DATA.GOV.HK がサポートするファイル形式の一覧を取得します。
戻り値: サポートされているファイル形式のリスト
ローカルでのテスト
テストスクリプトを実行:
python tests/test_client.py
python tests/debug_search.py
python tests/comprehensive_test.py
サーバーを直接実行:
python -m src.mcp_open_data_hk
単体テストを実行:
pytest tests/
パス設定について
パッケージとしてインストールすると、ファイルパスではなくモジュール名でサーバーを参照できます。ユーザーは完全なファイルパスを指定する必要がないため、より便利です。
インストール済みパッケージ:
{
"mcpServers": {
"mcp-open-data-hk": {
"command": "python",
"args": ["-m", "mcp_open_data_hk"]
}
}
}
ローカル開発(ファイルパス方式):
{
"mcpServers": {
"mcp-open-data-hk": {
"command": "python",
"args": ["-m", "src.mcp_open_data_hk"],
"cwd": "/full/path/to/mcp-open-data-hk"
}
}
}
エンドユーザーにはパッケージのインストール方式を推奨します。一方、ファイルパス方式はローカルでの開発やテストに便利です。
クエリの例
インストールしたら、AI アシスタントで次のクエリを試してください:
- 「mcp-open-data-hk mcp 経由で、香港政府のデータポータルにあるデータセットをいくつか一覧表示してください。」
- 「香港の交通に関するデータセットを検索してください。mcp-open-data-hk を使用してください。」
- 「DATA.GOV.HK ではどのようなデータカテゴリを利用できますか?mcp-open-data-hk を使用してください。」
- 「フライト情報データセットの詳細を取得してください。mcp-open-data-hk を使用してください。」
- 「香港の天気に関するデータセットを検索してください。mcp-open-data-hk を使用してください。」
- 「DATA.GOV.HK でサポートされているファイル形式は何ですか?mcp-open-data-hk を使用してください。」
- 「人口に関する CSV データセットを検索してください。mcp-open-data-hk を使用してください。」
- 「交通データセットで最もよく使われているタグを表示してください。mcp-open-data-hk を使用してください。」
AI は、MCP サーバーから要求された情報を取得するために、適切なツールを自動的に使用します。
トラブルシューティング
よくある問題
-
モジュールが見つからないエラー:ローカル開発の場合は
pip install -e .、公開済みパッケージの場合はpip install mcp-open-data-hkを実行して、依存関係をインストールしたことを確認してください。 -
パスの問題:IDE の設定で、
cwdがプロジェクトルートへの正しい絶対パスになっていることを確認してください。 -
権限エラー:Unix システムでは、スクリプトに実行権限があることを確認してください:
chmod +x src/mcp_open_data_hk/__main__.py -
FastMCP が見つからない:次のコマンドでインストールしてください:
pip install fastmcp
接続のテスト
問題が発生している場合は、接続を手動でテストできます。
-
1つ目のターミナルでサーバーを実行します。
python -m src.mcp_open_data_hk -
別のターミナルでテストクライアントを実行します。
python tests/test_client.py
これが機能する場合、問題は IDE の設定にある可能性が高いです。
サーバーの拡張
src/mcp_open_data_hk/server.py にツールを追加して、サーバーを拡張できます。既存のパターンに従ってください。
@mcp.toolでデコレートした新しい関数を追加します- 関数とパラメーターについて説明する、明確な docstring を記述します
- 機能を実装します
- クライアントでテストします
サーバーは、@mcp.tool でデコレートされたすべての関数を MCP クライアントに自動的に公開します。
GitHub ワークフロー
このプロジェクトには、CI/CD 用の GitHub Actions ワークフローが含まれています。
- CI ワークフロー:main ブランチへのプッシュまたは PR ごとに、複数の Python バージョン(3.10-3.12)でテストを実行します
- 公開ワークフロー:main へのプッシュごとに TestPyPI へ自動的にビルドして公開し、バージョンタグ(v*.*.*)のプッシュ時に PyPI へ公開します
- コード品質ワークフロー:プッシュまたは PR ごとに、コードのフォーマットと lint をチェックします
- リリースワークフロー:タグがプッシュされると、GitHub リリースを自動的に作成します
公開の設定(信頼された公開)
このプロジェクトでは、API トークンを使うより安全な PyPI の信頼された公開を使用します。設定するには、次の手順に従います。
-
https://pypi.org/manage/account/publishing/ にアクセスし、次の情報を指定して新しい保留中のパブリッシャーを追加します。
- プロジェクト名:
mcp-open-data-hk - オーナー:GitHub のユーザー名または組織名
- リポジトリ名:
mcp-open-data-hk - ワークフロー名:
publish.yml - 環境名:
pypi
- プロジェクト名:
-
https://test.pypi.org/manage/account/publishing/ にアクセスし、同じ情報を指定して新しい保留中のパブリッシャーを追加します。ただし、環境名には
testpypiを指定します。 -
GitHub リポジトリで「Settings」>「Environments」に移動し、2つの環境を作成します。
pypi- セキュリティのため、「Required reviewers」に自分のユーザー名を設定しますtestpypi- 追加の設定は必要ありません
信頼された公開を使用する場合、API トークンを作成したり、シークレットとして保存したりする必要はありません。
GitHub 環境
信頼された公開を正しく機能させるには、GitHub リポジトリの設定で2つの環境を作成する必要があります。
pypi- この環境では、PyPI への公開時にセキュリティのための手動承認が必要ですtestpypi- この環境では手動承認は不要で、TestPyPI への公開が自動的に行われます
これらの環境を作成するには、次の手順に従います。
- リポジトリの「Settings」タブに移動します
- 左側のサイドバーで「Environments」をクリックします
- 「New environment」をクリックします
pypi環境を作成し、「Required reviewers」を有効にして自分のユーザー名を指定します- 追加の設定なしで
testpypi環境を作成します
新しいバージョンのリリース
新しいバージョンをリリースするには、次の手順に従います。
pyproject.tomlのバージョン番号を更新します- 変更をコミットします
- 新しいタグを作成してプッシュします。
git tag -a v1.0.0 -m "Release version 1.0.0" git push origin v1.0.0
または、付属のリリーススクリプトを使用します。
./release.sh 1.0.0
これにより公開ワークフローが自動的に開始され、パッケージがビルドされて TestPyPI と PyPI(タグ付きリリースの場合)に公開され、GitHub リリースが作成されます。
コントリビューション
コントリビューションを歓迎します。このプロジェクトへの貢献方法については、コントリビューションガイドと行動規範をお読みください。
プロジェクト構成
mcp-open-data-hk/
├── src/
│ └── mcp_open_data_hk/ # Main Python package
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Package entry point
│ └── server.py # Main MCP server implementation
├── tests/
│ ├── test_client.py # Client test script
│ ├── debug_search.py # Search functionality test
│ ├── comprehensive_test.py # Comprehensive functionality test
│ └── test_data_gov_hk.py # Unit tests
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
├── README.md # This file
├── run_examples.sh # Example commands script
├── install.sh # Installation helper script
├── release.sh # Release helper script
└── .gitignore # Git ignore file
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。