Skip to main content
Glama

dosbox_hold_buttons

Hold mouse buttons down for a specified time to drive in-game actions that require a continuously held button, and release early when a memory value signals the sequence has ended.

Instructions

Hold mouse buttons down for a stretch of time by writing the guest's button word continuously -- the way to drive anything that reads a held button, such as an action sequence that only advances while a button is down. Sparse writes lose to the game's own interrupt handler, so this busy-writes. Give stop_when to release as soon as a memory field says the sequence is over, instead of holding for the full time.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pidNo
buttonsNo1 left, 2 right, 3 both.
secondsYesMaximum time to hold.
poll_secondsNo
stop_when_sizeNo
stop_when_any_ofNo
stop_when_equalsNo
stop_when_offsetNoOffset or symbol to watch while holding.
stop_when_at_leastNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

Beyond the annotations, it reveals the tool busy-writes, explains why ("sparse writes lose to the game's own interrupt handler"), and describes the early-release behavior via stop_when and memory fields. This gives strong behavioral insight that an agent needs to understand the tool's side effects.

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 tight and front-loaded: first states the primary action, then explains why busy-writing is necessary, then clarifies how to stop early. No sentence is filler, and the key information is delivered early.

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?

Given the 9-parameter surface area, the description explains the important behaviors adequately: holding, busy-writing, and stop_when release. While some optional parameter details are only implicit, the required parameter and core usage are clear enough, and an output schema exists to cover return-value expectations.

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 only 33%, and the description does not compensate for the many undocumented parameters. It only broadly mentions stop_when, leaving poll_seconds, stop_when_size, stop_when_any_of, stop_when_equals, and other semantics to be inferred from names alone.

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: "Hold mouse buttons down for a stretch of time." It also distinguishes this from related operations by explaining it is used for "anything that reads a held button" such as an action sequence, making the purpose unambiguous.

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 the tool: when the game or guest needs a continuous held-button signal and "sparse writes lose to the game's own interrupt handler." It does not explicitly name sibling tools like dosbox_click as alternatives, so it stops short of full exclusionary guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/md0-code/dosbox-x-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server