Skip to main content

mcp-server-nmap

MCP server that exposes the python-nmap library as MCP tools for network scanning operations.

PyPI Python

What is this?

This MCP server wraps the python-nmap library, allowing AI assistants to perform network reconnaissance through MCP tools. It provides three scanning interfaces:

  1. PortScanner (synchronous) - Blocking scans that wait for completion
  2. PortScannerAsync (asynchronous) - Non-blocking scans with callbacks
  3. PortScannerYield (generator) - Streaming results as hosts are discovered

Prerequisites

  • nmap must be installed on the system
  • Python 3.10+

Install

pip install mcp-server-nmap

mcp-name: io.github.daedalus/mcp-server-nmap

MCP Server Registration

Add this to your MCP settings file:

{
  "mcpServers": {
    "mcp-server-nmap": {
      "command": "mcp-server-nmap"
    }
  }
}

Or with custom nmap path:

{
  "mcpServers": {
    "mcp-server-nmap": {
      "command": "mcp-server-nmap",
      "env": {
        "PATH": "/custom/path:$PATH"
      }
    }
  }
}

Available Tools

Initialization

Tool Description
port_scanner_init Initialize synchronous PortScanner
port_scanner_async_init Initialize async PortScannerAsync
port_scanner_yield_init Initialize generator-based PortScannerYield

Scanning

Tool Description
port_scanner_scan Scan hosts with nmap (synchronous)
port_scanner_async_scan Scan hosts (async, non-blocking)
port_scanner_yield_scan Scan with streaming results
port_scanner_listscan List hosts without scanning

Results & State

Tool Description
port_scanner_all_hosts Get all scanned hosts
port_scanner_has_host Check if host was scanned
port_scanner_get_item Get detailed host scan data
port_scanner_scaninfo Get scan configuration info
port_scanner_scanstats Get scan statistics
port_scanner_command_line Get nmap command used
port_scanner_csv Get CSV output
port_scanner_last_output Get raw nmap text output

Async Control

Tool Description
port_scanner_async_still_scanning Check if scan in progress
port_scanner_async_stop Stop running scan
port_scanner_async_wait Wait for scan to complete

XML Parsing

Tool Description
port_scanner_analyse_xml Parse existing nmap XML output

Common Scan Workflows

Basic port scan

# Initialize scanner
port_scanner_init()

# Scan target
port_scanner_scan(hosts="192.168.1.1", ports="22,80,443", arguments="-sV")

# Get results
port_scanner_get_item(host="192.168.1.1")

Service version detection

port_scanner_scan(hosts="scanme.nmap.org", arguments="-sV -sC")

Scan multiple hosts

port_scanner_scan(hosts="192.168.1.1-254", arguments="-sS -p 22")
port_scanner_all_hosts()

Network sweep

port_scanner_scan(hosts="192.168.1.0/24", arguments="-sn")
port_scanner_csv()  # Export to CSV

nmap Arguments Reference

Argument Description
-sn Ping scan (host discovery)
-sS TCP SYN scan
-sT TCP connect scan
-sU UDP scan
-sV Service version detection
-sC Default scripts
-O OS detection
-p Port range
-oA Output all formats

Development

git clone https://github.com/daedalus/mcp-server-nmap.git
cd mcp-server-nmap
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

Metadata

Release files for mcp-server-nmap 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-server-nmap 0.1.1
File Size Uploaded
mcp_server_nmap-0.1.1.tar.gz 6.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-nmap 0.1.1
File Interpreter ABI Platform
mcp_server_nmap-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.8 kB

Release files / mcp_server_nmap-0.1.1.tar.gz

Download URL mcp_server_nmap-0.1.1.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
277036592d3dff0ba1cbe5ec6004a85287ab9bc797cdab1cf1848a89decedcf6
BLAKE2b-256 checksum
How to use checksums
cbdb07828a57ebe2c2a14d059b9f4f0e03720f054dd0ee814d38f95891a4d72f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.

Transparency log

Release files / mcp_server_nmap-0.1.1-py3-none-any.whl

Download URL mcp_server_nmap-0.1.1-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb0ac2f6c3fa39b546fa8c835eb05574477187612c7a40c9da1e87cd8ec021ad
BLAKE2b-256 checksum
How to use checksums
a7dd1f350695e089717b4664ad2488f6f0aa578f7d2e27d7ca7275a412826028
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page