ICHI — Internet Cyber Health Index について
ichi-mcpは公式Python MCP SDKで構築されたstdio MCPサーバーで、AIアシスタントから無料の公開ICHI APIを読み取れます。日次のインターネット全体の脅威指標、重要アラート、情報源の状態を取得し、独自の採点やデータ追加は行いません。
主な機能
- 01現在のスコアと脅威レベルの取得
- 02次元別スコアとデータ鮮度の確認
- 03最新の重要アドバイザリーの取得
- 04情報源の健全性とフィード状態の確認
- 05失敗時にJSONエラーを返却
活用シーン
- 01アシスタントで日次のインターネット脅威レベルを確認
- 02指数データの古さや障害を点検
- 03最近のサイバーセキュリティアラートを取得
MCP 対応
stdio MCPサーバーとして、現在の指数、アラート、情報源の状態など、ICHIの公開APIを読み取るツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ichi-mcp
公式の Python mcp SDK を使用して構築された、最小限の Model Context Protocol(MCP)stdio サーバーです。AI アシスタントが無料の公開 ICHI API を読み取れるようにします。API キーは不要です。
ICHI とは(また、そうでないもの)
ICHI(Internet Cyber Health Index)は、Joe Bernik が作成した、インターネット全体のサイバー脅威状況を日次で示す、無料で一般公開され、情報源が透明な指標です。これは外部から見た方向性を示すシグナルです。組織固有のリスクスコアではなく、確定的な予測でもなく、独自の内部テレメトリーの代替でもありません。判断に用いるべきなのはバンドです。バンド内の変動はノイズとして扱ってください。方法論をご覧ください。
このリポジトリは、ICHI の作成者によって、または作成者のために保守されています。
ツール
| ツール | ソース | 戻り値 |
|---|---|---|
get_current_index | GET /api/current-index | スコア、丸めたスコア、バンドとバンド範囲、評価時刻、モデル、人が読める名前と寄与度を含むディメンションごとのサブスコア、参考値(スコア対象外)、鮮度/障害情報(ヘッドラインの状態、経過時間、古い/障害あり/無効な入力、低下したディメンション)、リンク |
get_recent_alerts(limit=5) | GET /api/alerts(RSS 2.0) | ICHI の重大な勧告フィードからの最新 N 件(1~50 件):タイトル、リンク、ID、公開日時(ISO-8601)、カテゴリ、説明 |
get_source_health | GET /api/health | 全体的な状態と信頼度、フィード数(ティア別のライブ/古い/遅延/失敗)、スコアに含まれるソース、失敗/古い/遅延/休止中/未接続のフィード名 |
各ツールは、"ok": true を含む JSON オブジェクトを返します。タイムアウト、HTTP エラー、解析不能なレスポンスの場合は、"ok": false と "error" メッセージを返します。サーバーは不正な上流レスポンスを受け取ってもクラッシュしません。
インストール/実行
Python ≥ 3.10 が必要です。uv を使用する場合:
uvx --from git+https://github.com/bernik-bot/ichi-mcp ichi-mcp
git+https://github.com/bernik-bot/[email protected] を指定してリリースを固定できます。
または pip を使用する場合は、pip install git+https://github.com/bernik-bot/ichi-mcp を実行してから ichi-mcp を実行します。
(PyPI では公開されていません。)
Claude Desktop
claude_desktop_config.json に追加します
(macOS:~/Library/Application Support/Claude/claude_desktop_config.json)。
{
"mcpServers": {
"ichi": {
"command": "uvx",
"args": ["--from", "git+https://github.com/bernik-bot/ichi-mcp", "ichi-mcp"]
}
}
}
uvx が Claude Desktop の PATH にない場合は、絶対パス(which uvx)を使用してください。
汎用 MCP クライアント(stdio)
{
"command": "uvx",
"args": ["--from", "git+https://github.com/bernik-bot/ichi-mcp", "ichi-mcp"],
"env": { "ICHI_TIMEOUT": "10" }
}
設定
| 環境変数 | デフォルト | 意味 |
|---|---|---|
ICHI_TIMEOUT | 10 | HTTP タイムアウト(秒) |
ICHI_BASE_URL | https://ichi.global | API ベース URL(テスト専用) |
出力例(ライブ呼び出しの抜粋)
{
"ok": true,
"score": 64.91,
"rounded": 65,
"band": "ELEVATED",
"band_range": "50-69",
"evaluated_at": "2026-10-31T13:30:22.978Z",
"model": "v7.1",
"dimensions": [
{"key": "V", "name": "Vulnerability Pressure", "score": 42.21, "contribution": 8},
{"key": "C", "name": "C2 / Malware Infrastructure", "score": 96.03, "contribution": 13.14}
],
"freshness": {"headline_state": "LIVE", "age_seconds": 267, "completeness": "COMPLETE", "stale_inputs": [], "impaired_sources": []},
"link": "https://ichi.global"
}
制限事項
- ICHI の公開エンドポイントのみを読み取ります。独自のスコアリングは行わず、データも追加しません。
- ディメンション名は、公開されている方法論(モデル v7.x)に基づいて API キーからマッピングされます。API キー
Pは、方法論で「O — Actor Operations」とされている、フィッシングに起因するディメンションです。参考値のOは「Outages」として表示されます。不明なキーは変更せずにそのまま返されます。ICHI のスキーマが変更された場合、不足しているフィールドはエラーではなくnullとして返されます。 - アラートフィードは ICHI の重大な勧告 RSS フィードです。説明にもあるとおり、これは観測専用で、スコアは付与されません。
- キャッシュはありません。ツールを呼び出すたびに HTTP リクエストが 1 回行われます。ICHI の現在のインデックスは約 10 分ごとに再評価されます。
開発
uv venv && uv pip install -e ".[dev]"
ruff check . && pytest -q # tests mock HTTP, no network
python examples/smoke_client.py # live end-to-end over stdio via the MCP client
mcp 1.x(FastMCP)と 2.x(名前が変更された FastMCP である MCPServer)の両方で動作します。CI では両方をテストします。
ライセンス
MIT
毎日のICHIの読み取り結果と悪用された脆弱性のアラートは、@ICHI_GlobalによってXに投稿されます(自動投稿で、ICHIの作成者が運営しています)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。