Skip to main content
Glama
nguyenthdat

tenable-mcp

by nguyenthdat
README.md
# Tenable MCP Server

A Model Context Protocol (MCP) server for [Tenable Vulnerability Management](https://www.tenable.com/products/tenable-io) and Tenable Security Center.

Exposes Tenable security operations as MCP tools for AI-powered security workflows.

## Quick Start

```bash
uvx tenable-mcp
```

## Environment Variables

| Variable | Required | Default | Description |
|---|---|---|---|
| `TENABLE_ACCESS_KEY` | Yes | — | Tenable API access key |
| `TENABLE_SECRET_KEY` | Yes | — | Tenable API secret key |
| `TENABLE_IO_URL` | No | `https://cloud.tenable.com` | Tenable.io base URL |
| `TENABLE_SC_URL` | No | — | Tenable.sc URL (enables SC support) |
| `TENABLE_VERIFY_SSL` | No | `true` | Set to `false` to disable SSL verification |
| `TENABLE_TIMEOUT` | No | `120` | Connection timeout in seconds |
| `TENABLE_PAGE_SIZE` | No | `100` | Default page size for paginated requests |

## MCP Client Configuration

### OpenCode / Claude Desktop

```json
{
  "mcpServers": {
    "tenable": {
      "command": "uvx",
      "args": ["tenable-mcp"],
      "env": {
        "TENABLE_ACCESS_KEY": "your-access-key",
        "TENABLE_SECRET_KEY": "your-secret-key"
      }
    }
  }
}
```

### VS Code / Cursor

```json
{
  "mcpServers": {
    "tenable": {
      "command": "uv",
      "args": ["run", "tenable-mcp"],
      "env": {
        "TENABLE_ACCESS_KEY": "your-access-key",
        "TENABLE_SECRET_KEY": "your-secret-key"
      }
    }
  }
}
```

## Available Tools

### Assets
| Tool | Description |
|---|---|
| `tenable_list_assets` | List assets with filters (hostname, IP, network, tracking method) |
| `tenable_get_asset` | Get detailed information for a specific asset by UUID |
| `tenable_get_asset_vulnerabilities` | Get vulnerabilities for a specific asset |

### Vulnerabilities
| Tool | Description |
|---|---|
| `tenable_search_vulnerabilities` | Search vulnerabilities across all assets with extensive filters |
| `tenable_get_vulnerability_details` | Get details for a vulnerability finding or plugin |
| `tenable_list_findings` | List vulnerability findings from the workbench |

### Scans
| Tool | Description |
|---|---|
| `tenable_list_scans` | List configured scans |
| `tenable_get_scan` | Get scan details |
| `tenable_launch_scan` | Launch a scan (requires `confirm: true`) |
| `tenable_export_scan` | Export scan results (nessus, csv, html, pdf, db) |

### Plugins
| Tool | Description |
|---|---|
| `tenable_search_plugins` | Search for plugins by name, family, CVE, severity |
| `tenable_get_plugin_details` | Get detailed plugin information including CVSS and CVE |

### Tags
| Tool | Description |
|---|---|
| `tenable_list_tags` | List configured tags with category/value filters |

## Supported Products

- **Tenable Vulnerability Management (Tenable.io)** — Full support
- **Tenable Security Center (Tenable.sc)** — Partial support (requires `TENABLE_SC_URL`)
- **Tenable Nessus** — Not directly supported (use Tenable.io with agents)

## Development

```bash
# Clone and install
git clone https://github.com/your-org/tenable-mcp.git
cd tenable-mcp
uv sync

# Run quality checks
uv run ruff check .
uv run ruff format --check .
uv run pyright .
uv run pytest
```

## License

MIT

TDQS

A3.5/5.0

Scored across 17 tools

Disambiguation3/5

There is notable overlap between tenable_list_findings and tenable_search_vulnerabilities (both list vulnerabilities using exports API) and between tenable_get_vulnerability_details and tenable_get_plugin_details (get_vuln_details also accepts plugin_id). While descriptions help, agents may struggle to choose the correct tool for vulnerability-related queries.

Naming Consistency5/5

All tools follow a consistent tenable_<verb>_<noun> pattern using snake_case. Verbs are distinct and the pattern is predictable, making it easy for an agent to infer tool functionality from names.

Tool Count5/5

17 tools cover the key areas of a vulnerability management platform (assets, scans, vulnerabilities, plugins, tags, health, and WAS) without being overwhelming. The count feels appropriate for the domain.

Completeness4/5

The tool set covers most read and export operations comprehensively, including search, details, and list endpoints. However, it lacks create/update/delete for many resources (e.g., assets, tags, scans) and missing scan lifecycle operations like stop/pause, which are minor gaps for a read-centric server.

Maintenance

ActivityMaintained
ResponsivenessSyncing