Skip to main content
Glama

Invite member

invite_member
Destructive

Invite someone to the active team (tenant) by email. The pending membership is created immediately and an invitation email with a join link is queued for delivery; the link and its token are never returned in the tool result. Only the team owner or an admin can invite; the call is rejected for other roles. role defaults to "member" and may be "admin". Members can create and edit every form, response, respondent and lead of the team; admins also manage members and team settings. You cannot invite someone as the owner. Fails if the email is already a member or already has a pending invite, or if the team has hit its member limit. Operates on the team this token currently targets — use list_my_tenants / switch_active_tenant to change teams first.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "email": "<email>"
    },
    "name": "invite_member"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleNoRole to grant. Defaults to "member"; "admin" also manages members and team settings. Cannot be "owner".
emailYesEmail address of the person to invite.

Output Schema

NameRequiredDescriptionDefault
roleNoRole granted by the invite
emailNoAddress the invite was sent to
membershipIdNoThe created membership record
invitationQueuedNoAlways true — the invitation email has been queued for delivery, not yet confirmed sent
isUserRegisteredNoWhether that address already had a RooQuiz account

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / role / description
      Previous value: -"Role to grant. Defaults to \"member\": \"viewer\" is read-only, \"admin\" manages the whole team. Cannot be \"owner\"."New value: +"Role to grant. Defaults to \"member\"; \"admin\" also manages members and team settings. Cannot be \"owner\"."
    • changedInput schema / properties / role / enum
      Previous value: -[
      -  "member",
      -  "viewer",
      -  "admin"
      -]New value: +[
      +  "member",
      +  "admin"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / invitationQueued
      Added value: +{
      +  "description": "Always true — the invitation email has been queued for delivery, not yet confirmed sent",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / invitationSent
      Removed value: -{
      -  "description": "Whether the invitation email was sent successfully",
      -  "type": "boolean"
      -}
  3. Changed3 schema fields changed
    • addedOutput schema / properties / invitationSent
      Added value: +{
      +  "description": "Whether the invitation email was sent successfully",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / inviteToken
      Removed value: -{
      -  "description": "Token embedded in the invite link",
      -  "type": "string"
      -}
    • removedOutput schema / properties / inviteUrl
      Removed value: -{
      -  "description": "The invite link that was emailed — you may relay it to the user",
      -  "type": "string"
      -}
  4. Changed1 schema field changed
    • changedInput schema / properties / role / description
      Previous value: -"Role to grant. Defaults to \"member\". \"admin\" can only be granted by the team owner."New value: +"Role to grant. Defaults to \"member\": \"viewer\" is read-only, \"admin\" manages the whole team. Cannot be \"owner\"."
  5. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=true, openWorldHint=true), the description discloses that a pending membership is created immediately, that the invitation email is queued, and that the join link/token is never returned in the result — a critical non-obvious behavior. It also adds permission requirements, role capability differences, and the owner-role prohibition, none of which the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and result behavior, then permissions, then role semantics, then failure modes, then tenant scoping — a logical progression. It is dense but every clause carries operational information; only the role-capability sentence runs slightly long relative to its decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter mutation with an output schema, the description covers everything an agent needs: who may call it, what side effects occur, that no token is returned, what causes rejection, and how to target a different team. Return-value explanation is unnecessary because an output schema exists.

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 the baseline is 3, but the description goes beyond the schema by explaining what 'member' versus 'admin' actually grants (members edit forms/responses/leads; admins also manage members and settings) and restates that 'owner' is not permitted. It does not add anything about the email parameter, which the schema already covers adequately.

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?

The opening sentence states a specific verb (invite), resource (a person, by email), and scope (the active team/tenant), and the final sentence pins the tool to the currently targeted tenant. Nothing in the sibling list does the same thing, so an agent can distinguish it immediately.

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?

It gives concrete context for use (invite to the active team), explicit preconditions (only owner/admin may call it; the active tenant determines the target) and routing to list_my_tenants / switch_active_tenant when the wrong team is active. The stated failure cases (already a member, pending invite, member limit) further narrow usage, but they are framed as errors rather than as guidance about when an alternative action is more appropriate.

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.

Resources