tenable-mcp-server

tenable-mcp-server

An MCP server for Tenable Vulnerability Management and the Tenable One platform, enabling LLMs to query assets, vulnerabilities, scans, exposure metrics, attack paths, and more via natural language.

Category
访问服务器

README

Tenable MCP Server

An MCP (Model Context Protocol) server for Tenable Vulnerability Management and the wider Tenable One platform. Connects LLMs like Claude to your Tenable instance for querying assets, vulnerabilities, scans, exposure metrics, attack paths, web app scans, cloud security findings, and more — via natural language.

Built with FastMCP v3 and pyTenable.

Features

  • 58 tools across 25 modules: assets, vulnerabilities, scans, exposure scoring, Attack Path Analysis, Web App Scanning (WAS), Attack Surface Management (ASM), Cloud Security (CNAPP), container security, compliance, tags, agents, networks, policies, users/groups, audit log, and patch verification
  • Mock mode for demos and development — full test suite and every tool works with zero credentials
  • Pagination on all list endpoints with safety caps for large exports
  • Markdown output optimized for LLM consumption
  • Graceful degradation when licensed features (Lumin/Tenable One, WAS, CNAPP, ASM) are unavailable
  • STDIO and HTTP transports supported
  • Read-mostly surface: the only write operations are scan launch/stop and tag assign/unassign, all marked with MCP tool annotations

Quick Start

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip
  • Tenable VM API keys (generate here) — or none at all for mock mode

Install

git clone <repo-url> && cd tenable-mcp-server
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"

Configure

cp .env.example .env
# Edit .env with your Tenable API keys

Or export directly:

export TENABLE_ACCESS_KEY=your-access-key
export TENABLE_SECRET_KEY=your-secret-key

Run

# STDIO transport (default, for Claude Desktop / Claude Code)
tenable-mcp

# Mock mode (no API keys needed)
TENABLE_MOCK=true tenable-mcp

# HTTP/SSE transport (binds 127.0.0.1 by default)
tenable-mcp --transport http --port 8000

Claude Desktop Integration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "tenable": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/tenable-mcp-server", "tenable-mcp"],
      "env": {
        "TENABLE_ACCESS_KEY": "your-access-key",
        "TENABLE_SECRET_KEY": "your-secret-key"
      }
    }
  }
}

For mock/demo mode, set "TENABLE_MOCK": "true" in env and omit the API keys.

Tools Reference

All tools return Markdown. Read-only tools carry readOnlyHint: true annotations.

Assets & Exposure

Tool Description
tenable_list_assets List assets with hostname/IP/OS filters and pagination
tenable_get_asset_details Full asset detail by UUID (hostname, IPs, OS, AES, ACR, tags)
tenable_get_exposure_score Cyber Exposure Score (CES) from Tenable One
tenable_get_asset_exposure Per-asset AES (0-1000) and ACR (1-10)
tenable_get_severity_summary Open vulnerability counts by severity
tenable_list_exposure_views / tenable_get_exposure_view Tenable One exposure view cards with CES trend series

Vulnerabilities & Plugins

Tool Description
tenable_list_vulnerabilities List vulns with severity/VPR/CVE/state filters
tenable_get_vulnerability_details Full plugin details (description, solution, references)
tenable_get_asset_vulnerabilities Per-asset vulnerability list
tenable_list_plugin_families / tenable_get_plugin_details Plugin family and plugin metadata
tenable_verify_patched_assets Before/after verification that CVEs/plugins are fixed on given assets
tenable_search_recast_rules Recast/accept rule search

Scans, Scanners & Policies

Tool Description
tenable_list_scans / tenable_get_scan_results / tenable_get_scan_history Scan inventory, results, run history
tenable_launch_scan / tenable_stop_scan Scan lifecycle (write operations)
tenable_list_scanners / tenable_get_scanner_details Scanner fleet
tenable_list_policies / tenable_get_policy_details Scan policies
tenable_list_folders / tenable_list_exclusions / tenable_get_exclusion_details Folders and scan exclusions

Attack Path Analysis (Tenable One)

Tool Description
tenable_list_attack_paths Prioritized attack paths with source/target and techniques
tenable_list_attack_findings Attack path findings
tenable_list_attack_techniques MITRE ATT&CK technique inventory
tenable_apa_country_coverage Per-country APA coverage map bucketed by hostname prefix (ISO 3166-1 defaults, configurable)

Web App Scanning, ASM, Cloud & Containers

Tool Description
tenable_was_list_configs / tenable_was_get_scan_details / tenable_was_list_vulnerabilities Web App Scanning configs, scans, findings
tenable_asm_list_assets / tenable_asm_get_asset_details Attack Surface Management inventory
tenable_cloud_list_resources / tenable_cloud_list_findings CNAPP cloud resources and misconfigurations
tenable_cloud_list_vm_vulns / tenable_cloud_list_container_image_vulns CNAPP VM and container image vulnerabilities
tenable_list_container_images / tenable_list_container_repos / tenable_get_container_report Container Security

Platform Administration

Tool Description
tenable_list_tags / tenable_create_tag_value / tenable_assign_tags / tenable_unassign_tags / tenable_get_asset_tags Tag management
tenable_list_agents / tenable_get_agent_details / tenable_list_agent_groups / tenable_get_agent_group_details Nessus agent fleet
tenable_list_networks / tenable_get_network_details Network objects
tenable_list_users / tenable_list_groups Users and groups
tenable_list_audit_events Platform audit log
tenable_list_compliance_findings / tenable_get_compliance_summary Compliance/audit findings

Configuration

Environment Variable Default Description
TENABLE_ACCESS_KEY (required) Tenable API access key
TENABLE_SECRET_KEY (required) Tenable API secret key
TENABLE_URL https://cloud.tenable.com Tenable cloud URL
TENABLE_MOCK false Enable mock mode for demo/testing
TENABLE_MAX_EXPORT 10000 Safety cap for export consumption
TENABLE_DEFAULT_LIMIT 50 Default pagination limit
TENABLE_CLOUD_SECURITY_API_KEY (optional) Tenable Cloud Security (CNAPP) API key
TENABLE_ASM_API_KEY (optional) Attack Surface Management API key
TENABLE_HOSTNAME_COUNTRY_MAP (optional) JSON map of hostname prefixes to country labels for APA coverage bucketing (defaults to ISO 3166-1 alpha-2)

Development

# Run tests (uses mock mode automatically -- no credentials needed)
pytest tests/ -v

# Lint
ruff check src/ tests/

Architecture

  • FastMCP v3 server with lifespan-managed TenableIO client
  • All pyTenable calls wrapped in asyncio.to_thread() (pyTenable is synchronous)
  • Export iterators consumed with safety cap (MAX_EXPORT_CONSUME = 10,000) then paginated in-memory
  • Cloud Security tools use direct GraphQL over httpx (https-only guard) instead of pyTenable's CNAPP client
  • Error handling via @handle_tenable_errors decorator mapping API errors to actionable ToolError messages
  • Mock client mirrors the pyTenable interface with deterministic UUIDs for consistent test/demo data

Limitations

  • License-gated features degrade, not fail: CES/AES/ACR, exposure views, APA, WAS, ASM, CNAPP, and Container Security require the corresponding Tenable licenses; tools return an explanatory message when the feature is unavailable on your instance.
  • Tenable VM (cloud) only — Tenable Security Center (on-prem) is not supported; its API differs substantially.
  • Export scale: vulnerability/asset exports are capped at TENABLE_MAX_EXPORT records per call to keep responses LLM-sized. This is not a full data-lake export tool.
  • Write surface is minimal by design: scan launch/stop and tag operations only. No remediation, recast, or user-management writes.
  • APA country coverage relies on hostname prefixes when asset tags are absent; hostnames that don't encode location won't bucket (they are reported as unmapped rather than guessed).

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选