0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Desktop で補助金を検索できる Jグランツ MCP サーバーを npx 対応にした話

0
Posted at

はじめに

デジタル庁が公開している補助金検索 MCP サーバー「jgrants-mcp-server」をご存じでしょうか。

Jグランツ(デジタル庁が運用する補助金電子申請システム)の公開 API を MCP サーバーとして実装したもので、Claude Desktop などの AI クライアントから自然言語で補助金を検索できます。

とても便利なツールなのですが、Claude Desktopを使う一般ユーザーが使うには少しハードルが高いかなと思ったので、本記事ではその課題を解決するために行った改変をご紹介します。

注意: 本実装は Digital Agency, Government of Japan が公開する jgrants-mcp-server を元に TypeScript 化・改変した非公式実装です。デジタル庁との提携・認証・公式保証を示すものではありません。


前置きはいいからすぐに使いたい方
導入手順は「使い方」セクションをご覧ください。Node.js さえあれば設定ファイルに数行追記するだけで使えます。

元実装の課題:一般ユーザーには難しすぎる

元のリポジトリを Claude Desktop で使うには、以下の手順が必要でした。

# 1. リポジトリをクローン
git clone https://github.com/digital-go-jp/jgrants-mcp-server.git
cd jgrants-mcp-server

# 2. 依存パッケージをインストール
npm install

# 3. ビルド
npm run build

# 4. サーバーを起動(常駐させる)
npm start

さらに Claude Desktop の設定ファイルに以下を追記する必要があります。

{
  "mcpServers": {
    "jgrants": {
      "command": "uvx",
      "args": ["fastmcp", "run", "http://localhost:8000/mcp"]
    }
  }
}

この手順の問題点:

  • git clone → Git のインストールと基本操作の知識が必要
  • npm install / npm run build → Node.js と npm の知識が必要
  • npm start でサーバーを常駐起動させ続ける必要がある
  • uvx(Python の uv ツール)のインストールも必要

エンジニアなら問題ありませんが、補助金の活用を検討している中小企業の経営者や担当者にとっては、この手順はちょっと難しいかなと思う部分があります(使う度に npm start をしないといけないし)


解決策:npx で動く stdio 型 MCP サーバーへ

Claude Desktop は stdio 接続をネイティブサポートしています。stdio 型なら、MCP サーバーを npx コマンドで起動でき、設定ファイルを書くだけで使えます

改変後の Claude Desktop 設定はこれだけです:

{
  "mcpServers": {
    "jgrants": {
      "command": "npx",
      "args": ["-y", "@ishidad2/jgrants-mcp-server"]
    }
  }
}

必要なのは Node.js のインストールのみ。 git も、クローンも、ビルドも、サーバーの常駐起動も不要です。

Claude Desktop を再起動するたびに npx が自動でパッケージを取得・起動してくれます。


実装上のポイント

1. transport を httpStream から stdio へ変更

元実装は HTTP サーバーとして起動する httpStream transport を使用していました。

// 変更前
server.start({
  transportType: "httpStream",
  httpStream: { endpoint: "/mcp", host, port },
});

// 変更後
server.start({ transportType: "stdio" });

たったこれだけです。FastMCP フレームワークが stdio の入出力を MCP プロトコルとして処理してくれます。

2. console.info → console.error

stdio モードでは、stdout は MCP プロトコルの通信に使われます。そのため、ログ出力は必ず stderr に向ける必要があります。

// 変更前(stdout に出力されてしまいプロトコルを破壊する)
console.info(`jGrants MCP Server starting on http://${host}:${port}/mcp`);

// 変更後(stderr に出力)
console.error("jGrants MCP Server starting (stdio mode)");

3. Python スクリプトとの共存

元実装には PPTX/ZIP ファイルを変換するための Python スクリプト(scripts/convert.py)があります。

Python スクリプトは補助金の添付資料(PowerPoint・ZIP 形式)を読み取る際に使われるオプション機能です。インストールしなくても補助金の検索や PDF・Word・Excel の取得は問題なく使えます。

PowerPoint・ZIP 形式の添付資料も読み取りたい場合は、以下の手順で Python 環境を用意してください。

PowerPoint・ZIP を読み取れるようにする手順(オプション)

  1. Python 公式サイト から Python 3.11 以上をインストール
  2. ターミナル(macOS)またはコマンドプロンプト(Windows)で以下を実行:
pip install markitdown

インストール後は Claude Desktop を再起動するだけで自動的に有効になります。

環境 PDF / Word / Excel PowerPoint / ZIP
Python なし(デフォルト) 正常に読み取り可能 読み取り不可
Python + markitdown あり 正常に読み取り可能 正常に読み取り可能

技術的な背景としては、Python スクリプトは child_process.execFile で別プロセスとして起動されるため、MCP の stdio 通信とは完全に独立しています。Python 未インストール環境では自動的にスキップされます。


使い方

前提条件

  • Node.js 18 以上

Claude Desktop の設定

設定ファイルを開いて追記します。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jgrants": {
      "command": "npx",
      "args": ["-y", "@ishidad2/jgrants-mcp-server"]
    }
  }
}

または

Claude Desktopを起動設定開発者設定を編集claude_desktop_config.json

スクリーンショット 2026-06-03 6.13.47.png

スクリーンショット 2026-06-03 6.14.31.png

Claude Desktop を再起動すれば完了です。


使えるツール

ツール名 機能
search_subsidies キーワード・業種・地域・従業員数で補助金を検索
get_subsidy_detail 補助金の詳細情報と添付ファイルを取得
get_subsidy_overview 締切期間別・金額規模別の統計情報を取得
get_file_content PDF/Word/Excel などの添付資料を Markdown で取得
ping 疎通確認

実際の使用例

Claude Desktop で以下のように話しかけるだけで補助金を検索できます。

「IT導入補助金について教えて」
「東京都で受付中の製造業向け補助金を探して」
「補助上限額が高い補助金を一覧で見せて」

image.png


まとめ

元実装 本実装(非公式)
接続方式 HTTP + uvx プロキシ stdio(npx 直接)
必要な知識 git / npm / Python / uv Node.js のみ
サーバー常駐 必要 不要
設定の複雑さ 高い JSON 数行

MCP サーバーを一般ユーザーに使ってもらうには、stdio + npx の組み合わせが現時点では最もハードルが低いと感じています。

補助金情報の調査に AI を活用したい方は、ぜひ試してみてください。


リポジトリ・パッケージ

GitHub
https://github.com/ishidad2/jgrants-mcp-server

npm
https://www.npmjs.com/package/@ishidad2/jgrants-mcp-server

本実装は非公式の改変版です。元リポジトリは digital-go-jp/jgrants-mcp-server です。
Jグランツ API の利用にあたっては 利用規約 に従ってください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?