mcp-wireshark
The mcp-wireshark server gives AI assistants direct access to Wireshark/tshark, enabling network traffic analysis, filtering, capture, and export. Capabilities include:
Installation check – Verify tshark is installed and view its version.
Interface listing – List all available network interfaces for live capture.
Packet reading – Load and preview packets from
.pcap/.pcapngfiles with optional display filters.Display filtering – Apply Wireshark display filter syntax (e.g.,
tcp.port == 80,dns) to captured traffic.High-level summary – Get I/O stats, protocol hierarchy, and top talkers from a capture file.
Protocol hierarchy statistics – Break down traffic by protocol layer.
Follow TCP/UDP streams – Reassemble and read the payload of a specific TCP or UDP stream by index.
Expert analysis – Surface tshark's built-in warnings, errors, and notes grouped by severity.
Protocol field decoding – Extract specific protocol fields (HTTP, DNS, TLS, GOOSE, SV, MMS, SIP, ICMP, or custom fields) as a compact table.
Aggregate statistics – Run tshark
-zreports for conversations, endpoints, HTTP/DNS/SMB stats, and more.IEC 61850 health analysis – Triage GOOSE, Sampled Values (SV), and MMS captures for sequence gaps, TTL violations, sync issues, and errors.
Live capture – Capture real-time traffic from an interface (capped at 5 minutes / 10,000 packets) with optional filtering.
Export to JSON – Export packets from a pcap file to a JSON file at a user-specified path, with optional filtering.
All tools enforce security constraints: file path validation, display filter sanitization, no shell injection, and hard caps on packet count and capture duration.
Provides tools for analyzing packet captures, including reading pcap files, applying display filters, following TCP/UDP streams, summarizing traffic, decoding protocols, and capturing live traffic via tshark.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-wiresharkFrom ./traffic.pcap, show me only HTTP requests."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-wiresharkThat'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 listYou 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.
Related MCP server: Wireshark-MCP
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 |
| Verify tshark is installed and show version |
| List network interfaces available to capture from |
| Read packets from a |
| Apply a Wireshark display filter to a pcap |
| High-level summary: I/O stats, protocol hierarchy, top talkers |
| Protocol hierarchy statistics |
| Reassemble a TCP stream and return its payload |
| Reassemble a UDP stream and return its payload |
| tshark expert analysis: warnings, errors, and notes grouped by severity |
| Extract protocol fields as a TSV table. Curated defaults for HTTP, DNS, TLS, GOOSE, MMS, SV, SIP, ICMP; arbitrary fields for any other protocol |
| Aggregate |
| 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 |
| Capture live traffic from an interface (capped at 5 minutes / 10k packets) |
| 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 |
| HTTP |
| HTTPS |
| All DNS |
| HTTP requests only |
| Traffic to/from a specific host |
| TCP SYN packets only |
For substation engineers analyzing IEC 61850 traffic:
Filter | Matches |
| All GOOSE messages |
| GOOSE messages with state changes |
| All MMS traffic |
| Sampled Values |
Other clients
Anything that speaks MCP works. The package installs an mcp-wireshark binary on PATH.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}Create .vscode/mcp.json in your workspace:
{
"servers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}Use the same stdio invocation: command: mcp-wireshark. No transport flags.
Prerequisites
Python 3.10+
Wireshark installed;
tsharkreachable onPATH
Install with pip or uv:
pip install mcp-wireshark
# or
uvx mcp-wiresharkTroubleshooting
Add Wireshark to your system PATH:
Press
Win+R→ runsysdm.cpl→ Advanced → Environment VariablesEdit
Path→ addC:\Program Files\WiresharkRestart your terminal and Claude Code, then re-run
check_installation
(Avoid passing PATH through claude mcp add --env — values are taken literally, no %PATH% expansion.)
Add yourself to the wireshark group, then log out and back in:
sudo usermod -aG wireshark $USERConfirm the interface name from
list_interfaces(Wireshark uses different names thanifconfig/ip)On macOS, you may need to install ChmodBPF (ships with the Wireshark
.dmg)Check that no display filter is excluding everything
Development
git clone https://github.com/khuynh22/mcp-wireshark.git
cd mcp-wireshark
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e ".[dev]"
pytest # tests
black src tests # format
ruff check src tests # lint
mypy src # type checkThe codebase is organized so new tools land in one of two clearly-scoped files:
src/mcp_wireshark/read_tools.py— anything that just inspects statesrc/mcp_wireshark/write_tools.py— anything that captures traffic or writes files
server.py only contains routing. See CLAUDE.md and CONTRIBUTING.md.
Security
Every file path is validated (.. rejected, extension allow-listed). Every display filter is checked for shell metacharacters. tshark is always invoked via asyncio.create_subprocess_exec, never shell=True. Hard caps: 10k packets per call, 5 min per live capture. See SECURITY.md.
License
MIT — see LICENSE.
Available Tools
14 toolsanalyze_iec61850ARead-only
Analyze an IEC 61850 capture for protocol health and return a compact, worst-first OK/WARN/FAIL report per source. protocol is one of 'goose' (stNum/sqNum gaps, timeAllowedtoLive violations, state-change storms), 'sv' (smpCnt continuity, loss of time sync, confRev changes), or 'mms' (error/reject PDUs, unpaired requests, slow responses). Scans the whole capture but returns only a bounded summary, so it is safe on high-rate SV streams.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional display filter ANDed with the protocol filter to scope to one gocbRef/svID/host (e.g. goose.gocbRef contains "gcb01") | |
| protocol | Yes | IEC 61850 protocol to analyze | |
| file_path | Yes | Path to the .pcap or .pcapng file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, indicating the tool is safe. The description adds behavioral context beyond annotations by stating it scans the whole capture but returns only a bounded summary, and it is safe on high-rate SV streams. This provides valuable transparency without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence delivers the core purpose and output, while the second provides details on protocol checks and safety. Every part earns its place, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of IEC 61850 analysis and the absence of an output schema, the description provides sufficient context for an AI agent to select and invoke the tool correctly. It covers input parameters, protocol-specific checks, output format, and safety considerations. Minor gaps exist in describing the exact return structure, but overall it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the protocol-specific checks (e.g., stNum/sqNum gaps for GOOSE), which is not present in the schema. This additional semantic information enhances understanding of the 'protocol' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes an IEC 61850 capture for protocol health and returns a compact, worst-first OK/WARN/FAIL report per source. It specifies the verb 'analyze', the resource 'IEC 61850 capture', and the output format. This distinguishes it from siblings like decode_protocol or protocol_stats which have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool by listing specific protocol health checks (GOOSE, SV, MMS) and their details. However, it does not explicitly state when not to use it or compare with alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_installationARead-only
Check if Wireshark/tshark is installed and return version info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, ensuring safe use. The description adds that version info is returned, providing additional behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose and output without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with annotations, the description fully covers its functionality and return value. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline of 4 is appropriate as description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if Wireshark/tshark is installed and returns version info. It distinguishes from sibling tools which focus on packet analysis tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Considering sibling tools, it's implicitly a prerequisite check, but no direct advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_protocolARead-only
Extract protocol-specific fields from a pcap file using tshark '-T fields'. Pass a known protocol name to use curated defaults (supported: dns, goose, http, icmp, mms, sip, sv, tls), or supply your own 'fields' list for any other protocol. Returns a tab-separated table — much smaller than full JSON. Use a 'filter' to narrow results (e.g. only request packets, only specific stNum values).
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Optional override of the field list. If omitted and the protocol has curated defaults, those are used. Required for protocols without defaults. Max 20 fields. | |
| filter | No | Optional additional display filter ANDed with the protocol filter (e.g. 'goose.stNum >= 5'). Numeric comparisons with == != >= <= are supported. | |
| protocol | Yes | Protocol name or display filter (e.g. 'http', 'goose', 'mms', 'sv', 'sip', or any tshark display filter such as 'icmp.type == 8') | |
| file_path | Yes | Path to the .pcap or .pcapng file | |
| packet_count | No | Maximum number of packets to return (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the output format (tab-separated table) and size benefit ('much smaller than full JSON'), and mentions the underlying tshark command. Annotations already declare readOnlyHint=true, and the description adds relevant behavioral context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct value: purpose and method, protocol options, and output/filter guidance. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool without output schema, the description covers purpose, input, output format, supported protocols, custom fields, and filter usage. It omits error handling details but is otherwise thorough and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning beyond descriptions: it explains the relationship between protocol and fields (curated defaults vs custom), imposes a max of 20 fields, clarifies filter ANDs with protocol filter, and notes default packet_count of 50.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts protocol-specific fields from pcap files using tshark '-T fields', lists supported protocols, and allows custom fields. It distinguishes itself from sibling tools like read_pcap (full dump) and export_json (JSON output) by specifying tab-separated output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: use curated defaults for supported protocols, supply custom fields for others, and apply optional filters. It lacks explicit when-not-to-use scenarios but implies alternatives through sibling tool names and the focus on field extraction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
display_filterARead-only
Apply a Wireshark display filter to a pcap file and return a preview of matching packets.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes | Wireshark display filter (e.g., 'tcp.port == 80', 'http') | |
| file_path | Yes | Path to the .pcap or .pcapng file | |
| packet_count | No | Maximum number of packets to return (default: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, indicating no destructive side effects. The description adds that the tool returns a preview, which is consistent but does not provide further behavioral context beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the core purpose without any redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a reasonable summary of what is returned ('preview of matching packets'). However, it lacks specifics about the preview format or packet details, which could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are described in the schema (100% coverage). The description does not add additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Apply a Wireshark display filter'), the resource ('pcap file'), and the output ('preview of matching packets'). It effectively distinguishes from siblings like read_pcap or follow_tcp which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering packets but does not explicitly state when to use this tool over alternatives. No when-not or prerequisite conditions are mentioned, which is a missed opportunity given the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expert_infoARead-only
Run tshark expert analysis on a pcap file. Returns warnings, errors, and notes grouped by severity. Useful for diagnosing protocol issues without reading individual packets.
| Name | Required | Description | Default |
|---|---|---|---|
| severity | No | Minimum severity to report: 'chat', 'note', 'warn', or 'error' (default: 'warn') | warn |
| file_path | Yes | Path to the .pcap or .pcapng file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that the tool uses 'tshark expert analysis' and returns results grouped by severity. It also mentions the types of issues (warnings, errors, notes), providing context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no superfluous words. First sentence states action and resource, second sentence describes output and use case. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description explains the return structure (grouped by severity) and mentions the tool's purpose. It could be more complete by describing the exact output format (e.g., JSON) or any limitations, but it is largely sufficient for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both 'file_path' and 'severity' fully described. The description does not add parameter-specific details beyond what the schema provides, such as format constraints or examples. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Run tshark expert analysis') and resource ('pcap file'), and mentions the output format ('warnings, errors, and notes grouped by severity'). This distinguishes it from siblings like 'protocol_stats' or 'summarize_pcap' which do different analyses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Useful for diagnosing protocol issues without reading individual packets', which implies a use case but does not explicitly state when to avoid this tool or compare to alternatives. With 13 sibling tools, more explicit guidance would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_jsonA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the source .pcap or .pcapng file | |
| output_path | Yes | Path where the JSON output will be written | |
| packet_count | No | Maximum number of packets to export (default: 1000) | |
| display_filter | No | Wireshark display filter to apply (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses file creation/overwrite behavior ('Creates the output file if it does not exist; overwrites if it does'), which is not covered by annotations. Annotations have readOnlyHint: false and destructiveHint: false, but description adds important context about side effects on the output file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and adding one key behavioral detail. Every sentence is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema, the description adequately covers purpose and key behavior (file creation). However, it omits details about JSON format structure, error handling, or performance implications. With minimal complexity, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions for each parameter. The description adds minimal extra meaning beyond the schema (e.g., 'export packets' is already obvious from the name). Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Export packets from a pcap file to a JSON file at output_path', specifying the verb (export), resource (packets), and output format (JSON). It distinguishes from sibling tools like 'summarize_pcap' or 'read_pcap' by focusing on export to JSON.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for converting pcap to JSON but provides no explicit guidance on when to use this tool versus alternatives (e.g., other export formats). No exclusions or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_tcpARead-only
Follow a TCP stream by index and return its ASCII payload.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the .pcap or .pcapng file | |
| stream_id | No | TCP stream index to follow (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds that the output is ASCII payload, which is useful but not extensive behavioral context. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no unnecessary words. Could be slightly more structured but efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (2 params, no output schema), the description adequately covers the action and output. Missing error or prerequisite information but acceptable for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description does not add extra semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Follow a TCP stream'), the resource ('TCP stream'), and the output ('return its ASCII payload'). It distinguishes this tool from sibling tools like follow_udp by specifying TCP protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., follow_udp, read_pcap). No context about prerequisites or limitations provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_udpARead-only
Follow a UDP stream by index and return its ASCII payload.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the .pcap or .pcapng file | |
| stream_id | No | UDP stream index to follow (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true (safe read) and openWorldHint=false. The description adds that it returns 'ASCII payload', but does not warn about non-ASCII data handling or behavior if stream not found. Some context beyond annotations is provided, but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no waste. Slightly too brief for full context, but effective for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 parameters, no output schema, and clear annotations. The description covers the core functionality, but lacks mention of limitations (e.g., ASCII-only payload) and how it fits into the larger pcap analysis workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds minimal extra meaning: 'by index' reinforces stream_id, but no additional format or usage details beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Follow'), the resource ('UDP stream'), and the output ('ASCII payload'). It distinguishes from sibling 'follow_tcp' by specifying UDP.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for UDP streams, but does not explicitly compare to alternatives like 'follow_tcp' or provide when-to-use guidance. No exclusions or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_interfacesARead-only
List all network interfaces available for packet capture.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds context ('available for packet capture') but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and has no parameters, the description does not indicate what the output looks like (e.g., interface names or IDs). Given no output schema, a bit more context would be helpful for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not need to add parameter details, and it appropriately conveys that no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('network interfaces available for packet capture'). It is specific and distinguishes this tool from siblings like live_capture or read_pcap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to see available interfaces, but does not explicitly state when to use or not use this tool compared to alternatives. It is adequate but lacks clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_captureA
Capture live network traffic from an interface. Writes to a temporary pcap that is deleted after the preview is returned.
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | Capture duration in seconds (default: 10, max: 300) | |
| interface | Yes | Network interface name (e.g., eth0, Wi-Fi) | |
| packet_count | No | Maximum number of packets to capture (optional) | |
| display_filter | No | Wireshark display filter to apply (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that data is written to a temporary pcap that is deleted after preview, which adds value beyond annotations. Annotations indicate non-destructive and non-readOnly, and the description clarifies the transient nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are clear and to the point. No wasted words, but could be slightly more structured (e.g., separating purpose from behavior).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's output is a preview but does not describe the preview format, which is a gap since there is no output schema. It covers the core behavior but leaves details unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 4 parameters, so the schema already explains them. The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it captures live network traffic from an interface, using a specific verb and resource. It distinguishes itself from siblings like read_pcap (existing captures) and list_interfaces (listing interfaces).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (capturing live traffic) but does not explicitly state when not to use it or mention alternatives. Siblings like read_pcap and summarize_pcap provide contrast, but direct guidance is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol_statsARead-only
Run a tshark '-z' aggregate-statistics report on a pcap file and return its parsed output. Use this for protocol-hierarchy, conversation, endpoint, and per-protocol stat tables — much more compact than per-packet JSON. Supported (protocol, variant) pairs: conv: eth, ip, ipv6, tcp, udp; dns: tree; endpoints: eth, ip, ipv6, tcp, udp; http: stat, tree; http_req: tree; io: phs, stat; rpc: srt; sip: stat; smb: srt; smb2: srt.
| Name | Required | Description | Default |
|---|---|---|---|
| variant | Yes | Variant within the family: e.g. 'phs', 'stat', 'tree', 'srt', 'ip', 'ipv6', 'tcp', 'udp', 'eth' | |
| protocol | Yes | Stat family: 'io', 'conv', 'endpoints', 'http', 'http_req', 'dns', 'smb', 'smb2', 'rpc', 'sip' | |
| file_path | Yes | Path to the .pcap or .pcapng file | |
| max_lines | No | Maximum number of output lines to return (default: 100). Conversation/endpoint tables can be very long. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds behavioral context: invokes tshark, returns parsed output, lists supported pairs. No contradictions. Adequate disclosure of side-effect-free operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Reasonably concise; key information is front-loaded. The supported-pairs list is a bit lengthy but well-organized and essential for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers tool purpose, usage context, parameter details, supported values. Lacks return format description but no output schema exists; annotations provide readOnly hint. Adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. Description adds value by compactly listing all supported (protocol, variant) combinations, aiding correct argument selection beyond schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it runs tshark aggregate statistics on a pcap file and returns parsed output. Differentiates from per-packet JSON tools. Lists supported protocol/variant pairs for clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance to use for protocol-hierarchy, conversation, endpoint, and per-protocol stat tables, noting compactness vs. per-packet JSON. Implicitly contrasts with sibling tools like decode_protocol or display_filter, but no explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pcapARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the .pcap or .pcapng file | |
| packet_count | No | Maximum number of packets to read (default: 100) | |
| display_filter | No | Wireshark display filter to apply (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, and description adds that it returns a preview of up to 5 packets and total match count. Beyond annotations, it reveals output format but lacks detail on handling large files or errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. Action verb first, immediate clarity on input and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 3 fully-documented parameters and annotations, the description adequately covers return format. No output schema exists, but description compensates. Slight gap: no mention of filter syntax or performance impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all three parameters. The tool description does not add additional context beyond the schema, achieving baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads and analyzes packets from .pcap/.pcapng files and returns a preview plus count. However, it does not explicitly differentiate from siblings like 'decode_protocol' or 'export_json', which have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'summarize_pcap' or 'live_capture'. The description does not mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stats_by_protoBRead-only
Generate the protocol hierarchy statistics for a pcap file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the .pcap or .pcapng file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide 'readOnlyHint: true', indicating safe read operation, but the description adds no extra behavioral context such as output format, performance implications, or limitations. The bar is lowered by annotations, yet the description fails to add value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence that communicates the core purpose without extraneous words. Slightly generic but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description is somewhat minimal. It omits any mention of return value structure or typical use cases, leaving the agent with incomplete guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'file_path'; description does not add semantic details beyond the schema, matching the baseline of 3. No extra clarification on file path format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'generate' and resource 'protocol hierarchy statistics' for a pcap file, clearly stating the tool's purpose and distinguishing it from siblings like 'protocol_stats' which may have a different scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus similar siblings such as 'protocol_stats' or 'summarize_pcap'. The description lacks usage context, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_pcapARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the .pcap or .pcapng file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds behavioral context about the summary contents (I/O stats, protocol hierarchy, top IP conversations), which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, each serving a distinct purpose: stating functionality and providing usage guidance, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description completely covers purpose, usage, and output content, making it adequately informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add additional meaning to the file_path parameter beyond what the input schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a high-level summary of a pcap file, specifying I/O stats, protocol hierarchy, and top IP conversations, and distinguishes it from the sibling tool read_pcap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends preferring this tool over read_pcap when the goal is to characterize a capture, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.5.0- Added
analyze_iec61850
13 tool updates
v0.4.0- First observed
check_installation - First observed
decode_protocol - First observed
display_filter - First observed
expert_info - First observed
export_json - First observed
follow_tcp - First observed
follow_udp - First observed
list_interfaces - First observed
live_capture - First observed
protocol_stats - First observed
read_pcap - First observed
stats_by_proto - First observed
summarize_pcap
TDQS
Scored across 14 tools
Several tools have overlapping functionality: stats_by_proto and protocol_stats both provide protocol hierarchy; summarize_pcap includes protocol hierarchy and conversations, overlapping with protocol_stats and read_pcap. decode_protocol, read_pcap, and display_filter all provide packet detail views. This overlap can cause ambiguity in tool selection.
All tool names follow a consistent verb_noun pattern (e.g., check_installation, decode_protocol, follow_tcp, list_interfaces). No mixing of styles like camelCase or underscores-only, making the naming predictable and easy to understand.
14 tools is well-scoped for a Wireshark-based analysis server. It covers installation checks, live capture, interface listing, various packet analysis methods, stream following, statistics, and export—all core needs without unnecessary bloat.
The tool set covers most common pcap analysis tasks: reading, filtering, decoding, expert analysis, statistics, stream following, and export. Minor gaps include lack of a tool to save filtered captures as pcap or to merge captures, but overall the surface is sufficient for typical workflows.
Maintenance
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Provide detailed Pokémon data and information through a standardized MCP interface. Enable LLMs an…
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct access to Wireshark network analysis capabilities, enabling AI-powered network troubleshooting, packet analysis, and network monitoring through a secure interface.13MIT
- AlicenseCqualityDmaintenanceEnables LLMs to perform automated network forensics, threat hunting, and traffic analysis using Wireshark/TShark.344MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze network traffic using Wireshark/tshark, providing packet statistics, protocol analysis, and anomaly detection through natural language interaction.68MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language analysis of network packet captures, including protocol detection, flow analysis, and security threat identification, integrated with AI assistants.2MIT