Skip to main content

Comprehensive Wireshark + Nmap MCP server for network analysis with threat intelligence

Project description

Wireshark MCP Server

A comprehensive Model Context Protocol (MCP) server that provides AI assistants with professional-grade network analysis capabilities. Combines Wireshark packet analysis with nmap scanning, threat intelligence, and modern MCP features for enhanced network troubleshooting and security analysis.

Features

Core Wireshark Capabilities

  • Live Packet Capture: Real-time network traffic capture from any interface
  • PCAP File Analysis: Advanced analysis of capture files with filtering
  • Protocol Statistics: Comprehensive protocol hierarchy and conversation stats
  • Stream Following: Reconstruct TCP/UDP conversations from captures
  • Data Export: Export packets to JSON, CSV formats

Network Scanning (Nmap Integration)

  • Port Scanning: Multiple scan types (SYN, connect, UDP)
  • Service Detection: Identify services and versions
  • OS Fingerprinting: Operating system detection
  • Vulnerability Scanning: NSE vulnerability detection scripts
  • Quick & Comprehensive Scans: Flexible scan options

Security Features

  • Threat Intelligence: URLhaus and AbuseIPDB integration
  • Malicious IP Detection: Automatic threat checking
  • Security Audit Workflows: Guided security analysis prompts
  • Credential Scanning: Detect cleartext credentials
  • Defense in Depth: Multiple layers of input validation

Modern MCP Features

  • MCP Resources: Dynamic access to interfaces and captures
  • MCP Prompts: Guided workflows for security audits and troubleshooting
  • Structured JSON Output: LLM-optimized response formats
  • Rate Limiting: Prevent abuse of scanning operations
  • Async Operations: Non-blocking high-performance analysis

Installation

Quick Install (PyPI)

pip install wireshark-mcp-server

Development Install

# Clone repository
git clone https://github.com/yourusername/wireshark-mcp.git
cd wireshark-mcp

# Install in development mode
pip install -e .

# Or install from requirements
pip install -r requirements.txt

Requirements

System Requirements

  • Python 3.8+ with pip
  • Wireshark/TShark installed and in PATH
  • Nmap (optional, for scanning features)
  • Network capture permissions (see setup below)

Installation Commands

Ubuntu/Debian

sudo apt-get update
sudo apt-get install tshark nmap
sudo usermod -aG wireshark $USER

macOS

brew install wireshark nmap

Windows

  1. Download and install Wireshark
  2. Download and install Nmap
  3. Run as Administrator for packet capture

Network Permissions

Linux (Recommended)

# Set capabilities on dumpcap (no root needed)
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

# Or add user to wireshark group
sudo usermod -aG wireshark $USER
newgrp wireshark  # Apply group without logout

Configuration

Claude Desktop

Edit your Claude Desktop config:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "wireshark": {
      "command": "wireshark-mcp-server",
      "env": {
        "ABUSEIPDB_API_KEY": "your_api_key_here"
      }
    }
  }
}

Environment Variables

# Optional: AbuseIPDB API key for threat intelligence
export ABUSEIPDB_API_KEY="your_api_key_here"

# Optional: VirusTotal API key (future support)
export VIRUSTOTAL_API_KEY="your_api_key_here"

Available Tools

Network Interface & Capture (5 tools)

get_network_interfaces()

  • Lists all available network interfaces

capture_live_packets(interface, count, capture_filter, timeout, format)

  • Captures live packets with BPF filtering
  • Supports JSON and text output formats

analyze_pcap_file(filepath, display_filter, max_packets)

  • Analyzes PCAP files with Wireshark display filters

get_protocol_statistics(filepath)

  • Generates protocol hierarchy and IP conversations

get_capture_file_info(filepath)

  • Retrieves capture file metadata

Stream Analysis (3 tools)

follow_tcp_stream(filepath, stream_index, format)

  • Reconstructs TCP conversations (ASCII, hex, raw)

follow_udp_stream(filepath, stream_index, format)

  • Reconstructs UDP conversations

list_tcp_streams(filepath)

  • Lists all TCP conversations in capture

Data Export (3 tools)

export_packets_json(filepath, display_filter, max_packets)

  • Exports packets to structured JSON

export_packets_csv(filepath, fields, display_filter)

  • Exports custom fields to CSV

convert_pcap_format(filepath, output_format)

  • Converts between pcap/pcapng formats

Nmap Scanning (6 tools)

nmap_port_scan(target, ports, scan_type, format)

  • Scans for open ports (connect, SYN, UDP)

nmap_service_detection(target, ports)

  • Detects service versions

nmap_os_detection(target)

  • Identifies operating system (requires root)

nmap_vulnerability_scan(target, ports)

  • Runs NSE vulnerability scripts

nmap_quick_scan(target)

  • Fast scan of top 100 ports

nmap_comprehensive_scan(target)

  • Full scan with all features

Threat Intelligence (2 tools)

check_ip_threat_intel(ip_or_filepath, providers)

  • Checks IPs against URLhaus, AbuseIPDB

scan_capture_for_threats(filepath, providers)

  • Comprehensive threat scan of PCAP file

MCP Resources

wireshark://interfaces/

  • Dynamic list of network interfaces

wireshark://captures/

  • Available PCAP files in common directories

wireshark://system/info

  • System capabilities and tool availability

network://help

  • Comprehensive tool documentation

MCP Prompts

security_audit

  • Guided security analysis workflow

network_troubleshooting

  • Network diagnostics workflow

incident_response

  • Security incident investigation workflow

Usage Examples

Basic Network Capture

User: "Capture 100 packets from eth0 with HTTP traffic"
AI: Uses capture_live_packets("eth0", 100, "tcp port 80")

Security Analysis Workflow

User: "Perform a security audit on suspicious.pcap"
AI:
1. Uses security_audit prompt
2. Analyzes file with get_protocol_statistics()
3. Extracts IPs and checks scan_capture_for_threats()
4. Follows suspicious TCP streams
5. Generates comprehensive report

Scan & Capture Workflow

User: "Scan 192.168.1.100 then capture its traffic"
AI:
1. nmap_quick_scan("192.168.1.100")
2. capture_live_packets("eth0", 500, "host 192.168.1.100")
3. analyze_pcap_file() with findings
4. follow_tcp_stream() for interesting connections

Threat Intelligence Check

User: "Check if this capture has any malicious IPs"
AI: scan_capture_for_threats("/path/to/capture.pcap", "urlhaus,abuseipdb")

Security

Input Validation

  • IP/CIDR/hostname validation
  • Port range validation
  • BPF and display filter sanitization
  • File path resolution and sandboxing

Command Injection Prevention

  • shell=False enforced in ALL subprocess calls
  • List-based command construction
  • No user input directly in shell commands

Rate Limiting

  • Max 10 nmap scans per hour
  • Configurable scan history tracking

Privilege Management

  • Detects when root/sudo required
  • Never auto-escalates privileges
  • Clear error messages for permission issues

Audit Logging

  • All scans logged with timestamps
  • Security-relevant operations tracked
  • Validation failures recorded

Development

Running Tests

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/

# With coverage
pytest --cov=wireshark_mcp --cov-report=html

# Linting
ruff check wireshark_mcp/
black --check wireshark_mcp/

# Type checking
mypy wireshark_mcp/

Project Structure

wireshark_mcp/
├── server.py                   # Main server orchestration
├── core/
│   ├── security.py             # Security validation
│   └── output_formatter.py     # Response formatting
├── interfaces/
│   ├── wireshark_interface.py  # TShark wrapper
│   ├── nmap_interface.py       # Nmap wrapper
│   └── threat_intel_interface.py # Threat APIs
├── tools/
│   ├── capture.py              # Capture tools
│   ├── analysis.py             # Analysis tools
│   ├── nmap_scan.py            # Scanning tools
│   ├── network_streams.py      # Stream tools
│   ├── export.py               # Export tools
│   └── threat_intel.py         # Threat tools
├── resources/                  # MCP Resources
└── prompts/                    # MCP Prompts

Troubleshooting

"TShark not found"

# Verify installation
tshark --version

# Add to PATH or use absolute path
export PATH=$PATH:/usr/bin

"Permission denied" for capture

# Linux - set capabilities
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

# Or use sudo (not recommended)
sudo wireshark-mcp-server

"Nmap not available"

# Install nmap
sudo apt-get install nmap  # Debian/Ubuntu
brew install nmap           # macOS

# Verify
nmap --version

Threat Intelligence Not Working

# Check API key
echo $ABUSEIPDB_API_KEY

# URLhaus requires no key (works by default)
# AbuseIPDB requires free API key from https://www.abuseipdb.com/

License

MIT License - see LICENSE file for details

Acknowledgments

  • Built on the Model Context Protocol (MCP) by Anthropic
  • Powered by Wireshark network analysis toolkit
  • Integrated with Nmap security scanner
  • Threat intelligence from URLhaus and AbuseIPDB

Support

  • Issues: GitHub Issues
  • Documentation: See network://help resource in MCP
  • Security: Report vulnerabilities via GitHub Security Advisories

Roadmap

  • GeoIP enrichment for IP addresses
  • HTTP/TLS credential extraction
  • Real-time WebSocket streaming
  • VirusTotal integration
  • AlienVault OTX integration
  • Machine learning traffic classification
  • Anomaly detection algorithms
  • PCAP merging and splitting tools
  • Statistics visualization export

Transform your network analysis with AI-powered Wireshark + Nmap integration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_mixelpixx_wireshark_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_mixelpixx_wireshark_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_mixelpixx_wireshark_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 308147a8516888ba67b458c48926cb45f1037fa52ac453beeb9ca95eda10c682
MD5 4108063af232f8d5a08a3e7bb1d59cc2
BLAKE2b-256 820594114228a54af00e3c3e7438d8c060be12ef1a8c59a51e192040e6808cc2

See more details on using hashes here.

File details

Details for the file iflow_mcp_mixelpixx_wireshark_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_mixelpixx_wireshark_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_mixelpixx_wireshark_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d29138d181d26fd60850831554f2bbd426fbdc30abc2a41a91b2271bc2463369
MD5 cc317624e8850fd6aec858c7d498ac10
BLAKE2b-256 577a58a54f59969797a0e577292b472840995ab83bee3a5ce4840dddfde9c37d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page