1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codex CLIでローカルMCPサーバーを叩く

Posted at

Codex CLIでローカルMCPサーバーを叩いてみる。

  • 国土交通データプラットフォームというデータセットと、そのAPIアクセス用のMCPサーバーが公開されていたのでこちらを叩いてみる。
  • このデータセットはCSVや3次元点群データなどのファイルデータがあるので、エージェント自身にデータのDLから解析まで行ってもらうためにCodex CLIのようなCLIツールをMCPクライアントとした。
    • Gemini CLIでもClaude Codeでもよい。

APIキーの取得と環境構築

MCPサーバーの設定

  • ~/.codex/config.tomlを編集
    • 各種パスを取得しておく
    • APIキー、パスは各々の環境に合わせたものを記載する。
$ which python3
/Users/username/Documents/github/mlit-dpf-mcp/.venv/bin/python3

$ pwd
/Users/username/Documents/github/mlit-dpf-mcp

# ↓この辺は好み
hide_agent_reasoning = false # 思考過程の非表示
network_access = true
model = "gpt-5-codex"
model_reasoning_effort = "high"
# ↑

[mcp_servers.mlit-dpf-mcp]
# which python3で得られたパス
command = "/Users/username/Documents/github/mlit-dpf-mcp/.venv/bin/python3"
args = [ "-m", "src.server" ]

# 環境変数
# https://www.mlit-data.jp/cms//api/v1/pages/_page/apps_mcp/MCP_InstallationGuide.pdf
[mcp_servers.mlit-dpf-mcp.env]
# 国土交通データプラットフォームで取得したAPIキー
MLIT_API_KEY = "YOUR-API-KEY"
MLIT_BASE_URL = "https://www.mlit-data.jp/api/v1/"
PYTHONUNBUFFERED = "1"
LOG_LEVEL = "WARNING"
# pwdで得られたMCPサーバーの実行ディレクトリ
PYTHONPATH = "/Users/username/Documents/github/mlit-dpf-mcp"

実行

MCPサーバーの実行

  • 仮想環境立てた状態で下記を実行
$ python /Users/username/Documents/github/mlit-dpf-mcp/src/server.py

特になんのレスポンスもなく、Enter押すと下記のようなエラーを吐く。
これはMCPサーバーに対してパラメータなしでリクエストしたことによるもの。

Received exception from stream: 1 validation error for JSONRPCMessage
  Invalid JSON: EOF while parsing a value at line 2 column 0 [type=json_invalid, input_value='\n', input_type=str]
    For further information visit https://errors.pydantic.dev/2.12/v/json_invalid
{"method":"notifications/message","params":{"level":"error","logger":"mcp.server.exception_handler","data":"Internal Server Error"},"jsonrpc":"2.0"}

Codex CLIの実行

任意のディレクトリで codex コマンドを実行しプロンプトを入力する。
データセットに都市QOLデータというものがあるのでこれを参照し、東京でQOLの高い地域を聞いてみる。
https://www.mlit-data.jp/#/DataCatalogList

$ codex

> 東京で最もQOLの高い地域をmlit-dpf-mcpを使って調査して。アウトプットは.mdファイルに出力してください。また結果の根拠データも併せて記載してください。

自分でAPIを叩きに行っている。

スクリーンショット 2025-11-15 1.41.20.png

CSVをダウンロードして中身を見てくれている。

スクリーンショット 2025-11-15 1.42.11.png

途中、いくつかの提案がありヒートマップを作成させたためpandasなど必要なライブラリをインストールしている。
対話の過程でライブラリインストールしたりするので実行ディレクトリは専用のディレクトリにして仮想環境をちゃんと立てておく必要がある。

スクリーンショット 2025-11-15 1.44.19.png

最終的な出力は下記となった。
定量的で結果の根拠や、データの可視化も行ってくれた。

文京区の最もQOLが高く、駅の近さや買い物先の近さが高いスコアであることからQOLが高く算出されたようだ。
洪水リスクや、緑の多さ、住宅の静けさは相対的に低いスコアであることがわかった。

また文京区の中でも湯島東部エリアは相対的に低いスコアのようだ。
これはヒートマップから考察されたのか、参照先のデータが明示されていないのでわからない。

tokyo_qol_report.md

東京圏 QOL 調査レポート(MLIT DPF MMAベース)

1. 調査サマリー

  • MLITデータプラットフォーム「都市QOL都市圏(dataset: qol_mma, 年次: 2020, 最終更新: 2025-08-13)」のメッシュデータから東京都の全53市区を抽出。
  • QOLスコアは都市圏平均を0とした相対指標。東京都平均は139,727。文京区は平均743,605でトップ、練馬区まで城西エリアが上位を占めた。
  • 文京区は全42メッシュの8割超が+40万以上を維持し、最高値は小石川〜春日エリア(KeyCode 533945682, スコア1,000,886)、最低でも湯島東部(533945694, 382,485)。
  • 利便指標(病院・鉄道・買物・求人)は都平均を大幅に上回る一方、「住宅の静けさ」「身近な緑」はマイナス圏で、静穏性を重視する場合は周辺区との比較が必要。

2. データソースと処理

  • 一次データ: data/QOL_TokyoMA.csv(MLIT DPFより取得)。指標はQOLと生活利便・リスク系16項目、KeyCodeはJIS 1kmメッシュ(4分割)。
  • 前処理: pandasで東京都レコードを抽出し、市区別にQOLを平均化 (outputs/tokyo_qol_city_summary.csv)。文京区のKeyCodeは標準メッシュに変換し座標化。
  • 可視化: Matplotlib + Spectral_rカラーマップで文京区42メッシュを散布図ヒートマップ化 (outputs/bunkyo_qol_heatmap.png)。
  • 指標比較: 全17指標について文京区平均と都平均を比較し、指標ごとの市区内順位や偏差を outputs/bunkyo_indicator_stats.csv に集計。

3. 東京都 QOL 平均上位10市区(2020年メッシュ平均)

outputs/tokyo_qol_city_summary.csv から抜粋。

City avg_qol sample_count
文京区 743604.6 42
目黒区 659487.7 54
杉並区 643787.1 130
中野区 620371.0 57
世田谷区 581061.7 225
練馬区 571451.2 190
品川区 490299.5 82
豊島区 432738.0 53
港区 411337.2 80
国分寺市 411263.8 46

4. 文京区 QOL メッシュヒートマップ

  • メッシュ単位のQOL値を座標化し、城北〜城西の高評価帯が視覚化された。
  • 高スコアは春日・小石川・本郷台地沿いに集中、相対的に低いのは湯島〜上野寄りの東部。

bunkyo_qol_heatmap.png

5. 文京区 指標別スコア比較

outputs/bunkyo_indicator_stats.csv より。Diffは文京区 − 東京都平均、Rankは都内53市区での順位(1=最高)。

Indicator BunkyoAvg TokyoAvg Diff Rank CitiesCovered
QOL 743604.6 139726.7 603877.9 1 53
鉄道駅の近さ 113873.9 31953.1 81920.7 7 53
買い物先の近さ 131607.5 62756.0 68851.5 6 53
洪水リスク 58060.5 -8825.9 66886.4 33 53
犯罪リスク 36450.6 -27327.8 63778.4 8 53
求人の多さ 63388.4 5760.8 57627.6 17 53
コンビニの近さ 84007.3 36846.4 47161.0 7 53
飲食店の近さ 64922.1 32187.0 32735.0 5 53
娯楽施設の近さ 40394.2 9641.2 30753.0 9 53
病院・診療所の近さ 25258.5 6598.7 18659.8 3 53
住宅の広さ -33088.1 -37068.1 3980.0 16 53
中心市街地の近さ 5586.2 2143.6 3442.6 14 53
交通事故リスク 3820.3 1225.1 2595.2 13 53
大型ショッピングモールの近さ 3143.7 2544.2 599.5 43 53
オフィス・学校の近さ -84551.4 -83387.3 -1164.1 52 53
身近な緑の多さ -52232.1 -19874.5 -32357.5 38 53
住宅の静けさ -25324.5 23205.7 -48530.2 39 53

6. 所見と次のアクション

  1. 文京区の強みは医療アクセス・交通・買い物・求人・低災害リスクで、居住利便性中心のQOL向上が確認できる。
  2. 騒音・緑量・大規模モール・オフィス距離は相対的に弱く、ファミリー用途や静かな住環境を重視する場合は世田谷・杉並との比較が必要。
  3. 今後は KeyCode 単位で家賃・地価や教育指標を突合し、住まい探しや都市施策への応用を検討すると精度が増す。

データ/図版一覧: data/QOL_TokyoMA.csv, outputs/tokyo_qol_city_summary.csv, outputs/bunkyo_indicator_stats.csv, outputs/bunkyo_qol_heatmap.png

完了し、次の提案をしてくる。

スクリーンショット 2025-11-15 1.51.17.png

余談

MCPサーバーを使用せずに調査を依頼するとWeb検索と合わせて独自の観点で推論する。

スクリーンショット 2025-11-15 1.52.11.png

ググっていい部屋ネットの結果を参考にしているっぽい。

東京でQOLの最も高い地域を調べて.md

東京でQOLの最も高い地域を調べて

作成日: 2025-11-14

1. 調査指標とデータソース

  • 住みここちスコア(丁目別): 2024年6月13日発表の「いい部屋ネット 街の住みここちランキング@東京都版」。東京都では13,521人が回答し、調査期間は2023年9月1日~2024年3月8日のインターネット調査として実施された。citeturn0search5
  • 幸福度スコア(丁目別): 同シリーズで公開された「街の幸福度ランキング」では、日常生活で感じる充足感や地域愛着を指標化しており、都心部の超都心エリアが上位に入っている。citeturn0search4

2. 指標別トップエリア(2024年データ)

街の住みここち(丁目)ランキング

  1. 世田谷区松原(5年連続1位)
  2. 渋谷区西原
  3. 目黒区自由が丘citeturn0search0

街の幸福度(丁目)ランキング

  1. 港区愛宕(初の1位)
  2. 港区芝公園
  3. 千代田区永田町citeturn0search0

3. 総合候補の整理

3.1 世田谷区松原(推奨エリア)

  • 住みここち指標で唯一5年連続の首位となり、調査母数も東京都内13,521サンプルあるため、汎用性の高い満足データとして解釈できる。citeturn0search5
  • 最寄りは京王線と京王井の頭線が交わる明大前駅で、新宿・渋谷の主要ターミナルへ10分前後で到達でき、通勤・通学の移動時間を短縮しやすい。citeturn0search7
  • 高架下や駅周辺にスーパーや個店が密集し、生活必需品が徒歩圏で完結するローカルな商圏が形成されている。citeturn0search7
  • 低層住宅と緑地が中心の静かな街並みが維持されており、騒音や過密感を抑えながら世田谷らしい落ち着きを享受できる。citeturn0search7
  • 留意点:主な鉄道は京王系2路線に限られるため、JRや東京メトロ直通を日常的に使う場合は明大前での乗り換えが前提になる。これは最寄り駅の紹介が京王線のみであることに由来する調査記事からの推測で、実地確認が必要。citeturn0search7

3.2 港区愛宕(ハイエンドな代替案)

  • 幸福度ランキングで初の1位となり、都心で働きつつ生活実感の充実を求める層の満足度が際立った。citeturn0search0
  • 愛宕山(標高25.7m)は23区内で最も高い自然の山で、愛宕神社の杜がまとまった緑を提供し、都心でありながら静謐さを得やすい。citeturn0search8
  • 山裾には愛宕グリーンヒルズなどの複合施設が並び、虎ノ門・神谷町エリアへ徒歩圏でアクセスできるため、国際都市機能と居住機能を同時に享受できる。citeturn0search8
  • 留意点:幸福度調査は丁目単位でサンプルが限られるため、平均所得の高い単身・DINKS層にバイアスした結果の可能性がある(住みここち調査のような大規模サンプルではない点に注意)。citeturn0search4

4. 総合判断

住みここち(生活満足)と幸福度(主観的充足)の双方で高評価を得ているのは世田谷区松原と港区愛宕だが、サンプル規模と5年連続首位という安定性から、日常生活全般のQOLを重視する多様な世帯にとっては世田谷区松原が最も再現性の高い選択肢と考えられる。citeturn0search5turn0search0

5. 次に取るべきアクション

  1. 2025年版ランキング(例年6月頃発表)をウォッチし、直近のトレンド変化がないか確認する。
  2. 松原・愛宕の平日日中と夜間の騒音・人流を現地で計測し、体感とデータのギャップを埋める。
  3. 自身のライフスタイルに合わせて、世帯構成や通勤先に応じた移動時間と住居コストのシミュレーションを行う。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?