Connects to the MLIT Data Platform GraphQL API to search and retrieve Japanese government infrastructure and geographical data, including datasets on dams, public facilities, and other national land and transportation information.
MLIT DATA PLATFORM MCP Server
⚠️ 重要な免責事項 本リポジトリは、国土交通省の公式リポジトリ mlit-dpf-mcp を利用して作成された非公式のアプリケーションです。 国土交通省の認可や承認を受けたものではありません。 本リポジトリの利用により生じたいかなる損失及び障害等について、作成者は責任を負わないものとします。
目次
1. 概要
本リポジトリは、国土交通省の公式リポジトリ mlit-dpf-mcp をベースに作成された非公式のMCP (Model Context Protocol) サーバーです。
国土交通省が保有するデータと民間等のデータを連携し、一元的に検索・表示・ダウンロードを可能にする国土交通データプラットフォームが提供する利用者向けAPIと接続します。
本MCPサーバーを利用することで、大規模言語モデル(LLM)と直接連携し、対話形式で直感的にデータを検索・取得することが可能になります。APIに関する専門的な知識がなくても、誰でも簡単に国土交通データプラットフォームから曖昧な指示や複雑な条件設定でデータを検索・取得が可能な、新しいデータ活用のかたちを提供します。
⚠️ 本リポジトリは国土交通省の認可や承認を受けたものではありません。個人が作成した非公式のアプリケーションです。
2. 主な機能
国土交通データプラットフォームの利用者向け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(入力された都道府県名・市区町村名を正規化します。)
3. 動作環境
OS:Windows 10 / 11 または macOS 13以降
MCPホスト:Claude Desktopなど
MCPサーバー実行環境:Python 3.10+
メモリ:8GB以上推奨
ストレージ:空き容量 1GB以上(キャッシュやログを含む)
4. インストールとセットアップ
本MCPサーバーは、Claude Desktop と Claude Code の両方で使用できます。それぞれの設定方法を以下に説明します。
共通の準備手順
どちらの環境でも、まず以下の準備が必要です。
1. APIキーの取得
国土交通データプラットフォームでアカウントを作成し、APIキーを取得してください。
詳しい手順は、こちらをご覧ください。
2. リポジトリのクローン
4.1. Claude Desktopでの使用方法
Claude Desktop(デスクトップアプリ)で使用する場合の設定方法です。
前提条件
Claude Desktopアプリがインストールされている
Python 3.10以上がインストールされている
手順
1. 仮想環境を作成 & 有効化
2. 依存ライブラリをインストール
3. 環境変数を設定
.env.exampleをコピーし、 .env ファイルを作成します:
your_api_key_hereは必ず、手順1で取得したAPIキーに置き換えてください。
4. Claude Desktopの設定ファイルを開く
Windows:
C:\Users\<ユーザー名>\AppData\Roaming\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktopアプリの設定画面にある「開発者」メニューの「設定を編集」ボタンをクリックして
claude_desktop_config.jsonを開くことも可能です。
5. MCPサーバーの構成を追加
commandとargsは必ず、実際のパスに変更してください。
your_api_key_hereは必ず、手順1で取得したAPIキーに置き換えてください。
6. Claude Desktop を再起動
4.2. Claude Codeでの使用方法
Claude Code(VS Code拡張機能)で使用する場合の設定方法です。
前提条件
Visual Studio Code がインストールされている
Claude Code 拡張機能がインストールされている
Python 3.10以上がインストールされている
uvまたはpipがインストールされている
手順
1. プロジェクトディレクトリに移動
2. 依存ライブラリをインストール
uvを使用する場合(推奨):
または通常のpipを使用:
3. MCP設定ファイルを作成
プロジェクトのルートディレクトリに .mcp.json ファイルを作成します:
4. MCP設定を記述
.mcp.json に以下の内容を記述します:
重要な設定項目:
"/絶対パス/mlit-dpf-mcp": このリポジトリの絶対パスに置き換えてくださいLinux/macOS例:
"/home/username/mlit-dpf-mcp"Windows例:
"C:/Users/username/mlit-dpf-mcp"(スラッシュを使用)
"your_api_key_here": 取得したAPIキーに置き換えてください
注意: .mcp.json はプロジェクトのルートディレクトリに配置してください(.claude/ ディレクトリ内ではありません)
5. VS Codeでプロジェクトを開く
6. Claude Codeを起動
VS Codeのコマンドパレット(Ctrl+Shift+P / Cmd+Shift+P)から「Claude Code: Start」を選択します。
7. MCPサーバーの接続を確認
Claude Codeのチャット画面で、MCPツールが利用可能になっていることを確認します。ツールアイコン(🔧)をクリックすると、mcp__mlit-dpf-mcp__で始まる各種ツールが表示されます。
トラブルシューティング(Claude Code)
MCPサーバーが起動しない場合:
.mcp.jsonのパスが正しいか確認(プロジェクトルートに配置されているか)APIキーが正しく設定されているか確認
VS Codeの出力パネル(Output Panel)で「Claude Code」を選択し、エラーログを確認
依存関係のエラーが出る場合:
5. 使用例
5.1. 基本的な検索
MCPサーバーが正しく設定されていれば、Claude DesktopまたはClaude Codeで自然言語による対話形式でデータを検索できます。
例:キーワード検索
Claudeは自動的にMCPツールを使用して、以下のような処理を実行します:
都道府県名「東京都」を正規化してコード「13」を取得
データセット「ダム便覧(dhb)」を検索
該当するダムのリストを表示
例:位置情報による検索
例:データの可視化
5.2. ダム地図の作成(サンプルプロジェクト)
このリポジトリには、東海地方のダムを地図にプロットするサンプルプロジェクトが含まれています。
含まれるファイル
plot_tokai_dams.py- 地図生成のメインスクリプトtokai_dams.json- 東海地方のダムデータ(12件のサンプル)tokai_dams_map.html- 生成されたインタラクティブ地図fetch_tokai_dams.py,get_tokai_dams.py- データ取得用スクリプト
実行方法
1. 必要なライブラリをインストール
または:
2. 地図を生成
3. ブラウザで地図を開く
地図の特徴
都道府県ごとに色分けされたマーカー
🔴 赤:愛知県
🔵 青:岐阜県
🟢 緑:静岡県
🟣 紫:三重県
マーカーをクリックするとダムの詳細情報を表示
MarkerCluster機能で見やすく表示
インタラクティブなズーム・パン操作
カスタマイズ
全216件のダムデータを取得して完全な地図を作成する場合は、Claude CodeまたはClaude Desktopで以下のように依頼してください:
6. トラブルシューティング
よくある問題と解決方法
1. MCPサーバーが起動しない
症状: Claude DesktopまたはClaude CodeでMCPツールが表示されない
解決方法:
設定ファイルのパスが正しいか確認
APIキーが正しく設定されているか確認
Python環境が正しくアクティベートされているか確認
Claude Desktopの場合:
Claude Codeの場合: VS Codeの出力パネル(Output)で「Claude Code」を選択し、エラーログを確認してください。
2. APIキーのエラー
症状: MLIT_API_KEY is not set などのエラーメッセージ
解決方法:
.mcp.json(Claude Code)またはclaude_desktop_config.json(Claude Desktop)で、MLIT_API_KEYが正しく設定されているか確認APIキーに余分なスペースや引用符が含まれていないか確認
国土交通データプラットフォームでAPIキーが有効か確認
3. 依存関係のエラー
症状: ModuleNotFoundError: No module named 'aiohttp' などのエラー
解決方法:
4. 地図生成のエラー
症状: ModuleNotFoundError: No module named 'folium'
解決方法:
5. データが取得できない
症状: 検索しても結果が返ってこない
解決方法:
APIキーの有効性を確認
検索条件を変更してみる(キーワードを簡略化、範囲を広げるなど)
ネットワーク接続を確認
APIのレート制限に達していないか確認
デバッグ方法
ログレベルの変更
より詳細なログを確認したい場合は、設定ファイルでLOG_LEVELを変更してください:
Claude Desktop(
Claude Code(
手動でのサーバー起動テスト
MCPサーバーが正しく動作するか、手動で起動してテストできます:
エラーが表示される場合は、そのメッセージに従って問題を解決してください。
7. ディレクトリ構成
8. ライセンス
本リポジトリはMITライセンスで提供されています。詳細はLICENSEを参照してください。
9. 注意事項
非公式リポジトリについて
本リポジトリは、国土交通省の公式リポジトリ
国土交通省の認可、承認、推奨を受けたものではありません。
本リポジトリは個人が作成したものであり、国土交通省および国土交通データプラットフォームとは一切関係ありません。
データ利用について
本リポジトリで提供されるデータの利用に関しては、 国土交通データプラットフォームの利用規約に従う必要があります。ご使用前に国土交通データプラットフォームの利用規約を必ずご確認ください。
本リポジトリの個人情報の取り扱いは、国土交通データプラットフォームのプライバシーポリシーに準拠する必要があります。
免責事項
本リポジトリは非公式のアプリケーションとして提供しているものです。動作保証は行っておりません。
本リポジトリの内容は予告なく変更・削除する可能性があります。
本リポジトリの利用により生じた損失及び障害等について、作成者は一切の責任を負わないものとします。
本リポジトリに関する問い合わせを国土交通省または国土交通データプラットフォームに行わないでください。