Skip to main content
Glama
m8-tracker-mcp

m8-tracker-mcp

by cocopon

Press a sequence of M8 buttons

press_sequence

Run multiple button presses in sequence in one call to perform multi-step edits, such as setting RGB theme values; read the screen before and after to confirm cursor position and result.

Instructions

Run several button presses in order in one call, each like press_buttons (pressed together, released, optionally repeated). Use it for multi-step edits, e.g. setting the three RGB values of a theme row. The user may move the cursor on the device between calls, so read the screen right before running a sequence to confirm where the cursor is, and read it again afterwards to confirm the result.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "steps": "<steps>"
    },
    "name": "press_sequence"
  }
}

Input Schema

NameRequiredDescriptionDefault
stepsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It usefully discloses that each step behaves like press_buttons (pressed together, released, optionally repeated) and that the device cursor may move between calls, requiring screen reads before and after. However, it does not state whether the sequence is atomic, what happens if a step fails, or whether partial execution is possible.

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 three sentences, front-loaded with the core action and followed by a concrete example and operational caution. Every sentence adds useful information without repetition.

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?

For a nested-array mutation tool with no annotations and no output schema, the description covers purpose, usage, and the critical cursor-position caveat. It could be more complete by explaining failure behavior or return semantics, but telling the agent to read the screen afterwards partially covers result confirmation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must add meaning. It explains that 'steps' is an ordered sequence and that each step follows press_buttons semantics: buttons pressed together, released, and optionally repeated. The schema itself supplies the button enum and repeat bounds, but the description adds useful procedural meaning beyond the raw schema.

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 states a specific verb and resource: run several button presses in order in one call, each like press_buttons. It clearly distinguishes the tool from the single-press sibling press_buttons by emphasizing sequencing and multi-step edits.

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 gives a clear use case: multi-step edits such as setting three RGB values of a theme row, and references press_buttons as the per-step model. It also adds an operational guideline to read the screen before and after because the cursor may move between calls. It does not explicitly state when not to use it, such as for single press operations, which keeps it from a 5.

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