Upgrade to Pro — share decks privately, control downloads, hide ads and more …

全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for k.muguruma k.muguruma
August 28, 2026

全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏

Postman API Night Tokyo 2026 Summer
https://postman.connpass.com/event/401277/

での登壇資料です

複数チーム・複数プロダクトでMCPサーバーの導入が進む中、アクセス制御や監査ログが伴わない「野良MCPサーバー」が野放しになるリスクが顕在化しました。本セッションでは、この課題感からMCPサーバー管理プラットフォーム「MCPass」を作るに至った経緯と、現場でどう使われ改善が回っているかの生の声をお話しします。

Avatar for k.muguruma

k.muguruma

August 28, 2026

More Decks by k.muguruma

Other Decks in Technology

Transcript

  1. Postman API Night Tokyo 2026 Summer 全社に広がる MCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏

    2026/08/28 株式会社ナウキャスト 取締役 CDO 六車 光貴 © 2015 - 2026 Nowcast Inc. 1
  2. 自己紹介 六車 光貴(むぐるま こうき) 株式会社ナウキャスト 今日話すこと 取締役 CDO / MCPass

    開発リード 2023 年に株式会社ナウキャストにジョインし、データエン ジニアとしてプロダクト開発やクライアントのデータ基盤構 築をリード 2026 年 6 月、取締役 CDO に就任 同年から、Finatext グループ横断の MCP ゲートウェイ MCPass の開発をリード。グループ内で使うと同時に、社 外にも提供中 • なぜゲートウェイを通すことにしたのか(経 緯) • MCPass の機能と、利用者・管理者から見 た使い方 • MCP サーバーを束ねるゲートウェイと、 3 層の認証認可 • 社内 300 人弱がどう使っているか(現場) • 次に解決する課題: Lethal Trifecta グループ内で使うと同時に、社外に も提供中 https://finatext.com/mcpass/ © 2015 - 2026 Nowcast Inc. 2
  3. 1. 全社員が MCP を使えるようにするために きっかけは AI+ と vibe working 2026

    年 2 月、Finatext グループは「AI+」を行動規範に加え、エン ジニア以外も AI で仕事をする vibe working を掲げた。背景はこの 2 本に書いてある そのまま配ると、こうなる A チーム B チーム データチーム Cursor に Slack MCP Claude Desktop に Google Drive MCP 自作の Snowflake MCP Finatextグループの AI戦略を 完全解説( note) https://note.com/fozzhey/n/nc7b68 1faabf6 各チームが正しく動いた結果: API キーは各自の PC / 権限は本人のフル権限 / ログは どこにも無い 大企業の AI活用はなぜ難しい のか?( note) https://note.com/110_110_110/n/n 1b53de990def これが「野良 MCP」。配る前に分かっていたので、先に基盤を作った 全社員が AI で仕事をする → AI に業務システムを触らせるには MCP が要る → では、設定を 460 名余りにそのまま配ったら? 配る前に、基盤を作る © 2015 - 2026 Nowcast Inc. 3
  4. 1. 全社員が MCP を使えるようにするために 本人の権限をそのまま AI に渡すと何が起きるか 例 1: 進捗会議のアジェンダを作って

    例 2: カレンダー招待のゼロクリック攻撃 • 「最近の社内ドキュメントから議題を整理して」と AI に頼む • AI は自分のドライブにあった 1on1 メモまで読みに行く • 招待の説明欄に悪意ある指示を埋め込む( Miggo Security、 2026-01) • アジェンダに「来月から A さんが家庭の事情で退職予定」が混入 • 被害者が Gemini に「今日の予定は?」と聞いた瞬間に発動 • Google Drive はビジネスにとっての .env • 非公開の会議情報が外部へ流出、予定の改ざん・削除 • AI に渡した権限が、そのまま攻撃に使われる どちらも、本人が見られるものはAI も全部見られる状態。API キーをそのままエージェントに渡しているのと同じ AI に渡す権限を、誰がどこで絞るか © 2015 - 2026 Nowcast Inc. 4
  5. 2. なぜ MCPass を作ったのか 選択肢は 3 つ。配らない、そのまま配る、ゲートウェイを通す ① 配らない 却下

    ② そのまま配る 却下 ③ ゲートウェイを通す 採用 • AI はチャットの相手のまま。社内の文書・デー タ・チケットに触れない • 各自が API キーを取得して設定ファイルに貼 る • 接続口を 1 つにして、認証・権限・監査をそこ に集める • 「AI で仕事をする」にならず、vibe working が 成り立たない • 使う人の大半は非エンジニア。キーの管理も 最小権限も個人任せになる • 利用者はクライアントを選んで設定を貼るだけ • 管理者は「誰に何を使わせるか」だけ決める • 3 枚目の状態に戻る: キー散在・フル権限・ロ グ無し 決めたこと 「使っていい」状態を先に作ってから配る。統制は利用者の運用に頼らず、製品側に持たせる © 2015 - 2026 Nowcast Inc. 5
  6. 2. なぜ MCPass を作ったのか ゲートウェイに求めたこと : 見える・守れる・残る・止められる 見える 守れる 残る

    止められる • 誰がどの MCP を使っているか • API キーを端末に置かない • 誰が・いつ・何を実行したか • 送ってはいけない本文を止める • 無許可の MCP を可視化できる か • 本人の権限をそのまま AI に渡さ ない • ツール定義の変更(rug pull) • 暴走した呼び出しを抑える • 脆弱性が出たとき影響範囲が分 かるか • ツール単位で許可・拒否できる • インシデント時に攻撃の連鎖を 追える • 問題のある MCP を即座に止め る → カタログ・利用状況 → 一括認証・ツール粒度の権限 → 監査ログ → DLP・Rate Limit・無効化 API ゲートウェイで解いてきた問題と同じ形。ID 境界・最小権限・監査を MCP でも 1 箇所に集める © 2015 - 2026 Nowcast Inc. 6
  7. 3. MCPass の機能 MCPass の機能: 接続・アクセス制御・監査・実行時防御 接続・カタログ アクセス制御 監査・証跡 実行時防御

    • MCP カタログ: 使える MCP を一覧・ 検索、提供元やホスティングなどのメ タデータ • ツール粒度の RBAC: 既定は全拒 否。Read と Write を分けて許可 • 全ツール呼び出しを監査ログに記録: 誰が・いつ・どのゲートウェイで・どの ツールを • DLP: 引数・応答の本文検査、遮断 /マスク • 一括認証: 認証情報はゲートウェイ が集中管理。利用者は MCPass に 1 回ログインするだけ • Managed MCP(Slack / Google / GitHub / Snowflake …)と Vendor 公式リモート MCP、合わせて 20 種 超 • ロール設計と一括割当。1 人に複数 ロール • IdP 連携(Entra ID / Okta / Google)、IP 制限、タグによる分類 • Coming Soon: IdP グループ → ロール自動マッピング、申請・承認フ ロー • 期間・ユーザー・ゲートウェイで検 索、ダウンロード • ダッシュボード: 利用状況とランキン グを俯瞰 • Rate Limit: ロール単位の呼び出し 上限 • Coming Soon: 登録 MCP の脆弱 性スキャン、プロンプトインジェクショ ン検知、OpenAPI 定義からの MCP 自動生成 すべての利用がここを通る : ① カタログ ② 単一接続と一括認証 ③ ツール単位の権限制御 ④ 監査ログ © 2015 - 2026 Nowcast Inc. 7
  8. 3. MCPass の機能 利用者と管理者から見た MCPass 利用者 1 管理者 1 接続

    「AI クライアント接続」画面で自分のクライアントを選び、生成された JSON かコマンドを貼る 登録 Recipe か URL から MCP をカタログに登録し、ゲートウェイに載せ る 2 初回だけブラウザが開き、組織の SSO でログイン。以降は自動更新 2 ロール(ツール粒度)を定義し、ユーザーや IdP グループへ一括付与 ログイン 3 使う 権限 自分のロールで許可されたツールだけが見える。 Google は「有効 化」ボタンで専用アカウント発行、 Slack は Bot を招待 AI クライアント接続 MCP カタログ 3 運用 監査ログとダッシュボードで確認。止めたい MCP は disabled にする だけ MCP ロール(ツール単位の許可) © 2015 - 2026 Nowcast Inc. 監査ログ 8
  9. 3. MCPass の機能 | デモ デモ: 管理コンソールを実際に見る(モックサイト) MCP サーバー 1

    2 3 4 5 カタログに並ぶ MCP と、提供元・ホスティング・リスクレベルなどのメタデータ。Recipe から 登録する導線 ゲートウェイ MCP をゲートウェイに載せる。汎用ツール用 / PM ツール用のように用途で切った例 MCP ロール ツール単位の許可リスト(Read / Write を分ける)。ユーザーへの一括付与 AI クライアント接続 クライアントを選ぶだけで接続設定 JSON / コマンドが生成される。トークンの手コピーが無い ここでブラウザに切り替え(モックモード、ダミーデータ) 見どころ 監査ログ / ダッシュボード 誰が・いつ・どのツールを呼んだか。引数や結果は残していないことも見せる • ロールで見えるツールが変わる • 接続はクライアントを選んで設定を貼るだけ © 2015 - 2026 Nowcast Inc. 9
  10. 4. どう作ったか | 軸 1 軸 1: MCP サーバーを束ねるゲートウェイ ゲートウェイ

    Claude Desktop / Cowork Claude Code Managed 束ね方 Google Drive / Docs / Sheets MCP Managed • カタログ → ゲートウェイに載せる → 1 つの tools/list GitHub MCP Managed Slack MCP Cursor 単一の接続口 {tenant}.gateway.{domain} tools/list を 1 つに集約 {server}___{tool} の名前空間 • 利用者は接続先を意識しない(MCP of MCPs) 誰に何を見せるか Snowflake MCP Managed 社内データ MCP 内部 / 外部 • ロール(ツール粒度の許可リスト)で tools/list が人ごとに変わる • 既定は全拒否。dangerous は既定 off ゲートウェイは用途ごとに切れる(汎用ツール用 / PM ツール用のように) MCP の種類 MCPass 自体が 1 つの MCP サーバーとして振る舞うので、既存の AI クライアントはそのまま 繋がる。統制はこの 1 点に集約する © 2015 - 2026 Nowcast Inc. • Managed: Recipe から登録、MCPass が ホスト • 外部: URL 登録 / 内部: Docker イメー ジをデプロイ 10
  11. 4. どう作ったか | 軸 2 軸 2: 認証認可を 3 層に分ける

    Layer 1 ユーザー認証 Layer 2 ゲートウェイ内の認可 Layer 3 外部サービス認証 AI クライアント → MCPass(誰が来たか) 誰がどのツールを呼べるか MCPass → 各サービス(何で呼ぶか) • 管理者が AI クライアントを「MCP クライアント」とし て登録 → Client ID。ゲートウェイに紐付けたもの だけ受け付ける • ロール = ツール粒度の許可リスト。既定は全拒否、 1 人に複数ロール可、IdP グループから付与 • Credential Broker が接続先ごとの方式を吸収: 共 有キー / 個人キー / OAuth 3LO・2LO / Slack Bot / Google SA • MCP Authorization spec どおり: well-known (RFC 9728 / 8414)→ ブラウザで OAuth → MCPass の認証基盤 → 組織の IdP(Entra ID / Google / Okta / SAML) • 呼べないツールは tools/list に出ない。tools/call は毎回 control plane に認可判定を問い合わせる • テナントの IP 許可リスト。ロール変更・緊急停止は 次のリクエストで即効く • 資格情報は暗号化して MCPass が保管。端末や 設定ファイルに置かない • 利用者の認証トークンを下流に渡さない(パスス ルー禁止)。詳細は 14 枚目 • gateway が毎リクエスト JWT を完全検証 (JWKS・iss・exp・token_use・client_id)。initialize も例外なし 認証・認可・資格情報を分けて扱う。利用者の認証トークンは © 2015 - 2026 Nowcast Inc. MCP サーバーに届かない 11
  12. 4. どう作ったか 実装: data plane(通信)と control plane(判定)を分ける DATA PLANE —

    通信本文を扱う AI クライアント Cursor / Claude Code / Claude Apps / Copilot CLI / Snowflake CoWork エッジ ゲートウェイ(ステートレスなプロセス) テナント別のゲートウェイ URL トークン検証 / tools/list 集約 / routing / DLP・Rate Limit / 認証ヘッダ注入 / 監査報告 認可判定 / 完了報告の受付 / カタログ / ロール 外部 MCP(HTTP + 資格情報) 署名付きの内部 API 経由のみ(DB 直結なし) CONTROL PLANE — 判定と記録を持つ 管理 API MCPass がホストする MCP (Managed / 内部) データベース 鍵管理 認証基盤 テナント分離、監査ログの正本 資格情報の暗号化 テナント毎に IdP とフェデレーション ① 本文は control plane に渡さない ② 判定は毎回、同期で問い合わせる DLP・Rate Limit の判定は gateway 内で完結。「該当 した」事実だけ報告 ポリシーを配布してローカル判定はしない。緊急停止 は次のリクエストで効く © 2015 - 2026 Nowcast Inc. ③ 上流への到達は data plane だけ control plane は上流を直接呼ばない。data plane は 可搬性を担保する予定(顧客ネットワーク内にも置ける 形に) 12
  13. 4. どう作ったか 1 回の tools/call で何が起きるか ① JWT 検証 ②

    認可判定 ③ 統制 上り ④ upstream 実行 ⑤ 統制 下り ⑥ 結果を報告 gateway control plane RBAC・IP・資格情報 ・routing を判定し 監査を確定 → allowed gateway DLP / Rate Limit 遮断・マスク gateway 認証ヘッダ注入 401 は利用時更新 gateway 応答をマスク/遮断 control plane 結果・所要時間・統制の 該当を記録 橙 = gateway(data plane) 青 = control plane この順序の理由 ポリシーを gateway に配布しない • 認可判定と監査の記録が終わるまで、上流には接続しない。監査に 無い呼び出しは存在しない • 緊急停止・ロール変更が次のリクエストで効く • 止められるのは実行前だけ。応答側の遮断は開示を防ぐが、実行済 みの操作は戻せない • gateway 側にキャッシュや失効の仕組みが要らない • 上流 MCP の往復に比べれば、問い合わせ 1 回の増分は小さい © 2015 - 2026 Nowcast Inc. 13
  14. 4. どう作ったか 外部サービス認証 : 利用者のトークンは渡さず、接続先ごとの資格情報に差 し替える 接続先ごとに認証方式が違う。ゲートウェイが吸収する 資格情報は「許可されたツール呼び出し」にだけ付く 組織共通の API

    キー Backlog / Notion 等 user_delegation 利用者個人の API キー・PAT Kibela / Backlog / GitHub oauth_3lo 利用者本人の OAuth 同意 Snowflake / Atlassian shared • 利用可否は「そのツール呼び出しが許可されたか」に従属。 gateway には短命のアウトバウンド用ヘッダしか渡らない • OAuth 3LO は本人と同じ範囲を全部渡す。4 枚目の事故はこれ。方 式の選択自体が設計判断 トークンパススルーはしない( OWASP でも非推奨) • 利用者の認証トークンと、API を呼ぶための資格情報は別物 oauth_2lo client credentials マシン間連携 slack_app 利用者ごとの Slack Bot Slack google_sa 利用者ごとのサービスアカウント Google Workspace • 例: 「業務リポに Issue を立てて」→ Entra のトークンは GitHub に届 かない。利用者が登録した最小スコープの PAT(対象 repo・issues:write・期限付き)を MCPass が注入して実行 • 漏れても短命・最小権限。依頼者は監査ログに残る © 2015 - 2026 Nowcast Inc. 14
  15. 4. どう作ったか AI には AI 用の身分証を持たせる : Google と Slack

    Google Workspace: 1 ユーザー = 1 サービスアカウント Slack: 1 ユーザー = 1 Bot • 「発行」ボタン 1 つで自分専用の SA。表示されたメールアドレスをDrive の共有 設定に貼るだけ • 利用者ごとに Slack App(Bot)を作成・インストール。トークンは暗号化保管し自 動更新 • 共有したものしか AI に見えない → Google の認可に乗る。監査ログも人とAI が分離 • Bot を招待したチャンネルだけがAI の視界。呼び出しは Bot 名義で Slack 側に も記録 • 発行者 SA と実行者 SA を分離、WIF の委任チェーンで鍵レス・短命トークン • 剥奪は Bot を削除するだけ Zenn: AIに会社のGoogleアカウントを渡して いませんか Zenn: AI に Slack の DM まで読ませていま せんか https://zenn.dev/finatext/articles/mcp-gateway-go ogle-sa https://zenn.dev/finatext/articles/mcp-gateway-sla ck-app 共通点 : 見える範囲の制御を MCPass で作らず、サービス側の共有設定( Drive の共有・チャンネル招待)に任せる © 2015 - 2026 Nowcast Inc. 15
  16. 4. どう作ったか 統制ルール : 通信本文の検査と、呼び出し回数の上限 DLP Rate Limit 見せるツールを絞る •

    引数と応答の本文を正規表現で検査し、遮断 / マスク / 記録のみを選ぶ • ロールごとに呼び出し回数の上限を決める • ロールで呼べるツールだけを tools/list に出す • 暴走したエージェントを止め、外部 API の クォータを守る • 危険なツールは既定でオフ • 例: マイナンバーや電話番号を含む送信を止 める 管理画面でルールを作り、ロールに適用すると効く 止められるのは実行前だけ。応答側の遮断は開示を防ぐ © 2015 - 2026 Nowcast Inc. 16
  17. 4. どう作ったか 監査ログ : 1 回の呼び出しを 1 行で。引数と結果は残さない 残すもの 残さないもの

    順序 誰が・どのクライアントで・どのゲートウェイの・どの ツールを・許可されたか・どう終わったか ツールの引数、結果、エラー本文、資格情報 認可の判定を記録してから上流を呼ぶ。監査に無い 呼び出しは存在しない © 2015 - 2026 Nowcast Inc. 17
  18. 5. 現場でどう使われているか 社内ユーザー 300 人弱、週 5 万リクエスト 300人弱 約6割 約5万

    登録ユーザー 週間アクティブ率 リクエスト / 週 社員の 6 割超 登録者のうち毎週使う人 MCP 別リクエストの構成比(過去 7 日) よく呼ばれるツールは「読む」系 約 1/3 Slack 約 10% Google Sheets GitHub 約 5% Google Drive 約 5% Kibela 約 5% • Slack のスレッド返信・チャンネル履歴を読む • スプレッドシートを読む(Google Sheets) • ノート検索(Kibela)、ファイル検索(Google Drive) © 2015 - 2026 Nowcast Inc. 18
  19. 5. 現場でどう使われているか 何に使われているか(例) 議事録・会議 案件・顧客管理 開発・ PM • 顧客ごとの議事録を AI

    に読ませて提案準備 • 案件管理スプレッドシートを AI から更新 • 要件定義とチケットの突き合わせ • 部門の議事録から Next Action を抽出 • CRM の商談情報を、権限を絞って参照 • 顧客との UAT 指摘を Slack スレッドで管理 データ分析 バックオフィス 定型化 • Snowflake に自然言語で集計を依頼 • HR の入社オンボーディング • 手順を Skill にして繰り返し実行 • スプレッドシートを読み込んで報告書に • 契約管理シートの更新と変更履歴 • Slack Bot が週次サマリを投稿 © 2015 - 2026 Nowcast Inc. 19
  20. 5. 現場でどう使われているか | デモ デモ: Claude Code から MCPass に接続し、ロールで使えるツールが変わ

    るのを見る 手順 • 接続画面で Claude Code を選ぶ → 生成された claude mcp add コマンドをコピー • ターミナルで実行 → /mcp で Authenticate → ブラ ウザで組織の SSO • ツール一覧を見る: ロール A では Slack の読み取 り系だけ • 管理画面でロール B を付与 → /mcp で再接続 → 書き込み系のツールが増える • ツールを 1 回呼ぶ → 監査ログに「誰が・どのクライ アントで・どのツールを」が 1 行残る 接続画面で Claude Code を選ぶと、コマンドがそのまま生成される(モック画面) © 2015 - 2026 Nowcast Inc. 20
  21. 6. 次に解決する課題 次の課題 : Lethal Trifecta ① 非公開データへのアクセス ② 信頼できないコンテンツへの露出

    ③ 外部へ送信する手段 絞れている 止められない 細くしている • ツール粒度の RBAC • AI 専用の身分証(SA / Bot)— 共有されたものしか 見えない カレンダー攻撃では: 会議情報 • Slack のスレッドも Drive の docx もツール結果と してモデルに入る • tools/list に危険ツールを出さない • 下り相の遮断は開示の防止であって行為の防止で はない • 上流への到達を data plane に限定 • 上り相の DLP で送信本文を遮断・マスク カレンダー攻撃では: Gemini の操作 カレンダー攻撃では: 招待の説明欄 Simon Willison, “The lethal trifecta for AI agents”(2025-06)。3 つが同時に揃うと、プロンプトインジェクションで情報が抜かれる 次の一手 : taint(汚染追跡) 並行して ① を絞る • セッション中に一度でも機密データを取得したら、そのセッションでは外部送信系のツールを使わせ ない。DLP では止めにくい ② 経由の持ち出しを塞ぐ • Drive のラベル(機密度・業務ドメイン)を条件に、同じ MCP を見える範囲の違うツールとして登録 • 難所: セッションを張り直すと汚染状態が消える。どこまでの完全性を求めるかを実装前に決める • プロンプトインジェクション検知は補助。主な防御は権限の 構造で作る © 2015 - 2026 Nowcast Inc. 21
  22. まとめ まとめ 1 AI には AI 用の身分証を持たせる 2 認可・監査・資格情報の解決はゲートウェイ 1

    箇所に 3 DLP・Rate Limit は通信本文を持つ gateway で執行する 本人のトークンを渡さない。Google は SA、Slack は Bot。共有されたものしか見えない 判定と記録を通らない呼び出しは無い。緊急停止は次のリクエストで効く 判定材料を control plane に渡さない。data plane を顧客側に置く道も残る © 2015 - 2026 Nowcast Inc. 22
  23. 参考 参考リンク MCPass 全体構成(Zenn) https://zenn.dev/finatext/articles/mcp-gateway-nowcast Google Workspace 連携認証: AI 専用のサービスアカウント(

    Zenn) https://zenn.dev/finatext/articles/mcp-gateway-google-sa AI に Slack の DM まで読ませていませんか( Zenn) https://zenn.dev/finatext/articles/mcp-gateway-slack-app MCP ゲートウェイ MCPass の設計と実装(DataOps Night10) https://speakerdeck.com/mtpooh/mcpass-intro-dataopsnight10 MCPass 製品ページ https://finatext.com/mcpass © 2015 - 2026 Nowcast Inc. 23
  24. お知らせ 9 月のイベント : AGNTCon+MCPCon Japan と Snowflake World Tour

    Tokyo AGNTCon + MCPCon Japan にブース出展 Snowflake World Tour Tokyo 2026 に 3 名が登壇 2026-09-10(木)〜 11(金)|ベルサール渋谷ガーデン|The Linux Foundation 主 催 2026-09-11(金)|グランドプリンスホテル新高輪|参加無料・要事前申込 • ブースで MCPass と AI エージェント「Finstage Cowork」を紹介 • 参加登録は有料(事前購入)。ぜひブースにお立ち寄りください https://nowcast.co.jp/news/20260820 • 13:20 Snowflake Well-Architected Framework で実現する実践的なデータマネ ジメント • 15:05 仕様書も SQL もログも全部コンテキスト : Cortex Agent で作るデータ QA エージェント • 15:50 Semantic View は「作るもの」から「育てるもの」へ https://nowcast.co.jp/news/20260806 © 2015 - 2026 Nowcast Inc. 24
  25. 採用 ナウキャストで MCPass を一緒に作りませんか : カジュアル面談募集中 募集中のポジション カジュアル面談はこちら データエンジニア /

    AI フルサイクルエンジニア / ほか各職 種 Finatext グループ共通の窓口(HERP) プロダクト開発 ソリューション • MCPass、Finstage Cowork などの自社プロ ダクト • クライアントのデータ基盤構築と AI 活用の支 援 • 金融グループ 460 名の現場が最初のユー ザー • 顧客折衝から実装・運用まで自分で回す https://herp.careers/v1/finatexthd/vZWzSlI_B-qk エンジニア組織のインタビュー記事 https://finatext.com/recruit/finalog/interview _nowcast_engineer このあとの懇親会で、気軽に声をかけてください! https://finatext.com/mcpass/ © 2015 - 2026 Nowcast Inc. 25