{
  "$schema": "https://readbeforerun.ai/schema/entry.schema.json",
  "entry": {
    "id": "andrewspearson-tenable-mcp-mssp",
    "name": "Tenable MSSP Portal MCP Server",
    "summary": "MCP server that runs Tenable queries and hosted Hexa AI MCP tools across the child containers of a Tenable MSSP Portal.",
    "draft": "review",
    "type": "mcp-server",
    "mission": [
      "defensive"
    ],
    "task": [
      "vuln-prioritization"
    ],
    "domain": [
      "vulnerability-management",
      "platform-operations"
    ],
    "runtime": [
      "mcp-generic",
      "claude-code",
      "codex",
      "gemini-cli"
    ],
    "tier": "listed",
    "last_checked": "2026-10-21",
    "next_check": "2027-01-19",
    "freshness": "fresh",
    "superseded": false,
    "in_my_kit": null,
    "advice": null,
    "code_shows": "adds autostart, users or keys · reads broad tokens or the environment",
    "source": {
      "repo": "https://github.com/andrewspearson/tenable-mcp-mssp",
      "subpath": null,
      "commit": "eeb26b5c6bd76406dbffe71cfebc67c5159dc790",
      "version": "v1.0.1",
      "license": "MIT"
    },
    "install": {
      "skills_cli": null,
      "claude_code": null,
      "upstream": "git clone https://github.com/andrewspearson/tenable-mcp-mssp.git\ncd tenable-mcp-mssp\nuv venv\nuv pip install .\ncp .env.example .env\nchmod 600 .env\nclaude mcp add tenable-mcp-mssp -- /path/to/tenable-mcp-mssp/.venv/bin/python -m tenable_mcp_mssp.server",
      "bundled": false
    },
    "scan": {
      "status": "static scan pending (not run)"
    },
    "reach": {
      "method": "reach-v0.1",
      "level": 3,
      "level_source": "static",
      "level_label": "privileged",
      "unknown_axes": 0,
      "verdict": "not-run",
      "badge": "reach 3 · not run yet",
      "long": "reach 3 from code (privileged); lab: not run yet",
      "declared": {
        "fs": 1,
        "net": 1,
        "cred": 2,
        "persist": 3
      },
      "static": {
        "level": 3,
        "fs": 1,
        "net": 1,
        "exec": 1,
        "cred": 2,
        "persist": 3,
        "hitl": 0,
        "unknown": []
      },
      "observed": null,
      "surplus": null,
      "fit": null,
      "exports": {
        "aivss": {
          "fs": 0.5,
          "net": 0.5,
          "exec": 0.5,
          "cred": 0.5,
          "persist": 1,
          "hitl": 0
        },
        "usf_risk_tier": "L3"
      }
    },
    "profile": {
      "read_at": "eeb26b5c6bd76406dbffe71cfebc67c5159dc790",
      "read_on": "2026-10-25",
      "overview": "An MCP server that orchestrates Tenable MSSP child container workflows, used to make bulk queries and take bulk actions across child containers.",
      "purpose": [
        "Lets one MCP client use Tenable Hexa AI MCP Server tools across the child containers of an MSSP Portal through a scoped orchestration layer.",
        "Queries one or more CVEs across eligible in-scope child containers and produces a CSV report of the findings.",
        "Lists all child containers of the MSSP Portal with their license information."
      ],
      "use_cases": [
        {
          "text": "Query CVEs across the child containers connected to an MSSP Portal and compile the findings into a CSV report.",
          "task": "vuln-prioritization"
        },
        {
          "text": "Apply a tested sequence of Hexa AI MCP tool calls to many hexa-licensed child containers in one batch.",
          "task": null
        },
        {
          "text": "Experiment with one official Tenable MCP tool on one child container licensed for hexa.",
          "task": null
        },
        {
          "text": "Review all MSSP child accounts as returned by Tenable, including their license data.",
          "task": null
        }
      ],
      "maturity": null,
      "capabilities": [
        {
          "name": "list_mssp_child_accounts",
          "effects": [
            "reads"
          ],
          "enabled": "default"
        },
        {
          "name": "list_available_tenable_mcp_tools",
          "effects": [
            "reads"
          ],
          "enabled": "default"
        },
        {
          "name": "get_child_container_scope",
          "effects": [
            "reads"
          ],
          "enabled": "default"
        },
        {
          "name": "run_tenable_mcp_tool_for_child",
          "effects": [
            "reads",
            "changes"
          ],
          "enabled": "default"
        },
        {
          "name": "run_tenable_mcp_recipe_for_child",
          "effects": [
            "reads",
            "changes"
          ],
          "enabled": "default"
        },
        {
          "name": "run_tenable_mcp_recipe_across_child_containers",
          "effects": [
            "reads",
            "changes"
          ],
          "enabled": "default"
        },
        {
          "name": "bulk_vm_cve_query",
          "effects": [
            "reads",
            "runs-commands"
          ],
          "enabled": "default"
        },
        {
          "name": "get_bulk_vm_cve_query_status / _result",
          "effects": [
            "reads"
          ],
          "enabled": "default"
        }
      ],
      "effects": [
        "reads",
        "changes",
        "runs-commands"
      ],
      "runs": "local-process",
      "listens": [],
      "sends_to": [
        {
          "to": "Tenable MSSP Portal API",
          "kind": "vendor-api",
          "when": "always"
        },
        {
          "to": "Tenable hosted MCP server",
          "kind": "vendor-api",
          "when": "default"
        },
        {
          "to": "Tenable Vulnerability Management exports",
          "kind": "vendor-api",
          "when": "default"
        }
      ],
      "model": "client",
      "needs": [
        {
          "kind": "credentials",
          "text": "Tenable MSSP Portal API keys with Administrator privileges."
        },
        {
          "kind": "account",
          "text": "Child containers licensed with hexa for the Hexa AI MCP Server tools."
        },
        {
          "kind": "account",
          "text": "Child containers licensed with vm for the bulk_vm_cve_query tool."
        },
        {
          "kind": "runtime",
          "text": "Python 3.14 or newer."
        },
        {
          "kind": "tools",
          "text": "uv or pip for the local installation."
        },
        {
          "kind": "setting",
          "text": "The parent keys must be set as TENABLE_MSSP_PORTAL_ACCESS_KEY and TENABLE_MSSP_PORTAL_SECRET_KEY in the environment or the .env file."
        }
      ]
    },
    "urls": {
      "page": "/catalog/andrewspearson-tenable-mcp-mssp/",
      "json": "/entries/andrewspearson-tenable-mcp-mssp.json",
      "md": "/catalog/andrewspearson-tenable-mcp-mssp.md",
      "badge": "/badge/andrewspearson-tenable-mcp-mssp.svg"
    }
  },
  "data": {
    "schema_version": "0.5",
    "slug": "andrewspearson-tenable-mcp-mssp",
    "name": "Tenable MSSP Portal MCP Server",
    "summary": "MCP server that runs Tenable queries and hosted Hexa AI MCP tools across the child containers of a Tenable MSSP Portal.",
    "draft": "review",
    "in_my_kit": null,
    "type": "mcp-server",
    "mission": [
      "defensive"
    ],
    "task": [
      "vuln-prioritization"
    ],
    "domain": [
      "vulnerability-management",
      "platform-operations"
    ],
    "phase": [
      "def:identify"
    ],
    "role": [
      "soc"
    ],
    "runtime": [
      "mcp-generic",
      "claude-code",
      "codex",
      "gemini-cli"
    ],
    "auth": "api-key",
    "autonomy": null,
    "addresses": [],
    "frameworks": {
      "owasp_ast": [],
      "owasp_asi": [],
      "attack_tactic": [],
      "atlas": []
    },
    "source": {
      "repo": "https://github.com/andrewspearson/tenable-mcp-mssp",
      "commit": "eeb26b5c6bd76406dbffe71cfebc67c5159dc790",
      "version": "v1.0.1",
      "license": "MIT",
      "manifest": "pyproject.toml",
      "also_listed": {
        "tenable-cyberagents-exchange": "https://github.com/tenable/cyberagents-exchange/blob/9d0ddf1fe8dc9651a0c461a2a27d33cb8a160a2c/mcp-servers/tenable-mcp-mssp.md"
      }
    },
    "upstream": {
      "checked_at": "2026-10-21",
      "updated_at": "2026-06-23",
      "current_release": "v1.0.1",
      "archived": false,
      "stars": 9,
      "commit_history": {},
      "releases_since_pin": 0
    },
    "install": {
      "upstream": "git clone https://github.com/andrewspearson/tenable-mcp-mssp.git\ncd tenable-mcp-mssp\nuv venv\nuv pip install .\ncp .env.example .env\nchmod 600 .env\nclaude mcp add tenable-mcp-mssp -- /path/to/tenable-mcp-mssp/.venv/bin/python -m tenable_mcp_mssp.server",
      "upstream_evidence": "README.md#L37-95",
      "bundled": false
    },
    "scan": [
      {
        "tool": "cisco-skill-scanner",
        "version": "not-run",
        "llm_judge": false,
        "date": "2026-10-21",
        "result": "pending"
      }
    ],
    "privileges": {
      "method": "reach-v0.1",
      "declared": {
        "axes": {
          "fs": 1,
          "net": 1,
          "cred": 2,
          "persist": 3
        },
        "evidence": {
          "fs": "README.md#L103 the author states that bulk query results are written as CSV into a results folder in the working directory",
          "net": "README.md#L13 the author describes a wrapper around Tenable's hosted Hexa AI MCP server, plus Tenable export calls",
          "cred": "README.md#L26 the author requires MSSP Portal API keys with administrator rights, which is a broad token",
          "persist": "tenable_mcp_mssp/server.py#L40-41 the server instructions say that child API keys are generated, which means new API keys in each child container"
        }
      },
      "static": {
        "level": 3,
        "axes": {
          "fs": 1,
          "net": 1,
          "exec": 1,
          "cred": 2,
          "persist": 3,
          "hitl": 0
        },
        "evidence": {
          "fs": "tenable_mcp_mssp/bulk_vm_cve_query.py#L34 every write goes under a relative results folder in the working directory, with no deletes",
          "net": "tenable_mcp_mssp/tenable_mcp_client.py#L13 the only URL in the package is Tenable's hosted MCP server, and the Tenable clients use the library's default host",
          "exec": "tenable_mcp_mssp/bulk_vm_cve_query.py#L367-370 starts the package's own worker module as a subprocess, without a shell",
          "cred": "tenable_mcp_mssp/config.py#L13 reads a .env file from the working directory into the environment and uses the MSSP administrator key pair",
          "persist": "tenable_mcp_mssp/child_api_keys.py#L13 every child container a tool touches gets new API keys through this endpoint, which counts as new keys even though they are temporary and held in memory",
          "hitl": "none found: patterns hitl-v0.1 in 18 files at eeb26b5"
        },
        "unknown": []
      },
      "min_config": {
        "status": "derived",
        "note": "derived from the code, not tested in the lab; limit action tools with the child-container allowlist file, pass the portal keys through the environment rather than a .env file, and call bulk_vm_cve_query only on explicit request"
      },
      "override": null,
      "reviews": []
    },
    "status": {
      "tier": "listed",
      "last_checked": "2026-10-21",
      "next_check": "2027-01-19",
      "freshness": "fresh",
      "superseded": false,
      "superseded_by": null,
      "added": "2026-10-21",
      "added_by": "scout"
    },
    "evidence": {
      "runs": [],
      "badge": "/badge/andrewspearson-tenable-mcp-mssp.svg"
    },
    "changes": []
  },
  "profile": {
    "schema_version": "0.1",
    "entry": "andrewspearson-tenable-mcp-mssp",
    "draft": "review",
    "commit": "eeb26b5c6bd76406dbffe71cfebc67c5159dc790",
    "read_on": "2026-10-25",
    "check": {
      "date": "2026-10-25",
      "facts": 49,
      "confirmed": 49,
      "verified": 45
    },
    "overview": {
      "text": "An MCP server that orchestrates Tenable MSSP child container workflows, used to make bulk queries and take bulk actions across child containers.",
      "ev": "README.md#L8 author's one-line description of the server"
    },
    "purpose": [
      {
        "text": "Lets one MCP client use Tenable Hexa AI MCP Server tools across the child containers of an MSSP Portal through a scoped orchestration layer.",
        "ev": "README.md#L14 feature statement on Hexa AI MCP tools across child containers"
      },
      {
        "text": "Queries one or more CVEs across eligible in-scope child containers and produces a CSV report of the findings.",
        "ev": "README.md#L15 feature statement for bulk_vm_cve_query"
      },
      {
        "text": "Lists all child containers of the MSSP Portal with their license information.",
        "ev": "README.md#L18 feature statement on listing child containers"
      }
    ],
    "use_cases": [
      {
        "text": "Query CVEs across the child containers connected to an MSSP Portal and compile the findings into a CSV report.",
        "task": "vuln-prioritization",
        "ev": "README.md#L103 bulk CVE query section describes the scenario"
      },
      {
        "text": "Apply a tested sequence of Hexa AI MCP tool calls to many hexa-licensed child containers in one batch.",
        "task": null,
        "ev": "README.md#L134 tool list entry for the cross-container recipe tool"
      },
      {
        "text": "Experiment with one official Tenable MCP tool on one child container licensed for hexa.",
        "task": null,
        "ev": "AGENTS.md#L16 documented workflow step for single-tool experiments"
      },
      {
        "text": "Review all MSSP child accounts as returned by Tenable, including their license data.",
        "task": null,
        "ev": "README.md#L129 tool list entry for list_mssp_child_accounts"
      }
    ],
    "not_for": [],
    "capabilities": {
      "coverage": "complete",
      "groups": [
        {
          "name": "list_mssp_child_accounts",
          "does": "Lists the raw Tenable MSSP child account objects, including license data.",
          "effects": [
            "reads"
          ],
          "enabled": "default",
          "ev": "tenable_mcp_mssp/server.py#L51-60 tool registration for list_mssp_child_accounts"
        },
        {
          "name": "list_available_tenable_mcp_tools",
          "does": "Discovers the Tenable Hexa AI MCP Server tool catalog for one child container licensed for hexa.",
          "effects": [
            "reads"
          ],
          "enabled": "default",
          "ev": "README.md#L130 tool list entry"
        },
        {
          "name": "get_child_container_scope",
          "does": "Shows the configured child container allowlist scope for action tools.",
          "effects": [
            "reads"
          ],
          "enabled": "default",
          "ev": "README.md#L131 tool list entry"
        },
        {
          "name": "run_tenable_mcp_tool_for_child",
          "does": "Runs one Tenable Hexa AI MCP Server tool on one child container licensed for hexa.",
          "effects": [
            "reads",
            "changes"
          ],
          "enabled": "default",
          "ev": "README.md#L132 tool list entry"
        },
        {
          "name": "run_tenable_mcp_recipe_for_child",
          "does": "Validates a known sequence of Tenable Hexa AI MCP Server tool calls on one child container licensed for hexa.",
          "effects": [
            "reads",
            "changes"
          ],
          "enabled": "default",
          "ev": "README.md#L133 tool list entry"
        },
        {
          "name": "run_tenable_mcp_recipe_across_child_containers",
          "does": "Runs a known official Tenable MCP recipe across a list of hexa-licensed child containers.",
          "effects": [
            "reads",
            "changes"
          ],
          "enabled": "default",
          "ev": "tenable_mcp_mssp/server.py#L120-125 tool registration for the cross-container recipe tool"
        },
        {
          "name": "bulk_vm_cve_query",
          "does": "Runs the bulk VM CVE export by starting the module tenable_mcp_mssp.bulk_vm_cve_query_worker as a Python subprocess with a raw output file path.",
          "effects": [
            "reads",
            "runs-commands"
          ],
          "enabled": "default",
          "ev": "tenable_mcp_mssp/bulk_vm_cve_query.py#L367-372 spawns the worker module as a subprocess per child"
        },
        {
          "name": "get_bulk_vm_cve_query_status / _result",
          "does": "Checks the status of a server-managed bulk_vm_cve_query run and reads its final summary and artifact paths.",
          "effects": [
            "reads"
          ],
          "enabled": "default",
          "ev": "README.md#L136-137 tool list entries for the bulk status and result tools"
        }
      ]
    },
    "architecture": {
      "summary": {
        "text": "The server creates a FastMCP client that reaches Tenable's hosted MCP server over a streamable HTTP transport and sends the access and secret keys in an API keys header.",
        "ev": "tenable_mcp_mssp/tenable_mcp_client.py#L30-39 builds a streamable HTTP client to Tenable's hosted MCP server"
      },
      "runs": {
        "where": "local-process",
        "text": "Codex, Claude, Gemini CLI or another MCP client attaches to tenable-mcp-mssp as a STDIO server.",
        "ev": "README.md#L87 install step attaches the server as a STDIO server"
      },
      "modes": [],
      "parts": [
        {
          "name": "MCP client registration",
          "zone": "client",
          "does": "Client entry added with the client's mcp add command that launches the venv Python with -m tenable_mcp_mssp.server.",
          "ev": "README.md#L91 Codex registration command"
        },
        {
          "name": "tenable_mcp_mssp.server",
          "zone": "machine",
          "does": "Server entry point main() that configures logging, loads the child container scope and runs the FastMCP server.",
          "ev": "tenable_mcp_mssp/server.py#L191-197 main() configures logging, loads scope and runs the server"
        },
        {
          "name": "bulk_vm_cve_query_worker",
          "zone": "machine",
          "does": "Subprocess worker that runs the VM CVE export for one child container.",
          "ev": "tenable_mcp_mssp/bulk_vm_cve_query_worker.py#L1 module docstring of the worker"
        },
        {
          "name": ".env file",
          "zone": "machine",
          "does": "Optional .env file that can supply the parent MSSP Portal credentials instead of real environment variables.",
          "ev": "AGENTS.md#L7 author states where parent credentials come from"
        },
        {
          "name": "Tenable MSSP Portal and child container APIs",
          "zone": "outside",
          "does": "Tenable MSSP Portal API endpoint mssp/accounts, which returns the child accounts.",
          "ev": "tenable_mcp_mssp/mssp_accounts.py#L13 MSSP account list endpoint path"
        },
        {
          "name": "Tenable Hexa AI MCP Server",
          "zone": "outside",
          "does": "Tenable's hosted MCP server at https://cloud.tenable.com/mcp/.",
          "ev": "tenable_mcp_mssp/tenable_mcp_client.py#L13 hosted MCP server URL"
        }
      ],
      "listens": [],
      "connections": [
        {
          "to": "Tenable MSSP Portal API",
          "kind": "vendor-api",
          "when": "always",
          "what": "Requests temporary API keys for a child container from the MSSP endpoint mssp/accounts/mssp-child-keys.",
          "ev": "tenable_mcp_mssp/child_api_keys.py#L13 child key generation endpoint path"
        },
        {
          "to": "Tenable hosted MCP server",
          "kind": "vendor-api",
          "when": "default",
          "what": "Connects to Tenable's hosted MCP server over streamable HTTP and sends the access and secret keys in an API keys header.",
          "ev": "tenable_mcp_mssp/tenable_mcp_client.py#L33-38 header with child keys on the hosted MCP transport"
        },
        {
          "to": "Tenable Vulnerability Management exports",
          "kind": "vendor-api",
          "when": "default",
          "what": "The bulk worker requests a vulnerability export filtered by the given CVE IDs and iterates over the returned findings.",
          "ev": "tenable_mcp_mssp/bulk_vm_cve_query_worker.py#L64 pyTenable vulnerability export call"
        }
      ],
      "model": {
        "who": "client",
        "text": "The MCP client's model (Codex, Claude, Gemini CLI or similar) chooses and calls the server's tools.",
        "ev": "README.md#L31 prerequisite names the MCP clients that drive the server"
      }
    },
    "needs": [
      {
        "kind": "credentials",
        "text": "Tenable MSSP Portal API keys with Administrator privileges.",
        "ev": "README.md#L26 prerequisite"
      },
      {
        "kind": "account",
        "text": "Child containers licensed with hexa for the Hexa AI MCP Server tools.",
        "ev": "README.md#L27 prerequisite"
      },
      {
        "kind": "account",
        "text": "Child containers licensed with vm for the bulk_vm_cve_query tool.",
        "ev": "README.md#L28 prerequisite"
      },
      {
        "kind": "runtime",
        "text": "Python 3.14 or newer.",
        "ev": "README.md#L29 prerequisite"
      },
      {
        "kind": "tools",
        "text": "uv or pip for the local installation.",
        "ev": "README.md#L30 prerequisite"
      },
      {
        "kind": "setting",
        "text": "The parent keys must be set as TENABLE_MSSP_PORTAL_ACCESS_KEY and TENABLE_MSSP_PORTAL_SECRET_KEY in the environment or the .env file.",
        "ev": "tenable_mcp_mssp/config.py#L14-15 names of the required environment variables"
      }
    ],
    "installer": [
      {
        "text": "The documented download is a git clone of the repository's default branch, without a tag or commit in the command.",
        "ev": "README.md#L37 clone command in the install steps"
      },
      {
        "text": "Copies .env.example to .env inside the clone and sets it to mode 600 before the portal keys are entered.",
        "ev": "README.md#L68-72 environment file steps"
      },
      {
        "text": "Registers the server with claude mcp add, pointing at the clone's .venv Python and the module tenable_mcp_mssp.server.",
        "ev": "README.md#L93-95 Claude registration command"
      }
    ],
    "limits": [
      {
        "text": "Each tool that acts on a child container generates temporary API keys for that child through the MSSP Portal when no unexpired key is cached, and holds them in process memory.",
        "ev": "tenable_mcp_mssp/child_credentials.py#L180-188 generates fresh child keys when none are stored"
      },
      {
        "text": "call_tenable_mcp_tool forwards the caller's tool name and arguments to Tenable's hosted MCP server through call_tool.",
        "ev": "tenable_mcp_mssp/tenable_mcp_client.py#L80-82 forwards the requested tool name and arguments"
      },
      {
        "text": "The rule to run bulk_vm_cve_query only on explicit request is written in the tool description; the handler starts the export on any call.",
        "ev": "tenable_mcp_mssp/server.py#L151-160 description text and handler of bulk_vm_cve_query"
      },
      {
        "text": "The child container allowlist is optional; when TENABLE_MCP_MSSP_CHILD_CONTAINER_SCOPE_FILE is unset or blank, all otherwise eligible child containers are allowed.",
        "ev": "README.md#L109 scope behaviour without a file"
      },
      {
        "text": "bulk_vm_cve_query builds its child list from every child account the MSSP account lister returns and counts all of them as queued.",
        "ev": "tenable_mcp_mssp/bulk_vm_cve_query.py#L246-252 builds the child list from all listed accounts"
      },
      {
        "text": "Bulk runs write raw JSONL findings per child and an aggregate CSV under results/bulk-vm-cve-query/<run-id>/; run state in memory is lost on restart, the files stay on disk.",
        "ev": "AGENTS.md#L25 author statement on bulk artifacts and in-memory state"
      },
      {
        "text": "The server reads .env from its current working directory, which is the directory the MCP client starts it in.",
        "ev": "tenable_mcp_mssp/config.py#L13 relative default path of the .env file"
      },
      {
        "text": "Action tools block expired containers, malformed expiration data, missing child accounts and licenseType ao containers, also when they are on the allowlist.",
        "ev": "README.md#L119 exclusions that the allowlist does not override"
      },
      {
        "text": "Multi-child fan-out runs at a fixed concurrency of 10 child containers, and each child run times out after 600 seconds.",
        "ev": "AGENTS.md#L23 author states the hard-coded fan-out limits"
      },
      {
        "text": "The child container allowlist is loaded once and cached with lru_cache for the life of the server process.",
        "ev": "tenable_mcp_mssp/child_container_scope.py#L54-55 scope loader is wrapped in lru_cache(maxsize=1)"
      },
      {
        "text": "When the configured scope file cannot be read, scope loading stops with a ConfigurationError.",
        "ev": "tenable_mcp_mssp/child_container_scope.py#L69-75 unreadable scope file raises ConfigurationError"
      },
      {
        "text": "The author's design rule is that generated child keys stay in memory only and are never logged, returned, written or persisted.",
        "ev": "AGENTS.md#L7 author's handling rule for generated child API keys"
      }
    ],
    "not_found": [
      {
        "field": "maturity",
        "searched": "README.md, AGENTS.md, pyproject.toml for preview, alpha, beta, experimental, stable, deprecated, unmaintained (only hit is a readthedocs /en/stable/ URL)"
      },
      {
        "field": "not_for",
        "searched": "README.md, AGENTS.md for out-of-scope, authorised-use-only or do-not-use statements"
      },
      {
        "field": "capability_count",
        "searched": "README.md Features and Available Tools, AGENTS.md, pyproject.toml for an author-stated number of tools"
      },
      {
        "field": "run_mode",
        "searched": "README.md install and logging sections, pyproject.toml [project.scripts], server.py main() and mcp.run() for alternative transports or flags"
      },
      {
        "field": "listen",
        "searched": "server.py mcp.run() call, README.md, pyproject.toml, all tenable_mcp_mssp/*.py for host, port, bind or HTTP transport settings"
      },
      {
        "field": "autonomy",
        "searched": "not applicable: entry type is mcp-server, not agent"
      }
    ]
  },
  "verdict": null,
  "runs": []
}
