[Unofficial/Community] MCP server for Wireshark/tshark integration with AI tools
mcp-wireshark demonstrates strong definition quality with well-structured tool schemas, comprehensive parameter descriptions, and clear naming conventions. All 16 tools have explicit input schemas with typed parameters and descriptions. Most tool descriptions are actionable and context-aware (100-350 chars). However, output schemas are not formally documented, the server returns text summaries of tshark output without a declared response structure. Tool names follow verb_noun patterns effectively (read_pcap, follow_tcp, analyze_iec61850). Security annotations (readOnlyHint=True) are correctly applied to 14 read-only tools. Parameter validation is present but sparse, no enum constraints for choice parameters (e.g., severity in expert_info accepts 'error|warn|note|chat' but is not declared as an enum). Error handling is minimal, no recovery guidance documented. Overall, this is a solid definition foundation that could reach A-grade with output schema documentation and richer validation constraints.
Analyze IEC 61850 GOOSE, Sampled Values (SV), or MMS packets in a pcap file for protocol conformance and common faults.
Check if Wireshark/tshark is installed and return version info.
Decode packets of a specific protocol from a pcap file. Returns fields as a table with one row per packet.
Apply a Wireshark display filter to a pcap file and return a preview of matching packets.
Retrieve expert-info messages from a pcap file filtered by severity.
Export packets from a pcap file to a JSON file at output_path. Creates the output file if it does not exist; overwrites if it does.
Output schemas not formally documented. Tools return text summaries (e.g., 'Returns a preview of up to 5 packets in JSON') but no structured response type is declared. LLMs cannot plan downstream calls or extract fields without knowing the response structure.
Choice parameters lack enum constraints. 'severity' in expert_info accepts 'error|warn|note|chat' but is defined as a free-form string. 'protocol' in analyze_iec61850 accepts 'goose|sv|mms' but is not constrained. This invites hallucinated values from LLMs.
Error handling lacks recovery guidance. No tool documents what to do if tshark fails, file not found, or invalid filter syntax. Descriptions mention prerequisites (e.g., 'Path to .pcap file') but no error classification (retryable vs user-fixable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Follow a TCP stream by index and return its ASCII payload.
Follow a UDP stream by index and return its ASCII payload.
List all network interfaces available for packet capture.
Capture live network traffic from an interface. Writes to a temporary pcap that is deleted after the preview is returned.
Generate Wireshark statistics for a protocol and variant (e.g., conv,ip or http,stat). See supported_stats_variants for full list.
Read and analyze packets from a .pcap or .pcapng file. Returns a preview of up to 5 packets in JSON plus the total match count.
Generate the protocol hierarchy statistics for a pcap file.
Get a high-level summary of a pcap file: I/O stats, protocol hierarchy, and top IP conversations. Prefer this over read_pcap when the goal is to characterize a capture.
List all supported protocol tokens for decode_protocol.
List all supported (protocol, variant) pairs for protocol_stats tool.
Parameter dependencies not documented. 'decode_protocol' accepts 'fields' that override defaults, but the relationship between 'protocol' and which default field set applies is implicit. 'live_capture' accepts both 'duration' and 'packet_count', which takes precedence is unstated.
No result pagination or limiting strategy documented. Tools like 'read_pcap' default to 100 packets but accept unbounded 'packet_count' parameter. Large captures could return thousands of packets, exhausting context. No guidance on when to use summarize_pcap vs read_pcap for large files.