MCP Wireshark
About
An MCP server that integrates Wireshark/tshark with AI tools and IDEs. Capture live traffic, parse .pcap files, apply display filters, follow streams, and export JSON - all via Claude Desktop, VS Code, or CLI. Cross‑platform, typed, tested, and pip‑installable.
Details
- Author
- khuynh22
- GitHub stars
- 46
- Downloads
- 552
- Categories
- Other, Security
Jump to
- 14 tools split into read and write categories
- Read tools: summarize_pcap, display_filter, follow_tcp/udp, expert_info, decode_protocol, analyze_iec61850, and more
- Write tools: live_capture (capped at 5 min / 10k packets) and export_json
- All read tools annotated with MCP readOnlyHint for safety
- Security: file path validation, no shell metacharacters, no shell=True, hard caps on packets and time
- Supports IEC 61850 analysis (GOOSE, SV, MMS)
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
MCP WiresharkCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install the package with pip install mcp-wireshark and add it to Claude Code using claude mcp add --transport stdio --scope user mcp-wireshark -- mcp-wireshark. The server works with any MCP client (Claude Desktop, VS Code, Cursor, etc.) and requires tshark to be installed and on the system PATH.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"mcp wireshark": {
"wireshark": {
"command": "mcp-wireshark",
"args": []
}
}
}
}
McpServers
{
"wireshark": {
"command": "mcp-wireshark",
"args": []
}
}
mcp-wireshark
> Community-maintained MCP server for Wireshark / tshark. Not affiliated with Wireshark or Anthropic.
> Give your AI assistant direct access to packet captures. Ask Claude to summarize a .pcap, follow a TCP stream, filter for a specific protocol, or capture live traffic — all without leaving the chat.

---
Quick start with Claude Code
pip install mcp-wireshark
claude mcp add --transport stdio --scope user mcp-wireshark -- mcp-wireshark
That's it. Open Claude Code and try:
> "Summarize ./capture.pcap and tell me which IPs talked the most."
--scope user makes the server available across every Claude Code project. Drop the flag to install it for the current project only. See claude mcp docs for more.
Verify the install
claude mcp list
You should see mcp-wireshark listed. Inside Claude Code, ask:
> "Run check_installation."
If tshark is on your PATH, it returns the version. If not, see troubleshooting.
---
Tools
The server exposes 14 tools, split cleanly between read tools (safe, no side effects) and write tools (capture traffic or write files). Both groups are annotated with the standard MCP readOnlyHint so any compliant client can surface the distinction.
Read tools
Safe to call freely — they only inspect state.
| Tool | What it does |
| -------------------- | --------------------------------------------------------------------------------------------- |
| check_installation | Verify tshark is installed and show version |
| list_interfaces | List network interfaces available to capture from |
| read_pcap | Read packets from a .pcap / .pcapng file (preview + total count) |
| display_filter | Apply a Wireshark display filter to a pcap |
| summarize_pcap | High-level summary: I/O stats, protocol hierarchy, top talkers |
| stats_by_proto | Protocol hierarchy statistics |
| follow_tcp | Reassemble a TCP stream and return its payload |
| follow_udp | Reassemble a UDP stream and return its payload |
| expert_info | tshark expert analysis: warnings, errors, and notes grouped by severity |
| decode_protocol | Extract protocol fields as a TSV table. Curated defaults for HTTP, DNS, TLS, GOOSE, MMS, SV, SIP, ICMP; arbitrary fields for any other protocol |
| protocol_stats | Aggregate -z reports (protocol hierarchy, conversations, endpoints, HTTP/DNS/SMB stats) |
| analyze_iec61850 | Health triage for GOOSE/SV/MMS captures: per-source OK/WARN/FAIL with sqNum/stNum gaps, TTL violations, smpCnt discontinuities, lost sync, and MMS errors |
Write tools
These create files or capture live traffic. Compliant clients may prompt before invoking.
| Tool | What it does |
| -------------- | -------------------------------------------------------------------------- |
| live_capture | Capture live traffic from an interface (capped at 5 minutes / 10k packets) |
| export_json | Export packets from a pcap to a JSON file at a path you choose |
---
See it in action
These clips run the real tools against demo/demo.pcapng — a
short home-network capture. Regenerate them with python demo/render_gif.py <scene>.
summarize_pcap — characterize an unknown capture at a glance

decode_protocol — filter to a protocol and get a compact table (here: TLS SNI and DNS-over-HTTPS lookups)

expert_info — let tshark surface the warnings and anomalies for you

---
Example prompts
Drop these into Claude Code as-is:
List my network interfaces.
Summarize ./traffic.pcap.
From ./traffic.pcap, show me only HTTP requests.
Follow TCP stream 0 in ./traffic.pcap and tell me what protocol is in it.
Capture 30 seconds of traffic on Wi-Fi filtered to tcp.port == 443.
Export every DNS packet from ./traffic.pcap to ./dns.json.
Decode the GOOSE messages in ./substation.pcapng — only stNum >= 1.
Run expert analysis on ./traffic.pcap and group findings by severity.
Show me the IP conversations in ./traffic.pcap.
Useful display filters
| Filter | Matches |
| ------------------------------------------ | ------------------------------- |
| tcp.port == 80 | HTTP |
| tcp.port == 443 | HTTPS |
| dns | All DNS |
| http.request | HTTP requests only |
| ip.addr == 10.0.0.1 | Traffic to/from a specific host |
| tcp.flags.syn == 1 && tcp.flags.ack == 0 | TCP SYN packets only |
For substation engineers analyzing IEC 61850 traffic:
| Filter | Matches |
| ----------------- | --------------------------------- |
| goose | All GOOSE messages |
| goose.stNum > 0 | GOOSE messages with state changes |
| mms | All MMS traffic |
| sv | Sampled Values |
---
Other clients
Anything that speaks MCP works. The package installs an mcp-wireshark binary on PATH.
<details>
<summary><b>Claude Desktop</b></summary>
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}
</details>
<details>
<summary><b>VS Code (Copilot / GitHub Copilot Chat)</b></summary>
Create .vscode/mcp.json in your workspace:
{
"servers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}
</details>
<details>
<summary><b>Cursor / Windsurf / others</b></summary>
Use the same stdio invocation: command: mcp-wireshark. No transport flags.
</details>
---
Prerequisites
- Python 3.10+
- Wireshark installed; tshark reachable on PATH
Install with pip or uv:
```bash
pip install mcp-wireshark
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



