はじめに
お盆期間中、暇だったので何気なくXを流し見していたら、デジタル庁の公式アカウントから次のポストが流れてきました。
Techブログ:行政手続等調査データ(約75,000件)をMCPで自然言語分析可能に
少し興味が湧き、該当ポストから Techブログ(note) を見に行くと、どうやら令和6年度の行政手続等の悉皆調査(約7.5万件)を、MCP経由で対話的に検索・集計できるようになったとのこと。
公式の案内は Claude Desktop や ChatGPT が中心で、自分が併用して使っている Cursor からの明示的な接続手順がありませんでした。
「たぶん使えるだろう」と思いつつ、独自設定が要るのかが気になったので、実際に試した結果を残します。
今回やったことは次のとおりです。
- 公式リポジトリのセットアップ
- LLMを使わず CLI でデータが読めることの確認
- Cursor への MCP 接続
- 公式READMEの利用例プロンプト3本
- 試して分かったこと
画面も交えて書きます。コードの解説や本番運用の話は対象外です。
MCP(Model Context Protocol)自体の説明は、本記事では扱いません。
知らない方は、上記noteから辿れる解説を見ていただくのがよいかと思います。
本記事で扱う実装は、デジタル庁が公開している技術検証用のサンプルです。
上記のnoteにも記載されていますが、出力結果は政府の公式見解ではありません。
データは調査時点の情報です。
今回試すもの
対象は次の公開リポジトリです。
READMEを読むと、デジタル庁が公表する「行政手続等の棚卸調査結果」(令和6年度悉皆調査)を、自然言語で検索・集計できる、とあります。
今回手元で取得した件数は 75,071件 でした。
仕組みとしては、7.5万件をまるごと LLM に読ませるのではなく、検索や集計はサーバー側で行い、応答に出典や品質情報も付ける、という作りのようです。
ツールは次の4つ、とREADMEに書かれています。
| ツール | 役割 |
|---|---|
list_datasets |
データセット一覧 |
inspect_dataset |
構造・品質の確認 |
query_records |
検索 |
summarize_records |
グループ別の集計 |
MCP Apps 対応クライアントなら、チャット内にグラフや表を出せるともあります。
対象として挙がっているのは Claude Desktop や ChatGPT です。
Cursor でどう見えるかは、後の節で触れます。
環境
| 項目 | 今回の環境 |
|---|---|
| OS | macOS Tahoe 26.5.1(MacBook Pro Apple M4) |
| Python | 3.14.6 |
| uv | 0.12.5 |
| Cursor | 3.16.29 |
| 作業ディレクトリ | 自身の作業ディレクトリに clone した administrative-procedures-mcp
|
公式は Python 3.10+ です。
今回使った端末には別で利用している3.14.6がインストールされていますが、問題なくセットアップは通りました。
セットアップ
READMEどおり、クローンしたディレクトリでセットアップスクリプトを実行します。
git clone https://github.com/digital-go-jp/administrative-procedures-mcp.git
cd administrative-procedures-mcp
./setup.sh
すると対話式のメッセージが表示されます。
このセットアップスクリプトは以下を実行します:
【Step 1】依存パッケージのインストール
- Python 仮想環境を初期化
- Polars・FastMCP などの依存パッケージをインストール
【Step 2】調査結果データの取得(オプション)
- デジタル庁の配布ページから最新データを自動取得
- 〜100MB のデータが datasets/ に保存されます
- 後で apcli fetch で手動取り込みもできます
【Step 3】接続方法の案内
- CLI(apcli)コマンドのテスト
- Claude Desktop / Claude Code / ChatGPT との連携方法
このセットアップによりマシン設定は変更されません。
(既存環境に .venv/ ディレクトリが追加されるだけです)
セットアップを進めますか? (y/n) []:
スクリプトは次の3ステップのようです。
- 依存パッケージのインストール(今回は
uvを使用) - 調査結果データの取得
- 接続方法の案内
データ本体はリポジトリに同梱されていません。
Step 2 でデジタル庁の配布ページから取得し、Parquet に変換されます。
案内文には 〜100MB のデータ とありますが、実際のログは次のとおりでした。
Saved: .../20250729_procedures-survey-results_outline_02.xlsx (14.0 MB)
Records: 75071
CSV: 14317 KB → Parquet: 3203 KB
xlsx が約14MB、変換後の parquet が約3.2MB です。
この数字はセットアップ完了時のコンソールに出ます。
Step 3 が終わると、次のようなメッセージが出ます。
==> 3/3 接続方法
LLM を使わずコマンドラインで試す(すぐ動きます)
uv run apcli list
uv run apcli inspect procedures-survey-r6
uv run apcli summarize procedures-survey-r6 --group-by '["所管府省庁"]' --metrics '["count"]'
uv run apcli summarize procedures-survey-r6 --group-by '["所管府省庁"]' --metrics '["count"]' --html > report.html
Claude Code が見つかりました(追加設定は不要です)
このディレクトリで claude を起動すると .mcp.json が読み込まれます。
Claude Desktop が見つかりました
設定ファイルを手で編集せずに登録できます:
uv run apcli install desktop
他のクライアント: uv run apcli install cursor / gemini-cli / goose
設定内容だけ確認: uv run apcli install json
セットアップ完了 ✓
接続案内として Claude Code / Claude Desktop は見出し付きですが、他のクライアントについては、次のように出るようです。
他のクライアント: uv run apcli install cursor / gemini-cli / goose
ただ、READMEの設定 には、Claude Code / Claude Desktop / ChatGPT についてしか書かれていません。
一旦ここは実行せず、先に進めました。
先に CLI で動かしてみる
Cursor に繋ぐ前に、LLM なしでデータが読めるかを確認しました。
ここで落ちていると、あとで問題の切り分けができないと思ったからです。
cd administrative-procedures-mcp
uv run apcli list
uv run apcli inspect procedures-survey-r6
uv run apcli summarize procedures-survey-r6 -g 所管府省庁 -m count
念の為の補足ですが、READMEの例は apcli list と書かれています(uv run 指定なし)。
今回は ./setup.sh が uv 経由でプロジェクトの仮想環境(.venv)に入れたため、その中の apcli を呼ぶ形になりました。
ターミナルの PATH には乗っていないので、apcli 単体では見つかりません。
セットアップ完了の案内も uv run apcli list になっていたのでそちらに合わせています。
.venv を有効にすれば apcli だけでも動くと思います。
list の結果は次のとおりです。
{
"datasets": [
{
"dataset_id": "procedures-survey-r6",
"title": "行政手続等の棚卸調査結果",
"publisher": "デジタル庁 (Digital Agency of Japan)",
"record_count": 75071,
"schema_version": "1"
}
],
"total": 1
}
summarize では所管府省庁が25グループに分かれ、最多は国土交通省 13,645件でした。この数字は、あとで Cursor チャットの結果と突き合わせます。
Cursor に繋ぐ
ここからが知りたかったところです。
.mcp.json を置いただけでは出ない
リポジトリ直下には .mcp.json があります。
Claude Codeの場合は、そのディレクトリで Claude Code を開けば追加設定は不要のようです。
ただ、同じファイルを置いた状態で、Cursor の Settings → Customize → MCPs を見ましたが、admin-procedures は出ていませんでした。
Claude Code の「開けば繋がる」とは違い、Cursor はプロジェクトの .mcp.json を自動では読まないようです。
uv run apcli install cursor
接続案内通り、セットアップ完了時に出ていたコマンドを実行します。
uv run apcli install cursor
すると Cursor 側で、MCP サーバーを追加してよいか確認するダイヤログが出ました。
内容は自動入力されています。
Install を押下します。
% uv run apcli install cursor
Opening Cursor to install 'admin-procedures'
Cursor should now open with the installation dialog
登録結果
Settings の MCPs 一覧に、admin-procedures が追加されました。中を開くと、次の4ツールがすべて有効になっていました。
list_datasetsinspect_datasetquery_recordssummarize_records
Cursor は Claude Code と違い、フォルダを開いただけでは繋がらないようです。
接続案内に出ていたとおり、uv run apcli install cursor の実行が必要でした。
公式プロンプトを Cursor チャットで試す
利用例 で紹介されているプロンプトを、Cursor のチャットから実際に投げてみます。
所管府省庁ごとの手続件数ランキング
所管府省庁ごとの手続件数ランキング(上位)を教えてください。
先にデータセット構造を確認した上で、出典と品質情報も含めてください。
返ってきた上位は、CLI の summarize と同じでした。
| 所管府省庁 | 手続レコード件数 |
|---|---|
| 国土交通省 | 13,645 |
| 厚生労働省 | 10,504 |
| 経済産業省 | 8,577 |
| 農林水産省 | 8,526 |
| 財務省 | 7,003 |
全体 75,071件、25グループです。集計しているのは手続のレコード件数で、年間の実施回数(総手続件数)ではありません。
出典と品質情報も付いていました。所管府省庁の充填率は 1.0、使っていない総手続件数は 0.6713 です。
先に inspect_dataset で構造を見てから summarize_records で集計した、という流れでした。
チャット本文の横に、グラフと全25件の表へのリンクも付いていました。
これは後述する Cursor Canvas になります。
オンライン未実施の手続の傾向
オンライン未実施の手続にはどんな傾向があるか知りたい。
まず全体を集計して、そのあと具体例を数件見せて。
全体のオンライン化実施状況は次のとおりで、CLI の集計と一致しました。
| オンライン化の実施状況 | 手続レコード件数 |
|---|---|
| 1 実施済 | 36,315 |
| 2 未実施 | 22,695 |
| 4 その他 | 13,235 |
| 5 一部実施済 | 2,416 |
| 3 適用除外 | 407 |
未実施 22,695件の所管は、国土交通省・厚生労働省・農林水産省が多く、具体例も件数付きで返ってきました。プロンプトどおり、全体集計のあとに例が続いています。
見直し候補になりそうな行政手続
優先的に見直し候補になりそうな行政手続を探してください。
申請等の手続に絞り、オンライン未実施のものから改善候補を抽出してください。
事実と提案は分けて書いてください。
申請等かつオンライン未実施は 8,371件 で、所管では国土交通省 2,143、厚生労働省 1,943 が上位でした。
年間の実施回数で見ると、総務省の転入届・転出届など、件数の大きい手続が挙がっています。
プロンプトどおり、事実(集計)と提案(解釈)は分かれていました。
「制度改正が必要」と回答されている手続と、「オンライン化実施予定」の手続では、見直しの意味合いが違う、といった書き方です。
3本を通した確認結果
| 確認したいこと | 結果 |
|---|---|
| ツールを呼ぶか | 呼ぶ。数字は CLI と一致 |
| 出典・品質 | 1本目で明示。他もデータセット情報あり |
| チャット内の MCP Apps グラフ | 出ない |
| 代わりのグラフ | Cursor Canvas |
グラフは MCP Apps ではなく Canvas
公式の MCP Apps は、対応クライアントのチャット内に、サーバー側がグラフや表の UI を返す仕組みのようです。README では Claude Desktop などが対象になっています。
今回の Cursor では、その UI は出ませんでした。
代わりに、チャット横で開ける Canvas にグラフと表がまとまっています。
1本目では、所管府省庁の横棒グラフと全25件の表が Canvas になっていました。
おそらく、MCP で取った数字をチャット用の文章にしたあと、見やすい表やグラフは Canvas 用のファイルとして別に作っている、という流れだと思います。
中身は MCP とつながったままではなく、そのとき取った数字を埋め込んだスナップショットに見えます。
つまり、集計そのものは MCP、グラフの見た目は Cursor 側、公式の MCP Apps の UI は今回の Cursor では出ていない、と理解しています。
apcli preview で MCP Apps 側を見る手順もありますが、本記事では未実施です。
apcli previewについてはREADMEの以下に記載されています。
https://github.com/digital-go-jp/administrative-procedures-mcp#%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC
まとめ
Cursor からデジタル庁の行政手続 MCP は問題なく使えました。
次の追加作業で接続できます。
uv run apcli install cursor
公式の利用例3本を投げると、サーバー側の集計が返り、数字は CLI と一致しました。
出典や品質情報も付きます。
また、Techブログを読んでみると、MCP が AI とデータをつなぐ標準になりつつあること、公共データも MCP で公開する動きが出てきたこと、そして「項目の意味や品質情報をどう渡すか」がこれから大事、といった背景が書いてありました。
今回触ってみて、7.5万件を LLM に全部読ませるのではなくサーバー側で集計して、出典や充填率まで返してくるのは、その話を実際にやってみた例なんだな、と思いました。
データが「ある」だけだと、AI はわりと平気で数字を補完してしまう印象です。
意味と品質がセットで届く形が、もっと普通になってくれるとありがたいな、というのが正直な感想です。
以上になります。
お盆休みの最後に良い勉強ができました。
最後までお読みくださりありがとうございました。
繰り返しになりますが、これは技術検証用サンプルの試用メモです。
出力した内容は政府の公式見解ではなく、データは調査時点の情報です。
同じことを試す方の参考になれば幸いです。





