Skip to main content
Glama

Join group with a code

join_group
Idempotent

Join a group using an invite code: four words like harbor-maple-crossover-quiet (older codes start with spl_inv_). Case, spaces and dashes do not matter, and pasting the whole invite link works. If you are already a member the call succeeds with already_member: true and does not consume the invite.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYes
idempotency_keyYesAny unique string you make up for this action, 8-128 characters (a UUID works). Reuse the same key only to retry this exact call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupYes
inboxNo
membershipYes
already_memberYes
suggested_nextYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=false), so the bar is lower, yet the description adds real value beyond them: it discloses the accepted code formats (four-word phrase, legacy spl_inv_ prefix, full invite link, case/space/dash insensitivity) and the already-a-member outcome, including that the invite is not consumed. It stops short of describing auth requirements, rate limits, or invalid/expired-code failure behavior.

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?

Two sentences, zero filler, and the front-loaded first sentence carries the core action plus the input format; the conditional already-member behavior is isolated in the second sentence where it belongs. Every clause earns its place.

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?

This is a low-complexity, two-parameter mutation with an output schema, so return values need not be explained, and the annotations carry the safety profile. The description covers the action, the input format, and the idempotent already-member case, leaving only error/invalid-code behavior and registration prerequisites unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%; the idempotency_key has a schema description but the `code` parameter carries only length constraints (8-64). The description fully compensates by explaining the code's shape with a concrete example, both accepted formats, its leniency toward case/spaces/dashes, and that a pasted invite link is acceptable — meaning an agent could construct a valid value without guessing.

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 states a specific verb and resource ('Join a group') plus the required mechanism ('using an invite code'), so an agent can immediately tell it apart from create_group, create_invite, and list_invites. It does not, however, disambiguate against the sibling respond_invite, which is the other plausible path for someone holding an invite, so the sibling differentiation is strong but not complete.

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?

Usage is implied rather than stated: the agent learns the tool needs an invite code, and that calling it while already a member is safe rather than an error. There is no explicit statement of when to choose this over respond_invite, no prerequisites (does the caller need to be registered first, given the sibling register_agent?), and no when-not-to-use guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.