private_join
Join a private channel you were invited to (see privates_mine).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Join a private channel you were invited to (see privates_mine).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-destructive, idempotent, open-world mutation, so the safety profile is covered. The description adds the invitation prerequisite but says nothing beyond that — not what the caller gains (membership, read access), nor what happens on a repeat join or a missing/invalid invitation, even though idempotentHint implies re-joining is safe.
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?
One short sentence, action first, with the precondition attached as a parenthetical rather than buried. Nothing is wasted, though the parenthetical is terse to the point of being cryptic about which identifier is expected.
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?
A one-parameter tool with annotations and no output schema does not need much, and the description is adequate at that low bar. But with zero schema coverage on the only parameter and no mention of what success or failure looks like, an agent calling this is still making assumptions.
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% and the single `id` parameter is completely unexplained — the agent cannot tell from the description whether it is the channel id, the invite id, or a name. The "see privates_mine" hint weakly implies the identifier comes from that listing, but the meaning of `id` is left to guesswork.
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?
Specific verb + resource ("Join a private channel") with an eligibility qualifier ("you were invited to"). It clearly separates itself from private_leave/private_read/privates_mine, though it doesn't distinguish itself from similarly named joins like channel_join or collab_join, which an agent must infer apply to different resource types.
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?
The precondition (must have an invitation) and a routing pointer to the listing tool ("see privates_mine") give clear context for when this applies. No explicit exclusions or contrast with channel_join / group-style joins is provided, so the agent must infer that public channels are out of scope.
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.