Skip to main content
Wireshark MCP

Wireshark MCP

Give your AI assistant a packet analyzer.

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

CI GitHub Release PyPI Python MIT License

English • 中文 • Docs • Changelog • Roadmap • Contributing


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: ..."

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 3.0 uses 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.

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.

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
Capture-wide aggregation docs/aggregation.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

pip install -e ".[dev]"
pytest tests/ -v
ruff check src/ tests/

See CONTRIBUTING.md for the full guide.


Metadata

Release files for wireshark-mcp 4.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wireshark-mcp 4.0.0
File Size Uploaded Provenance Actions
wireshark_mcp-4.0.0.tar.gz 1.4 MB With provenance Details for wireshark_mcp-4.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for wireshark-mcp 4.0.0
File Interpreter ABI Platform Actions
wireshark_mcp-4.0.0-py3-none-any.whl Python 3 none any Details for wireshark_mcp-4.0.0-py3-none-any.whl

Total release size: 1.7 MB

Release files / wireshark_mcp-4.0.0.tar.gz

Download URL wireshark_mcp-4.0.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
720978ab6834efa5ad640521cabcfcfd6f0ca7dc6c750f5c68dde00542ffb7fc
BLAKE2b-256 checksum
How to use checksums
6efd839b4814e4eac4ac39fb97b6d00af37ce5a7277aadf8669b2a389731ceb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / wireshark_mcp-4.0.0-py3-none-any.whl

Download URL wireshark_mcp-4.0.0-py3-none-any.whl
Size 241.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1296547f36d3af6ce48353e8b8ae4d620fe3ee0c626026789ed7539e341e7563
BLAKE2b-256 checksum
How to use checksums
1560bc20c5000c3cd074344512f7af7e9611a9b7bfdb85570934e38639d9b543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for wireshark-mcp 4.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for wireshark_mcp-4.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page