A Model Context Protocol (MCP) server that provides network packet analysis capabilities via Wireshark/tshark on a remote machine (e.g., Kali Linux).
This server enables AI assistants to perform sophisticated network traffic analysis, packet capture, protocol inspection, and security-focused operations through a standardized MCP interface.
- Live Packet Capture - Capture network traffic on remote interfaces with BPF filters
- PCAP Analysis - Read and analyze existing pcap files
- Protocol Statistics - Generate protocol hierarchy, conversations, endpoints, and I/O statistics
- Stream Reconstruction - Follow TCP, UDP, HTTP, and TLS streams
- File Extraction - Extract files from HTTP, SMB, DICOM, IMF, and TFTP traffic
- Deep Packet Inspection - Decode packets with full protocol details
- Credential Extraction - Search for credentials in HTTP Basic Auth, FTP, Telnet, and form submissions
- HTTP Object Export - List and export HTTP objects from captures
- Node.js 18+
- SSH access to a remote machine with tshark installed (e.g., Kali Linux)
- SSH key-based authentication configured (password-less)
sudoaccess on the remote machine for packet capture
git clone https://github.com/schwarztim/sec-wireshark-mcp.git
cd sec-wireshark-mcp
npm install
npm run buildSet the following environment variables:
| Variable | Description | Default |
|---|---|---|
WIRESHARK_SSH_HOST |
SSH hostname or IP of the remote machine | kali |
WIRESHARK_SSH_USER |
SSH username (optional if using SSH config) | (empty) |
WIRESHARK_PCAP_DIR |
Directory on remote host for pcap files | /tmp/mcp-pcaps |
export WIRESHARK_SSH_HOST="192.168.1.100"
export WIRESHARK_SSH_USER="kali"Or use an SSH config entry:
# ~/.ssh/config
Host kali
HostName 192.168.1.100
User kali
IdentityFile ~/.ssh/id_rsa
Add to your Claude Desktop configuration (~/.claude/user-mcps.json or Claude Desktop settings):
{
"mcpServers": {
"wireshark": {
"command": "node",
"args": ["/path/to/sec-wireshark-mcp/dist/index.js"],
"env": {
"WIRESHARK_SSH_HOST": "kali",
"WIRESHARK_SSH_USER": "kali"
}
}
}
}List available network interfaces on the remote machine for packet capture.
Start packet capture on a specified interface.
Parameters:
interface(required): Network interface (e.g.,eth0,wlan0)count: Number of packets to capture (default: 10, max: 1000)filter: BPF capture filter (e.g.,port 80,host 192.168.1.1)timeout: Capture timeout in seconds (default: 10, max: 60)outputFile: Save capture to pcap file on remote host
Read and analyze a pcap file.
Parameters:
file(required): Path to the pcap file on remote hostfilter: Wireshark display filtercount: Maximum packets to return (default: 100, max: 1000)fields: Specific fields to extract (e.g.,['ip.src', 'ip.dst', 'tcp.port'])
Apply a display filter to a pcap file.
Parameters:
file(required): Path to the pcap filefilter(required): Display filter (e.g.,http.request,dns,tcp.flags.syn == 1)outputFormat:json,text, orfields(default:json)fields: Fields to extract when usingfieldsformat
Generate protocol statistics from a pcap file.
Parameters:
file(required): Path to the pcap filetype(required):hierarchy,conversations,endpoints,io,http, ordnsprotocol: Protocol for conversations/endpoints (e.g.,tcp,udp,ip)
Reconstruct a TCP, UDP, HTTP, or TLS stream.
Parameters:
file(required): Path to the pcap fileprotocol(required):tcp,udp,http, ortlsstreamIndex: Stream index number (default: 0)format:ascii,hex, orraw(default:ascii)
Extract files from protocol traffic.
Parameters:
file(required): Path to the pcap fileprotocol:http,dicom,imf,smb, ortftp(default:http)outputDir: Directory for extracted files (default:/tmp/mcp-extracted)
Deep packet inspection with full protocol details.
Parameters:
file(required): Path to the pcap filepacketNumber: Specific packet number to decodefilter: Display filter to select packetsprotocols: Specific protocols to show (e.g.,['http', 'tcp', 'ip'])verbose: Show all protocol details (default: false)
Search for potential credentials in network traffic.
Parameters:
file(required): Path to the pcap file
Searches for HTTP Basic Auth, FTP credentials, HTTP POST form data, and Telnet data.
List and export HTTP objects from a capture.
Parameters:
file(required): Path to the pcap filelistOnly: Only list objects without extracting (default: true)outputDir: Directory for extracted objects
- This server executes commands on a remote machine via SSH
- Input sanitization is implemented to prevent command injection
- Use SSH key authentication with appropriate permissions
- Consider network segmentation for the capture machine
- The remote machine requires
sudoaccess for live capture - Credential extraction features should be used only for authorized security testing
# Run in development mode
npm run dev
# Build for production
npm run build
# Start production server
npm startMIT License - see LICENSE for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Model Context Protocol - The protocol specification
- Wireshark - Network protocol analyzer
- tshark - Terminal-based Wireshark