Skip to main content
Glama
Wireshark MCP

Wireshark MCP

by bx33661

Give your AI assistant a packet analyzer.

Drop a .pcap file, ask questions in plain English — get answers backed by real tshark data.


What is this?

An MCP server that wraps tshark (and optional Wireshark suite tools) into a structured analysis interface. Works with Claude Desktop, Claude Code, Cursor, VS Code, and 18+ other MCP clients.

You:    "Find all DNS queries going to suspicious domains in this capture."
Claude: [calls wireshark_extract_dns_queries → wireshark_detect_dns_tunnel]
        "Found repeated high-entropy DNS queries consistent with tunneling: ..."

New in 4.0

  • Capture index. With the optional [index] extra, wireshark_index dissects a capture once into a local DuckDB file. Later wireshark_aggregate and wireshark_extract_fields calls read it with answers identical to tshark: 408× faster at 1 GB, and at 10 GB it answers questions the tshark path stops on. It also adds read-only SQL, capture sets, first-seen timelines, capture or window diffs and Parquet export. See Capture index.

  • One finding shape. Every detector returns data.findings with a stable id, evidence anchors, a native tshark command to re-check it and candidate ATT&CK techniques.

  • Case files. wireshark_case keeps captures, recorded results, findings and analyst verdicts in a JSON case file, so a long investigation survives a context reset. See Findings and cases.

Upgrading from 3.x needs no configuration change. Scripts that parsed the plain-text output of wireshark_detect_beaconing, wireshark_detect_exfiltration, wireshark_detect_protocol_anomalies, wireshark_detect_arp_spoofing, wireshark_yara_scan or wireshark_quick_analysis should read the JSON envelope instead. Full notes: 4.0.0 changelog.


Related MCP server: AutoSOC Agent

Install

Claude Code / Codex plugin route

Prerequisites: uv and Wireshark CLI (tshark). The plugin includes this project and both skills; the client runs the locked Python project through uv over stdio. It does not install Wireshark or capture drivers.

From a checkout containing these plugin manifests, choose your client:

# Codex
codex plugin marketplace add .
codex plugin add wireshark-mcp@wireshark-mcp

# Claude Code
claude plugin marketplace add .
claude plugin install wireshark-mcp@wireshark-mcp

See plugin distribution for local installation, old-version refresh, environment settings and the GitHub entrypoint after publication. Choose this route or the traditional registration route below, not both.

Traditional Python package route

Prerequisites: Python 3.10+ and Wireshark with tshark on PATH.

Wireshark MCP runs on the stable MCP Python SDK 2.x line (mcp>=2.1.1,<3).

pip install wireshark-mcp
wireshark-mcp install   # choose from detected MCP clients

For scripts/non-interactive terminals, select clients explicitly. Preview before installing into the current project:

wireshark-mcp install --client codex --scope project --dry-run
wireshark-mcp install --client codex --scope project

The default scope is global. Repeat --client or explicitly use --client all. Restart the client to load configuration. See the installation guide for updates, removal, backups and exit codes.

Optional extras add features on top of the base install: index (DuckDB capture index for large captures), geoip (GeoIP enrichment) and yara (YARA scanning), or all:

pip install 'wireshark-mcp[index]'

The container image and the plugin route ship without extras. Every setting, extra and limit is listed in the configuration reference.

The project also ships MCP and full TShark CLI analysis skills; see skill discovery and usage.

Run wireshark-mcp doctor if anything looks off. See docs/manual-configuration.md for manual setup or platform-specific notes.


Quick Start

Point your AI client at a .pcap file and try:

Analyze capture.pcap using the Wireshark MCP tools.
Start with wireshark_open_file, then run wireshark_quick_analysis.
Use wireshark_aggregate for any capture-wide count or distribution.
Write findings to report.md.

For a large capture, or several related ones, build the index first and keep the investigation in a case file:

Index big.pcapng with wireshark_index, then use wireshark_aggregate and
wireshark_index action="timeline" to find when 10.0.0.5 first appeared.
Open a case with wireshark_case, record every detector result you rely on,
and verify each conclusion with wireshark_get_packet_details.

Tools

54 tools, each backed by real tshark output — organized into categories:

Category

Highlights

Count

Entry & Workflow

wireshark_open_file, wireshark_quick_analysis, wireshark_case (persistent investigation case files)

3

Packet Analysis

Packet list, details, bytes, context, stream follow, search, file info

8

Data Extraction

HTTP requests, DNS queries, arbitrary fields, object export

4

Statistics

Aggregate/group/distinct/top-k/time buckets, protocol hierarchy, endpoints, conversations, I/O graph, expert info, service response time, flow graph

8

Security & Anomaly

Credential scan, port scan, DNS tunnel, DoS, beaconing, exfiltration, protocol anomalies, YARA

8

Protocol Analysis

wireshark_analyze_protocol (25 protocols incl. BLE pairing, scanner detection, GATT timeline with handle labels, connection lifecycle), TCP health, ARP spoofing

3

Decrypt & Dissection

TLS/WPA decrypt, decryption check, decode-as, protocol preferences

5

Forensics & Enrichment

TLS fingerprints, file signature scan, GeoIP

3

File Ops, Capture & Suite

Live capture, interfaces, merge, filter-save, editcap trim/split/dedup/time-shift, frame extract, text2pcap, capabilities

11

Capture Index (optional [index] extra)

wireshark_index: one tshark pass into a local DuckDB file; wireshark_aggregate and wireshark_extract_fields reuse it. Read-only SQL, multi-capture sets, first-seen timelines, capture/window diffs and Parquet export

1

One tool covers 25 protocols rather than 25 tools covering one each: wireshark_analyze_protocol takes a protocol argument (tls_handshakes, mqtt, modbus, s7comm, zigbee, wifi, rtp, kerberos, …) and applies the right fields and display filter for it. The field names are the point — s7comm.param.item.dbnum is not something a caller should have to guess, and a wrong guess returns an empty result that reads like a clean capture.

The server starts with only tshark required. Optional tools (capinfos, mergecap, editcap, dumpcap, text2pcap) are auto-detected and enable extra features when present.

Context cost

The tool list travels in the prompt prefix of every request your client sends, so its size is a fixed per-request cost. The default surface is ~23 KB — about 9 KB of parameter schema, 5 KB of descriptions, and 3 KB of read/write annotations — and it is byte-identical across restarts so clients can cache the prefix rather than re-reading it each session.

If your client never captures live traffic or writes pcaps, --profile advertises less:

Profile

Tools

Payload

Drops

full (default)

54

~23 KB

nothing

analysis

42

~18 KB

live capture, interface listing, all caller-directed file-writing tools

core

34

~15 KB

the above, plus decryption, dissection overrides, and low-level views

wireshark-mcp serve --profile core

Runtime prompts and protocol recommendations respect the selected profile. Static guides may describe full-only workflows, but the server never recommends an excluded tool during capture discovery.

Tool results are bounded too, since a result stays in the conversation for the rest of the session. Output over 8000 characters is truncated head-and-tail with a marker, and the tool's offset / limit / display_filter parameters are the way to page through the rest. Raise or lower the ceiling with:

export WIRESHARK_MCP_MAX_RESULT_CHARS=16000

Every tool also declares whether it reads or writes, so clients can auto-approve the 41 read-only analysis tools and still prompt for the 12 that create files (live capture, merge, filter-save, editcap, text2pcap, frame extract, object export, case files). wireshark_index is marked non-destructive: it writes only the server's own index cache.

Since 3.0, those tools fail closed until WIRESHARK_MCP_ALLOWED_DIRS names existing directories. Remote HTTP/SSE binding also stays loopback-only unless --allow-insecure-http is explicitly supplied behind a trusted authenticated TLS proxy. See the 3.0 security migration guide.


Documentation

Topic

Link

Documentation index

docs/README.md

Configuration reference (extras, environment variables, limits)

docs/configuration.md

Capture-wide aggregation

docs/aggregation.md

Capture index (DuckDB)

docs/capture-index.md

Findings and case files

docs/findings-and-cases.md

Install, update and uninstall

docs/installation.md

Platform setup (macOS/Linux/Windows)

docs/platform-validation.md

Manual client configuration

docs/manual-configuration.md

Deployment scenarios

docs/deployment-scenarios.md

3.0 security migration

docs/security-hardening-v3.md

Prompt templates

docs/prompt-engineering.md

Architecture

docs/architecture.md

Release checklist

docs/release-checklist.md

Contributing

CONTRIBUTING.md

Changelog

CHANGELOG.md

Feature roadmap

ROADMAP.md

Security policy

SECURITY.md


Development

uv sync --group dev --extra index
uv run python -m pytest
uv run python -m ruff check src/ tests/

See CONTRIBUTING.md for the full guide.


Available Tools

54 tools
wireshark_aggregateC
Read-only

[Primary statistics] Full-filter counts, groups, distinct values, numeric metrics, top-k, and time buckets. Field lists are comma-separated.

Inputs: pcap_file (required), top_k, sort_by, distinct, +8 more.

wireshark_analyze_protocolB
Read-only

[Protocol] Analyze one protocol with preset fields and filter. Returns a summary and bounded rows; BLE values add device inventory, scanners, GATT timeline, connection lifecycle, pairing.

Inputs: protocol (required), pcap_file (required), limit.

wireshark_analyze_tcp_healthB
Read-only

[TCP] Analyze TCP connection health (retransmissions, dup ACKs, zero window, resets).

Inputs: pcap_file (required).

wireshark_captureB
Destructive

Capture live network traffic. capture_filter: BPF syntax. ring_buffer: "filesize:1024,files:5".

Inputs: interface (required), output_file (required), ring_buffer, packet_count, +2 more.

wireshark_caseC
Destructive

[Case] Saved investigation. create(text=title,target=pcaps) record(text=tool JSON) verdict(target=finding id,text=confirmed|dismissed|open: note) note show report list

Inputs: action (required), text, target, case_id.

wireshark_decode_asC
Read-only

[Dissection] Decode-as for non-standard ports. Rules: 'tcp.port==8080,http;udp.port==5353,dns'.

Inputs: pcap_file (required), decode_rules (required), limit, fields, +1 more.

wireshark_decrypt_tlsB
Read-only

[Decrypt] Decrypt TLS traffic using SSLKEYLOGFILE, show HTTP data.

Inputs: pcap_file (required), keylog_file (required), display_filter.

wireshark_decrypt_wpaB
Read-only

[Decrypt] Decrypt WPA/WPA2 traffic with passphrase (+SSID).

Inputs: pcap_file (required), wpa_passphrase (required), ssid, display_filter.

wireshark_detect_arp_spoofingB
Read-only

[ARP] Detect potential ARP spoofing (duplicate IP-MAC, gratuitous floods, reply storms).

Inputs: pcap_file (required).

wireshark_detect_beaconingB
Read-only

[Anomaly] Detect periodic communication patterns (C2 beacons) by analyzing connection timing intervals and jitter.

Inputs: pcap_file (required), max_jitter, min_connections.

wireshark_detect_dns_tunnelB
Read-only

[Security] Detect DNS tunneling candidates (long query names, TXT abuse, high subdomain fanout).

Inputs: pcap_file (required).

wireshark_detect_dos_attackC
Read-only

[Security] Detect DoS/DDoS traffic volume patterns (SYN flood, ICMP/UDP flood, DNS amplification).

Inputs: pcap_file (required).

wireshark_detect_exfiltrationA
Read-only

[Anomaly] Detect data exfiltration (large outbound transfers, DNS length anomalies, non-standard ports).

Inputs: pcap_file (required), limit.

wireshark_detect_port_scanA
Read-only

[Security] Detect port scanning (SYN, FIN, NULL, Xmas scans). threshold: min unique dst ports to flag.

Inputs: pcap_file (required), threshold.

wireshark_detect_protocol_anomaliesB
Read-only

[Anomaly] Detect protocol anomalies (known protocols on non-standard ports, unusual protocol distributions).

Inputs: pcap_file (required), limit.

wireshark_editcap_deduplicateC
Destructive

Remove duplicate packets within a sliding window (default: 5 packets).

Inputs: input_file (required), output_file (required), duplicate_window.

wireshark_editcap_splitC
Destructive

Split a capture into smaller files by packet count or interval.

Inputs: input_file (required), output_prefix (required), packets_per_file, seconds_per_file.

wireshark_editcap_time_shiftC
Destructive

Adjust all packet timestamps by a positive or negative offset in seconds.

Inputs: seconds (required), input_file (required), output_file (required).

wireshark_editcap_trimC
Destructive

Trim capture to a timestamp window. Times in editcap format.

Inputs: input_file (required), output_file (required), stop_time, start_time.

wireshark_export_objectsB
Destructive

[Export] Extract embedded files from traffic. protocol: 'http'|'smb'|'tftp'|'imf'|'dicom'.

Inputs: dest_dir (required), protocol (required), pcap_file (required).

wireshark_extract_credentialsA
Read-only

[Security] Scan for plaintext credentials (HTTP Basic Auth, FTP passwords, Telnet).

Inputs: pcap_file (required).

wireshark_extract_dns_queriesA
Read-only

[DNS] Extract DNS query details (name, type, response flag) as TSV.

Inputs: pcap_file (required), limit.

wireshark_extract_fieldsC
Read-only

[Tabular] Extract fields as TSV. fields: comma-separated; limit/offset count lines including the header.

Inputs: fields (required), pcap_file (required), limit, offset, +1 more.

wireshark_extract_fingerprintsA
Read-only

[Forensics] Extract JA3/JA3S TLS fingerprints and optionally match local user-maintained lists. Treat matches as leads.

Inputs: pcap_file (required), limit.

wireshark_extract_framesA
Destructive

[File] Extract specific frame ranges to a new pcap. Ranges: '1-10 15 20-30'.

Inputs: pcap_file (required), output_file (required), frame_ranges (required).

wireshark_extract_http_requestsB
Read-only

[HTTP] Extract HTTP request details (method, URI, host, user-agent) as TSV.

Inputs: pcap_file (required), limit.

wireshark_filter_saveB
Destructive

Filter packets from a pcap and save to a new file using a Wireshark display filter.

Inputs: input_file (required), output_file (required), display_filter (required).

wireshark_flow_graphB
Read-only

[Stats] Flow/sequence graph showing packet exchange. Types: 'any', 'tcp', 'icmp'.

Inputs: pcap_file (required), flow_type.

wireshark_follow_streamC
Read-only

[Stream] Reassemble stream with pagination. protocol: tcp|udp|tls|http|http2. output_mode: ascii|hex|raw.

Inputs: pcap_file (required), stream_index (required), protocol, limit_lines, +3 more.

wireshark_geoip_enrichA
Read-only

[Enrichment] GeoIP lookup for unique IPs — country, city, ASN. Needs GeoLite2 DB.

Inputs: pcap_file (required), limit.

wireshark_get_capabilitiesA
Read-only

Get Wireshark suite capabilities for this MCP server instance (available tools and versions).

Inputs: no named parameters.

wireshark_get_file_infoA
Read-only

Get capture file metadata (type, packet count, duration, size) via capinfos.

Inputs: pcap_file (required).

wireshark_get_packet_bytesB
Read-only

[Bytes] Raw hex/ASCII dump of a single packet.

Inputs: pcap_file (required), frame_number (required).

wireshark_get_packet_contextB
Read-only

[Context] Packets surrounding a specific frame (count before and after).

Inputs: pcap_file (required), frame_number (required), count.

wireshark_get_packet_detailsA
Read-only

[Detail] Full JSON for one packet. layers: comma-separated protocol filter (e.g. "ip,tcp,http").

Inputs: pcap_file (required), frame_number (required), layers.

wireshark_get_packet_listC
Read-only

[Summary] Packet list (top pane). TSV: No/Time/Src/Dst/Proto/Len/Info. custom_columns: comma-separated fields.

Inputs: pcap_file (required), limit, offset, custom_columns, +1 more.

wireshark_indexC

[Index] Build once; aggregate/extract_fields reuse it. more_files: extra captures (capture_id). query: SELECT on packets/pkt/flows/captures. timeline: first/last seen. diff: vs more_files/compare_filter. export: Parquet.

Inputs: pcap_file (required), sql, action, more_files, +2 more.

wireshark_list_interfacesA
Read-only

List available network interfaces for capture.

Inputs: no named parameters.

wireshark_merge_pcapsC
Destructive

Merge multiple capture files into one. input_files: comma-separated paths.

Inputs: input_files (required), output_file (required).

wireshark_open_fileB
Read-only

[Entry Point] Open a pcap and get protocol-aware tool recommendations. Returns protocols and relevant tools.

Inputs: pcap_file (required).

wireshark_quick_analysisC
Read-only

[Agent] One-call traffic overview: file info, protocols, top talkers, conversations, hostnames, anomalies.

Inputs: pcap_file (required).

wireshark_read_packetsB
Read-only

[DEPRECATED] JSON packet data. Use get_packet_list + get_packet_details instead.

Inputs: pcap_file (required), limit, offset, display_filter.

wireshark_scan_file_signaturesB
Read-only

[Forensics] Count packets containing common file signatures. Hits require object extraction and verification.

Inputs: pcap_file (required).

wireshark_search_packetsC
Read-only

[Search] Find packets by content.

Inputs: pcap_file (required), match_pattern (required), limit, scope, +1 more.

wireshark_set_protocol_prefsD
Read-only

[Dissection] Protocol preference overrides. Prefs: 'tcp.desegment_tcp_streams:TRUE;http.ssl.port:8443'.

Inputs: prefs (required), pcap_file (required), limit, fields, +1 more.

wireshark_stats_conversationsB
Read-only

[Conversations] Communication pairs and stats. type: 'eth'|'ip'|'ipv6'|'tcp'|'udp'|'sctp'|'wlan'.

Inputs: pcap_file (required), type.

wireshark_stats_endpointsB
Read-only

[Endpoints] List all endpoints and traffic stats. type: 'eth'|'ip'|'ipv6'|'tcp'|'udp'|'sctp'|'wlan'.

Inputs: pcap_file (required), type.

wireshark_stats_expert_infoC
Read-only

[Expert Info] Automatic anomaly detection: retransmissions, errors, warnings, protocol issues.

Inputs: pcap_file (required).

wireshark_stats_io_graphC
Read-only

[I/O Graph] Traffic volume by time bucket, optionally split by semicolon-separated display filters.

Inputs: pcap_file (required), filters, interval.

wireshark_stats_protocol_hierarchyC
Read-only

[PHS] Protocol hierarchy statistics showing distribution of protocols in the capture.

Inputs: pcap_file (required).

wireshark_stats_service_response_timeC
Read-only

[SRT] Service response time statistics. protocol: 'http'|'dns'|'smb' etc.

Inputs: pcap_file (required), protocol.

wireshark_text2pcap_importB
Destructive

Convert ASCII or hex dump into a capture file using text2pcap. encapsulation: link-layer type (default: ether).

Inputs: output_file (required), input_text_file (required), ascii_mode, encapsulation, +1 more.

wireshark_verify_ssl_decryptionC
Read-only

[TLS] Verify TLS decryption with SSLKEYLOGFILE-format keylog file.

Inputs: pcap_file (required), keylog_file (required).

wireshark_yara_scanC
Destructive

[Security] YARA scan exported files. Detects malware, webshells, shellcode. protocol: http|smb|tftp.

Inputs: pcap_file (required), dest_dir, protocol.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 54 tools

    Disambiguation3/5

    The tools are grouped into recognizable categories (security detections, packet retrieval, statistics, capture/file operations), but several analytics tools overlap substantially: aggregate, index, extract_fields, analyze_protocol, quick_analysis, and the stats_* tools can all answer similar traffic-summary questions. Packet-access tools are mostly distinct, but the deprecated read_packets and the multi-action case tool add avoidable ambiguity. Descriptions help, but an agent still faces non-trivial tool-selection risk.

    Naming Consistency3/5

    Most tools use a wireshark_ prefix, but action encoding is mixed: many follow verb_noun (detect_*, extract_*, get_*), while others are bare verbs/nouns (capture, index, aggregate, case), noun_verb (filter_save, text2pcap_import), or subsystem-prefixed (editcap_*, stats_*). The pattern is readable but not predictable enough for a 5 or 4.

    Tool Count2/5

    At 54 tools, the surface is heavy for an MCP server and several capabilities could be consolidated (e.g. packet listing/detail/bytes/search plus deprecated read_packets; multiple stats and aggregate tools). The Wireshark domain is broad enough that this is not a trivial or nonsensical set, but the count is well beyond a well-scoped tool surface.

    Completeness5/5

    The set covers a full Wireshark workflow: live capture, file open/metadata/merge/import, packet listing/details/bytes/search, streams, protocol stats, security detections, credential/object extraction, TLS/WPA decryption, field extraction, case management, and export/edit operations. There are no obvious lifecycle gaps for traffic analysis, and workarounds exist for advanced edge cases.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI-assisted network packet analysis using Wireshark's TShark tool. It provides tools for pcap file overview, session extraction, protocol filtering, and statistical analysis through a standardized interface.
      1
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      An automated security operations center MCP server that uses LLMs and network analysis tools like Tshark to detect threats in traffic data. It enables users to automatically ingest PCAP files, query specific packets, and generate intelligent security analysis reports.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for analyzing network traffic and pcap files using tshark. It enables users to list TCP streams, extract application-layer payloads, and perform packet analysis with BPF filters.
      2
      -
    • F
      license
      B
      quality
      C
      maintenance
      MCP server for network-troubleshooting PCAP analysis via tshark, enabling users to analyze PCAP files, detect anomalies, and troubleshoot network issues.
      22
      -