Skip to main content
Glama

zulip_send

Post a message to a Zulip stream for a coding work log, set a topic or repository path, and flag end-of-work handoffs; duplicate posts within 120 seconds are skipped.

Instructions

Post a message. Pass topic, or path set to the repository being worked on, whose repo and branch name the topic. An identical repeat within 120 s is not posted again. handoff=True marks an end-of-work post, which must meet the server's post rules if on.

Input Schema

NameRequiredDescriptionDefault
pathNo
topicNo
contentYes
handoffNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing the 120-second duplicate-suppression window and the handoff/server post-rule constraint — both non-obvious behaviors for an agent. This partially softens the idempotentHint=false annotation (a repeat is effectively a no-op inside the window), but does not contradict it outright; the description still omits error/rate-limit behavior and any auth requirements for an openWorld tool.

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?

Short and front-loaded with the core action, but the middle sentence is a compressed run-on ('...whose repo and branch name the topic') that takes a re-read to parse. Nothing is redundant, yet the grammar costs clarity.

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?

For an openWorld, non-idempotent write with zero schema descriptions and no output schema, the description covers the important quirks (dedup window, handoff rules) but is silent on the topic/path precedence, what a successful call returns, and failure modes. Adequate to call it, not quite enough to call it confidently.

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 carry the load, and it does explain topic, path (repo/branch-derived topic naming), and handoff. It adds real meaning but leaves 'content' entirely undefined and does not say what happens when both topic and path are supplied or when neither is.

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?

Opens with a specific verb+resource ('Post a message'), which cleanly separates it from the read-oriented siblings (zulip_read, zulip_search, zulip_mentions, zulip_topics) and from zulip_react. It does not name a sibling explicitly, but the post-vs-read split is unambiguous.

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?

Gives field-level guidance ('Pass topic, or path set to the repository being worked on') and a mode cue ('handoff=True marks an end-of-work post'), which implies when to use it. However, it never states when to prefer zulip_react or a different channel/topic, and gives no prerequisites or exclusions.

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