Professional-grade network analysis MCP server β Wireshark/TShark + Nmap + Threat Intelligence
NetMCP bridges the gap between raw network data and AI comprehension. It gives Claude, Cursor, and any MCP-compliant client the ability to capture packets, scan networks, detect threats, and extract credentials β all through natural language.
Quick Start β’ Features β’ Configuration β’ API Reference β’ Architecture
# Install system dependencies
sudo apt-get install -y tshark nmap # Ubuntu/Debian
# brew install wireshark nmap # macOS
# Install NetMCP
pip install netmcp
# Run
netmcpThat's it. The server starts on stdio transport by default, ready for any MCP client.
- π‘ Packet Capture β Live capture, BPF filtering, targeted traffic, quick capture mode
- π¬ Deep Analysis β PCAP parsing, protocol statistics, HTTP traffic analysis, DNS analysis, expert info, GeoIP enrichment
- π Stream Reconstruction β Follow TCP/UDP conversations, enumerate streams
- π€ Flexible Export β JSON, CSV, pcap/pcapng format conversion
- π Nmap Integration β Port scan, service detection, OS fingerprinting, vulnerability scan
- π‘οΈ Threat Intelligence β URLhaus + AbuseIPDB IP reputation checks, PCAP-wide threat scan
- π Credential Extraction β HTTP Basic, FTP, Telnet, Kerberos (hashcat-ready)
- π GeoIP Mapping β MaxMind GeoLite2 IP geolocation for traffic analysis
- π 5-Layer Security β Input validation, shell=False, rate limiting, path traversal protection, audit logging
- π¬ Guided Workflows β Security audit, incident response, troubleshooting, traffic analysis, network baseline prompts
- π PCAP Diff/Merge/Slice β Compare captures, combine files via mergecap, extract packet ranges via editcap
- π Flow Visualization β ASCII art and Mermaid sequence diagrams of network conversations
- π TLS Decryption β Decrypt HTTPS traffic using SSLKEYLOGFILE (NSS Key Log Format)
- π¨ Wireshark Profiles β List profiles, apply profile settings, parse color filters, capture with profile
- 𧬠DNS Tunneling Detection β Analyze DNS traffic and flag suspiciously long subdomain names
- π¦ Packet Decode β Detailed single-packet analysis with full protocol layer dissection
- π₯ Expert Information β Extract Wireshark's expert warnings, errors, and protocol violation notes
NetMCP provides 48 tools across 9 categories, plus 3 resources and 5 prompts:
| Category | Tools | Description |
|---|---|---|
| π‘ Capture & Analysis | 5 | get_network_interfaces Β· capture_live_packets Β· quick_capture Β· save_capture_to_file Β· analyze_large_pcap |
| π¬ Protocol Analysis | 10 | analyze_pcap_file Β· get_protocol_statistics Β· get_capture_file_info Β· capture_targeted_traffic Β· analyze_http_traffic Β· detect_network_protocols Β· analyze_http_headers Β· geoip_lookup Β· analyze_dns_traffic Β· get_expert_info |
| π Network Flows | 2 | visualize_network_flows (ASCII + Mermaid) Β· decrypt_tls_traffic |
| π§ PCAP Tools | 4 | diff_pcap_files Β· merge_pcap_files Β· slice_pcap Β· decode_packet |
| π Streams | 3 | follow_tcp_stream Β· follow_udp_stream Β· list_tcp_streams |
| π€ Export | 3 | export_packets_json Β· export_packets_csv Β· convert_pcap_format |
| π Nmap | 6 | nmap_port_scan Β· nmap_service_detection Β· nmap_os_detection Β· nmap_vulnerability_scan Β· nmap_quick_scan Β· nmap_comprehensive_scan |
| π‘οΈ Security | 3 | extract_credentials Β· check_ip_threat_intel Β· scan_capture_for_threats |
| π¨ Wireshark Profiles | 4 | list_wireshark_profiles Β· apply_profile_capture Β· get_color_filters Β· capture_with_profile |
π Full API reference with parameters and examples: docs/API.md
NetMCP supports all MCP transport protocols:
| Transport | Command | Use Case |
|---|---|---|
| stdio (default) | netmcp |
Claude Desktop, Cursor, local clients |
| SSE | netmcp --transport sse |
Web-based clients, remote access |
| Streamable HTTP | netmcp --transport streamable-http |
Modern HTTP clients |
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"netmcp": {
"command": "netmcp",
"env": {
"ABUSEIPDB_API_KEY": "your_api_key_here"
}
}
}
}Edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"netmcp": {
"command": "netmcp"
}
}
}Edit .vscode/mcp.json:
{
"servers": {
"netmcp": {
"command": "netmcp",
"env": {
"ABUSEIPDB_API_KEY": "your_api_key_here"
}
}
}
}| Variable | Required | Default | Description |
|---|---|---|---|
ABUSEIPDB_API_KEY |
No | β | AbuseIPDB API key for threat intelligence. Get free key |
NETMCP_TSHARK_PATH |
No | Auto-detect | Custom path to tshark binary |
NETMCP_MAX_PACKETS |
No | 10000 |
Maximum packets per capture operation |
NETMCP_MAX_FILE_SIZE |
No | 104857600 |
Maximum PCAP file size in bytes (100 MB) |
| Dependency | Required | Install |
|---|---|---|
| Python | 3.11+ | sudo apt install python3.11 |
| TShark | Yes | sudo apt install tshark |
| Nmap | Optional | sudo apt install nmap |
brew install wireshark nmap# Option 1: Set capabilities (recommended)
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
# Option 2: Add user to wireshark group
sudo usermod -aG wireshark $USER && newgrp wiresharkNetMCP implements 5 layers of defense in depth:
| Layer | Mechanism | Prevents |
|---|---|---|
| 1. Input Validation | Regex, ipaddress module, Pydantic |
Malformed input, injection payloads |
| 2. Command Construction | List args, shell=False everywhere |
Command injection, shell expansion |
| 3. Subprocess Execution | Timeouts, captured output only | Runaway processes, resource exhaustion |
| 4. File System | Path.resolve(), extension allowlist, size limits |
Path traversal, symlink attacks |
| 5. Rate Limiting | Sliding window, per-operation tracking | Abuse, DoS attacks |
Additional protections:
- π Never auto-escalates privileges
- π All operations audit-logged with timestamps
- π« Dangerous nmap flags rejected (
--script-args,--interactive, etc.) β οΈ Clear error messages for permission issues
You: Capture 100 packets from eth0 and analyze the protocols.
Claude: [capture_live_packets(interface="eth0", packet_count=100)]
[get_protocol_statistics(filepath="capture.pcap")]
Found 8 protocols: TCP (62%), UDP (24%), DNS (8%), HTTP (4%)...
You: Perform a security audit on suspicious.pcap
Claude: 1. [get_protocol_statistics] β traffic breakdown
2. [extract_credentials] β found HTTP Basic Auth credentials
3. [scan_capture_for_threats] β 2 malicious IPs detected
4. Generated full security report with IOCs
You: Scan 192.168.1.100 for vulnerabilities
Claude: [nmap_quick_scan("192.168.1.100")] β ports 22, 80, 443 open
[nmap_service_detection("192.168.1.100")] β nginx 1.18.0, OpenSSH 8.2
[nmap_vulnerability_scan("192.168.1.100")] β no critical CVEs found
| URI | Description |
|---|---|
netmcp://interfaces |
Dynamic list of available network interfaces |
netmcp://captures |
Available PCAP files in common directories |
netmcp://system/info |
System capabilities: tool versions, features |
| Prompt | Description |
|---|---|
security_audit |
Comprehensive PCAP security analysis with IOC extraction |
network_troubleshooting |
Step-by-step network diagnostics |
incident_response |
Security incident investigation workflow |
traffic_analysis |
Deep traffic analysis with GeoIP mapping |
network_baseline |
Establish normal traffic patterns |
# Clone and setup
git clone https://github.com/cortexc0de/netmcp.git
cd netmcp
python -m venv .venv
source .venv/bin/activate
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=netmcp --cov-report=html
# Linting
ruff check src/netmcp/ tests/
ruff format --check src/netmcp/
mypy src/netmcp/src/netmcp/
βββ server.py # FastMCP server entry point
βββ core/
β βββ security.py # 5-layer input validation + rate limiting
β βββ formatter.py # MCP response formatting
βββ interfaces/
β βββ tshark.py # TShark async CLI wrapper
β βββ nmap.py # python-nmap wrapper
β βββ threat_intel.py # URLhaus + AbuseIPDB clients
βββ tools/ # 48 MCP tools across 11 modules
βββ resources/ # 3 MCP resources
βββ prompts/ # 5 MCP prompts
Contributions are welcome! See CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Run tests (
pytest tests/ -v) - Submit a Pull Request
MIT License β see LICENSE for details.
- Wireshark/TShark β packet analysis toolkit
- Nmap β network scanner
- URLhaus & AbuseIPDB β threat intelligence
- Model Context Protocol β AI tool framework
Transform your network analysis with AI-powered packet capture, scanning, and threat intelligence.