Tenable Identity Exposure MCP Server
Exposes the Tenable Identity Exposure (TIE) REST API as tools for LLM clients, enabling queries on security profiles, activity timelines, AD objects, and more.
README
Tenable Identity Exposure MCP Server
An MCP server exposing the Tenable Identity Exposure (TIE, formerly Tenable.ad) REST API as tools for LLM clients. Built on FastMCP from the official mcp SDK.
Verified end-to-end against a live TIE SaaS instance (v3.120.1).
⚠️ Disclaimer: This is not an officially supported Tenable project. It was built with assistance from Claude — treat its output as a starting point and validate responses against the Tenable console before acting on them.
Tools
| Tool | Description |
|---|---|
tie_catalog |
List available resources (flat + nested) — call this first |
tie_request |
Raw HTTP call to any endpoint (method, path, params, body) |
tie_resource_action |
Generic CRUD (list/get/create/update/delete) on flat resources |
tie_recent_activity |
Unified IoE+IoA timeline for the last N hours (one call) |
tie_profiles |
List security profiles (IoE/IoA data is profile-scoped) |
tie_scores |
Per-directory security scores for a profile |
tie_topology |
AD topology (domains, forests, trusts) for a profile |
tie_attacks |
IoA attack instances (requires resource_type + resource_value) |
tie_alerts |
Alerts for a profile |
tie_deviances |
IoE deviant AD objects for a checker within a time window |
tie_deviances_by_checker |
Full IoE deviances for a checker (no date filter) |
tie_deviances_by_directory |
Full IoE deviances for a directory (no date filter) |
tie_search_events |
Search AD security events in a date range |
tie_search_ad_objects |
Search AD objects (users/computers/groups/OUs) |
tie_whoami |
Current user identity, roles, permissions |
Time windows, profiles, and token budget
- Time-aware tools (
tie_recent_activity,tie_deviances) accept a relativehours=Nwindow or explicitdate_start/date_end. All timestamps are UTC. - IoE/IoA data is profile-scoped. The API does not expose which profile your
console has selected, so pass
profile_idexplicitly — usetie_profilesto list them. - By default, deviance/object results are slimmed: descriptions are rendered
from their templates and oversized attribute values (SID lists, member dumps)
are dropped. Pass
verbose=truefor the full raw payload.
Configuration
Set via environment variables (or --tie-url / --tie-api-key flags):
| Variable | Description |
|---|---|
TIE_URL |
Base URL, e.g. https://your-host.tenable.ad |
TIE_API_KEY |
API key (TIE console → System → Configuration → API key) |
TIE_VERIFY_SSL |
true (default) or false for self-signed certs |
Auth uses the X-API-Key header.
Install & run
python -m venv .venv && . .venv/bin/activate
pip install -e .
cp .env.example .env # fill in TIE_URL and TIE_API_KEY
# stdio (Claude Desktop / Claude Code)
set -a; . ./.env; set +a
tenable-tie-mcp
# or network transports
tenable-tie-mcp --transport sse --port 8000
tenable-tie-mcp --transport http --port 8000
Running with uv / uvx (alternative to a manual venv)
uv can manage the environment for you. uv is the
full tool; uvx (alias for uv tool run) runs a package in a throwaway env, like
npx. Both need uv installed (brew install uv).
# uv run: resolves deps from pyproject.toml into a managed .venv, then runs
uv run tenable-tie-mcp
# uvx: run ephemerally from the project path, nothing persisted
uvx --from . tenable-tie-mcp
Claude Desktop / Claude Code config
Use the full path to the executable. Claude Desktop does not launch from your
shell, so it does not inherit your PATH — a bare tenable-tie-mcp will fail with
"command not found" unless the tool is on the system PATH (e.g. a pipx install).
For a venv install, point at the venv's launcher:
{
"mcpServers": {
"tenable-tie": {
"command": "/absolute/path/to/tenable-ie-mcp/.venv/bin/tenable-tie-mcp",
"env": {
"TIE_URL": "https://your-host.tenable.ad",
"TIE_API_KEY": "your-key"
}
}
}
}
Find the exact path with echo "$PWD/.venv/bin/tenable-tie-mcp" from the project
root. See claude_desktop_config.sample.json for a complete example.
If you installed globally with
pipx install .(oruv tool install), the bare"command": "tenable-tie-mcp"works because it lands on the system PATH.
With uv (alternative)
Point command at the full path of uv (which uv, e.g. /opt/homebrew/bin/uv)
and let it manage the environment:
{
"mcpServers": {
"tenable-tie": {
"command": "/opt/homebrew/bin/uv",
"args": ["run", "--directory", "/absolute/path/to/tenable-ie-mcp", "tenable-tie-mcp"],
"env": {
"TIE_URL": "https://your-host.tenable.ad",
"TIE_API_KEY": "your-key"
}
}
}
}
Docker
docker compose up --build # reads TIE_URL / TIE_API_KEY from environment
Example prompts
- "Show me IoE and IoA activity in the last 12 hours." →
tie_recent_activity - "Which security profiles exist?" →
tie_profiles - "List the monitored directories and their security scores."
- "Show the latest IoA attacks against directory 8."
- "What IoE deviances appeared for checker 15 in the last day?" →
tie_deviances - "Show unread alerts for profile 2."
Notes
profile_iddefaults to1(the default Tenable profile) in the convenience tools.- Attacks must be scoped:
resource_type∈infrastructure|directory|hostname|ipandresource_valueis the id or name/ip. - Non-JSON responses are returned as
{"content_type": ..., "text": ...}rather than crashing. - Scoring and prioritization: TIE checkers carry a
remediationCost(easy / medium / hard) but no native asset-level severity score. If your workflow requires AES (Asset Exposure Score) or ACR (Asset Criticality Rating) — for example, to rank affected identities by business risk — connect your environment to Tenable One. Tenable One aggregates data across TIE, Tenable Vulnerability Management, and other sources to produce unified AES/ACR scores that can be surfaced here via the API.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。