Skip to main content
Glama
tachibanayu24

jgrants-mcp

README.md
# jgrants-mcp

日本の補助金情報を検索するための MCP (Model Context Protocol) サーバー

<a href="https://glama.ai/mcp/servers/@tachibanayu24/jgrants-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@tachibanayu24/jgrants-mcp/badge" alt="jgrants-mcp MCP server" />
</a>

## 概要

jgrants-mcp は、jGrants(デジタル庁が運営する補助金電子申請システム)の公開 API をラップした MCP サーバーです。LLM から MCP を経由して日本の補助金情報に簡単にアクセスできます。

## 機能

以下の 3 つのツールを提供します。すべてのツールは `structuredContent` フィールドで構造化データを返すため、LLM が効率的に処理できます。

### 1. `list_subsidies`

指定したキーワードで公募中の補助金一覧を取得します。

**パラメータ:**

- `keyword` (文字列, オプション): 検索キーワード(デフォルト: "補助金")

**返却データ:**
- 補助金のリスト(id, name, title, 対象地域, 補助上限額など)

### 2. `get_subsidy_detail`

補助金の詳細情報を取得します。添付ファイルは軽量なメタデータ(ファイル名、サイズ、インデックス)のみを返し、Base64 データは含まれません。

**パラメータ:**

- `subsidy_id` (文字列, 必須): 補助金の ID(`list_subsidies` で取得した id を指定)

**返却データ:**
- 補助金の詳細情報
- 各添付カテゴリの `AttachmentGroup`:
  - `count`: 添付ファイル数
  - `hasAttachments`: 添付の有無
  - `attachments`: ファイル情報の配列
    - `index`: ダウンロード時に指定するインデックス
    - `name`: ファイル名
    - `sizeBytes`: ファイルサイズ(バイト)

### 3. `download_attachment`

指定した補助金の添付ファイルをダウンロードします。Base64 エンコードされたファイルデータとメタデータを返します。

**パラメータ:**

- `subsidy_id` (文字列, 必須): 補助金の ID
- `category` (文字列, 必須): 添付文書のカテゴリ
  - `application_guidelines`: 公募要領
  - `outline_of_grant`: 交付要綱
  - `application_form`: 申請様式
- `index` (整数, 必須): 添付文書のインデックス(`get_subsidy_detail` の `attachments[n].index` を指定)

**返却データ:**
- `file_name`: ファイル名
- `data`: Base64 エンコードされたファイルデータ
- `data_size_bytes`: ファイルサイズ
- `encoding`: エンコード形式(常に "base64")

## インストール

### npm 経由でグローバルインストール

```bash
npm install -g jgrants-mcp
```

### npx で直接実行

```bash
npx jgrants-mcp
```

### ローカル開発

```bash
git clone https://github.com/tachibanayu24/jgrants-mcp.git
cd jgrants-mcp
npm install
npm run build
```

## 使用方法

### Claude Desktop での設定

Claude Desktop の設定ファイル(`~/Library/Application Support/Claude/claude_desktop_config.json`)に以下を追加:

```json
{
  "mcpServers": {
    "jgrants": {
      "command": "npx",
      "args": ["jgrants-mcp"]
    }
  }
}
```

### 他の MCP クライアントでの使用

MCP に対応した任意のクライアントから利用可能です。

## 使用例

### 1. 補助金を検索

```
ユーザー: 「介護施設向けの補助金を探して」
```

→ LLM が `list_subsidies` を `keyword: "介護"` で実行

### 2. 詳細情報を取得

```
ユーザー: 「ID a0WJ200000CDTxsMAH の補助金の詳細を教えて」
```

→ LLM が `get_subsidy_detail` を実行し、以下の情報を取得:
- 補助金の詳細(対象者、補助率、上限額など)
- 添付ファイルのメタデータ(ファイル名とサイズ)

### 3. 添付ファイルをダウンロード

```
ユーザー: 「公募要領をダウンロードして」
```

→ LLM が `download_attachment` を実行:
- `category: "application_guidelines"`
- `index: 0`(詳細情報から取得)

## 開発

### 必要な環境

- Node.js 18 以上
- npm または yarn

### ビルド

```bash
npm run build
```

### 開発モード

```bash
npm run dev
```

## API について

このツールは jGrants の公開 API(`https://api.jgrants-portal.go.jp/exp/v1/public`)を使用しています。API キーは不要です。

## ライセンス

MIT

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: list_subsidies searches for subsidies, get_subsidy_detail retrieves detailed information about a specific subsidy, and download_attachment handles file downloads. There is no overlap in functionality, and the descriptions clearly differentiate their roles.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (list_subsidies, get_subsidy_detail, download_attachment) using snake_case. The verbs (list, get, download) are appropriate and predictable, making the set easy to understand and use.

Tool Count3/5

With only 3 tools, the set feels thin for a subsidy management domain, as it lacks operations like creating, updating, or deleting subsidies. However, the tools cover core search and retrieval functions, so it's borderline but not severely mismatched.

Completeness2/5

The tool set has significant gaps for a subsidy management server. It provides search and detail retrieval but lacks essential CRUD operations (e.g., create_subsidy, update_subsidy, delete_subsidy) and other lifecycle actions like applying for subsidies or managing applications, which could cause agent failures in broader workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues