{
  "markdown": "# 日本の補助金検索｜日本の公的支援情報をAIから使えるようにする\n\n> 補助金を「知っている人だけが得をする仕組み」から、誰でも公正に調べ、判断できる仕組みへ。\n\n本プロジェクトは、日本政府が公開している補助金情報と法人情報を、ChatGPTなどのAIから自然に利用できるようにするためのオープンソースプロジェクトです。\n\n目指しているのは、単なる補助金検索ツールではありません。会社名と「これから実施したいこと」を伝えるだけで、法人を特定し、公的な企業情報を確認し、現在公開されている支援制度を探し、企業と制度の適合性を検討できる基盤を目指します。\n\n> [!IMPORTANT]\n> 本プロジェクトは開発中の民間プロジェクトであり、行政機関の公式サービスではありません。検索結果や評価は申請資格・採択・法令適合性を保証しません。\n\n## 現在地\n\n- Cloudflare Workersで動作するMCPサーバーと13のツールを実装済みです\n- Jグランツ、経済産業省の法人情報データベース、EDINETの公開情報を扱います\n- 自動テストでは、正常系だけでなく曖昧な企業名、情報不足、外部API障害、誤った断定の防止も検証します\n- OpenAIの公開プラグイン審査に向けて、ポリシー、ツール注釈、再現可能な審査シナリオを整備しています\n\n公開文書: [プライバシーポリシー](PRIVACY.md)・[利用規約](TERMS.md)・[セキュリティポリシー](SECURITY.md)・[コントリビューションガイド](CONTRIBUTING.md)・[行動規範](CODE_OF_CONDUCT.md)\n\n## このプロジェクトが解決したい問題\n\n日本には多くの補助金、助成金、公的支援制度があります。一方で、制度を利用したい企業や担当者は、次のような問題に直面しています。\n\n- どの制度が存在するのか分からない\n- 自社が対象になるのか判断しにくい\n- 制度情報が複数のWebサイトに分散している\n- 過去年度や受付終了後の情報が検索結果に混在している\n- 出典が不明な解説や、不正確な情報を見分けにくい\n- 公募要領が難しく、専門家に依存しなければ調査を始めにくい\n- 制度を探したい開発・製造・営業担当者が、法人情報を毎回入力しなければならない\n\n公的データはすでに公開されています。問題は、データが存在しないことではなく、一般の企業担当者が実際に使いやすい形になっていないことです。\n\n本プロジェクトは、公的データをAIから扱える形につなぎ、情報格差を小さくすることを目的としています。\n\n## 基本理念\n\n### 公的情報を優先する\n\nモデルが記憶している知識や出典不明のまとめ情報より、政府・自治体などが現在公開している情報を優先します。\n\n### 事実と推測を分ける\n\nAPIや公募資料から確認できた事実と、AIによる整理・推論・適合度評価を明確に区別します。確認できない情報を推測で補わず、不足している項目は不足していると示します。\n\n### 過度な期待を生まない\n\n検索結果や適合度評価は、採択、受給資格、申請の適法性を保証するものではありません。最終判断では、必ず最新の公募要領と実施機関の案内を確認します。\n\n### 不適切な補助金ビジネスへの依存を減らす\n\n補助金申請の支援には専門知識が必要な場面があります。一方で、制度の複雑さや情報格差を利用し、対象外の制度を過度に勧めたり、採択可能性を不当に高く見せたり、不適切な申請を促したりする余地もあります。\n\n本プロジェクトは、特定の職種や適正な専門サービスを否定するものではありません。「誰が言ったか」ではなく「公的情報で何が確認できるか」を判断の基準にし、企業自身が候補と根拠を検証できる環境をつくります。\n\n### 誰でも同じスタートラインから探せるようにする\n\n経営者や総務担当者だけでなく、開発、製造、営業、情報システム、新規事業など、実際に新しい取り組みを考えた人が、その場で支援制度の調査を始められることを重視します。\n\n## 社会的ミッション\n\n補助金は税金などの公的資源を原資としながら、制度を発見し、要件を読み解き、申請準備へ進むまでの情報コストには大きな差があります。本プロジェクトは、その差を小さくするための公共的なデジタル基盤を目指します。\n\n私たちが増やしたいのは、申請件数そのものではありません。次の状態を増やすことが社会への貢献だと考えています。\n\n- 小規模な事業者や地域企業も、公的情報へ同じ入口から到達できる\n- 候補を勧めた理由と参照した出典を、利用者自身が検証できる\n- 対象外や未確認の可能性を隠さず、無理な申請や過大な期待を減らす\n- 専門家へ相談するとき、論点と必要資料が整理され、本来の専門判断に時間を使える\n- API仕様変更や誤判定の知見をオープンソースへ還元し、同じ失敗の繰り返しを減らす\n\n### 守る原則\n\n- 特定の制度や支援事業者を、対価を理由に優先表示しません\n- 採択可能性を断定したり、申請資格があるように誤認させたりしません\n- 公開情報、利用者の申告、コードによる計算、AIの推論を区別します\n- 必要以上の個人情報や企業の機密情報を求めません\n- AIを最終決定者にせず、申請者、専門家、実施機関による確認につなげます\n- 誤りを再現できるテストと変更履歴を残し、改善を公共の知見にします\n\n## 目指す利用体験\n\n例えば、利用者が次のように相談します。\n\n> 株式会社○○で、製造ラインにAIカメラを導入したい。利用できそうな補助金はありますか？\n\nシステムは、最終的に次の流れを実現します。\n\n```text\n会社名と実施したい事業\n        ↓\n国税庁 法人番号システムWeb-API\n法人候補・法人番号・正式名称・所在地を確認\n        ↓\n候補が複数の場合は利用者に確認\n        ↓\ngBizINFO\n法人の公開情報・認定・過去の補助金情報などを取得\n        ↓\nJグランツ\n現在公開されている補助金候補を検索\n        ↓\nAI\n一致する条件、未確認事項、公式情報へのリンクを整理\n        ↓\n利用者\n最新の公募要領を確認して申請可否を判断\n```\n\n大量の入力フォームを最初に要求せず、公的情報から確認できない項目だけを追加で質問する体験を目指します。\n\n## 利用する公的データ\n\n### Jグランツ\n\n補助金制度側の情報を取得します。\n\n- 補助金候補の検索\n- 対象地域や利用目的による絞り込み\n- 受付状況と申請期間の確認\n- 制度詳細と公式ページの取得\n\n### 経済産業省の法人情報データベース（gBizINFO）\n\n企業側の公開情報を取得します。\n\n- 法人基本情報\n- 所在地などの企業属性\n- 認定情報\n- 過去の補助金情報\n- 調達情報などの法人活動情報\n\n### EDINET\n\n利用者から申告された親会社候補を、金融庁へ提出された有価証券報告書で検証します。\n\n- EDINETコード一覧から親会社候補を特定\n- 最新の有価証券報告書にある関係会社情報を確認\n- 対象会社名、関係を示す文脈、比率表記、書類管理番号を根拠として返却\n- 未検出の場合も「資本関係なし」と断定しない\n- 補助金ごとの「みなし大企業」規定の確認を促す\n- 対象会社の行に属する比率だけを抽出し、重要な根拠を最大2件に限定\n\nEDINETを未知の親会社を自動発見するデータベースとしては使用しません。全国の企業関係データを複製・蓄積せず、利用者が示した候補について各省庁の最新版を照会する方針です。\n\n### 国税庁 法人番号システムWeb-API\n\n法人を正確に特定するための基礎情報を取得します。\n\n- 会社名から法人候補を検索\n- 法人番号、正式な商号・名称、本店所在地を確認\n- 同名法人を所在地などで識別\n- 名称・所在地の変更や法人状態を確認\n\n法人名検索で複数候補が見つかった場合、システムが一社を推測で選ぶことはせず、候補を提示して利用者に確認します。\n\n## 開発状況\n\n本プロジェクトは開発中です。完成している機能と構想段階の機能を区別して公開します。\n\n### 実装済み\n\n- Cloudflare Workers上で動作するMCPサーバー\n- Jグランツ公開情報を利用した補助金検索\n- 補助金詳細の取得\n- 受付中制度、対象地域、業種、利用目的などによる候補整理\n- gBizINFO連携の基本実装\n- 法人情報と補助金情報を用いた適合度評価の基本実装\n- gBizINFOによる法人名・都道府県・市区町村検索\n- 同名法人の候補提示と、曖昧な場合に自動決定しない制御\n- 公開情報が不足する法人を利用者入力で補完し、項目ごとの出典と矛盾を表示\n- 所在地の完全一致・包含関係・行政区域不一致を区別し、詳細住所の省略を矛盾扱いしない\n- 法人状態が未提供の場合の断定防止と、法人検索の次ページ候補の可能性を表示\n- 業種大分類コード、未登録記号、資格等級などの正規化\n- gBizINFOの8種類の活動別APIから、認定、表彰、事業所、財務、特許、調達、補助金、職場情報を取得\n- 法人検索の活動件数と専用APIの取得件数を比較し、未取得・部分障害を明示\n- ChatGPT Workspaceでの限定配布と動作確認\n- 利用者が申告した親会社候補をEDINETの有価証券報告書で検証\n- EDINETで未検出の場合に、資本関係なしと誤って断定しない制御\n\n### 検証中\n\n- 複数の業種・規模・地域の法人を用いた実データ検証\n- 利用者入力と公的データが矛盾した場合の対話設計\n\n### 今後の予定\n\n- 国税庁法人番号システムWeb-APIとの統合\n- 法人の正式情報とgBizINFO情報の統合\n- 国税庁データとgBizINFOの情報差分の明示\n- 補助金情報の変更検知と定期通知\n- ChatGPTのスケジュールやWorkを利用した継続的な案件管理\n- 自治体独自制度、雇用関係助成金、公的融資、税制優遇などへの対象拡大\n\n## MCPツール\n\n現在のMCPサーバーでは、次のツールを中心に提供します。\n\n| ツール | 役割 | 状況 |\n|---|---|---|\n| `search_subsidies` | Jグランツから補助金候補を検索する | 実装済み |\n| `get_subsidy_detail` | 選択した補助金の詳細を取得する | 実装済み |\n| `search_companies` | 経済産業省の法人情報データベースで会社名・所在地から法人候補を検索する | 実装済み |\n| `get_company_profile` | 法人番号から同データベースの企業情報を取得する | 実装済み・実API検証済み |\n| `get_company_activities` | 法人番号から同データベースの活動情報を取得し、種類別件数と取得状況を返す | 実装済み |\n| `evaluate_subsidy_fit_for_company` | 公開法人情報と利用者の補完情報を基に一致点・不足・出典・矛盾を整理する | 実装済み・実API検証済み |\n| `verify_corporate_relationship` | 利用者が申告した親会社候補をEDINET提出書類で検証し、みなし大企業規定の確認につなげる | 実装済み |\n| `assess_deemed_large_enterprise_eligibility` | 制度別の公式要件と確認済み資本関係を照合し、みなし大企業の扱いを整理する | 実装済み |\n| `prepare_professional_consultation` | 未確認論点を、専門家への質問・準備資料・相談期限を含む引き継ぎメモにする | 実装済み |\n| `record_official_selection_statistics` | 公募回別の申請件数・採択件数を公的出典とともに保存し、比較可能な場合だけ公式採択率を計算する | 実装済み |\n| `get_official_selection_statistics` | JグランツIDから過去の公式採択実績と出典を参照する | 実装済み |\n| `estimate_program_selection_outlook` | 過去最大3回の公式実績から制度全体の参考範囲をルール算定する | 実装済み |\n| `get_corporate_identity` | 法人番号から正式名称・所在地・法人状態を取得する | 計画中 |\n\nツールの返却結果は候補選定や確認作業を支援するものであり、採択や受給資格を保証しません。みなし大企業については、100%子会社という事実だけで全制度から除外せず、候補制度の最新の公募要領や公式FAQにある扱いと照合します。課税所得や役員兼務など、公開情報で確認できない事項は推定しません。\n\n適合判定で未確認事項が残る場合は、単に「専門家へ相談してください」と案内するのではなく、相談理由、具体的な質問、準備資料、相談期限を含む専門家相談メモを返します。顧問の社会保険労務士などを一次相談窓口とし、雇用・賃金は社会保険労務士、決算・研究開発費・資本関係は税理士または公認会計士、制度固有の解釈は実施機関へ振り分けます。AIは可能性と論点を提示し、申請者と人間の専門家が最終判断と責任を担います。非公開資料の内容はMCPやD1へ保存しません。\n\n## 構成\n\n```text\nChatGPTなどのMCPクライアント\n        ↓ Streamable HTTP\nCloudflare Workers上のMCPサーバー\n        ├─ Jグランツ\n        ├─ gBizINFO\n        ├─ Cloudflare D1（Jグランツ公開情報のキャッシュ、任意）\n        ├─ EDINET\n        └─ 国税庁 法人番号システムWeb-API（計画中）\n```\n\n### 公開情報キャッシュ\n\n専門家への相談に進む場合、`prepare_professional_consultation`は`readyToSendMessage`（件名・本文）と`nextAction`を返します。Web検索で確認した情報からも利用でき、制度名、参照URL、確認済み事項、未確認論点、準備資料、既知の期限を相談文に引き継ぎます。本文では対応可否、専門外の場合の紹介、必要資料の共有方法、初期相談の費用と進め方を尋ねます。任意の`company_name`と`public_business_summary`には公開情報のみを指定し、不明な値は省略します。既存の適合判定が返す`professionalConsultation`にも同じ相談文が含まれます。`presentationGuidance`に従い、検討・相談に進む場面でコピーできる文面を提示します。候補探索のたびに長文を表示する必要はなく、相談論点がない場合の文面は`null`です。相談文の保存・自動送信は行いません。\n\nJグランツの検索結果と補助金詳細は、Cloudflare D1へ読み取りキャッシュとして保存できます。`public_api_cache`には、正規化された公開補助金情報、取得日時、内容ハッシュ、通常の有効期限、および公式API障害時に限って使用できる失効猶予期限を保存します。\n\nJグランツ検索キャッシュには、検索対象となった会社名、法人番号、企業プロフィール、事業計画、会話履歴、利用者識別情報、企業ごとの評価結果を保存しません。ただし、EDINETで検証した公開企業情報と資本関係については、根拠文書とともに`companies`、`company_relations`、`edinet_documents`へ保存します。これはJグランツ検索キャッシュとは別の、公開情報に基づく証拠層です。\n\n検索条件はキャッシュ本文へ保存せず、`CACHE_KEY_SECRET`を使ったHMAC-SHA256のキャッシュキーへ変換します。HMACは検索条件を暗号化するものではなく、元の条件を保存せずに同一条件のキャッシュを参照するための索引です。`CACHE_KEY_SECRET`が未設定の場合、検索結果のD1キャッシュは安全のため使用しません。補助金詳細は、公開されたJグランツ補助金ID単位でキャッシュします。\n\nD1を有効にする場合は、`migrations/0002_public_api_cache.sql`を適用したデータベースを`PUBLIC_CACHE`としてWorkerへバインドしてください。既存の`subsidy_ai_relations`バインディングがある環境では、同じ公開情報用D1を利用できます。検索キャッシュには`CACHE_KEY_SECRET`をCloudflare Secretとして設定します。\n\nD1またはキャッシュ用Secretが未設定の場合や、キャッシュの読み書きに失敗した場合でも、MCPはJグランツ公式APIから直接取得して動作します。期限切れキャッシュは通常時には使用せず、公式APIのタイムアウトや一時的な障害時に限り、古い情報であることを明示して失効猶予期限まで利用します。`content_hash`は取得内容の比較や将来の変更検知に使用するメタデータであり、現時点ではデータの真正性や改ざん防止を保証するものではありません。\n\n### 採択実績エビデンス層\n\n`migrations/0003_subsidy_research_schema.sql`を適用すると、公募回別の申請件数、採択件数、公式採択率、出典URL、取得日、内容ハッシュ、計算根拠をD1へ保存できます。公的資料の本文やPDF、企業情報、利用者情報は保存しません。同じ公募回・同じ対象範囲の申請件数と採択件数が揃う場合だけ公式採択率をコードで計算します。公開MCPからの誤情報混入を抑えるため、公的機関ドメインの公式HTML・テキスト・JSONをWorker自身が取得し、根拠文の一致を確認できた場合だけ保存します。PDFは現段階では自動照合せず、保存を停止します。\n\n見通し機能は過去最大3回の公式実績の加重平均を基準に、公式に確認できた予算、補助上限、対象範囲の変化だけを限定的に補正します。これは制度全体の参考範囲であり、個別企業の採択確率ではありません。申請資格が未確定、条件付き、対象外可能性ありの場合は計算しません。\n\n本プロジェクトは、特定のAI製品だけに閉じた実装ではなく、MCPに対応する他のクライアントからも利用できる構造を目指します。\n\n## 開発環境\n\n### 必要なもの\n\n- Node.js\n- npm\n- Cloudflare Workers / Wrangler\n- gBizINFO APIトークン（gBizINFO機能の実行時）\n- EDINET APIキー（資本関係検証の実行時）\n- 国税庁法人番号システムWeb-APIのアプリケーションID（統合後）\n\n### セットアップ\n\n```bash\nnpm install\nnpm run typecheck\n```\n\n利用可能な起動・テスト・デプロイ用コマンドは、`package.json` の `scripts` を確認してください。\n\n### 秘密情報\n\nAPIトークンやアプリケーションIDは、ソースコードやGit履歴に保存しないでください。\n\n- ローカル環境では、Git管理対象外の環境変数ファイルを使用する\n- CloudflareではSecretsとして登録する\n- ログ、エラーメッセージ、MCPレスポンスへ秘密情報を出力しない\n- 漏えいが疑われる場合は、直ちに失効・再発行する\n\n現在使用する環境変数は次のとおりです。\n\n```text\nGBIZINFO_API_TOKEN\nCACHE_KEY_SECRET\nEDINET_API_KEY\nOPENAI_APPS_CHALLENGE_TOKEN\n```\n\n`OPENAI_APPS_CHALLENGE_TOKEN`は、OpenAI PlatformでMCPサーバーのドメイン所有を確認する際に表示された値を設定します。値はリポジトリへ保存せず、Cloudflare Secretとして登録してください。\n\n```bash\nnpx wrangler secret put OPENAI_APPS_CHALLENGE_TOKEN\nnpm run deploy\n```\n\nデプロイ後、`https://<MCPサーバーのホスト>/.well-known/openai-apps-challenge`が検証トークンだけをプレーンテキストで返すことを確認してから、OpenAI Platformで検証を実行します。未設定時、このURLは404を返します。\n\n国税庁法人番号システムWeb-APIとの統合時には、専用のアプリケーションID用環境変数を追加します。\n\n## テスト方針\n\n正常に結果が返ることだけでなく、誤った企業や制度を選ばないことを重視します。\n\n- 受付中と受付終了の制度\n- 全国対象制度と地域限定制度\n- 大企業と中小企業\n- 同名法人が複数存在するケース\n- 公開情報が少ない法人\n- 存在しない法人番号\n- APIトークンの未設定・不正・失効\n- 外部APIの停止、タイムアウト、仕様変更\n- 条件を確認できない場合に断定しないこと\n- 同名の親会社候補を自動決定しないこと\n- EDINET提出書類で未検出でも、資本関係なしと断定しないこと\n- EDINET APIキーをレスポンスやログに含めないこと\n- Web検索など、プラグインを呼ぶべきでない依頼\n\n## 正確性と免責事項\n\n本プロジェクトは、デジタル庁、経済産業省、国税庁その他の行政機関が提供・認定・保証する公式サービスではありません。民間のオープンソースプロジェクトとして、公的機関が公開する情報を利用します。\n\n補助金情報は変更される可能性があります。検索結果、企業情報、適合度評価、AIによる説明は参考情報であり、申請資格、採択、補助額、法令適合性などを保証しません。申請前に、必ず実施機関が公開する最新の公募要領、交付要綱、FAQなどを確認してください。\n\n各データソースの利用条件、出典表示、非保証表示に従ってください。特に国税庁法人番号システムWeb-APIの利用時は、国税庁が指定する出典・非保証表示を実装します。\n\n## なぜオープンソースなのか\n\n政府が公開したデータは、特定の企業や専門家だけでなく、社会全体が検証・活用できるものであるべきだと考えています。そのデータをAIから利用するための接続方法、エラー処理、出典管理、適合度判定の基本思想も、可能な限り公開します。\n\n本リポジトリは、単なるサンプルではなく、**日本の公的支援情報をAIから利用するためのリファレンス実装**となることを目指します。\n\n自治体、企業、士業、研究機関、開発者など、立場を問わず利用・検証・改善に参加できる基盤を目指します。\n\n## 運営とガバナンス\n\n- ソースコードと変更履歴を公開します\n- IssueとPull Requestを通じて改善提案を受け付けます\n- 公的データの仕様変更に追随できるテストと記録を整備します\n- 本番環境、API認証情報、リリース権限はプロジェクト運営者が管理します\n- 事実、推論、未確認事項を区別する設計を守ります\n- 外部組織との提携や公式性を、許諾なく示唆しません\n\nコア実装を誰でも検証・利用できる状態にしつつ、公式ホスティング、企業向け運用、SLA、監査ログ、SSO、独自データ連携などは、将来的に別サービスとして提供する可能性があります。\n\n### オープンソースと持続可能な運営\n\n公開MCPは、公的情報へ到達するための共通部分を社会へ開きます。一方、個別企業の機密情報や顧客データは公開MCPへ集約せず、それぞれの管理領域に留めます。将来の有料サービスは、データそのものを囲い込むのではなく、安定運用、API変更への追随、品質管理、セキュリティ更新、業務システムとの安全な接続に対して対価を得る構造を想定しています。\n\n将来的には、公開情報を扱う共通基盤と、個別企業が管理する機密情報や業務システムとの接続を明確に分離します。現在のOSS版と公開プラグインは、公開情報を安全に検索・整理する共通基盤に集中します。\n\n## コントリビューション\n\n提案、不具合報告、Pull Requestを歓迎します。参加方法と変更時の確認事項は [`CONTRIBUTING.md`](CONTRIBUTING.md) を参照してください。参加者には [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) の遵守を求めます。\n\n特に次のような協力を歓迎します。\n\n- 公的APIの仕様変更に関する情報\n- 自治体独自制度など、新しいデータソースの提案\n- 誤判定や情報不足を再現できるテストケース\n- アクセシビリティ、日本語表現、専門用語の改善\n- セキュリティとプライバシーに関する改善\n\n## セキュリティ\n\n脆弱性や秘密情報の漏えいを発見した場合、公開Issueへ認証情報や再現用の秘密データを投稿しないでください。報告方法と対応方針は [`SECURITY.md`](SECURITY.md) を参照してください。\n\n## 商標・名称\n\n本プロジェクトに登場する行政機関、制度、サービス、製品などの名称は、それぞれの権利者に帰属します。それらの名称をデータソースや相互運用対象の説明として使用しており、提携、認定、推奨または公式性を示すものではありません。\n\n## ライセンス\n\n本プロジェクトは **GNU Affero General Public License v3.0（AGPL-3.0）** のもとで公開します。ライセンスの全文は [`LICENSE`](LICENSE) を参照してください。\n\n私たちは、ソースコードそのものを独占することを目的としていません。\n\n生成AIによってソフトウェア開発のコストが大きく下がった現在、コードを秘匿することよりも、\n\n**理念、公開仕様、公的データとの接続方法、そして改善成果を社会へ還元する文化**\n\nの方が重要だと考えています。\n\n本プロジェクトは、企業、行政機関、自治体、研究機関、個人開発者を問わず、広く利用・改良されることを歓迎します。\n\n同時に、この公共的な基盤を利用して生まれた改善が、可能な限り再び社会へ共有されることを願っています。\n\nAGPL-3.0は、そのための最低限のルールであると同時に、本プロジェクトの意思表示でもあります。\n\nルールだけですべてを守ることはできません。\n\n最終的には、本プロジェクトに関わる人々が、\n\n**「公的データから生まれた価値を、再び社会へ返す」**\n\nという理念を共有してくれることを期待しています。\n\n---\n\n**公的データを、公的に使える状態にする。**\n\nそれが、このプロジェクトの目標です。\n",
  "bytes": 11395,
  "sha": "eeaa72743f8f82d4cc4e6124eaf17c5553f1f890cf2a9b85ea955b45eb0c272b",
  "repo_slug": "mkisama94/subsidy_ai_plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mkisama94_subsidy_ai_a3411c1d/readme"
}