collab_say
Post a chat line in a collab.demo room (everyone in it sees it live).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mod | No | ||
| link | Yes | ||
| name | No | ||
| text | Yes |
Post a chat line in a collab.demo room (everyone in it sees it live).
| Name | Required | Description | Default |
|---|---|---|---|
| mod | No | ||
| link | Yes | ||
| name | No | ||
| text | Yes |
Changes observed during successful MCP inspections.
Input schema / properties / link / propertiesRemoved value: -nullInput schema / properties / mod / propertiesRemoved value: -nullInput schema / properties / name / propertiesRemoved value: -nullInput schema / properties / text / propertiesRemoved value: -nullInput schema / properties / link / descriptionRemoved value: -"the room link https://ce-net.com/collab/<code> (a host link carries ?host=<key>)"Input schema / properties / link / propertiesAdded value: +nullInput schema / properties / mod / descriptionRemoved value: -"optional module id, default chat"Input schema / properties / mod / propertiesAdded value: +nullInput schema / properties / name / descriptionRemoved value: -"how you show up in the room, e.g. \"Daniel's AI\" (40 characters)"Input schema / properties / name / propertiesAdded value: +nullInput schema / properties / text / descriptionRemoved value: -"the line (4000 characters)"Input schema / properties / text / propertiesAdded value: +nullDoes the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the write/non-idempotent profile is covered. The description adds genuinely useful context beyond that: "everyone in it sees it live" discloses broadcast visibility and real-time delivery, which annotations do not convey. It still omits prerequisites (room membership/identity), what identifies the sender, and whether messages persist — reasonable gaps given the small scope, hence a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action front-loaded and the parenthetical consequence appended efficiently. Nothing is wasted, though the terseness is partly the source of the documentation gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutating, non-idempotent, open-world tool with four parameters (two required), zero schema descriptions, and no output schema. Against that complexity, the one-sentence description leaves the two required parameters only vaguely implied, the other two undocumented, and the response behavior unstated — well short of what an agent needs to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It implicitly maps "text" to the chat line and "link" to the room, but "mod" and "name" are completely unaddressed — an agent has no idea what a mod is or what name refers to (sender alias? room name?). Half the parameters remain opaque in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Post a chat line in a collab.demo room" gives a concrete verb and resource, so the basic action is clear. However, the namespace has many near-identical messaging siblings (channel_send, space_say, private_say, dm_say, collab_op, collab_edit), and nothing here explains what a "collab.demo room" is or why this tool is the right one instead of those. Purpose is stated but not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no named alternative, and no prerequisite stated. An agent cannot tell from the description whether it must first call collab_join or collab_state, or when a channel_send / space_say would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.