Skip to main content
Glama
paramount-engineering

Roku Dev Studio MCP Server

Network Inspector: Analyze

network_inspector_analyze
Read-onlyIdempotent

Aggregate Roku network captures into rollups: counts by event type, HTTP status class, top hosts, content types, and errors. Apply optional filters to orient before drilling into detail.

Instructions

Aggregate the captured buffer into hotspots and rollups in one call — counts by event type, by HTTP status class (2xx/3xx/4xx/5xx), top hosts (with error counts), top content types, total HTTP/MITM transactions, error count, and the largest responses. Use this to orient on a session before drilling into individual events. Accepts the same optional filters as network_inspector_list_events (device, host, method, type, status, statusClass, contentType, errorsOnly, mitmOnly). Requires Network Inspector enabled.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoOptional case-insensitive substring matched against hostname, TLS SNI, or request URL.
typeNoOptional event type filter.
deviceNoOptional Roku IP or serial. Omit to include every Roku on the hotspot.
methodNoOptional HTTP method filter.
statusNoOne or more values to match (OR).
mitmOnlyNoOnly count decrypted-HTTPS transactions.
errorsOnlyNoOnly count HTTP transactions with a response status >= 400.
contentTypeNoOne or more values to match (OR).
statusClassNoOne or more values to match (OR).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.0.2
    • addedInput schema / properties / contentType
      Added value: +{
      +  "description": "One or more values to match (OR).",
      +  "items": {
      +    "description": "Case-insensitive substring against the response Content-Type (falls back to the request's), e.g. \"json\" or \"image\".",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / status
      Added value: +{
      +  "description": "One or more values to match (OR).",
      +  "items": {
      +    "description": "Exact HTTP response status code, e.g. 404.",
      +    "type": "number"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / statusClass
      Added value: +{
      +  "description": "One or more values to match (OR).",
      +  "items": {
      +    "description": "Response status class.",
      +    "enum": [
      +      "2xx",
      +      "3xx",
      +      "4xx",
      +      "5xx"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. First observedv1.0.1

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds a meaningful behavioral prerequisite ('Requires Network Inspector enabled') and clarifies that the tool aggregates existing captured data rather than capturing new data ('Aggregate the captured buffer'). This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it starts with the core action and output list, then the use case, then the shared filter reference, then the requirement. Three sentences, no filler, and every sentence contributes actionable information for tool selection and invocations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description takes on the burden of describing what the tool returns, and it does so concretely by listing the aggregations (counts by event type, status class, top hosts, content types, transaction totals, error counts, largest responses). It also mentions the enabled prerequisite and the accepted filters. It does not explain the shape of 'hotspots' or pagination, but for an aggregate summary tool this is a minor omission given the output list provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented in the input schema. The description adds only that these are 'the same optional filters as network_inspector_list_events', which gives a useful cross-tool consistency hint but does not explain individual parameter semantics beyond the schema. Baseline 3 is appropriate, as the schema carries the detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Aggregate the captured buffer into hotspots and rollups in one call' and enumerates the exact computed outputs (counts by event type, HTTP status class, top hosts, content types, etc.). It further distinguishes itself from siblings by stating its intended position in a workflow: 'Use this to orient on a session before drilling into individual events.' An agent can immediately tell this is the aggregation/summary tool, not a list/detail tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use the tool ('orient on a session before drilling into individual events') and names the sibling whose filters it mirrors (network_inspector_list_events). It also adds a prerequisite ('Requires Network Inspector enabled'). However, it does not explicitly name an alternative for the drill-down step or state a 'when not to use' condition, so it stops just short of fully explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.