Skip to main content
Glama
scarletfantasy

pix-mcp

pix_get_controller_input

Read-onlyIdempotent

Retrieve timestamped controller input reads from a PIX capture to measure input latency. Pair with GPU frame and monitor data to calculate the full span from player input to displayed VSync.

Instructions

Controller reads, which is where an input latency measurement starts.

Each row is one read of a controller's state, timestamped when the title read it. Paired with pix_get_gpu_frames and the monitor lane from pix_get_custom_data, the span from an input row to the VSync that displayed its consequence is end-to-end latency - the number a player feels, and the one no GPU capture can produce.

Omit controller_id for the busiest device. Empty means no controller was present or the title reads input through an API PIX does not instrument.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
end_timeNo
capture_idYes
start_timeNo
controller_idNo
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

A3.9/5.0
Behavior4/5

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

Annotations already declare the tool read-only and idempotent, and the description adds valuable behavioral context: rows are timestamped when the title read the controller, omitting controller_id selects the busiest device, and empty results have a specific meaning. These details go beyond what annotations or the schema provide. No contradiction with annotations exists.

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 compact and front-loaded: it states the tool's purpose, then adds row semantics, pairing guidance, and a key parameter tip. All three sentences carry useful information, though the phrase 'the number a player feels' is somewhat motivational rather than strictly necessary.

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 provides strong conceptual context for the tool's role in input latency measurement and explains two key edge cases: empty results and controller selection. However, with seven parameters and zero schema descriptions, the lack of detail on time filtering, pagination, and timeout semantics leaves an agent guessing at core call options. It is adequate but not fully complete.

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?

The input schema has 0% property description coverage, so the description must compensate, but it only explains controller_id behavior. Parameters like start_time, end_time, limit, cursor_position, and timeout_seconds are left entirely unexplained. The required capture_id is also only implicit in the schema, not elaborated in the description.

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 clearly identifies the tool as retrieving controller reads/state reads, explaining that each row is one timestamped read of a controller's state. It also frames the tool as the starting point for input latency measurement, which distinguishes it from GPU/capture-focused siblings like pix_get_gpu_frames.

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?

It explicitly instructs users to omit controller_id to target the busiest device and explains that an empty result means no controller was present or the title uses an uninstrumented API. It also gives concrete pairing guidance with pix_get_gpu_frames and pix_get_custom_data for measuring end-to-end latency. It does not name explicit alternatives or exclusions, but the usage context is clear.

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