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中文DocsChangelogRoadmapContributing


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

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

Restart your AI client — done.

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

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

Category Highlights Count
Entry & Workflow wireshark_open_file, wireshark_quick_analysis 2
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 (20 protocols), 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

One tool covers 20 protocols rather than 20 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 ~22 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) 52 ~22 KB nothing
analysis 40 ~17 KB live capture, interface listing, all file-writing tools
core 32 ~14 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 11 that create files (live capture, merge, filter-save, editcap, text2pcap, frame extract, object export).

In 3.0, those 11 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.


Download files

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

Source Distribution

wireshark_mcp-3.0.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

wireshark_mcp-3.0.0-py3-none-any.whl (129.0 kB view details)

Uploaded Python 3

File details

Details for the file wireshark_mcp-3.0.0.tar.gz.

File metadata

  • Download URL: wireshark_mcp-3.0.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wireshark_mcp-3.0.0.tar.gz
Algorithm Hash digest
SHA256 f541c50cea2689d792fc271bc86aa45cf44cd39eb18fe3fa137247576c959ae6
MD5 b0f5019d8f0816a01cd1e7f0e1e283b6
BLAKE2b-256 78a90cb1c18c7610831272116a74f0486a71e3526bdbd165e0c98493d5574de0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wireshark_mcp-3.0.0.tar.gz:

Publisher: publish.yml on bx33661/Wireshark-MCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wireshark_mcp-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: wireshark_mcp-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 129.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wireshark_mcp-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5cbcd3edfc6f5d195cacce1b944aa849e16bdb4dc97e8bbb839afa47a6cdef81
MD5 0b9b6c51c4469226604c2017f89a749b
BLAKE2b-256 6e395abb942dd0ec1acd5a3995e492dc049b2ec608f84da6fe6dc8980cc4b0ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for wireshark_mcp-3.0.0-py3-none-any.whl:

Publisher: publish.yml on bx33661/Wireshark-MCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 files

2.0.0

2 files

1.1.5

2 files

1.1.0

2 files

1.0.0

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.2.1

2 files

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