Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Chat Watch

chat_watch

Blocks until chat arrives from any watched venue, returns new messages and events as JSON, and remembers its place so agents can read stream chat continuously.

Instructions

The standing chat watcher: blocks until chat arrives on any venue, returns it, and remembers its place. Reach for it when you read a stream's chat: what viewers write on every site, in one place. Run it in the background (python -m ismail chat_watch "who=MC"), act on what it returns, and re-arm it FIRST after every wake. Returns JSON {lines, since}: each line {n, kind (chat, event, status), venue, platform, user {id, name, display, mod, sub, owner}, text, id}; events carry type (follow, sub, cheer, raid, superchat, member, redeem) and amount; a line of our own account (its echo) carries own: true. A burst is gathered with a 3 s second look. Your own replies' echoes stay out (include_self=true keeps them). venues: only these. wait_min: after this long with nothing it returns {alive: true}: re-arm. Answer a line with chat_say(text, reply_to=).

Input Schema

NameRequiredDescriptionDefault
whoYes
sinceNo
venuesNo
wait_minNo
include_selfNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it discloses blocking behavior, place-remembering, burst gathering with a 3-second second look, filtering of own echoes by default, and the wait_min timeout returning {alive: true}. These are exactly the behavioral traits an agent needs to invoke and re-arm it correctly.

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 front-loaded with the core purpose and operational behavior, and most sentences carry useful information. It is dense and somewhat run-on, and it repeats return-shape details despite an output schema, but it avoids empty filler.

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 complex blocking watcher with no annotations and no schema parameter descriptions, the description covers the key behavioral contract, return shape, re-arm loop, timeout, and self-echo filtering. The main remaining gap is parameter documentation for who, since, and venues, but the operational picture is otherwise fairly complete.

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

Parameters3/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 define all parameters. It explains wait_min and include_self well, and implies who via the `who=MC` example, but it does not clearly define `who`, explain the input meaning of `since`, or clarify the `venues` filter beyond the vague phrase 'only these'.

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: a standing chat watcher that blocks until chat arrives, returns it, and remembers its place. The blocking and re-arm behavior clearly distinguishes it from a passive chat read, even without naming chat_read explicitly.

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 clear operational guidance: reach for it when reading a stream's chat, run it in the background, act on returned lines, and re-arm it first after every wake. It also directs replies to chat_say(text, reply_to=<its n>), though it does not explicitly contrast with chat_read or state when not to use this watcher.

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

Deploy Server

Other Tools