Skip to main content
Glama
scarletfantasy

pix-mcp

pix_get_file_io

Read-onlyIdempotent

Retrieve file I/O events from a PIX capture to diagnose storage stalls that CPU sampling misses.

Instructions

Every file operation on one device: what was touched, when, and for how long.

This is the lane that explains a hitch the CPU sampler cannot. A thread blocked in a synchronous read is off-core and looks idle; here the same stall is one row with a path, a start and an end. offset and size_bytes together are the access pattern, which is what separates a streaming system reading ahead from one seeking per request. status is the NTSTATUS: 0 succeeded, negative is the failure the caller saw.

Without device_id the device the captured title used most is chosen. Fails with no_devices when the capture recorded no file I/O at all - see pix_list_storage_devices for why that is the usual case.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
end_timeNo
device_idNo
capture_idYes
start_timeNo
cursor_positionNo
timeout_secondsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses important behavioral details: the default device selection when device_id is omitted, the no_devices failure mode, and the semantics of returned rows including access pattern and NTSTATUS status. This goes well beyond what annotations alone convey and helps an agent predict both successful and failing behavior.

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

Conciseness4/5

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

The description is well-structured: an opening summary, a diagnostic rationale, and a defaults/errors paragraph. It is somewhat dense and uses a few metaphorical phrases, but each sentence adds meaningful context. It is not bloated, though some output-field detail could be trimmed if the output schema already documents those fields.

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

Completeness3/5

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

The description is strong on purpose, output row semantics, and one key default/error behavior, and an output schema exists to cover return structure. However, it is incomplete for a tool with seven parameters and zero schema descriptions: filtering bounds, pagination via cursor_position, limit behavior, and timeout_seconds are not explained. An agent could invoke the tool for the simple case but would lack guidance for controlled or paginated queries.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It only explains device_id's default behavior and implies capture_id via 'captured title.' It leaves limit, start_time, end_time, cursor_position, and timeout_seconds undocumented, and spends words on output fields like offset, size_bytes, and status that are not input parameters. This is a significant gap for a 7-parameter tool.

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 crisp, specific statement: 'Every file operation on one device: what was touched, when, and for how long.' It clearly identifies the resource (file I/O events), the verb (get/list), and the distinguishing value relative to the CPU sampler. This makes the tool's purpose unmistakable even among many sibling tools.

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 gives clear context for when to use this tool: when investigating a hitch or stall that the CPU sampler cannot explain, such as a thread blocked in a synchronous read. It also provides a path to an alternative tool (pix_list_storage_devices) for the no_devices case. It does not explicitly enumerate exclusions versus every sibling, but the main use case is well established.

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