MLIT Data Platform MCP Server
OfficialREADME.md
# MLIT DATA PLATFORM MCP Server
## 目次
- [MLIT DATA PLATFORM MCP Server](#mlit-data-platform-mcp-server)
- [目次](#目次)
- [1. 概要](#1-概要)
- [2. 主な機能](#2-主な機能)
- [3. 動作環境](#3-動作環境)
- [4. インストールとセットアップ](#4-インストールとセットアップ)
- [前提条件](#前提条件)
- [手順](#手順)
- [5. ディレクトリ構成](#5-ディレクトリ構成)
- [6. ライセンス](#6-ライセンス)
- [7. 注意事項](#7-注意事項)
- [8. お問い合わせ](#8-お問い合わせ)
## 1. 概要
国土交通省が保有するデータと民間等のデータを連携し、一元的に検索・表示・ダウンロードを可能にする[国土交通データプラットフォーム](https://data-platform.mlit.go.jp/)が提供する利用者向けAPIと接続するMCP (Model Context Protocol) サーバー(α版)です。
本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. インストールとセットアップ
### 前提条件
Claude DesktopなどのMCP対応AIアプリケーション および Python がインストールされていることを前提としています。以下は、Claude Desktopでの利用を想定した手順です。
### 手順
1. **国土交通データプラットフォームでアカウントを作成し、APIキーを取得**
詳しい手順は、[こちら](https://data-platform.mlit.go.jp/api_docs/usage/introduction.html)をご覧ください。
2. **リポジトリをクローン**
```bash
git clone https://github.com/MLIT-DATA-PLATFORM/mlit-dpf-mcp.git
cd mlit-dpf-mcp
```
3. **仮想環境を作成 & 有効化**
```bash
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # macOS/Linux
```
4. **依存ライブラリをインストール**
```bash
pip install -e .
pip install aiohttp pydantic tenacity python-json-logger mcp python-dotenv
```
5. **環境変数を設定**
`.env.example`をコピーし、 `.env` ファイルを作成します:
```
MLIT_API_KEY=your_api_key_here
MLIT_BASE_URL=https://data-platform.mlit.go.jp/api/v1/
```
あるいはコマンドラインから直接設定することも可能です:
```bash
export MLIT_API_KEY=your_api_key_here
export MLIT_BASE_URL=https://data-platform.mlit.go.jp/api/v1/
```
`your_api_key_here`は必ず、手順1で取得したAPIキーに置き換えてください。
6. **MCP サーバーの起動**
```bash
python -m src.server
```
7. **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`を開くことも可能です。
8. **MCPサーバーの構成を追加**
```json
{
"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://data-platform.mlit.go.jp/api/v1/",
"PYTHONUNBUFFERED": "1",
"LOG_LEVEL": "WARNING"
}
}
}
}
```
`command`と`args`は必ず、実際のパスに変更してください。
`your_api_key_here`は必ず、手順1で取得したAPIキーに置き換えてください。
9. **Claude Desktop を再起動**
## 5. ディレクトリ構成
```
mlit-dpf-mcp/
├─ src/
│ ├─ server.py # MCP サーバー & ツール定義
│ ├─ client.py # MLIT GraphQL API クライアント
│ ├─ schemas.py # Pydantic モデル(入力バリデーション)
│ ├─ config.py # 環境変数ロード & 設定検証
│ └─ utils.py # ロギング、タイマー、レート制限
├─ pyproject.toml
├─ README.md
└─ LICENSE
```
## 6. ライセンス
* 本リポジトリはMITライセンスで提供されています。[ライセンス](./LICENSE)を参照してください。
## 7. 注意事項
* 本リポジトリで提供されるデータの利用に関しては、 [国土交通データプラットフォームの利用規約](https://data-platform.mlit.go.jp/assets/policy/%E5%9B%BD%E5%9C%9F%E4%BA%A4%E9%80%9A%E3%83%87%E3%83%BC%E3%82%BF%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E5%88%A9%E7%94%A8%E8%A6%8F%E7%B4%84.pdf)に従う必要があります。ご使用前に国土交通データプラットフォームの利用規約を必ずご確認ください。
* 本リポジトリの個人情報の取り扱いは、[国土交通データプラットフォームのプライバシーポリシー](https://data-platform.mlit.go.jp/assets/policy/%E5%9B%BD%E5%9C%9F%E4%BA%A4%E9%80%9A%E3%83%87%E3%83%BC%E3%82%BF%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%83%97%E3%83%A9%E3%82%A4%E3%83%90%E3%82%B7%E3%83%BC%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC.pdf)に準拠しております。
* 本リポジトリはα版として提供しているものです。動作保証は行っておりません。
* 本リポジトリの内容は予告なく変更・削除する可能性があります。
* 本リポジトリの利用により生じた損失及び障害等について、国土交通省及び国土交通データプラットフォームはいかなる責任も負わないものとします。
## 8. お問い合わせ
本リポジトリはα版です。お気づきの点があれば下記お問い合わせフォームまでご連絡下さい。
* [国土交通データプラットフォームお問い合わせフォーム](https://forms.cloud.microsoft/pages/responsepage.aspx?id=6dtgrapYuEqgn0vEnGaJBOrx9xG7EpJLvmRgrTAinyBUQlpHVUQ2UEM0TUkwVUdMVE5HNUM0OTlXVyQlQCN0PWcu&route=shorturl)
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues