Tenable Security MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tenable Security MCPAnalyze my latest scan and list critical findings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ 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-mcpStep 2๏ธโฃ: Build Extension
Option A: GitHub Actions (Recommended) โญ
Push changes to GitHub (or trigger manually)
Navigate to: Actions โ build.yml
Click Run workflow
Wait for completion (2-3 minutes)
Download
extension.mcpbartifact
Option B: Local Build
# Install MCP build tools
pip install -r requirements.txt
# Build the extension
mcp build
# Verify output
ls dist/extension.mcpbStep 3๏ธโฃ: Install to Claude Desktop
Open Claude Desktop
Navigate to: Settings โ Extensions โ Advanced Settings
Click Install Extension
Select
extension.mcpbfileEnable the extension
Step 4๏ธโฃ: Configure Nessus
Go to: Settings โ Extensions โ Tenable Security MCP
Click Configure and enter:
Nessus URL:
https://localhost:8834API Access Key:
your_access_key_hereAPI 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 directoryRoot 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 testContribution 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 | |
Documentation | README.md (you are here) |
Tenable Docs | |
CISA KEV | |
EPSS |
๐ Built to Turn Raw Nessus Findings into Actionable Security Intelligence
Tenable Security MCP โ Faster Analysis โ Better Decisions โ Reduced Risk
Made for Security Professionals | Built on MCP | Powered by Claude AI
Available Tools
32 toolsanalyze_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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| max_items | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | ||
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| plugin_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| history_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | ||
| scan_id | Yes | ||
| plugin_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| plugin_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| cve | No | ||
| host | No | ||
| scan_id | Yes | ||
| severity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| max_items | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
32 tool updates
v0.1.0- First observed
analyze_emerging_threats - First observed
build_security_context - First observed
find_assets_not_scanned_since - First observed
get_cisa_kev_status - First observed
get_complete_cve_intelligence - First observed
get_cve_intelligence - First observed
get_epss_score - First observed
get_exploit_intelligence - First observed
get_mcp_capabilities - First observed
get_nessus_host_details - First observed
get_nessus_plugin - First observed
get_nessus_scan_details - First observed
get_nessus_scan_history - First observed
get_nessus_scan_history_details - First observed
get_nessus_scan_status - First observed
get_nessus_server_info - First observed
get_nessus_vulnerability_details - First observed
get_tenable_cloud_asset - First observed
get_tenable_cloud_server_info - First observed
get_tenable_cloud_vulnerability - First observed
launch_nessus_scan - First observed
list_nessus_agents - First observed
list_nessus_folders - First observed
list_nessus_policies - First observed
list_nessus_scans - First observed
list_nessus_users - First observed
list_nessus_vulnerabilities - First observed
list_tenable_cloud_assets - First observed
list_tenable_cloud_vulnerabilities - First observed
prioritize_vulnerabilities - First observed
search_security_intelligence - First observed
stop_nessus_scan
TDQS
Scored across 32 tools
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.
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.
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.
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
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces โ chat, links, and tasks. One-click OAuth.
AI pentesting: run scans, triage vulnerabilities, review PRs, manage schedules and assets.
Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.
Real-time CVE, exploit, and vulnerability intelligence for AI assistants (350K+ CVEs, 115K+ PoCs)
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceIntegrates 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.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language interaction with Tenable Nessus for vulnerability scans, policy management, and report generation.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to run real vulnerability scans using Nuclei through natural language commands.MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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