{
  "type": "mcp-server",
  "slug": "tenable-ctem-mcp",
  "name": "Tenable CTEM MCP",
  "author": "mrovere1",
  "description": "Local MCP server delivering 19 CTEM maturity indicators already aggregated, plus MTTR, with evidence per number",
  "github_url": "https://github.com/mrovere1/tenable-ctem-mcp",
  "license": "MIT",
  "tier": "contributed",
  "tags": [
    "ctem",
    "exposure-management",
    "vulnerability-management",
    "maturity-assessment",
    "security-posture"
  ],
  "integrations": [
    "Tenable"
  ],
  "domains": [
    "governance-risk-compliance",
    "vulnerability-management"
  ],
  "date_added": "2026-09-04",
  "last_reviewed": "2026-09-14",
  "transport": "stdio",
  "runtime": "python",
  "auth_method": "api-key",
  "compatible_clients": [
    "Claude Code",
    "Claude Desktop"
  ],
  "tools_exposed": [
    {
      "name": "ctem_discover_tenant",
      "description": "Tag categories and values, asset counts by class, exposure surfaces present, scans with history, agents — in one cached call"
    },
    {
      "name": "ctem_preflight",
      "description": "Tests every filter the assessment uses live against the tenant, with discriminant pairs, and returns the deny-list with measured proof"
    },
    {
      "name": "ctem_scoping",
      "description": "Stage 1 indicators S1–S4 over the licensed asset base: tag coverage, criticality and owner coverage, declared crown jewels"
    },
    {
      "name": "ctem_discovery",
      "description": "Stage 2 indicators D1–D4: time since last assessment, licensed surface coverage, agent coverage, authenticated detection share"
    },
    {
      "name": "ctem_prioritization",
      "description": "Stage 3 indicators P1–P3 plus the three compared prioritisation queues (CVSS, VPR, overlap)"
    },
    {
      "name": "ctem_validation",
      "description": "Stage 4 indicators V1–V4: exploit availability, KEV exposure age, recurrence rate, out-of-support software"
    },
    {
      "name": "ctem_mobilization",
      "description": "Stage 5 indicators M1–M4: assessment cadence, largest gap, fix availability age, and MTTR with the cadence guard applied"
    },
    {
      "name": "plugin_details_batch",
      "description": "Detail for many plugins in one call, with five fields only — the project's largest token saving"
    },
    {
      "name": "plugin_census",
      "description": "Sampling frame: every plugin of a severity with detection count, VPR and family. Cached"
    },
    {
      "name": "scan_cadence",
      "description": "Collapses scan runs into distinct assessment days, and always returns the uncollapsed median alongside for contrast"
    },
    {
      "name": "mttr_collect",
      "description": "MTTR through the vulnerability export API with polling and chunked download. Never blocks: returns a resumable ticket on timeout"
    },
    {
      "name": "mttr_cadence_guard",
      "description": "Detects when an MTTR is really measuring the interval between scans rather than time to fix"
    },
    {
      "name": "ctem_diagnostics",
      "description": "Whether the server can reach the tenant, which role the API key has, and whether the tag catalog is fully visible to it. Separates a missing credential from an invalid one from intercepted TLS. Never prints the key"
    }
  ],
  "resources_exposed": [],
  "prompts_exposed": [],
  "repo": {
    "found": true,
    "archived": false,
    "pushed_at": "2026-09-14T23:26:02Z",
    "stars": 0,
    "forks": 0,
    "open_issues": 0,
    "owner_type": "user",
    "language": "Python",
    "checked_at": "2026-11-05T20:35:15.821Z"
  },
  "url": "https://exchange.tenable.com/mcp-servers/tenable-ctem-mcp",
  "json_url": "https://exchange.tenable.com/api/mcp-servers/tenable-ctem-mcp.json",
  "markdown_url": "https://exchange.tenable.com/mcp-servers/tenable-ctem-mcp.md",
  "source_url": "https://github.com/tenable/cyberagents-exchange/blob/main/mcp-servers/tenable-ctem-mcp.md"
}