Skip to main content
Glama

glass_wait_for_log

Block until a log line containing a specified substring appears, then return the matched line. Use a cursor from prior logs to catch earlier lines; supports timeouts.

Instructions

Block until a log line containing contains (optionally on a given stream) appears, then return it as text. By default only lines emitted after this call count; pass a cursor from glass_logs to catch a line emitted just before. Returns {matched,line{seq,stream,text},cursor,elapsed_ms}; on timeout {matched:false}. Resume reading from the returned cursor.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNoStart scanning from this cursor (from a prior glass_logs). Omit to match only lines emitted after this call.
streamNo"stdout", "stderr", or "both" (default).
containsYesSubstring to wait for (required, non-empty).
timeout_msNoGive up after this long (default 10000ms); returns `{matched:false}`.
interval_msNoPoll interval (default 100ms).
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the blocking behavior, the default 'only lines emitted after this call' behavior, how to change it with a cursor, the return structure (`{matched,line{seq,stream,text},cursor,elapsed_ms}`), timeout behavior (`{matched:false}`), and how to resume reading using the returned cursor. This is comprehensive and goes beyond what the schema provides.

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 four sentences long, each with a distinct purpose: core function, default vs. cursor behavior, return shape and timeout, and resume instructions. There is no repetition or filler, and the most important information is front-loaded.

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

Completeness5/5

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

Despite having no output schema, the description clearly explains the return value and all relevant edge cases (timeout). It also integrates with sibling tools by referencing `glass_logs` for cursors. For a tool with 5 parameters and no annotations, this description provides sufficient context to use the tool correctly without ambiguity.

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?

The input schema already covers all 5 parameters with descriptions (100% coverage), giving a baseline of 3. The description enhances this by explaining the purpose of `cursor` ('from glass_logs'), the meaning of `contains` as a substring to wait for, and the timeout/return behavior. This added context around parameter usage justifies a score above baseline.

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 states the tool's function: 'Block until a log line containing `contains` appears, then return it as text.' It uses a specific verb ('block', 'return') and resource ('a log line'), and it distinguishes itself from sibling wait tools by focusing on logs rather than UI elements. Mentions of `glass_logs` further clarify its role in the logging domain.

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 implies when to use this tool: when you need to wait for a log line rather than read logs directly. It provides usage context for the `cursor` parameter ('pass a cursor from glass_logs to catch a line emitted just before') and explains the default behavior. It does not explicitly exclude alternatives, but the log-specific focus and reference to `glass_logs` provide clear contextual 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/fixed-width/glass'

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