Skip to main content
Glama
kasireddy-sec

Tenable Security MCP

๐Ÿ” Tenable Security MCP

AI-Assisted Vulnerability Management with Claude Desktop


Related MCP server: Nessus MCP Server

๐Ÿ“‹ Executive Summary

Tenable Security MCP is a cutting-edge Model Context Protocol (MCP) server that unifies vulnerability management intelligence, enabling security teams to leverage AI for rapid threat prioritization and remediation planning.

๐ŸŽฏ Transform this:

Nessus โ†’ CVE โ†’ CVSS โ†’ EPSS โ†’ CISA KEV โ†’ Exploit Research โ†’ Risk Assessment

โœจ Into this:

Claude Desktop โ†’ Tenable Security MCP โ†’ Unified Intelligence โ†’ Actionable Insights

๐ŸŽฏ Core Capabilities

๐Ÿ” Nessus Operations

  • โœ… Retrieve server information and scan details

  • โœ… List, launch, and manage scans

  • โœ… Access granular host and vulnerability data

  • โœ… Manage policies, folders, and agent deployments

๐Ÿ›ก๏ธ Vulnerability Intelligence

  • โœ… Enrich findings with CVE details (NVD)

  • โœ… Cross-reference CVSS scores & EPSS probabilities

  • โœ… Check CISA Known Exploited Vulnerabilities (KEV)

  • โœ… Aggregate public exploit and PoC intelligence

๐Ÿ“Š Risk Prioritization Engine

Intelligent correlation across multiple signals:

  • ๐Ÿ”ด Nessus severity ratings

  • ๐Ÿ“ˆ CVSS base & temporal scores

  • โšก EPSS exploitation probability

  • ๐Ÿšจ CISA KEV status

  • ๐Ÿ’ฃ Public exploit availability

  • ๐Ÿข Asset context & criticality

๐Ÿ’ฌ Example Queries

"Analyze my latest scan and list critical findings"
"Get complete intelligence for CVE-2024-3094"
"Which vulnerabilities require urgent remediation?"
"Prioritize findings using severity, CVSS, EPSS, and exploit data"
"Create a remediation roadmap for high-risk assets"

๐Ÿ—๏ธ Architecture Overview

๐Ÿ”— Integration Model

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         Claude Desktop Application              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚
                   โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Tenable Security MCP Server (Python)          โ”‚
โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚             โ”‚              โ”‚                โ”‚
   โ–ผ             โ–ผ              โ–ผ                โ–ผ
Nessus      NVD/CVE        EPSS/CISA        Exploit
(Local)     (Public)       (Public)         Intelligence

๐Ÿ”’ Security Design

  • ๐ŸŸข Nessus stays local - No public internet exposure required

  • ๐ŸŸข MCP handles external APIs - Isolated API credential management

  • ๐ŸŸข Zero trust - All data validated and contextualized

  • ๐ŸŸข Analyst-in-the-loop - AI assists, humans decide


๐Ÿš€ Quick Start

๐Ÿ“ฆ Prerequisites

  • โœ… Claude Desktop (latest version)

  • โœ… Nessus Essentials or Professional/Expert

  • โœ… Nessus API keys (access key + secret key)

  • โœ… Git installed


๐Ÿ”ง Installation Guide

Step 1๏ธโƒฃ: Clone Repository

git clone https://github.com/kasireddy-sec/tenable-security-mcp.git
cd tenable-security-mcp

Step 2๏ธโƒฃ: Build Extension

  1. Push changes to GitHub (or trigger manually)

  2. Navigate to: Actions โ†’ build.yml

  3. Click Run workflow

  4. Wait for completion (2-3 minutes)

  5. Download extension.mcpb artifact

Option B: Local Build

# Install MCP build tools
pip install -r requirements.txt

# Build the extension
mcp build

# Verify output
ls dist/extension.mcpb

Step 3๏ธโƒฃ: Install to Claude Desktop

  1. Open Claude Desktop

  2. Navigate to: Settings โ†’ Extensions โ†’ Advanced Settings

  3. Click Install Extension

  4. Select extension.mcpb file

  5. Enable the extension

Step 4๏ธโƒฃ: Configure Nessus

  1. Go to: Settings โ†’ Extensions โ†’ Tenable Security MCP

  2. Click Configure and enter:

    • Nessus URL: https://localhost:8834

    • API Access Key: your_access_key_here

    • API Secret Key: your_secret_key_here

Step 5๏ธโƒฃ: Verify Installation

# In Claude Desktop, test with:
"Get my Nessus server information"

โœ… You should receive live Nessus data!


๐Ÿ“Š Practical Security Workflows

๐Ÿ”ด Critical Incident Response

"Analyze my latest scan and list critical findings with affected hosts"

โ†’ Immediate visibility into high-risk assets

๐Ÿ” CVE Deep Dive

"Get complete intelligence for CVE-2024-3094: CVSS, EPSS, CISA KEV, and exploit status"

โ†’ Comprehensive threat context in seconds

๐Ÿ“ˆ Smart Prioritization

"Which 5 vulnerabilities pose highest risk based on EPSS, exploitability, and asset criticality?"

โ†’ Data-driven remediation sequencing

๐Ÿ—“๏ธ Coverage Assessment

"Identify assets that haven't been scanned in the last 7 days"

โ†’ Risk visibility across your estate

๐Ÿ› ๏ธ Remediation Planning

"Create a prioritized roadmap for findings above CVSS 7.0 with CISA KEV or public exploits"

โ†’ Structured remediation strategy


๐Ÿข Technology Stack

Component

Technology

Language

Python 3.9+

Framework

MCP Python SDK

Transport

HTTPS/REST

APIs

Nessus, NVD, EPSS, CISA KEV, Exploit Intelligence

Build Tool

GitHub Actions + MCP Build


๐Ÿ“ Project Structure

tenable-security-mcp/
โ”œโ”€โ”€ ๐Ÿ“‚ .github/workflows/
โ”‚   โ”œโ”€โ”€ test.yml              # Automated testing pipeline
โ”‚   โ””โ”€โ”€ build.yml             # MCPB packaging & release
โ”œโ”€โ”€ ๐Ÿ“‚ extension/
โ”‚   โ”œโ”€โ”€ manifest.json         # Extension metadata
โ”‚   โ”œโ”€โ”€ pyproject.toml        # Dependencies & configuration
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ src/
โ”‚       โ””โ”€โ”€ server.py         # MCP server implementation
โ”œโ”€โ”€ pyproject.toml            # Project configuration
โ””โ”€โ”€ README.md                 # This file

๐Ÿ”„ Build & Release Pipeline

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚       Developer Pushes to GitHub                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     โ”‚
                     โ–ผ
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚  GitHub Actions Triggered  โ”‚
        โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜
             โ”‚                   โ”‚
             โ–ผ                   โ–ผ
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚Run Tests โ”‚      โ”‚ Build MCPB   โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚
                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚ extension.mcpb Created โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚
                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚ Download from Workflow    โ”‚
                     โ”‚ Install to Claude        โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โš ๏ธ Known Issues & Solutions

๐ŸชŸ Windows MSIX Installation Issue

Problem:

can't open file ... src/server.py
[Errno 2] No such file or directory

Root Cause: MSIX resolves MCP server paths incorrectly

Solution: Use standard Claude Desktop installer (not MSIX/enterprise)

โœ… Recommended: Standard installer for Windows users

๐Ÿ UV / Python Permission Denied

Problem:

Access is denied (installing dependencies)

Root Cause: Microsoft Store Python has restricted write permissions

Solution: Extension uses isolated user-level UV environment

โœ… No manual action needed - automatic fallback enabled


๐Ÿ”’ Security Best Practices

โœ… DO

  • ๐ŸŸข Store Nessus API credentials in configuration (never commit to repo)

  • ๐ŸŸข Use standard Claude Desktop installer

  • ๐ŸŸข Validate Claude's recommendations before production changes

  • ๐ŸŸข Treat exploit intelligence as supporting evidence

  • ๐ŸŸข Maintain audit logs of all vulnerability assessments

โŒ DON'T

  • ๐Ÿ”ด Commit API credentials to GitHub

  • ๐Ÿ”ด Expose local Nessus to public internet

  • ๐Ÿ”ด Scan systems without proper authorization

  • ๐Ÿ”ด Treat AI recommendations as definitive without analyst review

  • ๐Ÿ”ด Share sensitive finding details in untrusted environments


๐Ÿค Contributing

We welcome contributions from the security community!

Development Workflow

# 1. Fork repository
git clone https://github.com/YOUR-USERNAME/tenable-security-mcp.git

# 2. Create feature branch
git checkout -b feature/your-feature-name

# 3. Make changes to extension/src/server.py
# ... your code changes ...

# 4. Test locally
mcp build
mcp run

# 5. Commit and push
git add .
git commit -m "Add: your feature description"
git push origin feature/your-feature-name

# 6. Submit Pull Request
# GitHub Actions will automatically build and test

Contribution Guidelines:

  • ๐Ÿ“‹ Follow Python PEP 8 style guide

  • ๐Ÿงช Include test cases for new features

  • ๐Ÿ“ Update documentation

  • โœ… Ensure GitHub Actions passes all checks


๐Ÿ“„ License

MIT License - Open source and free to use

See LICENSE file for complete details


๐ŸŽฏ Vision

Transform vulnerability management from reactive firefighting to strategic risk management.

  • ๐Ÿ” Faster Analysis - Minutes instead of hours

  • ๐Ÿ’ก Better Decisions - AI-assisted prioritization

  • ๐Ÿ“‰ Reduced Risk - Intelligent remediation

  • โฑ๏ธ Increased Velocity - Automate the routine


๐Ÿ“ž Support & Resources

Resource

Link

GitHub Issues

Report Bug / Request Feature

Documentation

README.md (you are here)

Tenable Docs

Nessus API Reference

CISA KEV

Known Exploited Vulnerabilities

EPSS

Exploit Prediction Scoring System


๐Ÿš€ Built to Turn Raw Nessus Findings into Actionable Security Intelligence

Tenable Security MCP โ†’ Faster Analysis โ†’ Better Decisions โ†’ Reduced Risk

License: MIT Python 3.9+

Made for Security Professionals | Built on MCP | Powered by Claude AI

Available Tools

32 tools
analyze_emerging_threatsB

Identify high-priority emerging vulnerability signals in a Nessus scan.

Signals include:

  • CISA KEV

  • high EPSS

  • public exploit evidence

  • high CVSS

  • critical/high Nessus severity

This does NOT claim that an unknown zero-day has been discovered. It identifies vulnerabilities requiring urgent investigation.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
max_itemsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does add meaningful interpretive context: it clarifies the signals used and explicitly sets expectations by stating it does NOT claim an unknown zero-day was found. It does not disclose whether the operation is read-only, its cost/runtime, or how the underlying scan data is aggregated, so behavioral disclosure is partial rather than rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first sentence, the signal list is scannable, and the expectation-setting caveat lands last. It is slightly verbose in its line-broken formatting but every sentence contributes information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value structure need not be explained, and the description defines the analysis scope well. The gap is on the input side: neither parameter is described, and max_items behavior is unaddressed, leaving the definition adequate but not fully self-sufficient for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across both parameters. The description never mentions scan_id or max_items, and notably omits what max_items (default 25) truncates โ€” a meaningful ambiguity for a signal-ranking tool. With such low structured coverage, the description should have compensated and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb+resource (identify emerging vulnerability signals in a Nessus scan) and enumerates the exact signals used (CISA KEV, EPSS, public exploit, CVSS, Nessus severity), so the agent knows precisely what the tool produces. It does not, however, contrast itself with siblings like prioritize_vulnerabilities or the individual get_cisa_kev_status/get_epss_score tools, leaving differentiation implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence ('identifies vulnerabilities requiring urgent investigation') hints at intent but never states when to call this versus alternatives such as prioritize_vulnerabilities or the granular KEV/EPSS/exploit lookups in the sibling list. There are no exclusion conditions or prerequisite notes, so routing must be inferred by the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_security_contextC

Build a normalized security-intelligence record suitable for downstream RAG or LLM reasoning.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it does not say which sources are aggregated, whether external network calls or rate limits apply, what authentication is needed, or whether the output is cached or expensive to produce. For an aggregation-style tool that likely fans out to multiple intelligence sources, this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded, and contains no filler, which is structurally sound. However, brevity here reflects under-specification rather than efficiency: the single sentence is too thin to carry the tool's responsibilities.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, which helps. But with no annotations, no parameter documentation, no provenance of aggregated sources, and no routing guidance against many overlapping siblings, the definition is not complete enough for an agent to invoke this confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about the single parameter, so it does not compensate for the coverage gap as the rules require. The name 'cve_id' is largely self-explanatory, which keeps this from being a 1, but format expectations (e.g., CVE-YYYY-NNNN) and validation behavior are left entirely to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb ('Build') and a resource ('normalized security-intelligence record'), which is more than a tautology. However, it does not distinguish this from close siblings like get_cve_intelligence and get_complete_cve_intelligence, which presumably also aggregate CVE intelligence, so an agent cannot reliably tell which one to pick. The stated purpose is also abstract ('suitable for downstream RAG or LLM reasoning') rather than naming what the record actually contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no naming of alternatives, despite a large sibling set containing several near-overlapping intelligence tools. The phrase 'suitable for downstream RAG or LLM reasoning' hints at a use case but stops short of telling the agent when this should be preferred over get_cve_intelligence or get_complete_cve_intelligence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_assets_not_scanned_sinceA

Find Nessus hosts whose latest known scan result is older than the specified number of days.

Example: find_assets_not_scanned_since(7)

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It usefully clarifies the semantics of "not scanned since" (based on latest known scan result), but does not state that it is a read-only query, mention permissions, pagination, or any limits on the result set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with the defining condition front-loaded and a compact example that resolves ambiguity about the argument. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. For a simple one-parameter query tool the description is largely sufficient, though the absence of annotations means the missing read-only/permission context is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single 'days' parameter, so the description must compensate. It does explain that the threshold is measured in days via 'older than the specified number of days' and reinforces it with the find_assets_not_scanned_since(7) example, but omits the default of 7 that exists in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find) plus resource (Nessus hosts) and the exact selection criterion (latest known scan result older than N days). It is clearly distinguishable from sibling read tools like list_nessus_scans or get_nessus_scan_history, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case (locating stale or unscanned assets) is implied by the condition in the description but never stated as guidance, and no alternative sibling tool is offered for related queries. Adequate but leaves routing inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cisa_kev_statusA

Check whether a CVE is listed in the CISA Known Exploited Vulnerabilities catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It conveys that this is a lookup returning membership status (a safe read), but says nothing about authentication needs, rate limits, or what happens on an unknown CVE. For a simple read-only query with an output schema, this is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste; the purpose is stated before any qualification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter lookup with an output schema (so return shape needn't be documented), the description is nearly complete. The only gap is no guidance on the relationship to sibling CVE intelligence tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required parameter cve_id. The description implies the parameter is a CVE identifier, but adds no format detail (e.g., 'CVE-YYYY-NNNN') beyond the schema's field title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check whether') and resource ('CISA Known Exploited Vulnerabilities catalog') applied to a CVE. It is clearly distinguishable from siblings like get_epss_score and get_cve_intelligence, which return different intelligence rather than a KEV membership check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use it to determine KEV listing for a CVE. However, with a crowded sibling set of CVE-related tools (get_cve_intelligence, get_epss_score, get_exploit_intelligence), no explicit guidance is given on when this is preferred or how it complements those tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_complete_cve_intelligenceB

Combine NVD, CISA KEV, EPSS and public exploit intelligence for one CVE.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it does disclose meaningful behavioral context: it merges four distinct sources (NVD, CISA KEV, EPSS, exploit intel) into one result. It says nothing about read-only nature, permissions, rate limits, or how conflicts between feeds are resolved, so gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence that front-loads the combined-source behavior. Nothing is wasted, though the near-total brevity leaves useful routing information unwritten.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the aggregation behavior is stated. But given a crowded sibling set with overlapping CVE tools, the description is too thin to let an agent confidently select this tool over get_cve_intelligence or the individual feed tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It states 'for one CVE', which conveys that the single parameter is a single CVE identifier rather than a list or range. That is a small but real addition over the bare 'cve_id' field, though it adds no format details (e.g., CVE-YYYY-NNNN).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (CVE intelligence) and scope ('for one CVE') plus the aggregation behavior, naming the exact feeds combined (NVD, CISA KEV, EPSS, exploit intel). However, it never distinguishes itself from the near-identical sibling get_cve_intelligence, leaving the agent to guess which to call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no indication of when this aggregated tool is preferred over the individual get_cisa_kev_status/get_epss_score/get_exploit_intelligence siblings, and no mention of prerequisites or exclusions. Usage must be fully inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cve_intelligenceC

Retrieve detailed vulnerability intelligence from NVD.

Includes:

  • description

  • CVSS v4

  • CVSS v3.1

  • CVSS v3.0

  • CWE

  • affected configurations

  • references

  • publication date

  • modification date

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It offers no auth requirements, rate-limit context, or whether the tool reaches out to an external service (NVD), and doesn't disclose anything about caching or failure modes for unknown CVE IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by a clean bullet list of returned fields. Efficient and easy to scan, though the bullet list is largely redundant with the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value enumeration in the description is redundant, and the field list is the only substantive content. The description lacks sibling differentiation and identifier-format guidance, leaving it minimally adequate given the tool's role in a crowded CVE-intelligence family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single cve_id parameter has no description anywhere. The description doesn't clarify the expected CVE identifier format, so an agent must infer it, which is a real gap despite the low parameter count.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Retrieve detailed vulnerability intelligence from NVD'), which names the source and scope. However, it never distinguishes itself from close siblings like get_complete_cve_intelligence or get_tenable_cloud_vulnerability, leaving the agent to guess which retrieval tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance is provided. With siblings such as get_complete_cve_intelligence and search_security_intelligence present, an agent has no basis for choosing this tool over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_epss_scoreC

Get the current FIRST EPSS score and percentile for a CVE.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' implies a read operation, but the description does not state auth requirements, rate limits, data freshness, or error behavior, and only identifies the returned metrics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values. However, for a one-parameter read tool with no annotations, it omits parameter format guidance and usage context, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the single cve_id parameter. It says 'for a CVE' but does not specify the expected CVE identifier format or validation rules, adding only minimal meaning beyond the schema field name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: get the current FIRST EPSS score and percentile for a CVE. It is clear what the tool does, but it does not differentiate itself from sibling intelligence tools such as get_cve_intelligence or get_complete_cve_intelligence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool instead of alternatives, nor any stated prerequisites or exclusions. The use case is only implied by the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_exploit_intelligenceB

Search public GitHub repository metadata for exploit, PoC, scanner and proof-of-concept references related to a CVE.

This is intelligence evidence, not proof that an exploit works against a specific target.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, and it does disclose one meaningful trait: the results are intelligence evidence, not proof of exploitability. However, it says nothing about auth requirements, rate limits, or result freshness, so behavioral context remains thin for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core purpose front-loaded and the caveat placed after; every phrase earns its place with no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be described, and the single-parameter surface is simple. Still, the definition leaves the agent without guidance on how this differs from the other CVE/intel siblings, which is the main gap for correct selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it only implies the parameter is a CVE identifier ("related to a CVE"). The name cve_id is largely self-documenting, but no format, expected pattern, or accepted identifier style is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Search") and resource ("public GitHub repository metadata for exploit, PoC, scanner and proof-of-concept references") tied to a CVE. The GitHub-source framing distinguishes it from a generic intel search, but it never names or differentiates itself from siblings like get_cve_intelligence, get_complete_cve_intelligence, or search_security_intelligence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers a caveat about what the data means but gives no when-to-use condition, no when-not-to-use, and no routing to the alternative intel tools in the sibling list. An agent still has to guess whether to call this or get_cve_intelligence first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mcp_capabilitiesB

Show the capabilities available through the Tenable Security MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, and it adds essentially nothing: it does not say the call is read-only, that it has no side effects, or that it returns a catalog of tools/capabilities. For a zero-parameter meta tool the risk is low, but the description contributes no behavioral context beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. Every word earns its place and the object of the action comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and a zero-param tool needs little parameter detail. However, for a meta/discovery tool that exists to orient an agent, the omission of any 'call this first / use this to discover available tools' guidance leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies and there is nothing for the description to clarify. Schema coverage is nominally 100% on an empty property set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb ('Show') and a specific resource ('capabilities available through the Tenable Security MCP server'), which is unambiguous and readily separable from the concrete vulnerability-management siblings. It stops short of explicitly contrasting itself with any sibling, but the meta/introspective nature is evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus the other 30 tools, nor any suggestion that it is a discovery/introspection entry point. The intent is only inferable from the tool name, not from the description text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_host_detailsC

Get vulnerability information for a host in a scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
host_idYes
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It implies a read operation but says nothing about authentication needs, rate limits, pagination, or whether it reports all findings or a summary. Only the most minimal behavioral context is implied by the verb 'Get'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is efficient and front-loaded with the verb and resource, but it is under-specified rather than appropriately concise for a two-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Still, with two required undocumented parameters, no annotations, and no usage context, the description leaves significant gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain what scan_id and host_id refer to, their expected format, or how they relate (e.g., host_id scoped within scan_id). Both required parameters are effectively undocumented beyond their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('vulnerability information') scoped to 'a host in a scan', which is clear enough to distinguish from listing scans or plugins. However, it does not differentiate itself from close siblings like get_nessus_scan_details or get_nessus_vulnerability_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling retrieval tools (scan details, vulnerability details, plugins). No prerequisites, no exclusions, no routing hint is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_pluginC

Get information about a Nessus plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
plugin_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the read-like framing of "Get." It does not state what happens for an invalid plugin_id, whether it hits a local or remote source, or any auth/latency characteristics. An output schema exists, which offloads return-value explanation, but the operational behavior remains opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence that is front-loaded and free of filler. It earns its place, though the extreme brevity borders on under-specification rather than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with an output schema covering return shape, the description is minimally adequate: an agent can call it correctly by passing a plugin ID. However, with no annotations and no parameter explanation, the definition leaves lookup source and error behavior unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required parameter plugin_id is an undocumented integer. The description says nothing about what a plugin ID is, its expected range/format, or where an agent would obtain one, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ("Get") with a specific resource ("Nessus plugin"), so an agent knows exactly what entity is being fetched. It does not distinguish this from related siblings such as get_nessus_vulnerability_details or list_nessus_vulnerabilities, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like get_nessus_vulnerability_details or search_security_intelligence, and no prerequisites or context are given. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_scan_detailsC

Get details and latest results for a Nessus scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it says nothing beyond the operation itself. The word 'Get' implies a read, but there is no statement about permissions, whether historical vs live data is returned, or any scope limits, leaving the agent to guess at behavior for an undocumented tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, which is appropriately sized for a simple getter. It is arguably too terse for the surrounding tool family, but there is no wasted prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema covers return values, so the description needn't explain them, but with 0% parameter documentation and four or more overlapping scan siblings, the definition leaves gaps an agent must resolve by trial. For a tool in a crowded namespace, more differentiation and parameter context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required scan_id parameter, so the description must compensate and does not. It never explains where scan_id comes from (e.g. list_nessus_scans) or its format, adding no meaning beyond the bare schema entry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Get) and resource (a Nessus scan) and adds scope via 'details and latest results', which hints it returns current state rather than history. It does not, however, distinguish itself from close siblings like get_nessus_scan_status, get_nessus_scan_history_details, or get_nessus_host_details, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus the several other scan-related siblings, nor any prerequisite (e.g. a completed scan, a valid scan_id). The sentence describes the operation but does nothing to route the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_scan_historyC

Get historical runs of a Nessus scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether this is a safe read-only operation, authentication requirements, pagination behavior, or any other operational trait. 'Get' implies read-only, but that is left to inference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence with the resource front-loaded and no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and has an output schema, so return values need not be described. However, the description fails to distinguish this from get_nessus_scan_history_details and provides no parameter or usage context, leaving key selection ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required scan_id parameter. The description mentions 'a Nessus scan' but adds no format, type, or meaning beyond what the schema title already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: getting historical runs of a Nessus scan. It does not, however, differentiate itself from likely sibling get_nessus_scan_history_details or explain what kind of history is returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no mention of alternatives, and no exclusions. Usage is only implied by the verb 'Get historical runs'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_scan_history_detailsC

Get details for a specific historical scan result.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
history_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only operation, what permissions are needed, or what the result looks like beyond 'details'. Has output schema so return format is partially covered, but no behavioral traits are described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence with no wasted words. It is front-loaded with the verb and resource, though it is quite terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, the 0% schema description coverage, and the existence of many sibling get_* tools, the description is insufficient. It does not explain the relationship between scan_id and history_id or how to obtain them, which is critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but provides no information about the required scan_id and history_id parameters. However, the parameter names are self-explanatory, and the tool is simple (2 integer IDs), so the schema structure itself is largely intuitive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (details for a specific historical scan result), which is clear and distinguishes it from the sibling get_nessus_scan_history (which likely lists history). However, it does not explicitly contrast with its closest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus list_nessus_scans, get_nessus_scan_history, or get_nessus_scan_details. The agent is left to infer usage from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_scan_statusC

Get the current status of a Nessus scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It conveys only that this is a read-like 'get' operation, but does not mention authentication needs, rate limits, whether the status is polled or real-time, or any other operational trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Its brevity is appropriate for a simple single-parameter getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be described. However, with no annotations, no parameter description, and many sibling tools, the definition lacks enough context to fully disambiguate usage or parameter sourcing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description does not explain the required scan_id parameter beyond implying it identifies a Nessus scan. It adds almost no meaning beyond the schema's 'integer' type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get the current status of a Nessus scan.' The word 'current' implicitly separates it from scan history and details tools, but it does not explicitly name or exclude any sibling, leaving some ambiguity with get_nessus_scan_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings like get_nessus_scan_details or get_nessus_scan_history. The intended use is implied by 'current status,' but no context, prerequisites, or alternatives are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_server_infoB

Get basic information about the Nessus server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It states the tool is a read-only info fetch, which implies non-destructiveness, but it doesn't mention permissions or response characteristics. Given the presence of an output schema, rich behavioral detail is less critical, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence with no wasted words and the core purpose front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-param tool with an output schema, the description is minimally sufficient. However, it lacks any mention of what information is returned or when to use it over the similar cloud server info tool, leaving a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters and the schema has 100% description coverage (vacuously), so there are no semantics to clarify. A baseline of 4 is correct for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (Nessus server information), clear enough for an agent. It doesn't differentiate from the sibling get_tenable_cloud_server_info, which likely exists for a parallel purpose, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like get_tenable_cloud_server_info or search_security_intelligence. With many siblings, this omission makes selection harder.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nessus_vulnerability_detailsC

Get detailed information and plugin output for a vulnerability.

ParametersJSON Schema
NameRequiredDescriptionDefault
host_idYes
scan_idYes
plugin_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but nothing states whether this requires specific scan/host context, whether the lookup is expensive, or what authorization is needed; the phrase 'plugin output' hints at potentially large payloads that are never qualified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler and the core action front-loaded. It is efficient, though the sentence is arguably too short to carry the required context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the operation is a simple three-parameter lookup. The remaining gaps are the undocumented parameters and absent behavioral context, which are real but modest for a tool this simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and all three parameters (scan_id, host_id, plugin_id) are undocumented in both schema and description. The description only implies a linkage between scan, host, and plugin without explaining the composite key or the ID formats, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get detailed information and plugin output for a vulnerability'), which is clearer than a bare restatement of the name. However, it never differentiates itself from close siblings like get_nessus_plugin or get_nessus_scan_details, so an agent cannot tell from the description alone which lookup to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the alternatives in the sibling list. The agent learns nothing about the conditions that select this tool over get_nessus_plugin or list_nessus_vulnerabilities.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tenable_cloud_assetC

Get details for a Tenable Vulnerability Management asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_uuidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. 'Get details' weakly implies a read-only operation, but nothing states permissions/auth requirements, rate limiting, or behavior when the UUID is unknown or the asset is inaccessible. An output schema exists, so return shaping is partly covered, but the safety/behavior profile is not.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no wasted words and the purpose front-loaded. It is efficient, though the brevity is part of why other dimensions are under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-UUID lookup with an existing output schema, the essentials are thin but workable. Missing details such as error behavior for invalid/absent UUIDs and the source of the UUID keep it at minimum-viable completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required parameter asset_uuid has no documentation in either schema or description. The description's mention of 'asset' only weakly ties to the parameter; it adds no format, source, or validity guidance for the UUID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (Tenable Vulnerability Management asset), and 'details' implies single-entity retrieval, implicitly distinguishing it from the sibling list_tenable_cloud_assets. It does not, however, explicitly name that sibling or clarify scope boundaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites or prerequisites like owning a valid asset_uuid, and no named alternative (e.g., list_tenable_cloud_assets for enumeration). The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tenable_cloud_server_infoC

Get information from the configured Tenable cloud environment.

Requires TENABLE_CLOUD_ACCESS_KEY and TENABLE_CLOUD_SECRET_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It does add one genuinely useful behavioral fact not in any structured field: the required credentials (TENABLE_CLOUD_ACCESS_KEY and TENABLE_CLOUD_SECRET_KEY). However, it says nothing about whether the call is read-only, rate limits, what 'configured environment' means, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded, no filler. It is terse but every line carries some information (the credential requirement), so it is efficient rather than hollow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple zero-parameter read, has an output schema (so return values needn't be explained), and the description supplies the auth requirement. But with no annotations, it leaves the safety profile (read vs. write) and the nature of the returned 'server info' ambiguous, and it does not distinguish itself from the many sibling informational tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so baseline is 4. The description does not need to explain parameters and correctly does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name ('Get information from the configured Tenable cloud environment') without specifying what information, what resource, or how it differs from siblings like get_nessus_server_info or list_tenable_cloud_assets. It is close to a tautology of the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no alternatives, no exclusions. The agent cannot tell from the description when this tool is preferable to get_nessus_server_info or any other informational sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tenable_cloud_vulnerabilityC

Get vulnerability information from Tenable Vulnerability Management.

ParametersJSON Schema
NameRequiredDescriptionDefault
plugin_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does not state that this is a read-only operation, whether authentication or specific permissions are required, or any other behavioral traits beyond the bare 'Get vulnerability information' phrasing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, so it is not bloated, but it is under-specified rather than efficiently informative. Every sentence should earn its place, and this one provides minimal actionable detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter that is completely undocumented, plus no annotations, the description is not complete enough for an agent to invoke it correctly. The output schema covers return values, but the description should at least clarify the plugin_id parameter and distinguish this tool from its list-oriented siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention the single required parameter plugin_id at all. It adds no meaning about what plugin_id represents or how it should be supplied, leaving the parameter entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb ('Get') and resource ('vulnerability information from Tenable Vulnerability Management'), but it is vague about what 'information' means and does not distinguish this tool from the sibling list_tenable_cloud_vulnerabilities. It also fails to indicate that this retrieves details for a single plugin given the required plugin_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as list_tenable_cloud_vulnerabilities or get_tenable_cloud_asset. The description gives no context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

launch_nessus_scanC

Launch a Nessus scan using its configured targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. 'Using its configured targets' is a useful detail (no target args needed), but it omits whether the launch is synchronous, whether it triggers side effects like network traffic, permission requirements, or error behavior for an invalid scan_id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste. It is efficiently sized, though its brevity borders on under-specification, which is penalized under contextual completeness rather than here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but this is an action tool with no annotations, an undocumented required parameter, and no note on side effects, preconditions, or failure handling. It is too thin for a scan-launching operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the sole parameter scan_id is not mentioned in the description at all. The description must compensate for the undocumented parameter but does not, leaving the agent to infer that scan_id identifies a pre-existing scan.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: launching a Nessus scan. The verb 'launch' implicitly distinguishes it from the sibling stop_nessus_scan, but the description never explicitly differentiates scope from related tools like list_nessus_scans or get_nessus_scan_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites (e.g., the scan must already exist and be configured), and no mention of alternatives. The agent gets no help deciding when this is the right tool versus inspecting or stopping a scan.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nessus_agentsC

List Nessus agents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure and provides none. It says nothing about authentication requirements, pagination, result limits, or whether the list is tenant-wide or scoped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single short sentence is structurally clean and front-loaded, but its brevity reflects under-specification rather than economical writing. It occupies minimal space without conveying useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the tool takes no arguments. However, with no annotations and no usage context, the agent is left without enough information to confidently select or scope this call among the many sibling listers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the scoring baseline the parameter dimension is 4. There is nothing for the description to clarify beyond what the empty schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"List Nessus agents" merely restates the tool name and title with no additional detail. It does identify a verb (list) and resource (Nessus agents), but with 30+ siblings it provides no differentiation from related list tools such as list_nessus_users or list_nessus_scans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to, or what alternatives exist. Given the crowded sibling set (list_tenable_cloud_assets, list_nessus_users, list_nessus_policies, etc.), an agent gets no help choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nessus_foldersB

List Nessus scan folders.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. 'List' implies a read operation, but it says nothing about whether results are paginated, whether authentication or a specific server context is required, or whether folders are user-scoped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. Nothing is wasted, though there is very little content to begin with.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and with zero parameters the schema burden is minimal. However, for a tool with no annotations, the description omits any behavioral context (read-only nature, scoping, empty-result meaning), leaving it only minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to add beyond the schema, which is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('Nessus scan folders'), which is unambiguous and matches its name exactly. It does not differentiate from sibling list tools (list_nessus_scans, list_nessus_policies), but the distinct resource makes confusion unlikely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, what the folders represent, or how they relate to siblings like list_nessus_scans. An agent must infer the use case entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nessus_policiesB

List available Nessus scan policies.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'List available' implies a non-destructive read, but the description says nothing about permissions, pagination, or whether results are filtered, which matters for a listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, which is appropriate for a trivial list operation. It is efficient, though borderline underspecified rather than maximally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-format details are covered elsewhere, but the description omits any hint of how policies relate to other tools (e.g., launch_nessus_scan takes a policy). For a zero-parameter reader this is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to convey; the baseline of 4 applies. The description correctly implies no input is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('Nessus scan policies'), so an agent immediately knows what it returns. It does not, however, distinguish itself from siblings such as list_nessus_scans or list_nessus_folders, which are adjacent concepts an agent might confuse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool versus alternatives (e.g., list_nessus_scans), nor any stated prerequisites such as needing policies to exist before launching a scan. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nessus_scansB

List all scans configured in Nessus.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral burden. It implies a read-only operation but doesn't explicitly state that it's safe, non-mutating, or describe return format. Since an output schema exists, return details are handled elsewhere, but safety profile is not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence that front-loads the action and resource. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no params, output schema exists) and lack of annotations, the description is adequate but minimal. It doesn't clarify the scope (e.g., all scans across folders?) or relationship to sibling tools, leaving some gaps for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, making parameter semantics a non-issue. The description doesn't need to explain parameters, and the schema is empty with 100% coverage. Baseline for zero params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (scans configured in Nessus), which clearly distinguishes it from mutation siblings like launch_nessus_scan and stop_nessus_scan. However, it doesn't differentiate from get_nessus_scan_details or list_nessus_scan_history, which are related read operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this tool versus alternatives like get_nessus_scan_details or get_nessus_scan_status. The description provides no context about use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nessus_usersB

List users configured in Nessus.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about permissions required, whether disabled/system users are included, result size, or pagination. 'List' implies a safe read, but that is inferred rather than stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence that front-loads the verb and resource with no filler or redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values, and with zero input parameters there is little else to specify. It is nearly complete for a trivial list call, losing a point only for omitting any note on result scope or permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline-4 case: there is no parameter syntax for the description to compensate for. The description's scope statement ('users configured in Nessus') is consistent with the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (users configured in Nessus), which is unambiguous and clearly distinct from sibling list tools such as list_nessus_agents and list_nessus_policies. It does not, however, explicitly differentiate itself from those siblings or clarify scope (e.g. all users vs. active users), so it falls just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no indication of when to call this tool versus alternatives, no prerequisites, and no exclusions. For a zero-parameter list tool embedded among many Nessus listing tools, some routing guidance would have been valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nessus_vulnerabilitiesA

List vulnerabilities discovered in a Nessus scan.

Optional filters:

  • severity: info, low, medium, high, critical

  • cve: CVE identifier

  • host: hostname/IP fragment

ParametersJSON Schema
NameRequiredDescriptionDefault
cveNo
hostNo
scan_idYes
severityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'List' strongly implies a non-destructive read, and the filter list hints at scoping behavior, but the description says nothing about result volume, pagination, or any auth/permission requirements. Adequate but thin for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One identifying sentence followed by a compact bulleted filter list. Front-loaded, zero filler, and the enumerated severity values are immediately scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Still, for a 4-param tool with 0% schema coverage the description leaves the required scan_id unexplained and gives no routing versus the sibling vulnerability-detail tools, so it is merely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does document three of four parameters including the enumerated severity values (info/low/medium/high/critical) and the fragment-matching nature of 'host'. It notably omits scan_id, the single required parameter, whose meaning is only obliquely implied by 'in a Nessus scan'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: listing vulnerabilities discovered in a Nessus scan, which clearly distinguishes it from mutation tools like launch_nessus_scan. However, it does not differentiate itself from the similarly-named sibling get_nessus_vulnerability_details or list_tenable_cloud_vulnerabilities, leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage by presenting optional filters and their values, so a caller knows it is a filtered enumeration over a single scan. But there is no explicit when-to-use guidance and no exclusion pointing to get_nessus_vulnerability_details for single-vulnerability lookups or to the cloud equivalents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tenable_cloud_assetsC

List assets from Tenable Vulnerability Management.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not disclose pagination behavior, return volume, whether the limit parameter caps results, or any permissions/rate-limit considerations, which are relevant for a list endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single clear sentence with no waste, front-loading the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and with only one optional parameter the surface is small. Still, for a list tool among many siblings, the description lacks scope and pagination context that would make invocation reliable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single 'limit' parameter has no description in either the schema or the tool description. The description does not explain what the limit controls or its default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('List assets from Tenable Vulnerability Management'), which is clear enough to identify the operation. However, it offers no differentiation from siblings like get_tenable_cloud_asset or list_tenable_cloud_vulnerabilities, leaving the agent to infer scope boundaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The agent must guess whether this lists all assets, filtered assets, or assets tied to a specific scan or vulnerability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tenable_cloud_vulnerabilitiesC

List vulnerabilities from Tenable Vulnerability Management.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about read-only safety, pagination, default page size behavior, or rate limits. A single sentence restating the name is insufficient for a listing endpoint with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler or redundancy. It is efficient, though arguably under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but with no annotations, an undocumented limit parameter, and no listing/pagination behavior, the definition is too thin for the agent to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'limit' parameter has 0% schema description coverage and no default explanation in the schema beyond a value of 100. The description does not mention the parameter at all, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('List') and resource ('vulnerabilities') scoped to Tenable Vulnerability Management, which separates it from Nessus-hosted tools. However, it does not distinguish itself from close siblings like get_tenable_cloud_vulnerability (singular retrieval) or list_nessus_vulnerabilities, leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this list call versus the singular get_tenable_cloud_vulnerability or the Nessus equivalents, and no mention of prerequisites or pagination expectations. The agent gets context from the name only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prioritize_vulnerabilitiesB

Prioritize vulnerabilities from a Nessus scan using:

  • Nessus severity

  • CVSS

  • EPSS

  • CISA KEV exploitation status

  • public exploit evidence

The score is a deterministic prioritization score and should not be interpreted as an official vendor score.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
max_itemsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that the score is deterministic and warns it is not an official vendor score, which is genuine behavioral context. However, it does not state whether the operation is read-only, whether it requires auth, how it handles large scans, or anything about ordering/output limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the verb and resource, then uses a tight bullet list for the scoring inputs and a single caveat sentence. Efficient with no filler, though the formatting is slightly awkward and could front-load the scan input more clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the scoring factors plus the 'not an official vendor score' caveat cover the conceptual model. But with zero annotation coverage and zero parameter documentation, an agent still lacks the operational detail needed to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only vaguely implies a scan input via 'from a Nessus scan' and says nothing about max_items or its default of 25. Neither parameter's type, required status, or meaning is explained in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (prioritize vulnerabilities from a Nessus scan) and itemizes the exact signals used (Nessus severity, CVSS, EPSS, CISA KEV, public exploit evidence). This makes the operation's intent unmistakable, though it never explicitly distinguishes itself from siblings like list_nessus_vulnerabilities or get_nessus_vulnerability_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent infers you call this when you want a ranked risk ordering rather than a raw list. There is no explicit when-to-use/when-not statement and no mention of the sibling tools that return unranked vulnerability data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_security_intelligenceC

Unified security intelligence lookup.

Searches:

  • NVD

  • CISA KEV

  • EPSS

  • public exploit intelligence

  • normalized security context

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It lists data sources but says nothing about how the aggregation behaves, whether all sources are always queried, failure/partial-result handling, auth or rate-limit requirements, or latency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded with the core purpose, and the source list is quick to scan. The bulleted breakdown is slightly more verbose than necessary but wastes little space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for an aggregation tool with zero annotations and heavily overlapping siblings, the description should at minimum state when to use it versus the single-source alternatives. That routing information is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about parameters. While cve_id is largely self-evident, the description fails to compensate for the coverage gap by giving any accepted format (e.g., CVE-YYYY-NNNN) or noting that a single identifier is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb ('lookup') plus the specific resources it aggregates (NVD, CISA KEV, EPSS, exploit intelligence, normalized context), so an agent can grasp that this is an aggregator. However, it does not differentiate itself from overlapping siblings such as get_complete_cve_intelligence or build_security_context, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of when to prefer this aggregated lookup over the many single-source siblings (get_cve_intelligence, get_epss_score, get_cisa_kev_status). The agent must infer the choice entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_nessus_scanC

Stop a running Nessus scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does not meet it. 'Stop' implies a mutation, but it never says whether the scan is aborted permanently or paused, whether partial results are retained, whether the action is reversible, or what permissions are required. These are exactly the traits an agent needs before invoking a state-changing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with zero padding. It is efficient, though the terseness is a byproduct of under-specification rather than disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but this is a state-changing tool with no annotations and one undocumented parameter. The description is too thin to let an agent call it correctly without guessing about prerequisites and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter, scan_id, with 0% schema description coverage, so the description must supply the missing meaning. It adds nothing โ€” no indication of where scan_id comes from (e.g., list_nessus_scans or get_nessus_scan_status) or what format/range is valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (Stop) and resource (running Nessus scan), which is unambiguous and naturally distinguishes it from launch_nessus_scan in the sibling list. It stops short of explicitly naming that sibling or the scan-lifecycle context, so it is clear but not maximally differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the word 'running' โ€” the agent can infer this applies to an active scan, but there is no statement of when to use it versus get_nessus_scan_status, list_nessus_scans, or any prerequisite for obtaining a valid scan_id. No exclusions or alternatives are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 32 tool updatesv0.1.0
    • First observedanalyze_emerging_threats
    • First observedbuild_security_context
    • First observedfind_assets_not_scanned_since
    • First observedget_cisa_kev_status
    • First observedget_complete_cve_intelligence
    • First observedget_cve_intelligence
    • First observedget_epss_score
    • First observedget_exploit_intelligence
    • First observedget_mcp_capabilities
    • First observedget_nessus_host_details
    • First observedget_nessus_plugin
    • First observedget_nessus_scan_details
    • First observedget_nessus_scan_history
    • First observedget_nessus_scan_history_details
    • First observedget_nessus_scan_status
    • First observedget_nessus_server_info
    • First observedget_nessus_vulnerability_details
    • First observedget_tenable_cloud_asset
    • First observedget_tenable_cloud_server_info
    • First observedget_tenable_cloud_vulnerability
    • First observedlaunch_nessus_scan
    • First observedlist_nessus_agents
    • First observedlist_nessus_folders
    • First observedlist_nessus_policies
    • First observedlist_nessus_scans
    • First observedlist_nessus_users
    • First observedlist_nessus_vulnerabilities
    • First observedlist_tenable_cloud_assets
    • First observedlist_tenable_cloud_vulnerabilities
    • First observedprioritize_vulnerabilities
    • First observedsearch_security_intelligence
    • First observedstop_nessus_scan

TDQS

C2.8/5.0

Scored across 32 tools

Disambiguation3/5

Most tools target distinct resources or actions, but CVE-intelligence tools overlap heavily: search_security_intelligence, get_complete_cve_intelligence, and the component tools (get_cve_intelligence, get_cisa_kev_status, get_epss_score, get_exploit_intelligence) can be confused. prioritize_vulnerabilities and analyze_emerging_threats also use similar signals for related outputs, though descriptions help separate them.

Naming Consistency5/5

Tool names consistently use snake_case with predictable verb_noun or verb_resource patterns. Prefixes such as list_, get_, launch_, stop_, and search_ are used throughout, with no mixed camelCase or chaotic naming.

Tool Count2/5

The server exposes 32 tools, which is above the 25+ threshold for being too many and includes several overlapping intelligence and scan-detail operations that could be consolidated. While the domain is broad, the tool count feels excessive rather than tightly scoped.

Completeness4/5

The surface covers Nessus scan listing, launching, stopping, history, host/vulnerability details, Tenable cloud assets and vulnerabilities, and major CVE intelligence sources. Gaps exist for creating, updating, or deleting scans, policies, users, and reports, but core analysis and scan-control workflows are present.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Integrates 15+ static application security testing tools (Semgrep, Bandit, TruffleHog, etc.) with Claude Code AI, enabling automated vulnerability scanning and security analysis through natural language commands. Supports cross-platform operation with remote execution on dedicated security VMs.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered security scanning of codebases through conversational analysis, allowing users to assess, threat model, code review, DAST test, and generate security reports using natural language with Claude.
    MIT