国土交通省が保有するデータと民間等のデータを連携し、一元的に検索・表示・ダウンロードを可能にする国土交通データプラットフォームが提供する利用者向けAPIと接続するMCP (Model Context Protocol) サーバー(α版)です。
本MCPサーバーを利用することで、大規模言語モデル(LLM)と直接連携し、対話形式で直感的にデータを検索・取得することが可能になります。APIに関する専門的な知識がなくても、誰でも簡単に国土交通データプラットフォームから曖昧な指示や複雑な条件設定でデータを検索・取得が可能な、新しいデータ活用のかたちを提供します。
国土交通データプラットフォームの利用者向けAPIを活用し、以下の機能を提供します:
search(キーワードの指定によりデータを検索します。並べ替えや件数の指定も可能です。)search_by_location_rectangle(指定した矩形範囲と交差するデータを検索します。)search_by_location_point_distance(指定した地点と半径からなる円形範囲と交差するデータを検索します。)search_by_attribute(カタログ名、データセット名、都道府県、市区町村などの属性を指定してデータを検索します。)get_data(データの詳細情報を取得します。)get_data_summary(データIDとタイトルなどのデータの基本情報を取得します。)get_data_catalog(データカタログやデータセットの詳細情報を取得します。)get_data_catalog_summary(IDやタイトルなどのデータカタログやデータセットの基本情報を取得します。)get_file_download_urls(ファイルのダウンロード用URLを取得します(有効期限:60秒)。)get_zipfile_download_url(複数ファイルをZIP形式でまとめたダウンロードURLを取得します(有効期限:60秒)。)get_thumbnail_urls(サムネイル画像のURLを取得します(有効期限:60秒)。)get_all_data(条件に一致する大量のデータを一括取得します。)get_count_data(条件に一致するデータ件数を取得します。)get_suggest(キーワード検索時の候補を取得します。)get_prefecture_data(都道府県名・コードの一覧を取得します。)get_municipality_data(市区町村名・コードの一覧を取得します。)get_mesh(指定したメッシュに含まれるデータを取得します。)normalize_codes(入力された都道府県名・市区町村名を正規化します。)
- OS:Windows 10 / 11 または macOS 13以降
- MCPホスト:Claude Desktopなど
- MCPサーバー実行環境:Python 3.10+
- メモリ:8GB以上推奨
- ストレージ:空き容量 1GB以上(キャッシュやログを含む)
Claude DesktopなどのMCP対応AIアプリケーション および Python がインストールされていることを前提としています。以下は、Claude Desktopでの利用を想定した手順です。
-
国土交通データプラットフォームでアカウントを作成し、APIキーを取得
詳しい手順は、こちらをご覧ください。
-
リポジトリをクローン
git clone https://github.com/MLIT-DATA-PLATFORM/mlit-dpf-mcp.git cd mlit-dpf-mcp -
仮想環境を作成 & 有効化
python -m venv .venv .venv\Scripts\activate # Windows source .venv/bin/activate # macOS/Linux
-
依存ライブラリをインストール
pip install -e . pip install aiohttp pydantic tenacity python-json-logger mcp python-dotenv -
環境変数を設定
.env.exampleをコピーし、.envファイルを作成します:MLIT_API_KEY=your_api_key_here MLIT_BASE_URL=https://www.mlit-data.jp/api/v1/あるいはコマンドラインから直接設定することも可能です:
export MLIT_API_KEY=your_api_key_here export MLIT_BASE_URL=https://www.mlit-data.jp/api/v1/
your_api_key_hereは必ず、手順1で取得したAPIキーに置き換えてください。 -
MCP サーバーの起動
python -m src.server
-
Claude Desktopの設定ファイルを開く
- Windows:
C:\Users\<ユーザー名>\AppData\Roaming\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktopアプリの設定画面にある「開発者」メニューの「設定を編集」ボタンをクリックして
claude_desktop_config.jsonを開くことも可能です。
- Windows:
-
MCPサーバーの構成を追加
{ "mcpServers": { "mlit-dpf-mcp": { "command": "......./mlit-dpf-mcp/.venv/Scripts/python.exe", "args": [ "....../mlit-dpf-mcp/src/server.py" ], "env": { "MLIT_API_KEY": "your_api_key_here", "MLIT_BASE_URL": "https://www.mlit-data.jp/api/v1/", "PYTHONUNBUFFERED": "1", "LOG_LEVEL": "WARNING" } } } }commandとargsは必ず、実際のパスに変更してください。
your_api_key_hereは必ず、手順1で取得したAPIキーに置き換えてください。 -
Claude Desktop を再起動
mlit-dpf-mcp/
├─ src/
│ ├─ server.py # MCP サーバー & ツール定義
│ ├─ client.py # MLIT GraphQL API クライアント
│ ├─ schemas.py # Pydantic モデル(入力バリデーション)
│ ├─ config.py # 環境変数ロード & 設定検証
│ └─ utils.py # ロギング、タイマー、レート制限
├─ pyproject.toml
├─ README.md
└─ LICENSE
- 本リポジトリはMITライセンスで提供されています。ライセンスを参照してください。
- 本リポジトリで提供されるデータの利用に関しては、 国土交通データプラットフォームの利用規約に従う必要があります。ご使用前に国土交通データプラットフォームの利用規約を必ずご確認ください。
- 本リポジトリの個人情報の取り扱いは、国土交通データプラットフォームのプライバシーポリシーに準拠しております。
- 本リポジトリはα版として提供しているものです。動作保証は行っておりません。
- 本リポジトリの内容は予告なく変更・削除する可能性があります。
- 本リポジトリの利用により生じた損失及び障害等について、国土交通省及び国土交通データプラットフォームはいかなる責任も負わないものとします。
本リポジトリはα版です。お気づきの点があれば下記お問い合わせフォームまでご連絡下さい。