内容
Tenable MCP 服务器
一个暴露 **Tenable Identity Exposure** (TIE Tenable.ad)REST API 的CP](https://modelcontextprotocol.io) 服务器,作为客户端的工具。基于官方 `mcp` SDK 的 `FastMCP` 构建。
已针对实时 TIE SaaS 实例(`v3.120.1`)进行端到端验证。
> ⚠️ **免责声明:** 这不是支持的 Tenable 项目。它是在 Claude 的帮助下构建的,请将其输出作为起点,并在执行之前在 Tenable 控制台上。
## 工具列表 工具 | 描述 |
---|
| `tie_catalog`出可用资源(扁平 + 嵌套)— 先调用此工具 |
| `tie_request` | 对任意端点的原始 HTTP 调用(`method`、`path`、`params`、`body`) |
| `tie_resource_action` | 对扁平资源的通用 CRUD(`list`/`get`/`create`/`update`/`delete`) |
| `tie_recent_activity` | **过去 N 小时的统一 IoE+IoA 时间线(一次调用)** |
| `tie_profiles` | 列出安全配置文件(IoE/IoA 数据按配置文件范围) |
|_scores` | 配置文件的每个分数 |
| `tie_topology` | 配置文件的 AD 拓扑(域、森林、信任) |
| `tie_attacks` | IoA 攻击实例(需要 `resource_type` + `resource_value`) |
| `tie_alerts` | 配置文件的警报 |
| `tie_deviances` | 检查 **时间窗口** E 异常 AD 对象_deviances_by_checker` | 检查器的完整 异常(无日期过滤) |
| `tie_dev_by_directory` | 目录 IoE 异常(过滤) |
| `tie_search_events` | 在日期范围内搜索 AD 安全事件 |
| `tie_search_ad_objects` | 搜索 AD 对象(用户/计算机/组/OU) |
| `tie_whoami` | 当前用户身份、角色、权限 |
### 时间窗口、配置文件和预算
- 时间感知工具(`tie_recent_activity`、`tie_deviances`)接受相对 `hours=N` 窗口或显式 `date_startdate_end`。所有时间 **UTC**。
-/IoA 数据 **按配置文件范围**。API 不公开配置文件,因此请显式传递 `profile_id` — 使用 `files` 列出它们。
- 默认情况下,异常/对象结果 **被压缩**:描述从其模板渲染,并且 oversized 属性值(SID 列表、成员转储)被删除。传递 `verbose=true` 以获取完整的原始有效。
## 配置
通过环境变量(或 `--tie-url` / `--tie-api-key` 设置:
| 变量 | 描述 |
|---|---|
|IE_URL` | 基本://your-host.tenable.ad` |
| `TIE_API_KEY` | API 密钥(TIE 控制台 → **系统 → 配置 → API 密钥**) |
| `TIE_VERIFY_SSL` | `true`(默认)或 `false` 用于自签名证书 |
身份验证使用 `X-API-Key` 头。
## 安装和运行
```bash
python -m venv .venv && . .venv/bin/activate
pip install -e .
cp .env.example .env IE_URL 和 TIE_API_KEY
# stdClaude Desktop / Claude Code)
set -a;/.env; set +able-tie-mcp
# 或网络传输
tenable-tie-mcp --transport sse --port 8000
tenable-tie-mcp --transport http --port 8000
```
### 使用 uv / uvx 运行(手动 venv 的替代方案)
[uv](https://docs.astral.sh/uv/)环境。`uv完整工具;`uvx`(`uv tool run` 的别名) 在临时环境包,如 `npx两者都需要安装 `uv`brew install uv`)
# uv 运行:从 pyproject.toml 解析依赖到托管的 .venv,然后运行
tenable-tie-mcp
# uvx:从项目路径临时运行,持久化内容为零
uvx --from . tenable-tie-mcp
```
## Claude Desktop / Claude Code使用 **完整路径**执行文件。Claude Desktop 不从 shell 启动,因此它您的 `PATH` — tenable-tie-m 将失败,提示 "command not found",除非工具 PATH(例如 `pipx。
对于 venv 安装,指向 venv 的启动器:
```json
{
"mcpServers": {
"-tie": {
"command": "/绝对/路径/到/tenable-ie-mcp/.venv/bin/tenable-tie-mcp",
"env": {
"TIE_URL": "https://your-host.tenable.ad",
"TIE_API_KEY": "your-key"
}
}
}
}
```
从项目根目录找到确切路径,执行 `echo "$PWD/.venv/bin/tenable-tcp"`。参见 `claude_desktop_config.sample.json` 获取完整示例。
您使用 `pipx install .`(或 ` install`)全局安装,则裸 `"command": "tenable-tie-mcp"`它位于系统 PATH 上。
### 使用 uv(替代方案)
将 `command指向 `uv` 的 **完整路径**(`which uv`,例如 `/opt/homebrew/bin/uv`),并让它管理环境:json
{
"mcpServers": {
able-tie": {
"/opt/homebrew/bin/uv",
"args": ["run", "--directory",/到/-ie-mcp", "tenable-tie-mcp "env": {
"TIE_URL": "https-host.tenable.ad",
"TIE_API_KEY": "your-key"
}
}
}
}
```
## Docker
```bash
docker compose up --build # 从环境中读取 TIE_URL / TIE_API_KEY
```
## 示例提示
- "显示我过去 12 小时的 IoE 和 IoA 活动。" → `tie_recent_activity`
- "有哪些安全配置文件存在?" → `tie_profiles`
- "列出受监控的目录及其安全分数。"
- "显示针对目录 8 的最新 IoA 攻击。"
- "检查器 15 在过去一天内出现了哪些 IoE 异常?" → `tie_deviances`
- "显示配置文件 2 的未读警报。"
## 备注
- `profile_id` 在便捷工具中默认为 `1`(默认 Tenable 配置文件)。
- 攻击必须限定范围:`resource_type` ∈ `infrastructure|directory|ip` 且 `resource_value` 是 ID 或名称/IP。
- 非 JSON 响应{"content_type": ..., "text": ...}` 返回,而不是崩溃。
- **评分和优先级:** TIE 检查器带有 `remediationCost`(简单 / 中等 / 困难)但没有本地资产级严重性评分。如果您的工作流程需要 **AES(资产暴露评分)** 或 **ACR(资产关键性评级)** — 例如,按业务风险对受影响的身份进行排名 — 请将您的环境连接到 [Tenable One](www.tenable.com/products/tenable-oneenable One 聚合了 TIE、T漏洞管理和其他来源的数据,以生成统一的 AES/ACR 评分,可以通过 API 在此处显示。