Skip to main content
Glama
wybe-labs

Session Multiplayer

Official
by wybe-labs

Send a message to a room

send_message

Send plain-text messages to a shared multiplayer room, choosing interrupt, normal, or passive delivery. Target specific members by display name, or broadcast to everyone at your chosen priority.

Instructions

Send a plain-text message to a room. Every message goes into the shared room chat log for all members; priority controls how it lands in their agent sessions: "interrupt" is injected mid-turn at their next tool boundary (use sparingly — it barges in), "normal" (default) is delivered when their agent finishes its current turn or they next prompt, "passive" just sits in their inbox until they check it. Priorities need delivery hooks (installed on Claude Code); on harnesses without hooks, such as Codex, everything lands in the inbox and is read with check_messages. To address specific people, pass their display names in "to": only the named recipients get the active priority; everyone else in the room receives the message passively (inbox/chat log only, no interruption). Omit "to" to deliver at the given priority to the whole room. If no peer is online, the message queues locally and delivers on reconnect.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoDisplay names of the intended recipients (as shown in status). Only they get the active priority; everyone else in the room still sees the message, but passively. Omit to address the whole room. Best-effort: display names are self-chosen and not unique, so this steers attention — it is not an access control; everyone in the room can read every message.
messageYesPlain text message (no files or commands)
priorityNointerrupt = barge into their running session now; normal (default) = deliver when their turn ends; passive = inbox only
room_nameYesRoom to send to
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 fully delivers. It discloses reliability caveats (local queueing and delivery on reconnect when no peer is online), platform dependence (hooks vs. Codex fallback), access-control reality ('to' is best-effort steering, not access control; everyone can read everything), and interruption semantics — all far beyond what the schema encodes.

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 lead sentence states the core operation, and every subsequent sentence covers a distinct behavior: shared log, priority semantics, harness fallback, recipient scoping, default addressing, and offline queuing. For a four-parameter tool with three delivery modes, the length is proportionate and contains zero fluff.

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?

Thoroughly covers the hardest parts — priority semantics, harness differences, offline queueing, and recipient scoping — for a tool with no output schema. It remains silent on what the call returns on success or failure, and does not mention prerequisites like joining the room first (a join_room sibling exists). Minor gaps against otherwise exceptional coverage.

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 baseline is 3, but the description adds real meaning: delivery timing behind each priority enum (mid-turn injection at next tool boundary, end-of-turn delivery, inbox-only), the stated default ('normal'), and the best-effort/not-access-control caveat for 'to.' It does not add per-parameter syntax details, but it genuinely clarifies behavior the enum names alone would leave ambiguous.

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?

Opens with 'Send a plain-text message to a room,' pairing a specific verb with a concrete resource and scope. The detailed coverage of priorities, recipient steering, and queuing makes it unmistakably distinct from siblings like check_messages, show_history, and join_room.

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?

Names an explicit sibling and the condition that selects it: 'on harnesses without hooks, such as Codex, everything lands in the inbox and is read with check_messages.' It also gives usage guidance for priorities ('use sparingly — it barges in') and explains when to include vs. omit 'to.' It does not exhaustively route across all seven siblings, but the send/read distinction is clear.

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/wybe-labs/session-multiplayer'

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