← Docs

MCP Reference

pcapai-mcp · 126 tools over JSON-RPC on stdio

Generated from the shipped binaries — not written by hand.

Connect a client

pcapai-mcp speaks JSON-RPC over stdio. Point your MCP client at the binary:

PlatformPath
macOS/Applications/PCAPAI Desktop.app/Contents/MacOS/pcapai-mcp
Linux/usr/bin/pcapai-mcp
Windows%ProgramFiles%\PCAPAI Desktop\pcapai-mcp.exe

Claude Code:

claude mcp add pcapai -- "/Applications/PCAPAI Desktop.app/Contents/MacOS/pcapai-mcp"

Claude Desktop, in claude_desktop_config.json:

{
  "mcpServers": {
    "pcapai": {
      "command": "/Applications/PCAPAI Desktop.app/Contents/MacOS/pcapai-mcp"
    }
  }
}

Add --file <capture> to open a capture at startup; otherwise call open_file first.

What MCP does not do

Tools

Shipped on all three platforms from 1.0.24 (4b273161e). JSON-RPC over stdio. The four lifecycle tools (open_file, get_file_info, get_analysis_bundle, get_packet_list) are MCP-only; the rest are get_tool_definitions() minus MCP_EXCLUDED_TOOLS. The SSH device tools (ssh_exec, fleet_run_command, fleet_run_runbook) run read-only commands only, checked before any connection, with no MCP write approval, and are not in the Windows build; edit_packet_notes and planner_edit are excluded, so notes and the planner are read-only over MCP. Read-only is the tool's own annotations.readOnlyHint, not an editorial judgement.

ToolRead-onlyWhat it does
access_point_clientsyesGet the clients associated with a PHYSICAL access point.
analyze_block_ack_healthyesAnalyze Block Ack (BA) session health from the capture.
analyze_handshakesyesAnalyze WiFi 4-way handshakes: completion, timing, failures, PMKID.
analyze_qos_flowsyesAnalyze SCS/MSCS QoS flow health from the capture.
analyze_twt_healthyesAnalyze TWT (Target Wake Time) session health from the capture.
analyze_wifi_securityyesAnalyze WiFi security threats: deauth attacks, rogue APs, weak encryption, evil twins.
api_apply_mappingnoApply a proposed mapping (from api_propose_mapping), writing its mapped data into the workspace as PROVISIONA…
api_describe_sandboxyesList API-sandbox items: connector responses/requests the engine could NOT fit into the canonical schema (an u…
api_get_capabilitiesyesReport one connector's capability matrix: which data types it can READ (device, interface, wlan, client, topo…
api_get_diagnosticsyesExport the redacted API-sandbox diagnostics bundle: every staged adaptation (raw redacted response + inferred…
api_list_connectorsyesList the API connectors configured in the active workspace (read-only).
api_propose_mappingnoPropose a field mapping for a sandbox staging item (from api_describe_sandbox).
apply_filternoApply a Wireshark display filter to narrow down packets for analysis.
carrier_lookupyesCarrier & Identity lookups, offline (embedded tables, no network).
compare_valuesyesCompare field values between groups (set operations).
correlate_fieldsyesCorrelate multiple metrics grouped by a field.
count_by_fieldyesCount packets grouped by field value (fast GROUP BY).
detect_patternsyesDetect common Wi-Fi patterns: high_retry_clients and weak_signal_clients return the clients past a threshold;…
dns_lookupyesActive DNS lookup through THIS machine's resolver (not from a capture; use get_dns_* for that).
extract_fieldsyesExtract field values from every packet in the current scope (apply a filter first to scope it).
field_time_seriesyesGet time series data for a field (like Wireshark IO Graph).
fleet_get_deviceyesRead one fleet device by id, host/IP, or name — full enrichment, tags, notes, prompt override, and its effect…
fleet_get_run_resultsyesRead fleet run results: run summary with per-status counts plus paged per-device rows, or — when 'device' is…
fleet_list_devicesyesRead-only paged search of the fleet device inventory (the devices imported into PCAPAI's Fleet window — IPs/h…
fleet_list_runbooksyesList saved fleet runbooks (name, description, last updated).
fleet_plan_upgradeyesPlan a FIRMWARE UPGRADE of one fleet device (Ruckus ICX / FastIron) WITHOUT running it: builds the runbook (s…
fleet_run_commandnoRun ONE read-only diagnostic command over SSH against a single fleet device (show/display/get/ip/iw/ping/etc).
fleet_run_runbooknoStart a READ-ONLY fleet run over SSH against at most 100 devices.
fleet_validate_runbookyesValidate fleet runbook YAML WITHOUT running it: structural rules, Rhai expression compilation, variable refer…
geolocate_ipyesResolve up to 25 IP addresses to an approximate geographic location and ASN/owner.
get_airtime_breakdownyesPer-radio Wi-Fi airtime attribution: WHO (which stations) and WHAT (which frame types / traffic) is burning t…
get_analysis_bundleyesGet the full stable analysis bundle for the loaded capture as one JSON object: aggregate Wi-Fi health report…
get_burst_periodsyesGet detected traffic burst periods. Returns periods of unusually high traffic with start/end times, peak/aver…
get_capture_qualityyesGet capture quality assessment: FCS error rate, truncation rate, and malformed packet classification (capture…
get_client_detailyesGet detailed analysis of a specific Wi-Fi client including authentication timeline, join sessions (auth/assoc…
get_device_specsyesLook up VERIFIED specifications for a catalogued access point, switch, or wireless controller from the bundle…
get_dns_healthyesDNS health report: capture visibility, graded checks (latency, errors, timeouts, retries, slow-resolver QoE,…
get_dns_securityyesDNS security findings sorted by severity: rogue servers, tunneling, cache poisoning, LLMNR/NBNS/WPAD poisonin…
get_dns_serversyesPer-DNS-server stats: query/response/timeout counts, latency percentiles, and classification (expected/public…
get_dns_sitesyesDNS site/domain inventory rolled up to registrable domain (eTLD+1): per-site query/answered/NXDOMAIN counts a…
get_dns_summaryyesUse this for DNS questions. Capture-wide DNS totals (queries/responses/matched/timeouts/orphans/retransmissio…
get_file_infoyesGet summary information about the currently loaded capture file: packet count, file path, link type, and whet…
get_mdns_servicesyesGet mDNS/Bonjour services discovered in the capture.
get_packet_listyesGet a summary list of packets showing columns: No, Time, Source, Destination, Protocol, Length, Info.
get_packet_notesyesRead the Wireshark-style notes and capture provenance persisted in the open capture: the capture-level commen…
get_passpoint_providersyesReturns the capture's pre-parsed Passpoint / Hotspot 2.0 (ANQP) data: domain names, NAI realms, 3GPP PLMNs, o…
get_ping_monitor_datayesRead THIS machine's desktop Ping Monitor history — the continuous reachability/latency/jitter/loss monitoring…
get_protocol_hierarchyyesGet the protocol hierarchy breakdown from pre-computed analysis.
get_protocol_treeyesGet the dissected protocol tree for one packet — the way to read a specific packet's field values.
get_service_detailsyesRead complete persisted service observations, including protocol headers/options and evidence frame IDs.
get_service_summaryyesNetwork-scoped DNS, DHCPv4, DHCPv6, router advertisement and captive portal inventory with complete persisted…
get_statisticsyesCompute packet statistics by scanning packets: protocol breakdown, timeline, or conversation analysis (large…
get_timeline_datayesGet traffic timeline data showing packet rates over time.
get_unique_packetsyesGet unique values for a field with counts.
get_wlan_contextyesGet relationship-aware WLAN context for troubleshooting.
list_access_pointsyesList all Wi-Fi Access Points visible in the capture.
list_clientsyesList all Wi-Fi Clients visible in the capture.
my_ipyesThis machine's network identity. LOCAL (always, sends nothing): interfaces that are up (all_interfaces=true a…
netinsights_area_apsyesRead-only. Resolve a free-text AREA NAME ("the media tribune", "north concourse", "suite 12") to the set of a…
netinsights_area_vocabularyyesRead-only. List every name this workspace's OWN data uses for a place — controller policy/site/RF tags, uplin…
netinsights_cellular_layersyesRead-only. The workspace's cellular coverage and cell tower layers: FCC filed coverage per carrier (hexes cou…
netinsights_client_auth_eventsyesRead-only NetInsights per-client AAA / join events with the per-WLAN AAA-path verdict, from an imported Smart…
netinsights_diff_configsyesRead-only comparison of two NetInsights config snapshots.
netinsights_get_config_driftyesRead-only NetInsights config drift report for one device.
netinsights_get_config_historyyesRead-only paged list of NetInsights redacted config snapshots.
netinsights_get_data_qualityyesRead-only NetInsights data-quality report — WHY the inventory is incomplete.
netinsights_get_device_detailyesRead-only NetInsights device detail lookup.
netinsights_get_device_evidenceyesRead-only NetInsights evidence bundle for one device.
netinsights_get_evidence_snippetyesRead-only bounded redacted source snippet around one NetInsights parser observation.
netinsights_get_health_checksyesRead-only paged NetInsights health-check report — the findings themselves.
netinsights_get_infra_healthyesRead-only NetInsights Infra Health run — the IC (configuration), IL (device log) and IB (baseline drift) chec…
netinsights_get_topology_neighborhoodyesDEPRECATED alias of netinsights_topology_graph, removed after 1.0.33; call netinsights_topology_graph ins…
netinsights_get_topology_pathyesDEPRECATED alias of netinsights_topology_path, removed after 1.0.33; call netinsights_topology_path inste…
netinsights_get_troubleshooting_briefyesRead-only evidence-backed NetInsights troubleshooting brief for one device.
netinsights_get_vlan_subnet_catalogyesRead-only paged NetInsights VLAN and subnet catalog query with canonical network derivation.
netinsights_import_assistyesHelp import TRICKY config/backup files into NetInsights.
netinsights_prepare_ai_extractionyesRead-only NetInsights AI extraction preparation.
netinsights_refresh_sourcesnoPull (sync) the workspace's configured sources NOW: re-reads Ruckus One / SmartZone over their APIs, collects…
netinsights_rf_proximityyesRead-only. Ask whether this workspace's RF-neighbour data can support a PHYSICAL PROXIMITY claim at all, and…
netinsights_search_devicesyesRead-only paged search of NetInsights current device inventory.
netinsights_search_evidenceyesRead-only paged search of NetInsights current fact evidence with source artifact provenance.
netinsights_search_servicesyesRead-only paged NetInsights service inventory query.
netinsights_search_topology_edgesyesRead-only paged search of NetInsights current topology edges.
netinsights_search_topology_evidenceyesDEPRECATED alias of netinsights_topology_edge_evidence, removed after 1.0.33; call `netinsights_topology_ed…
netinsights_sourcesyesRead-only. Where this NetInsights workspace's data comes from and how fresh it is: each source (Ruckus One or…
netinsights_topology_edge_evidenceyesRead-only paged supporting/conflicting/missing protocol evidence for NetInsights topology edges (LLDP/CDP/MAC…
netinsights_topology_graphyesRead-only NetInsights topology view. mode=graph (default): the scoped topology graph — device nodes, placehol…
netinsights_topology_pathyesRead-only NetInsights shortest path between two devices over resolved topology edges, for path and flow quest…
netinsights_triage_workspaceyesRead-only NetInsights workspace triage. Call this first for broad questions like 'what is wrong', 'any proble…
netinsights_wireless_clientsyesRead-only Cisco C9800 client data from an imported show-tech: the aggregate client counts (total clients, 802…
netinsights_wlan_coverageyesRead-only Cisco C9800 WLAN coverage: which APs broadcast a given SSID, or which SSIDs and VLANs a policy tag…
netinsights_workspace_statusyesRead-only NetInsights workspace identity and size.
open_fileyesOpen a packet capture file (.pcapai, .pcap, or .pcapng).
oui_lookupyesLook up the vendor for MAC addresses or OUI prefixes in the embedded IEEE registry (offline, no network).
passive_dns_lookupyesResolve an IP to its best passive-DNS name (built from this capture, no live lookups), or a hostname to the I…
ping_runnoPing ONE host with a bounded number of probes and return every probe plus rtt/loss/jitter statistics.
planner_export_coverageyesThe WHOLE design's coverage report as a finished document — markdown or CSV — the same one the desktop writes…
planner_export_readinessyesWhether this design can be exported as an installer FIELD PACK (the .svg/.pdf/.drawio walk-sheet set), floor…
planner_get_bomyesBill of materials and PoE budget analysis for the Wi-Fi Planner project: AP/switch inventory with model-match…
planner_get_calibrationyesCompare MEASURED survey RSSI against the propagation model's PREDICTION at the same positions, for one floor…
planner_get_coverageyesComputed coverage STATISTICS for one Planner floor and band: percentage of the floor at or above -65 dBm and…
planner_get_lineworkyesRead extracted drawing candidates, including thin partitions and furniture.
planner_get_materialsyesThe Planner project's wall-material catalog: each material's name, flat attenuation in dB per crossing, dB pe…
planner_get_projectyesSummarize the open Wi-Fi Planner (RF design) project: floors (name, dimensions in meters, whether scale is se…
planner_get_rf_inputsyesRF propagation INPUTS for one floor and band: floor bounds, each client-serving AP's tx power / channel / pos…
planner_get_rf_modelsyesPer-AP report of WHICH antenna model the RF math is actually using on a band, and why.
planner_get_surveyyesSurvey walks recorded in the Planner project.
planner_list_apsyesList the access points in the Wi-Fi Planner project.
planner_match_survey_apsyesPropose which DESIGN AP each SURVEYED (measured) AP in the Planner project is, on an evidence ladder: an infr…
port_scannoTCP Connect() port scan (no root, no raw sockets) of EXPLICIT targets: addresses, CIDRs, ranges (10.0.0.10-20…
search_device_catalogyesBrowse/search the bundled device + antenna catalogue (121 devices — APs, switches, wireless controllers — and…
search_fieldsyesSearch for valid Wireshark field names. Use this to verify field names before using them in filters or extrac…
snmp_diffnoWalk the same subtree on two saved profiles and compare: objects on A only, on B only, and objects whose type…
snmp_getnoSNMP GET (or GETNEXT with next=true) of up to 64 OIDs on ONE device, through a saved profile (v1, v2c or v3 a…
snmp_profilesyesList the saved SNMP profiles (name, host, port, version, v3 user, security level and protocol NAMES).
snmp_walknoWalk one subtree on ONE device through a saved profile (GETBULK, or GETNEXT for v1).
ssh_execnoRun ONE read-only command on ONE saved fleet device over SSH and get {stdout, stderr, exit_code, status, dura…
subnet_calcyesIPv4 subnet calculator (offline, no network).
syslog_drill_templateyesDrill into a specific syslog template. Returns full template details, all matching events, and unique variabl…
syslog_get_sourcesyesGet all syslog source device summaries. Returns source IP, hostname, vendor, message/error/warning counts for…
syslog_get_templatesyesGet syslog log templates (message patterns) from the loaded syslog analysis.
syslog_get_timelineyesGet syslog event timeline grouped into time buckets.
syslog_search_eventsyesSearch syslog events (deduplicated aggregations of raw messages).
throughput_runnoRun an iperf3-protocol throughput test as a CLIENT against a server (a stock iperf3 server works) and return…
traceroute_runnoTrace the route to ONE host and return every hop (address, per-probe rtt, loss, segment, ASN/organisation whe…
triage_captureyesPCAP-first capture triage. Call this first for broad questions like 'what is wrong', 'any problems', 'summari…