はじめに
G空間情報センターのサービスは CKAN というソフトウェアで構築されています。CKANはオープンデータを提供する様々なサイトで利用されています。ブラウザからだけでなく、APIを通じてデータセットやリソースの検索、作成、編集、削除が可能です。
CKAN API を使うとプログラムあるいはスクリプトによって公開されているデータセットやリソースの検索が可能です。また組織の管理者であればデータセット・リソースの作成・編集・削除も可能となります。
ブラウザではリンクをクリックしてデータを一つずつダウンロードする手順が必要になりますが、APIを使えば複数のデータを一括してダウンロード出来ますし、定期的にスクリプトを実行して条件に合うデータを検索→自動でダウンロードといった機能が実現できます。
MCPサーバーは 生成AI(MCPホスト)が持つMCPクライアントとWebサービス等が提供するAPIの中間に位置し、自然言語で検索クエリを投げかけ、APIからのレスポンス(CKAN APIであればJSON形式のデータ)を解釈して返してくれます。
CKAN MCP Server を使うと、自然言語による問いかけで CKANを使っている G空間情報センターのデータセットなどを生成AIから操作することが可能になります。
インストール
CKAN MCP Server の利用方法は
- インターネット上で公開されているエンドポイントを利用
- コードをダウンロードしてローカルで動かす
の二通りあります。公開されているエンドポイントは 1日当たり100000リクエストのクォータがあるので、大量に利用したい場合はローカルで動かす必要があります。
まずは手っ取り早く公開エンドポイントを使います。MCPホストとなる生成AIには ClaudeやChatGPTなどがありますが、ここでは Gemini をコマンドラインで使った例を示します。
Gemini CLI を使う場合は setting.jsonファイルに下記のようにURLを記述します。
"mcpServers": {
"ckan": {
"httpUrl": "https://ckan-mcp-server.andy-pr.workers.dev/mcp"
}
}
CKAN MCP Server で CKANを使ってみる
それではGeminiを起動して質問をしてみます。まずは G空間情報センターにあるデータセットの個数を聞いてみると、Google検索も使って URLを探してくれます。
なお、クエリを実行するとコンソールに色々メッセージが表示されますが長くなるので詳細は省略しています。
> G空間情報センターにあるデータセットの個数を教えてください
✦ G空間情報センターのポータルサイトを探し、データセットの総数を確認します。
✓ ckan_find_portals (ckan MCP Server) {"country":"Japan","query":"G空間情報センター"}
✦ G空間情報センターのポータルURLを確認するために、ウェブ検索を行います。
✓ GoogleSearch Searching the web for: "G空間情報センター CKAN URL"
✦ G空間情報センターのポータル(https://www.geospatial.jp/ckan)から、データセットの総数を含む統計情報を取得します。
✓ ckan_catalog_stats (ckan MCP Server) {"server_url":"https://www.geospatial.jp/ckan"}
✦ G空間情報センターには、現在 15,356件 のデータセットが登録されています。
次に3D都市モデルについて質問してみます。自動的に PLATEAU というキーワードまで使って検索しているようです。
> 3D都市モデルのデータはありますか?
✦ G空間情報センターのポータルから、「3D都市モデル」および「PLATEAU」をキーワードにデータセットを検索します。
? ckan_package_search (ckan MCP Server) {"q":"3D都市モデル OR PLATEAU","server_url":"https://www.geospatial.jp/ckan"}
✦ はい、G空間情報センターには 700件以上 の3D都市モデルに関連するデータセットが登録されています。
特に、国土交通省が主導する Project PLATEAU(プラトー)のデータが非常に充実しており、全国各地の自治体ごとに以下のようなデータが公開されています。
大阪関西万博の3D都市モデルについて聞いてみます。複数回のクエリを投げてデータセットとリソースに関して詳細な情報を返してくれます。
> 大阪関西万博の3D都市モデルにはどのような種類のデータがありますか?
✦ G空間情報センターのポータルから、大阪関西万博に関連する3D都市モデルのデータセットを検索し、含まれるリソースの種類を確認します。
✓ ckan_package_search (ckan MCP Server) {"server_url":"https://www.geospatial.jp/ckan","q":"大阪関西万博 3D都市モデル OR 大阪関西万博
✦ 大阪関西万博の3D都市モデルデータセット(ID: plateau-27999-osaka-shi-2025)に含まれるリソースの詳細(ファイル形式など)を確認します。
✓ ckan_list_resources (ckan MCP Server) {"server_url":"https://www.geospatial.jp/ckan","id":"plateau-27999-osaka-shi-2025"}
✦ 大阪関西万博の3次元点群データセット(ID: osakaexpo-2025)に含まれるリソースの種類(ファイル形式など)も確認します。
✓ ckan_list_resources (ckan MCP Server) {"server_url":"https://www.geospatial.jp/ckan","id":"osakaexpo-2025"}
✦ 2025年大阪・関西万博会場の3D都市モデル(Project PLATEAU)には、主に以下の種類のデータが含まれています。
1. 3D都市モデル(Project PLATEAU)
2. 3次元点群データ
詳細なメタデータやダウンロードURLは以下のリンクから確認できます。
- 3D都市モデル(Project PLATEAU) (https://www.geospatial.jp/ckan/dataset/plateau-27999-osaka-shi-2025)
- 3次元点群データ (https://www.geospatial.jp/ckan/dataset/osakaexpo-2025)
最後にCityGMLデータのダウンロードをお願いしてみます。
> CityGMLのデータをダウンロードしてください。
✦ G空間情報センターの大阪関西万博3D都市モデルデータセットから、CityGML(v4)リソース(ID:
cb8d5702-b9a4-42d1-a37b-e7fc2fed0ee9)のダウンロードURLを取得します。
? ckan_package_show (ckan MCP Server) {"id":"plateau-27999-osaka-shi-2025","server_url":"https://www.geospatial.jp/ckan"}
✦ CityGML(v4)データをダウンロードします。ファイルサイズは約367MBです。
? Shell curl -L -o 27999_osaka-shi_city_2025_citygml_1_op.zip https://assets.cms.plateau.reearth.io/assets/9d/d092b9-a371-499d-832e-de6fdf…
curl -L -o 27999_osaka-shi_city_2025_citygml_1_op.zip
https://assets.cms.plateau.reearth.io/assets/9d/d092b9-a371-499d-832e-de6fdf538b22/27999_osaka-shi_city_2025_citygml_1_op.zip
✦ 2025年大阪・関西万博会場のCityGML(v4)データ(27999_osaka-shi_city_2025_citygml_1_op.zip、約340MB)のダウンロードが完了しました。
リソースのURLを取り出して、curlコマンドを生成してくれました。実行許可を与えるとコマンドを実行してファイルが保存されました!
まとめ
CKAN API には色々な関数があり、また検索のパラメータを詳細に指定しようとすると慣れていても複雑で難しかったりします。生成AI & MCPサーバーを使うことで、欲しいデータがより簡単に入手しやすくなりそうです。