MCP NMAP Server
A Model Context Protocol (MCP) server that enables AI assistants to perform network scanning operations using NMAP. This server provides a standardized interface for AI models to interact with NMAP, making it possible to perform network analysis and security assessments through AI conversations.
Prerequisites
- Windows operating system
- Node.js (v18 or higher)
- NMAP installed and accessible from Windows command line
- TypeScript for development
Installation
Installing via Smithery
To install NMAP Server for Claude Desktop automatically via Smitheryβ:
npx -y @smithery/cli install mcp-nmap-server --client claudeManual Installation
Install the package globally using npm:
npm install -g mcp-nmap-serverOr install locally in your project:
npm install mcp-nmap-serverFeatures
The server provides access to NMAPβs core functionality through a simple interface. It supports quick scans, full port scans, version detection, and custom timing templates. The implementation uses NMAPβs native command-line interface, ensuring reliability and consistency with standard NMAP operations.
Configuration with Claude Desktop
To use this server with Claude Desktop on Windows, youβll need to configure it in the Claude configuration file located at:
C:\Users\YOUR_USERNAME\AppData\Roaming\Claude\config.json
Add the NMAP server to your configuration by adding it to the mcpServers section. Hereβs a complete example of a Claude Desktop configuration file:
{
"mcpServers": {
"nmap": {
"command": "node",
"args": [
"C:\\Users\\YOUR_USERNAME\\Downloads\\mcp-nmap-server\\dist\\index.js"
]
}
},
"globalShortcut": "Ctrl+Q"
}Replace YOUR_USERNAME with your Windows username and adjust the path to where youβve installed the NMAP server.
Usage with AI
Once configured, AI assistants like Claude can use the server through the run_nmap_scan function. The function accepts the following parameters:
{
target: string; // Host or network to scan
ports?: string; // Optional port specification (e.g., "80,443" or "1-1000")
scanType?: 'quick' | 'full' | 'version'; // Scan type (default: 'quick')
timing?: number; // NMAP timing template 0-5 (default: 3)
additionalFlags?: string; // Optional additional NMAP flags
}Example conversation with Claude:
Human: Can you scan localhost for open ports?
Claude: I'll help you scan localhost using NMAP.
<runs nmap scan with parameters>
target: "localhost"
scanType: "quick"
timing: 3License
MIT License
Support
For issues, suggestions, or contributions, please visit the GitHub repository.