nmap-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., "@nmap-mcpdiscover live hosts in 192.168.1.0/24"
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.
Nmap MCP Server by Vorota AI
nmap-mcp is a production-ready Model Context Protocol (MCP) server that wraps Nmap, the industry-standard network scanner, to enable AI agents to perform automated network security assessments. Built by Vorota AI, it provides 6 scanning tools, 9 scan types, and 6 timing templates -- making it the most comprehensive Nmap integration for AI-powered security workflows available today.
Quick Start
Build and run nmap-mcp with Docker (includes Nmap):
docker build -t nmap-mcp https://github.com/vorotaai/nmap-mcp.git
docker run --rm -i nmap-mcpThen add to any MCP client:
{
"mcpServers": {
"nmap-mcp": {
"command": "docker",
"args": ["run", "--rm", "-i", "nmap-mcp"]
}
}
}Related MCP server: nmap-mcp
Features
nmap-mcp from Vorota AI exposes 6 specialized scanning tools to any MCP-compatible AI agent:
Port Scanning -- TCP Connect, SYN stealth, UDP, FIN, XMAS, NULL, and ACK scan types with configurable port ranges and timing templates (T0 through T5).
Host Discovery -- Ping-sweep an entire subnet to find live hosts before deeper scanning.
Service Detection -- Identify running services and their exact versions on open ports with adjustable probe intensity (0-9).
OS Fingerprinting -- Determine operating systems through TCP/IP stack analysis.
Vulnerability Scanning -- Run Nmap Scripting Engine (NSE) scripts in safe categories to detect known vulnerabilities.
Quick Scan -- Fast top-N port scan with aggressive timing for rapid reconnaissance.
All tools include built-in input validation, network size limits, and timeout enforcement to prevent misuse.
Recommended Workflow
For a thorough AI-powered security assessment, nmap-mcp tools are designed to be used in sequence:
Discover Hosts -- Use
discover-hoststo find live targets on the network.Quick Scan -- Run
quick-scanon discovered hosts for a fast overview of open ports.Port Scan -- Use
scan-portswith specific scan types for deeper port analysis.Detect Services -- Run
detect-serviceson open ports to identify software versions.Detect OS -- Use
detect-osto fingerprint the operating system (requires root).Scan Vulnerabilities -- Run
scan-vulnerabilitiesto check for known security issues.
AI agents like Claude, Cursor, and VS Code Copilot can orchestrate this entire workflow automatically in a single conversation.
Installation
Docker (recommended -- includes Nmap)
docker build -t nmap-mcp https://github.com/vorotaai/nmap-mcp.gitFrom source
Requires Python 3.10+, Nmap on PATH, and uv:
git clone https://github.com/vorotaai/nmap-mcp.git
cd nmap-mcp
uv sync --all-groups
nmap-mcpUsage with MCP Clients
nmap-mcp is compatible with all major MCP clients: Claude Desktop, Claude Code, Cursor, VS Code Copilot, Windsurf, and Cline.
First, build the Docker image:
docker build -t nmap-mcp https://github.com/vorotaai/nmap-mcp.gitClaude Desktop
Add to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"nmap-mcp": {
"command": "docker",
"args": ["run", "--rm", "-i", "nmap-mcp"]
}
}
}Claude Code
claude mcp add nmap-mcp -- docker run --rm -i nmap-mcpCursor
Or add manually to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"nmap-mcp": {
"command": "docker",
"args": ["run", "--rm", "-i", "nmap-mcp"]
}
}
}VS Code / VS Code Insiders
Add to your VS Code settings (.vscode/mcp.json):
{
"servers": {
"nmap-mcp": {
"command": "docker",
"args": ["run", "--rm", "-i", "nmap-mcp"]
}
}
}Windsurf / Cline
Use the same server configuration as Claude Desktop above. Refer to your client's documentation for the config file location.
Available Tools
Tool | Description | Key Parameters | Root Required |
| Port scan with configurable scan type, port range, and timing |
| Some types |
| Find live hosts on a network using ping scan (-sn) |
| No |
| Identify services and versions on open ports (-sV) |
| No |
| OS fingerprinting via TCP/IP stack analysis (-O) |
| Yes |
| Run NSE vulnerability detection scripts in safe categories |
| No |
| Fast top-N port scan with aggressive timing |
| No |
Scan Types
The scan-ports tool supports 7 scan types, each suited for different scenarios:
Scan Type | Flag | Root Required | Description |
|
| No | Full TCP handshake; reliable but detectable |
|
| Yes | SYN stealth scan; fast and less detectable |
|
| Yes | UDP port scan; slower but finds UDP services |
|
| Yes | FIN scan; stealthy, bypasses some firewalls |
|
| Yes | XMAS scan; sets FIN, PSH, URG flags |
|
| Yes | NULL scan; sends no flags |
|
| Yes | ACK scan; maps firewall rulesets |
Timing Templates
Template | Name | Use Case |
T0 | Paranoid | IDS evasion |
T1 | Sneaky | IDS evasion |
T2 | Polite | Reduced bandwidth usage |
T3 | Normal | Default speed |
T4 | Aggressive | Fast, reliable networks |
T5 | Insane | Fastest, may lose accuracy |
Configuration
nmap-mcp is configured through environment variables:
Variable | Default | Description |
|
| Path to the Nmap binary |
|
| Maximum scan duration in seconds |
|
| Maximum number of target hosts per scan (max /24 subnet) |
|
| Logging level (DEBUG, INFO, WARNING, ERROR) |
Example with custom configuration via Docker:
{
"mcpServers": {
"nmap-mcp": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "NMAP_SCAN_TIMEOUT=120",
"-e", "NMAP_MAX_TARGETS=128",
"-e", "FASTMCP_LOG_LEVEL=ERROR",
"nmap-mcp"
]
}
}
}Security
Authorization is required. nmap-mcp is a security tool that performs network scanning. You must ensure:
You have explicit authorization to scan any target network or host.
You comply with all applicable laws and organizational policies.
You use this tool only in environments where you have permission to conduct security assessments.
Safety Measures
nmap-mcp by Vorota AI implements multiple layers of security to prevent misuse:
Input validation -- All inputs are validated against a set of forbidden characters (
;,|,&,$,`,(,),{,},<,>, newlines) to prevent command injection attacks.Network size limits -- Scans are limited to a maximum of 256 hosts by default (equivalent to a /24 subnet). This is configurable via
NMAP_MAX_TARGETS.Restricted NSE categories -- Only safe script categories are allowed:
auth,default,discovery,safe,version, andvuln. Dangerous categories likeexploit,dos, andintrusiveare blocked.Configurable timeouts -- All scans have a configurable timeout with a hard maximum of 600 seconds to prevent runaway processes.
No shell execution -- All Nmap commands are executed using Python's
subprocessmodule with argument lists, never through a shell. This eliminates shell injection vectors entirely.
FAQ
What is nmap-mcp?
nmap-mcp is a Model Context Protocol (MCP) server built by Vorota AI that enables AI agents to perform Nmap network scans. It wraps the full power of Nmap -- port scanning, host discovery, service detection, OS fingerprinting, and vulnerability scanning -- into 6 structured tools that AI assistants like Claude, Cursor, and VS Code Copilot can call directly.
How do I use Nmap with AI agents?
Build the nmap-mcp Docker image and configure it as an MCP server in your AI client (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, or Cline). Once connected, you can ask the AI to scan networks, detect services, fingerprint operating systems, and find vulnerabilities using natural language. The AI agent will call the appropriate nmap-mcp tools and interpret the results for you.
Is nmap-mcp safe to use?
Yes. nmap-mcp includes multiple safety mechanisms: input validation to prevent command injection, network size limits to avoid scanning overly broad ranges, restricted NSE script categories that exclude dangerous scripts, configurable timeouts, and no shell execution. However, network scanning itself requires authorization -- always ensure you have permission before scanning any target.
What MCP clients are supported?
nmap-mcp works with all MCP-compatible clients, including Claude Desktop, Claude Code, Cursor, VS Code (via GitHub Copilot), Windsurf, and Cline. Any client that supports the Model Context Protocol's stdio transport can connect to nmap-mcp.
Contributing
Contributions are welcome. To set up the development environment:
git clone https://github.com/vorotaai/nmap-mcp.git
cd nmap-mcp
uv sync --all-groupsRunning Tests
uv run pytestCode Quality
uv run ruff check .
uv run ruff format .Please open an issue or pull request on GitHub for bugs, feature requests, or improvements.
License
This project is licensed under the Apache License 2.0.
Copyright (c) Vorota AI
Available Tools
6 toolsdetect-osA
Detect the operating system of a target host.
Uses nmap TCP/IP stack fingerprinting (-O) to identify the target's operating system. NOTE: This typically requires elevated privileges (root/sudo).
IMPORTANT: Only scan targets you are authorized to scan.
Returns: ScanResult with OS detection matches for the target host.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to scan: IP address or hostname. Single host only. | |
| timeout | No | Maximum scan duration in seconds. Default: 600. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | Yes | The nmap command that was executed (sanitized) |
| hosts | No | Results per host |
| scan_stats | No | Scan statistics |
| raw_output | No | Raw nmap output text |
| warnings | No | Scan warnings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and discloses key behavioral traits: the specific nmap technique, the need for root/sudo, and the legal/ethical requirement of authorization. It also indicates the return type (ScanResult). It does not mention potential failures or side effects, but for a read-only detection tool this is adequate.
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 efficiently organized: a clear opening statement, method note, privilege warning, authorization reminder, and return type. Every sentence adds value, with no redundancy or fluff.
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 (2 params, 1 required) and has an output schema, so the description is largely complete. It covers method, prerequisites, and safety. It could mention limitations (e.g., OS detection can be imperfect), but this is not essential 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?
The schema already provides full descriptions for both parameters (target and timeout), so the description adds no additional parameter semantics. The baseline of 3 is appropriate since schema coverage is 100%.
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 clearly states the specific verb ('Detect') and resource ('operating system of a target host'), and distinguishes from siblings by naming the method (nmap TCP/IP stack fingerprinting). This is unambiguous among the sibling scanning tools.
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 provides clear context: it uses nmap -O, requires elevated privileges, and emphasizes authorized use. However, it does not explicitly compare to alternatives (e.g., when to use detect-os vs scan-ports), though the purpose is evident from 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.
detect-servicesA
Detect services and versions running on open ports.
Uses nmap's service detection probes (-sV) to identify software names, versions, and CPE identifiers for services running on open ports.
IMPORTANT: Only scan targets you are authorized to scan.
Returns: ScanResult with service information for each open port.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to scan: IP address or hostname. | |
| ports | No | Port specification. If omitted, scans nmap default ports. | |
| intensity | No | Version detection intensity (0-9). Higher is more accurate but slower. Default: 7. | |
| timing | No | Timing template. Default: "normal". | normal |
| timeout | No | Maximum scan duration in seconds. Default: 600. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | Yes | The nmap command that was executed (sanitized) |
| hosts | No | Results per host |
| scan_stats | No | Scan statistics |
| raw_output | No | Raw nmap output text |
| warnings | No | Scan warnings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It includes an authorization warning and explains it uses nmap service probes, which helps. However, it does not disclose potential intrusiveness, network side-effects, or permission requirements beyond the authorization note. The behavior is partially transparent but missing detail.
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 concise and front-loaded, with the main action in the first sentence. It includes an important warning and a clear returns statement, all in four short lines with no unnecessary 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 description adequately covers what the tool does, how it does it, and what it returns, plus an authorization warning. Given the existence of an output schema and well-documented parameters, it is fairly complete. A minor gap is the lack of context about typical use in a scanning workflow, but it is sufficient for most agents.
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 100%, so the baseline is 3. The description adds no parameter-specific information beyond what the schema already provides (ports, target, timing, timeout, intensity). Therefore, no extra value is added in this dimension.
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 clearly states the tool's purpose: 'Detect services and versions running on open ports.' It specifies the method (nmap -sV) and the output (ScanResult with service information). This distinguishes it from sibling tools like detect-os or scan-vulnerabilities, making its function unambiguous.
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 implies usage for identifying service versions on open ports but does not explicitly state when to choose this tool over alternatives or mention any exclusions. It lacks explicit guidance like 'use this after scanning ports' or 'for OS detection, use detect-os instead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover-hostsA
Discover live hosts on a network without performing a port scan.
Uses nmap ping scan (-sn) to identify which hosts are up on the target network. This is typically the first step in a network assessment.
IMPORTANT: Only scan networks you are authorized to scan.
Returns: HostDiscoveryResult with lists of hosts that are up and down.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Network range to scan: CIDR notation (192.168.1.0/24) or IP range. Max /24 network size. | |
| timing | No | Timing template: "paranoid" through "insane". Default: "normal". | normal |
| timeout | No | Maximum scan duration in seconds. Default: 600. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosts_up | No | List of hosts that are up |
| hosts_down | No | List of hosts that are down |
| total_scanned | No | Total hosts scanned |
| scan_stats | No | Scan statistics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It clearly states the tool uses nmap ping scan (-sn), explicitly rules out port scanning, and describes the return type (HostDiscoveryResult with up/down host lists). It also adds a safety note about authorized scanning. It stops short of detailing edge cases (e.g., hosts that block ICMP), but the core behavioral disclosure is solid.
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 compact and front-loaded with the core purpose. Every sentence earns its place: purpose, method, usage context, authorization warning, and return summary. No wasted words or filler.
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 that the output schema exists (covering the return value) and the input schema is fully documented, the description provides all necessary operational context: what it does, how it does it (nmap -sn), when to use it (first step), and a safety constraint. It is complete for a straightforward host-discovery tool.
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 input schema already provides 100% coverage of all three parameters (target, timing, timeout) with descriptions. The tool description itself adds no additional parameter semantics beyond what the schema offers, so a baseline score of 3 is appropriate.
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 clearly states the tool's function: discovering live hosts without a port scan. It uses a specific verb ('Discover'), identifies the resource (live hosts on a network), and distinguishes itself from siblings by explicitly noting it performs no port scan and is the typical first step in a network assessment.
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 provides clear usage context, noting this is typically the first step in a network assessment and that it does not perform a port scan. It also includes an authorization warning. However, it does not explicitly name alternative sibling tools (e.g., scan-ports) for follow-up steps, so it falls just short of full explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick-scanA
Perform a fast scan of the most common ports.
Scans the top N most frequently used ports with aggressive timing for quick results. Good for getting a fast security overview of a target.
IMPORTANT: Only scan targets you are authorized to scan.
Returns: ScanResult with discovered hosts and open ports.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to scan: IP address or hostname. | |
| top_ports | No | Number of top ports to scan (by frequency). Default: 100. | |
| service_detection | No | Enable service/version detection. Default: true. | |
| timeout | No | Maximum scan duration in seconds. Default: 600. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | Yes | The nmap command that was executed (sanitized) |
| hosts | No | Results per host |
| scan_stats | No | Scan statistics |
| raw_output | No | Raw nmap output text |
| warnings | No | Scan warnings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the behavioral disclosure burden. It discloses aggressive timing, notes the authorization requirement, and states the return type, providing useful operational context beyond just the tool's purpose.
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 tightly written, front-loads the primary action, and uses brief paragraphs for returns and the authorization warning. No unnecessary 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 description covers the tool's purpose, scope, use case, safety warning, and return type. With the output schema and fully-documented parameters, nothing critical is missing for a quick-scan tool.
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?
All parameters are already well-documented in the schema (100% coverage), so the description adds little semantic value beyond what's in the schema. It does echo the 'top N' concept aligning with top_ports, but this doesn't go beyond the schema's own 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?
The description clearly states a specific action ('Perform a fast scan of the most common ports') with a defined scope (top N frequently used ports) and distinguishes itself from a general port scan by emphasizing speed and common ports. This differentiates it from sibling tools like scan-ports.
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 provides a clear use case ('Good for getting a fast security overview') and a critical safety boundary (authorized targets only). It doesn't explicitly mention alternatives or when not to use it, but the context of speed and common ports implies its role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan-portsA
Scan ports on a target host or network.
Performs a port scan using nmap with the specified parameters. Validates all inputs to prevent command injection.
IMPORTANT: Only scan targets you are authorized to scan.
Returns: ScanResult with discovered hosts, ports, and their states.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to scan: IP address (192.168.1.1), hostname (example.com), or CIDR notation (192.168.1.0/24). Max /24 network size. | |
| ports | No | Port specification. Examples: "22", "1-1024", "22,80,443", "T:22,80,U:53" for protocol-specific. If omitted, scans nmap default ports. | |
| scan_type | No | Scan type: "connect" (TCP connect, no root needed), "syn" (SYN stealth, needs root), "udp" (UDP, needs root), "fin", "xmas", "null", "ack". Default: "connect". | connect |
| timing | No | Timing template: "paranoid", "sneaky", "polite", "normal", "aggressive", "insane". Default: "normal". | normal |
| service_detection | No | Enable service/version detection (-sV). Slower but identifies running software. | |
| timeout | No | Maximum scan duration in seconds. Default: 600. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | Yes | The nmap command that was executed (sanitized) |
| hosts | No | Results per host |
| scan_stats | No | Scan statistics |
| raw_output | No | Raw nmap output text |
| warnings | No | Scan warnings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It does include the security warning 'Only scan targets you are authorized to scan' and mentions input validation to prevent command injection. However, it does not disclose potential side effects like network load or root privileges for certain scan types, which are left to the parameter descriptions.
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 three short paragraphs: purpose, validation and authorization note, and return value. It is front-loaded with the primary purpose and contains no redundant sentences, making it concise and well-structured.
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 description covers the core operation and return value but is sparse on contextual guidance such as when to use different scan types or how results map to the output schema. However, the schema provides rich parameter details and the output schema is available, so the description is adequate for the tool's complexity.
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 input schema has 100% description coverage across all six parameters, so the description does not need to add parameter details. The main description mentions scanning with specified parameters but adds no additional information about parameter formats or defaults, meeting the baseline without extra value.
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 clearly states 'Scan ports on a target host or network' and 'Performs a port scan using nmap with the specified parameters.' This identifies the specific action and resource, distinguishing it from sibling tools like discover-hosts or detect-services.
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 does not explicitly state when to use this tool versus alternatives like quick-scan or detect-services. It includes an authorization warning but lacks usage conditions or exclusions, making the usage context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan-vulnerabilitiesA
Scan for known vulnerabilities using Nmap Scripting Engine (NSE).
Runs NSE vulnerability detection scripts against the target. Uses safe script categories by default. Results include CVE identifiers when available.
IMPORTANT: Only scan targets you are authorized to scan. Vulnerability scanning may trigger security alerts on the target network.
Returns: VulnScanResult with discovered vulnerabilities and their details.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to scan: IP address or hostname. | |
| ports | No | Port specification. If omitted, scans nmap default ports. | |
| scripts | No | NSE script specification. Examples: "vuln", "auth", "default,safe", "http-vuln-*". Only categories from {auth, default, discovery, safe, version, vuln} are allowed. If omitted, uses "vuln" category. | |
| timing | No | Timing template. Default: "normal". | normal |
| timeout | No | Maximum scan duration in seconds. Default: 600. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | Yes | The nmap command that was executed (sanitized) |
| vulnerabilities | No | Discovered vulnerabilities |
| hosts_scanned | No | Number of hosts scanned |
| raw_output | No | Raw nmap output text |
| warnings | No | Scan warnings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses default safe script categories, potential security alerts, and the return type. However, it states 'safe script categories by default' while the schema says the default category is 'vuln', creating an internal inconsistency that undermines transparency.
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 appropriately sized and front-loaded with the core purpose. The 'Returns' section is slightly redundant with the output schema, but it is brief and does not waste 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?
Despite no annotations, the description covers purpose, default behavior, a warning, and return type. The internal safe/vuln inconsistency and lack of explicit sibling comparisons are minor gaps, but overall it provides sufficient context for a tool with an output schema.
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 100%, so the baseline is 3. The description adds no extra meaning to the parameters; it only mentions CVE identifiers in results, which relates to output rather than parameters.
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 clearly states it scans for known vulnerabilities using NSE, with a specific verb and resource. It distinguishes itself from sibling tools like scan-ports and detect-services by focusing on vulnerability detection and CVE identifiers.
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 context is implied ('Scan for known vulnerabilities') but not explicitly contrasted with sibling tools. The authorization warning is a legal reminder, not guidance on when to choose this tool over alternatives.
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.
6 tool updates
v0.1.0- First observed
detect-os - First observed
detect-services - First observed
discover-hosts - First observed
quick-scan - First observed
scan-ports - First observed
scan-vulnerabilities
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: host discovery, OS detection, service detection, quick port scan, comprehensive port scan, and vulnerability scanning. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern using lowercase and hyphens (e.g., detect-os, scan-ports). The only slight deviation is 'quick-scan' (adjective-verb), but it remains clear and predictable.
With 6 tools, the set is well-scoped for network scanning. It covers the essential nmap operations without being excessive or too sparse.
The tool surface covers the full lifecycle of network reconnaissance: host discovery, OS fingerprinting, service version detection, port scanning (both quick and thorough), and vulnerability scanning. No obvious gaps for typical use cases.
Maintenance
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Related MCP Servers
- FlicenseBqualityDmaintenanceExposes Nmap network scanning capabilities through a Model Context Protocol (MCP) server, allowing users to perform various types of network scans including vulnerability assessment, service detection, and OS fingerprinting.116-
- AlicenseNot gradedqualityCmaintenanceAn nmap MCP server for AI-assisted network security auditing, providing 14 purpose-built tools with structured JSON output.5MIT
- FlicenseNot gradedqualityCmaintenanceA production-style MCP server providing AI models with cybersecurity tools including port scanning, WHOIS, DNS, threat intelligence, CVE lookup, and more.-
- FlicenseNot gradedqualityCmaintenanceMCP server that wraps the nmap CLI to let agents run network scans (ping sweeps, TCP/UDP/service/OS scans, vulnerability and script scans, stealth and timing scans) and returns structured JSON results parsed from nmap XML output, with target validation and timeouts.-