Skip to main content
Glama

umouse_wait_events

Waits for new uMouse device events such as speech captures, key presses, or connections, returning immediately when a match arrives and an empty timed-out result when none occur.

Instructions

长轮询等待新设备事件:有匹配立即返回,超时返回空(timedOut:true)。等待用户物理操作的标准工具。推荐范式:等用户语音输入 → types:["speechCaptured"](用户按住语音键说话、松开后事件自带 WAV 路径 payload.path,直接取用,无需编排录音);等按键 → types:["keyEvent"](payload={key: speech|translation|m|ai|capture|raw, action: down|up|hold|click, index})。可用 type:connected | disconnected | keyEvent | deviceInfo | dpiChanged | meetingCreated | meetingDestroyed(origin=device-frame 设备确认 / transport-down 异常结束) | meetingBusy | meetingCreateFailed | audioSegmentComplete(本段音频已全部交付:segment 采集代次 + reason) | queueOverflow | warning | lavalierMicStatus | lavalierMicBattery | speechCaptured(server 生成:语音键自动录音完成,payload 含 WAV 路径) | speechTranscribed(转写状态已落盘,payload 含 eventId/status;全文用 umouse_voice_inbox) | sleepReset(120 秒重置睡眠计时,写入与 ACK 独立记录) | voiceSession / voiceBusy / voiceUnavailable / voiceCloseUnconfirmed / voiceKeyHoldIsolation(v2 语音编排会话事件)。宿主超时提示:宿主对工具调用本身可能设有更短超时——单次 timeout_ms 建议不超过 25000,更久等待以返回的 nextSince 游标分轮续等。

Input Schema

NameRequiredDescriptionDefault
sinceNo上次返回的 nextSince
typesNo按 type 过滤
timeout_msNo最长等待毫秒数(上限 30000)

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?

With no annotations to lean on, the description carries the full burden and does so: it discloses blocking/timeout behavior (empty return + timedOut:true), warns that the host may enforce a shorter timeout than the schema max of 30000 and recommends keeping a single call under 25000ms, and explains the nextSince cursor for multi-round continuation. It also distinguishes which types are server-generated (speechCaptured, sleepReset) and what origin/transport-down mean for meeting events — behavioral context an agent could not derive from the schema.

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

Conciseness3/5

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

Front-loaded correctly with the core behavior, and little is pure filler — the type catalog and host-timeout warning are genuinely load-bearing. But it is delivered as one dense paragraph with ~20 enumerated types inline, making it hard to scan; the per-type notes (e.g. meeting event origins, sleepReset semantics) sit at the same visual weight as the critical timeout guidance.

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?

No annotations and no output schema, so the description must explain returns — it does so partially, revealing timedOut:true, nextSince, and payload contents for speechCaptured/keyEvent, but never states the overall response envelope (e.g. the array/count field names or how multiple events are ordered). Adequate for correct invocation, slightly short of complete.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond it: 'since' is tied to the returned nextSince cursor, 'types' is illustrated with concrete filter values and their payload contracts, and timeout_ms is given a practical ceiling (<25000) that is stricter than the schema's 30000 maximum. Only the pagination/continuation mechanics of the cursor remain slightly implicit.

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

Purpose4/5

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

States a specific verb+resource combination ('long-poll wait for new device events') and pins down the semantics: immediate return on match, empty result with timedOut:true on timeout. It does not name the obvious siblings (umouse_get_events, umouse_wait_voice), so an agent must infer the blocking-vs-nonblocking distinction rather than being told.

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?

Explicitly frames itself as 'the standard tool for waiting on user physical operations' and gives two concrete recommended patterns (speech → types:["speechCaptured"], key → types:["keyEvent"]) with payload shapes for each. It stops short of exclusions — nothing says when to use umouse_get_events or umouse_wait_voice instead, or what to do when no relevant type exists.

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