About Nmap MCP Server
An MCP server that gives access to nmap network scanning. It runs scans, stores and retrieves results, and uses prompts to analyze them. It is aimed at security practitioners scanning networks they are authorized to test.
Key features
- 01Run nmap scans with custom targets and options
- 02Store and retrieve scan results
- 03Analyze scan results with a prompt
- 04Scan results exposed as resources
Use cases
- 01Probing service versions on authorized IP ranges
- 02Letting an AI assistant review past scan records
- 03Analyzing results with a security, services or overview focus
MCP support
This project is an MCP server that exposes the run-nmap-scan, get-scan-details and list-all-scans tools, the analyze-scan prompt and nmap://scan/{scan_id} resources to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMENmap MCP Server
This is a Model Control Protocol (MCP) server that provides access to nmap network scanning functionality.
Features
- Run nmap scans on specified targets with customizable options
- Store and retrieve scan results
- Analyze scan results using AI prompts
Installation
Requirements:
- Python 3.10+
- python-libnmap
- nmap (installed on the system)
pip install python-libnmap
Make sure nmap is installed on your system:
# On Debian/Ubuntu
sudo apt-get install nmap
# On Fedora/CentOS
sudo dnf install nmap
Usage
Running the Server
To run the server directly from the source code:
python -m src.nmap_mcp
To install the package and run as a command:
pip install -e .
nmap-mcp
Available Tools
-
run-nmap-scan
- Run an nmap scan on specified targets
- Parameters:
target: Target host or network (e.g., 192.168.1.1 or 192.168.1.0/24)options: Nmap options (e.g., -sV -p 1-1000)
-
get-scan-details
- Get detailed information about a specific scan
- Parameters:
scan_id: ID of the scan to retrieve
-
list-all-scans
- List all available scan results
- No parameters required
Available Prompts
- analyze-scan
- Analyze an nmap scan result
- Parameters:
scan_id: ID of the scan to analyzefocus: Focus area (security/services/overview)
Resources
Scan results are available as resources with the nmap://scan/{scan_id} URI scheme.
Example Workflow
-
Run a scan:
Call tool: run-nmap-scan Parameters: {"target": "192.168.1.0/24", "options": "-sV -p 22,80,443"} -
Get scan details:
Call tool: get-scan-details Parameters: {"scan_id": "<scan_id from previous step>"} -
List all scans:
Call tool: list-all-scans -
Analyze scan results:
Get prompt: analyze-scan Parameters: {"scan_id": "<scan_id>", "focus": "security"}
Security Considerations
This server executes nmap commands on your system. Be cautious when scanning networks you don't own or have permission to scan, as unauthorized scanning may be illegal in some jurisdictions.
Troubleshooting
If you encounter errors related to nmap not being found or being executed incorrectly:
- Make sure nmap is installed and available in your PATH
- Check the logs for which nmap executable is being used
- The server will attempt to use the full path to nmap to avoid conflicts
Docker Usage
You can run the MCP server in a Docker container:
# Build the Docker image
docker build -t nmap-mcp-server .
# Run the Docker container
docker run -it --rm nmap-mcp-server
For integration with the Glama MCP directory, the Docker container allows others to easily use this MCP server without worrying about installation dependencies.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.