关于 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 相关
该 MCP 服务通过 stdio 向 MCP 客户端提供读取 ICHI 公开 API 的工具,包括当前指数、警报和来源健康信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ichi-mcp
一个精简的 Model Context Protocol(MCP)stdio
服务,基于官方 Python mcp SDK 构建,可让 AI 助手读取免费的公开 ICHI API。无需 API 密钥。
ICHI 是什么(以及不是什么)
ICHI(互联网网络安全健康指数)是由 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 | 整体状态和置信度、信息源数量(按级别列出正常/过期/延迟/失败数量)、计入分数的信息源,以及失败/过期/延迟/休眠/未连接的信息源名称 |
每个工具都会返回一个 JSON 对象,包含 "ok": true;若发生超时、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"]
}
}
}
如果 Claude Desktop 的 PATH 中没有 uvx,请使用其绝对路径(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 请求。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_Global 会在 X 上发布每日 ICHI 读数和已遭利用漏洞的警报(由 ICHI 的创建者运行的自动化账号)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。