🌏

国土交通省提供の『地理空間MCP Server』を使ってお手軽にClaudeからの地理空間情報連携を試してみた

に公開

先日、国土交通省から以下の案内がありました。地理空間情報に関するMCP Server(α版)を公開しましたよ、というものです。従来、この手の(地理)情報については様々な経路、方法でデータをかき集めてこなければならずある種面倒な作業ではあります。その部分をMCPの仕組みを介してスピーディーにデータにアクセス出来る、またデータをもとにした分析まで出来るとなると触ってみないわけにはいきません。

アナウンス・概要について:
https://www.mlit.go.jp/tochi_fudousan_kensetsugyo/tochi_fudousan_kensetsugyo_fr17_000001_00047.html

利用開始手順について(PDF):

GitHubリポジトリ:
https://github.com/chirikuuka/mlit-geospatial-mcp

当エントリでは一連の申請、連携設定、そして実演までの流れを紹介します。

事前準備

不動産情報ライブラリのAPI利用申請

まず初めに、今回のMCPサーバ連携を利用するにあたっての申請が必要となります。下記ページのフォームから必要事項を入力し、申請作業を行ってください。承認がなされるとメールの返信でAPIキーを入手できますので、後述手順でそれを使います。
https://www.reinfolib.mlit.go.jp/api/request/

動作環境の準備

手元の環境はmacOS(Apple M4)。Git, uv, Claudeをそれぞれ導入済み、利用可能な状態としておきます。

% sw_vers
ProductName:            macOS
ProductVersion:         26.3
BuildVersion:           25D125

% git --version
git version 2.50.1 (Apple Git-155)
% uv --version
uv 0.9.5 (Homebrew 2025-10-21)
% claude --version
2.1.97 (Claude Code)

上記はClaude Code利用の場合の準備ですが、併せてClaude Desktopからも利用する場合は予め(Desktop版を)入れておいてください。

Claude Codeからの接続

実行環境準備

設定作業は対象となるプロジェクトをクローンして行います。任意の場所でgit cloneコマンドを使い、対象リポジトリをクローン後、ディレクトリ内に移動。

% git clone https://github.com/chirikuuka/mlit-geospatial-mcp.git
% cd mlit-geospatial-mcp

uvによるPython環境整備

対象プロジェクト内でuvによる環境初期化を行い、uv操作が出来るようにしておきます。(クローンしたリポジトリに pyproject.toml が含まれていない場合は uv init で初期化します。既にある場合は uv sync のみで構いません。)

% uv init
% uv sync
% python --version
Python 3.12.12

そして必要なパッケージをrequirements.txtを活用する形でインストール。クローンしたリポジトリの直下にあるものを参照して実行してください。

## `uv pip sync` で仮想環境にパッケージを同期し、
## `uv add -r` で pyproject.toml にも依存関係を追記.
% uv pip sync requirements.txt
% uv add -r requirements.txt

MCPサーバ設定を追加

必要な情報をパラメータとして与える形で claude mcp addコマンドによる設定追加を行います。今回必要となる情報は以下。

  • 環境配下のPython実行パス
    • uvを実行可能な環境として整えた場所配下にあるパスをフルパスで指定した。
    • 今回の場合は /Users/xxxxxxxx/xxxxxxx/xxxxxxx/mlit-geospatial-mcp/.venv/bin/python のような形式。
  • cloneしたリポジトリ内のsrc/server.py
    • /Users/xxxxxxxx/xxxxxxx/xxxxxxx/mlit-geospatial-mcp/src/server.py のように、こちらもgit cloneしたリポジトリ配下にあるPythonプログラムをフルパスで指定。
  • 申請&取得したライブラリAPIキー
    • 前述申請手順で入手したAPIキー文字列。

claude mcp addコマンドで設定を追加。(※-s userオプションを付与し、グローバルスコープ(ユーザー単位)で導入しています。これにより、どのプロジェクトディレクトリからClaude Codeを起動してもこのMCPサーバが利用可能になります)

claude mcp add -s user mlit-geospatial-mcp \
  -e LIBRARY_API_KEY=999xxxx9999XXXXX999x9x9xx9xx9xx9 \
  -e PYTHONUNBUFFERED=1 \
  -e LOG_LEVEL=WARNING \
  -- /Users/xxxxxxxx/xxxxxxx/xxxxxxx/mlit-geospatial-mcp/.venv/bin/python \
  /Users/xxxxxxxx/xxxxxxx/xxxxxxx/mlit-geospatial-mcp/src/server.py

Claude Codeログイン後、/mcpコマンドで設定が追加され、接続が出来ていることを確認。


Userスコープ、グローバルに導入できています


詳細その1



詳細その2。結構色々なことができるようですね

MCP連携実践

まずはClaude Code経由で導入した設定が見えているかを聞いてみます。バッチリです!

どういうことができるのかを聞いてみました。多彩な切り口で情報が取得できるようです。

ここでは、横浜市営地下鉄に関する情報をリクエストしてみました。エージェントが並列で処理を行ってくれています。

暫くしてデータが返ってきました。駅名のほか、乗降客数、代表地価、用途地域に関する情報を全駅に対して収集、整理の上提示してくれました。(でも意外とデータの歯抜けが多い気もするぞ?)

Claude Desktopからの接続

連携設定

Claude Codeからの接続に続けて、Claude Desktopでの連携設定もここでは行います。画面左下メニューの[設定]→[開発者]→ローカルMCPサーバーから『設定を編集』押下、設定ファイルを開きます。

mcpServers配下に下記の形式で設定追加を行います。

claude_desktop_config.json
{
  "mcpServers": {
    :
    "mlit-geospatial-mcp": {
      "command": "/Users/xxxxxxxx/xxxxxxx/xxxxxxx/mlit-geospatial-mcp/.venv/bin/python",
      "args": [
        "/Users/xxxxxxxx/xxxxxxx/xxxxxxx/mlit-geospatial-mcp/src/server.py"
      ],
      "env": {
        "LIBRARY_API_KEY": "999xxxx9999XXXXX999x9x9xx9xx9xx9",
        "PYTHONUNBUFFERED": "1",
        "LOG_LEVEL": "WARNING"
      }
    },
    :
  },
  :
}

Claude Desktopを再起動し、以下のような形で設定が反映されていればOKです。

MCP連携実践

Claude Code同様、こちらも念のため『MCP設定が見えているか、使えそうか』を確認してみます。問題無しです!

Claude Desktop版では別の情報をリクエストしてみます。所属企業オフィス界隈(浜松町)の情報を色々聞いてみました。Desktop版だとインタラクティブに色々と良い感じの情報を付与してくれる、可視化してくれるのが便利ですね。

Desktop経由でも『何ができるのか』を聞いてみます。

乗降客数については年単位のデータとなっているようです。グラフを交えつつ色々考察してくれています。

駅近辺の防災リスクについても問い合わせてみます。浜松町近辺は液状化のリスクが突出しているんですね...

まとめ

という訳で、地理空間情報に関するMCP Server(α版)の連携設定に関する紹介でした。単一の連携だけでも実に多岐にわたる情報を取得、分析出来ることがご覧頂けたかと思います。これに加えて既存の保持データ、或いは別途他のMCPやスキルと連動させて分析させる、生成AIに問い合わせることで更に示唆に富んだ、有用な情報が得られるのではと今回検証してみて思いました。興味のある方は是非こちらのMCP連携、試してみてください!


この記事を読んだ方へ

感想・フィードバックは X(@shinyaa31)までお気軽にどうぞ。

truestarテックブログ

Discussion