Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Stage Presence

stage_presence

Reports live headset presence, current scene and entry time, recent voice notes, active listeners, unread notes, and configured stage hooks so agents can coordinate stage events.

Instructions

Is the person in the headset, in which scene, since when; their last voice note and whether it was heard; who is listening (stage_listen, or following a scene with stage_events since=); unread notes; the hooks set up (~/.ismail/stage_hooks.json; a song's _stage/hooks.json only when that file trusts its scenes folder: commands run on entered_vr, left_vr, voice_note, voice_unheard; {event_file} in a command is the path of a JSON file with the event: event, scene, text, file, event_id, url, scenes, who).

Input Schema

NameRequiredDescriptionDefault
portNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

B3.3/5.0
Behavior4/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 substantial work: it discloses the hooks file location (~/.ismail/stage_hooks.json), the song-level hooks rule (only when the _stage/hooks.json trusts its scenes folder), the four hook events, and the {event_file} JSON payload shape. It stops short of saying whether absence of a person is an error or an empty result, and does not state read-only-ness explicitly.

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?

The content is front-loaded with the primary presence facts, but it is delivered as one long semicolon-chained sentence with a nested parenthetical about the event file payload. The hooks/payload detail is arguably implementation trivia that crowds out simpler usage guidance.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the description covers the major reported facets including the hooks configuration. What is missing is the port parameter meaning and any disambiguation from stage_status, both of which matter for a tool with ~300 siblings and a near-identical name to another.

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 coverage is 0% and the description never mentions the single 'port' parameter, so an agent gets no guidance on what port selects or what the default null means. The gap is bounded because the parameter is optional, but the description does nothing to compensate for the missing schema documentation.

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?

The description concretely enumerates what the tool reports: who is in the headset, which scene and since when, last voice note and whether heard, listeners, unread notes, and configured hooks. It is clearly a presence/status snapshot rather than a mutation, but it never names its closest sibling stage_status, so an agent cannot fully disambiguate the two from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names alternatives for sub-parts (stage_listen for who is listening, stage_events since= for scene-following), which is genuinely useful routing. However, there is no explicit 'call this when...' statement, no stated prerequisites, and no guidance on choosing between this and the similarly named stage_status.

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