Box Admin Analytics MCP について
Box Admin Analytics MCPは、Box管理者向けの読み取り専用分析サーバーです。企業イベントログから外部アクセスや共有状況を把握でき、フォルダー一覧、設定したフォルダー内のテキスト読み取り、アカウント照会にも対応します。
主な機能
- 01外部ダウンロードとプレビューの集計
- 02外部コラボレーターと公開リンクの列挙
- 03外部公開度による内部所有者の順位付け
- 04アップロード者を含むフォルダー一覧
- 05設定時の指定ファイルテキスト読み取り
- 06アカウント状態の照会と日次概要
活用シーン
- 01特定アカウントがアクセスしたファイルの追跡
- 02公開リンクと外部コラボレーターの検出
- 03フォルダー内の添付ファイルとアップロード者の確認
- 04Boxの外部アクセスリスクの集約
MCP 対応
Boxの企業イベントと管理データをMCPクライアント向けのツールとして公開します。既定で読み取り専用であり、共有の取り消しやファイルの変更は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
9掲載時のツール一覧 · 2 日前に更新
このツールにパラメーターはありません。
詳細
boxadm-mcp
English | 日本語
Box 管理者の視点から外部とのファイルのやり取りを可視化する MCP(Model Context Protocol)サーバーです。Box のエンタープライズイベントログ
(admin_logs)を読み取り、「外部と頻繁に共有しているユーザー」や「外部からアクセスされているファイル」を明らかにします。一般的なファイルブラウザーではなく、情報漏えいの早期警告を目的としています。
ドキュメント:https://shigechika.github.io/boxadm-mcp/
読み取り専用です。共有の取り消しやファイルの削除など、データを変更する操作は一切行わず、リスクを可視化するだけです。一般的な Box ファイル用 MCP(公式 Box MCP や claude.ai Box コネクター)とは異なるツールです。これらはユーザー自身のファイルを操作するもので、エンタープライズイベントを確認できません。まさにそのために、このサーバーがあります。
管理コンソールの視点(boxadm = Box 管理者)にちなんだ名前で、gwsadm-mcp の姉妹プロジェクトです。
機能
| ツール | カテゴリー | 説明 |
|---|---|---|
health_check | — | バージョン、認証モード、Box 認証、admin_logs スコープの確認、および設定済みドメイン許可リストを報告します。まだ認証されていない場合(OAuth モード)は needs-login を報告します |
recent_admin_events | 診断 | 最近のエンタープライズイベントの生データです(イベントタイプ/フィールドの確認用)。stream_position による手動ページネーションに対応しています |
external_access_events | アクセス(イベント、エンタープライズ全体) | 指定期間内の外部からの DOWNLOAD/PREVIEW を集計し、外部からアクセスしたユーザーの上位、外部からアクセスされたファイルの上位、共有リンク数を報告します。特定のアカウントのDLP トレースには created_by_logins を渡します |
external_collaborators | 露出(列挙) | 外部コラボレーター(組織外のログインまたは外部招待メール)を一覧表示します |
public_shared_links | 露出(列挙) | open(リンクを知っている全員がアクセス可能な)共有リンクで共有されているアイテムを一覧表示します |
top_external_sharers | 露出(列挙) | 外部への露出(外部コラボレーター+公開リンク)に基づいて、内部所有者をランキング表示します |
list_folder_items | 1 つのフォルダー(ls) | 各アイテムの名前、アップロード日時、サイズ、アップロードしたユーザー、直接リンクに加え、フォルダーの所有者とパスを表示します。アップロードしたユーザーまたはアップロード期間で絞り込めます。ファイルの内容は読み取りません |
read_file | 1 つのファイル(cat)、オプトイン | BOXADM_READ_FOLDER_IDS で指定されたフォルダー内のファイルから Box が抽出したテキストを読み取ります。スプレッドシートはタブ区切りのセル、ドキュメントと PDF はテキストとして返します。この変数が設定されていない場合は登録されません。画像とアーカイブはメタデータのみを返します |
get_user | アカウント状態(検索) | 正確なログイン名で 1 つのアカウントを検索し、status、role、enterprise、クォータ、タイムスタンプを取得します。管理コンソールを使わずに「このアカウントは無効になっていますか?」という質問に答えられます |
daily_brief | 統合 | アクセス(イベント)と露出(列挙)を組み合わせた朝の概要を表示します |
認証モデル
BOX_AUTH_MODE で選択する 2 つのモードがあります。
oauth— OAuth 2.0(ユーザー認証)。管理者がブラウザーで一度認証すると、リフレッシュトークンにより、その後は無人で実行できます。ccg— クライアントクレデンシャルグラント(サーバー間)。Box テナントにサーバー認証アプリ用の空き枠がある場合、無人での実行がより簡単です。
admin_logs(エンタープライズイベント)は、認証または代理認証を行うユーザーが管理者であり、アプリに Manage
enterprise properties スコープが付与されていれば、どちらのモードでも読み取り可能です。
OAuth の設定(Box 管理者が一度だけ実施)
- 開発者コンソール → プラットフォームアプリを作成 → カスタムアプリ → ユーザー 認証(OAuth 2.0)
- リダイレクト URI:
http://localhost:8787/callback - アプリケーションのスコープ:
admin_logsに必要な エンタープライズプロパティの管理 にチェックを入れます。コラボレーション/共有リンクの一覧取得も行う場合は すべてのファイルとフォルダーの読み取り も追加し、get_userの検索を行う場合は ユーザーの管理 も追加します(スコープを変更するたびに、boxadm-mcp authで再同意が必要です) - Admin Console でアプリを有効にします(ほとんどのテナントポリシーでは、未公開のアプリはデフォルトで無効になっています)
- クライアント ID/クライアントシークレット を控えます
- 初回ログイン時:
BOX_AUTH_MODE=oauthなどを設定してから、boxadm-mcp authを実行します → ブラウザーで認証します → トークンキャッシュが~/.config/boxadm-mcp/token.jsonに書き込まれます(chmod 600)
セットアップ
# uv
uv pip install boxadm-mcp
# pip
pip install boxadm-mcp
または、ソースから:
git clone https://github.com/shigechika/boxadm-mcp.git
cd boxadm-mcp
# uv
uv sync
# pip
pip install -e .
設定
| 変数 | 必須 | 説明 |
|---|---|---|
BOX_AUTH_MODE | oauth / ccg(デフォルトは ccg)。それ以外の値は ccg にフォールバックします。health_check は有効なモードを報告するため、入力ミスは入力した値ではなく ccg として表示されます | |
BOX_CLIENT_ID | ✓ | アプリのクライアント ID |
BOX_CLIENT_SECRET | ✓ | アプリのクライアントシークレット |
BOX_ENTERPRISE_ID | ccg モード | エンタープライズ ID(CCG のサブジェクト。oauth では不要です) |
BOX_OAUTH_REDIRECT_URI | oauth のリダイレクト先。デフォルトは http://localhost:8787/callback | |
BOX_TOKEN_CACHE | oauth トークンキャッシュのパス。デフォルトは ~/.config/boxadm-mcp/token.json | |
BOX_API_BASE | デフォルトは https://api.box.com | |
BOX_SCAN_CONCURRENCY | 一覧取得スキャンにおけるフォルダーごとの並列検索数。デフォルトは 8、1~32 の範囲に制限されます | |
BOX_SCAN_DEADLINE | 1 回の一覧取得スキャンに対するソフトな実時間上限(秒)。デフォルトは 45。0 以下の場合は無効になります。上限に達すると、ツール呼び出しがタイムアウトするまで実行を続けるのではなく、開示された部分結果(capped=true)を返します | |
BOX_HTTP_TIMEOUT | リクエストごとの HTTP タイムアウト(秒)。デフォルトは 30。ゲートウェイのタイムアウトを超えて、遅いエンドポイントによって最後の処理中スキャンバッチが長引かないよう、(BOX_SCAN_DEADLINE と合わせて)値を小さくしてください | |
BOXADM_READ_FOLDER_IDS | read_file による読み取りを許可するフォルダー(カンマ区切りのフォルダー ID。0 は拒否されます)。未設定の場合、read_file は登録されません。無効なエントリが 1 つでもあると無効になり、health_check は degraded になります | |
BOX_ALLOWED_DOMAINS | ✓ | 内部メールドメイン(カンマ区切り)。デフォルト値はありません。設定するまでは、すべてのアドレスが外部として扱われます |
シークレットは .mcp.json に含めないでください(たとえば、起動前に読み込むローカル環境ファイルに記述します)。.mcp.json 自体では ${BOX_CLIENT_ID} のような変数を参照でき、安全にコミットできます。
スコープと制限
- アクセスツール(
external_access_events、およびdaily_briefのアクセス部分)は、エンタープライズ全体のイベントストリームを読み取ります。max_eventsに達すると、capped: trueが設定されます(古いイベントから順にスキャン)。 - 公開状況(列挙)ツールで確認できるのは、共同管理者アカウントから見えるフォルダーのみです(エンタープライズ全体を100%網羅できる保証はありません)。さらに、
max_folders/max_depthによる制限があり、cappedを通じて通知されます。Read all files and folders スコープが必要です。 - Box にはエンタープライズ全体を対象とするコラボレーション一覧取得機能がないため、スキャンではフォルダーごとの検索を並行して実行します(
BOX_SCAN_CONCURRENCY)。これにより、ツール呼び出しのタイムアウトまでに処理が完了するフォルダーの数は増えますが、対象範囲は引き続き上限によって制限されます。読み取り処理では、ジッターを加えたバックオフを使用して429(Retry-Afterに従います)と一時的な5xxを再試行するため、スロットリングが解消すれば網羅率の低下を防げます。フォルダーごとの API エラーが再試行後も解消せず、そのフォルダーがスキャンから除外された場合(例:継続的な403)、fetch_errorsにカウントされます。網羅が完了しているのは、cappedが false かつfetch_errorsが 0 の場合のみです。 - 列挙ツールは、呼び出し間で有効期間の短いスキャンメモを共有します。
public_shared_linksは最適化のため、コラボレーション関連の呼び出しを完全に省略します。 get_userは代わりに、エンタープライズのユーザーディレクトリを読み取ります。リクエストは1回で、ページ分割もなく、構造上、列挙ツールではありません(渡されたログインユーザーについてのみ回答し、それ以外は調べません)。cappedフラグは検索が途中で打ち切られたことを示すため、打ち切られた結果のfound: falseは、否定的な結果ではなく、結論が出ていないものとして解釈します。
DLP トレーシング(アクセサーによる逆引き)
「この外部アカウントは何をダウンロードしたのか」を確認するには、
created_by_logins(カンマ区切りのログイン名)を external_access_events に渡します。そのアクセサーのイベントだけを残し、ファイルごとの詳細を返します
(matched_events:アイテム ID/名前、所有者、サイズ(バイトおよび GB)、タイムスタンプ、
event_type、共有リンク経由かどうか)。
external_access_events(since_hours=26, created_by_logins="[email protected]")
- アクセサーは対象期間内のどこにでも出現し得るため、フィルター付きの呼び出しではスキャン上限が自動的に最大50,000イベントまで拡張されます(古いイベントから順にスキャン)。ただし、一致するイベントだけを保持するため、メモリ使用量は上限内に収まります。
- このモードのレスポンスには
events_scannedの代わりにevents_matched(一致件数)が含まれます(累計は保持されません。網羅状況の判断にはcappedを使用してください)。capped: trueは期間全体をスキャンできなかったことを意味します。max_eventsを増やしてください。 - Box の
admin_logsAPI にはcreated_byクエリパラメーターがないため、これはクライアント側のフィルターです(fetch_admin_events(created_by_logins=...))。
1つのフォルダーの内容(list_folder_items)
cat ではなく ls です。問い合わせを受け付けたヘルプデスク向けに作られています。問い合わせに添付されたファイルが Box フォルダーに保存される場合、人がそのフォルダーを探しに行く代わりに、回答で添付ファイルの名前を挙げ、直接リンクします。ファイルの内容は読み取らず、共有リンクも作成しません。既存の共有リンクは利便性のためではなく、情報漏えいの兆候として報告されます。
アイテムをアップロードしたユーザーは、そのアイテムを探す手掛かりにはなりません。 File Request 経由のアップロードでは、Box はユーザーを一切記録しません。created_by と modified_by はどちらも 「Anonymous User」 となり、owned_by はアプリケーション自身のサービスアカウントです。これはすべての行で同じです。送信者を示す唯一のフィールドは uploader_display_name ですが、名前に反して、実際に確認された値はメールアドレスでした。そのため、不透明な文字列(大文字と小文字を区別しない完全一致)として照合し、アドレスとして解析も検証もしません。サインイン済みのユーザーがアップロードしたファイルでは逆となるため、created_by を代替として使います。
並べ替えと時間範囲の判定は、Box ではなくここで行います。
- Box の説明では、
sortは2番目の並べ替え属性です。アイテムはまず種類で並ぶため、サブフォルダーは日付にかかわらず、すべてのファイルより先になります。実際のフォルダーで確認したところ、sort=dateはcreated_atとmodified_atのどちらの順序とも一致しなかったため、「最新」と正直に説明することはできません。 since/untilはテキストではなく時点として比較します。Box は独自の UTC オフセットでアイテムにタイムスタンプを付ける一方、呼び出し側は別のオフセットで指定するため、文字列の辞書順比較では日付の境界ごとにその差だけ誤り、しかもそれが表面化しません。両方の境界にオフセットが必要です。オフセットのない日付は推測せず拒否します。
limit は返される件数を制限するものであり、検索対象を制限するものではありません。まず全ページを取得するため、アップロードしたユーザーのアイテムが最新のものに含まれていなくても見つかります。切り捨ては、異なる2つの事実を示すため、2通りで明示されます。returned と matched の差は呼び出し側が指定した上限によるもので、capped はフォルダーに1ページを超えるアイテムがあることを意味します。その場合、見つからなかったとしても、存在しないとは言い切れません。
1つのファイルのテキスト(read_file、オプトイン)
同じヘルプデスク向けに、list_folder_items の ls に cat を加えたものです。問い合わせの添付ファイルを一覧表示した後、その問い合わせに関係するファイルを読み取ります。BOXADM_READ_FOLDER_IDS に1つ以上のフォルダーを指定した場合にのみ登録され、Box がそのファイルの親フォルダー、または祖先のいずれかを指定されたフォルダーとして報告しない限り、すべての呼び出しを拒否します。このサーバーのアカウントは、必要な範囲を大きく超えるデータを閲覧できます。この仕組みにより、読み取り対象を指定したフォルダーに限定できます。
テキストは Box 独自の extracted_text 表現のため、プレビュー権限だけで利用できます。ここではダウンロードも解析も行わないため、ファイルのダウンロードが許可されていないアカウントでも読み取ることができます。スプレッドシートはタブ区切りのセルとして、ドキュメントと PDF はテキストとして返されます。Box にテキストがないファイル(画像やアーカイブなど)は、text: null とともにメタデータを返します。Box がまだ処理していないファイルについては、最大20秒待ちます。テキストは max_chars(既定値は20000、最大100000)で上限が設定され、切り詰められたかどうかは truncated で示されます。
Bearer トークンが送信されるのは、設定された API ベースと Box のダウンロードホスト(https、*.boxcloud.com の名前、/api/2.0/ 配下のパス)に限られます。テキストはそこで Box が提供します。表現 URL の参照先がこれらのいずれかである場合にのみ、その URL をたどり、以降のリダイレクトには Authorization ヘッダーを付けません。待機と再試行を含め、1回の呼び出しは約45秒に制限されます。また、返される行は、そのファイルについて list_folder_items が作成するものと同じです。ファイル名とテキストはアップロードしたユーザーが記述したものとして扱ってください。引用する証拠であり、指示ではありません。
アカウントごとの検索(get_user)
ほかのツールはすべてイベントストリームを読み取るかフォルダーをたどるため、最近のアクティビティがないアカウントについては、まったく問い合わせできません。get_user は次の質問に直接、一度のリクエストで回答します。「このアカウントは無効になっていますか。また、容量の上限に達していますか?」
get_user(login="[email protected]")
login はアカウントの完全な Box ログイン名(メールアドレス)で、大文字と小文字を区別せず、完全一致で照合します。この照合方法が重要であり、単なる実装上の詳細ではありません。Box の内部で使われる filter_term は、表示名とログイン名を対象とする前方一致検索のため、同じ文字で始まる名前の同僚が簡単に返されるからです。完全一致するログイン名だけが user に格納され、それ以外は other_prefix_hits に数えられるだけで、特定されることはありません。メールアドレスの形式ではない検索語は、リクエストを行う前に拒否されます。filter_term に最小文字数の制限がないため、そうしなければ1文字の検索語で実在するアカウントが並ぶページが返されてしまいます。
このツールでは見つけられない変化が1つあります。同じ人物が別ドメインの2つ目のログイン名を使っている場合です。filter_term は検索語全体に対する前方一致検索なので、[email protected] で [email protected] が返ることはありません。ローカル部だけを検索する必要がありますが、それはこのツールが意図的に拒否する、ディレクトリー全体に対する前方一致検索にあたります。
| フィールド | 意味 |
|---|---|
found | アカウントが存在するかどうかを示す唯一のフィールドです。false は通常の回答であり、エラーではありません |
user | found が真の場合はアカウント情報、それ以外は null です。内容は status、role、enterprise、space_used / space_amount、created_at、modified_at です |
other_prefix_hits | ほかに前方一致した件数です。件数のみを示します。これらは別のアカウントであり、意図的に特定されません |
capped | 検索結果が途中で打ち切られたことを示します。そのため、found: false は否定的な結果ではなく、結論が出ていない状態です |
search_hits、note | 返された項目の件数と、平易な言葉での読み取り結果です |
メモ
oauthモードでは、このエンドポイントの要件はエンドツーエンドで検証済みです。アプリには 「Manage users」アプリケーションスコープが必要です。このスコープがない場合、認可ユーザーがユーザー管理権限を持つ副管理者であっても/2.0/usersは 403 を返します。スコープがある場合は 200 を返します。注意点が2つあります。有効な権限は引き続き認可ユーザー自身のロールによって制限されます。また、Developer Console で追加したスコープは、既存のリフレッシュトークンから発行されたトークンには反映されません。新しいスコープを有効にするには、対話的に再認可(boxadm-mcp auth)する必要があります。ccgでは、このエンドポイントは未検証のままです。権限エラーが発生した場合は、単なる HTTP ステータスではなく、これらすべてを説明するlikely_causeが返されます。
使用方法
Claude Code(プラグイン)
このリポジトリーは単一プラグインのマーケットプレイスも兼ねているため、Claude Code からサーバーをインストールできます。
/plugin marketplace add shigechika/boxadm-mcp
/plugin install boxadm-mcp@boxadm-mcp
プラグインは uvx boxadm-mcp を起動し、設定で説明されているものと同じ環境変数を読み取ります。Claude Code の起動前に、BOX_CLIENT_ID、BOX_CLIENT_SECRET、BOX_ENTERPRISE_ID(ccg モード)、BOX_ALLOWED_DOMAINS をエクスポートしてください。プラグインはデフォルトで BOX_AUTH_MODE=ccg を設定します。プラグインではブラウザーでの手順や、その結果作成されるトークンキャッシュファイルを用意できないため、自分で一度 boxadm-mcp auth を実行してから oauth に切り替えてください。
Claude Code を実行するプロセスの PATH に uvx が含まれている必要があります。通常、ログインシェルには含まれていますが、GUI から起動したアプリには含まれていないことがあります。プラグインが起動しない場合は、uv をシステム全体にインストールしてください。
Claude Code(手動)
.mcp.json に追加します。
{
"mcpServers": {
"boxadm-mcp": {
"type": "stdio",
"command": "boxadm-mcp",
"env": {
"BOX_AUTH_MODE": "oauth",
"BOX_CLIENT_ID": "${BOX_CLIENT_ID:-}",
"BOX_CLIENT_SECRET": "${BOX_CLIENT_SECRET:-}",
"BOX_ALLOWED_DOMAINS": "example.com"
}
}
}
}
Codex
codex mcp add boxadm-mcp \
--env BOX_AUTH_MODE=oauth \
--env BOX_CLIENT_ID=your-client-id \
--env BOX_CLIENT_SECRET=your-client-secret \
--env BOX_ALLOWED_DOMAINS=example.com \
-- boxadm-mcp
stdio サーバーを起動するほかの MCP クライアントも同様に設定できます。コマンドとして boxadm-mcp を指定し、上記の BOX_* 変数を環境に設定してください。
CLI オプション
boxadm-mcp auth # OAuth first-time login (opens a browser)
boxadm-mcp --version # Print version and exit
boxadm-mcp # Start MCP server (STDIO, default)
開発
git clone https://github.com/shigechika/boxadm-mcp.git
cd boxadm-mcp
# uv
uv sync --dev
uv run pytest -v
uv run ruff check .
# pip
python3 -m venv .venv
.venv/bin/pip install -e . && .venv/bin/pip install pytest respx ruff
.venv/bin/pytest -v
.venv/bin/ruff check .
テストが Box にアクセスすることはありません。respx が CCG/OAuth トークンエンドポイントと、admin_logs / 列挙 API をモックします。
ライブスモークテスト
単体テストの目的は分離にありますが、それには限界もあります。ツールが実際のデータを返さなくなったことまでは検知できません。
scripts/smoke_test.py は、登録済みのすべてのツールを設定済みのエンタープライズに対して実行し、空の回答、不正な形式の回答、エラー回答があると失敗します。
# needs the same BOX_* environment variables as the server
uv run python scripts/smoke_test.py
uv run python scripts/smoke_test.py --only shared_links --traceback
- 読み取り専用です。 ここにあるツールはすべて読み取りを行い、Box の内容は変更しません。今後、書き込みを行うツールが追加された場合は、状態を変更するツールとして指定してスキップする必要があり、これをテストで強制します。
- レポートにペイロードは含めません。 ツール名、ステータス、行数のみを記載します。Box のエラーには照会対象のアカウントや項目が記載されるため、サーバーが生成したエラーテキストも伏せ字にします。
- 上限を設けています。 これらのツールはイベントストリームをページ単位で取得し、フォルダーツリーをたどるため、各プローブでは対話時のデフォルト(イベント 5000 件、フォルダー 150 件)ではなく、明示的に小さな上限を指定します。ソースから上限パラメーターを検出するテストでこれを強制します。
- 仕様にエンタープライズ固有の情報は含めません。 このリポジトリは公開されているため、テストでアドレスの形式(ログイン名、URL、ホスト名、IPv4、IPv6)と、アカウント名を含むパラメーターを禁止します。誰も特定しないリテラルは 2 つだけで、使用が許可されています。すべてのエンタープライズでルートフォルダーとなるフォルダー ID
0と、存在し得ないアカウントであるため実在の人物を指定せずに未検出の経路を検証できる、プローブ対象の架空の用語get_userです。 - 回答が空でも合格です。公開リンクがなく、外部コラボレーターもいないことが望ましい状態なので、プローブでは行数ではなく集計情報(
count、folders_scanned、window_hours)を検証します。 - CI では、コストの低い方のチェックを実行します。プローブ仕様のないツールを登録するとビルドが失敗するため(
tests/test_smoke_probes.py)、ツールを追加する際に「正常に動作していることをどう確認するか」という問いが必ず生じます。 scripts/smoke_harness.pyはエンジンであり、Box 固有の知識は持ちません。これを共有するサーバー間で同一に保つため、エンジンのバグは一度修正し、このファイルを同期してください。このコピーに個別の修正を加えないでください。
リリース
リリースは release-please で自動化されています。
Conventional Commits(feat:、fix:、…)を main にマージすると、次のバージョンと変更履歴を記載したリリース PR が開かれたままになります。その PR をマージすると vX.Y.Z タグが付与され、GitHub Release が公開されます。このリリースの release: published イベントによって release ワークフローが起動し、PyPI と MCP Registry へのビルドと公開が行われます。boxadm_mcp/__init__.py と server.json のバージョンは release-please が管理するため、手動で更新しないでください。
重要
release-please ワークフローには、リポジトリシークレット
RELEASE_PLEASE_TOKEN(contents: writeとpull-requests: writeの権限を持つ PAT)を設定してください。 デフォルトのGITHUB_TOKENでは、後続のreleaseワークフローを起動する Release を作成できません(GitHub はGITHUB_TOKENによって起動されたワークフローの実行をブロックします)。そのため、PAT がないと何も公開されません。シークレットが設定されていない場合、ワークフローはGITHUB_TOKENにフォールバックするため、フォークでも PR の CI は引き続き動作します。
ガバナンス
ユーザーが共有している情報を可視化するツールであるため、明確な目的、閲覧者の定義、保持ポリシーに基づいて、許可を得た情報セキュリティ監視として運用してください。外部共有の多くは正当なもの(コラボレーター、ベンダーなど)なので、検出結果はアラートキューではなく、リスクの順位付けとして扱ってください。時間をかけて、問題のないことが確認済みの共有者の許可リストを作成してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。