Skip to main content
Glama

Mencoro

Change a member's role

change_member_role
Destructive

Give an organization member another role: owner, manager or viewer. memberId is the member id from list_members, not the user id. Requires a confirmationToken: call preview_operation with tool "change_member_role" and these arguments first, show the returned plan to the user, and call this tool only after the user explicitly agrees. Needs the organization:manage permission and the owner role.

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": {
      "organizationId": "<organizationId>",
      "memberId": "<memberId>",
      "role": "<role>",
      "confirmationToken": "<confirmationToken>"
    },
    "name": "change_member_role"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleYes
memberIdYes
requestIdNoOptional idempotency key, 8-255 printable characters. Reuse it only to retry this same call.
organizationIdYes
confirmationTokenYes

Output Schema

NameRequiredDescriptionDefault
idYes
roleYes
stateYes
userIdYesThe user this membership belongs to
isActiveYes
joinedAtYes
projectIdsYesThe projects a selected access reaches; empty when the mode is all
projectAccessModeYesWhich projects of the organization the member reaches: every project, or only projectIds

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / projectAccessMode
      Added value: +{
      +  "description": "Which projects of the organization the member reaches: every project, or only projectIds",
      +  "enum": [
      +    "all",
      +    "selected"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / projectIds
      Added value: +{
      +  "description": "The projects a selected access reaches; empty when the mode is all",
      +  "items": {
      +    "format": "uuid",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "userId",
      -  "role",
      -  "state",
      -  "isActive",
      -  "joinedAt"
      -]New value: +[
      +  "id",
      +  "userId",
      +  "role",
      +  "state",
      +  "isActive",
      +  "joinedAt",
      +  "projectAccessMode",
      +  "projectIds"
      +]
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false; the description goes beyond them by disclosing the mandatory confirmation-token gate, the two-part authorization requirement (organization:manage plus owner role), and the human-in-the-loop approval step. This is exactly the context an agent needs before attempting a privileged mutation.

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?

Purpose is front-loaded in the first clause, followed by constraint, parameter disambiguation, and confirmation protocol — all sentences earn their place. It reads as one dense paragraph with a stacked confirmation flow, which slightly hurts scannability.

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?

With an output schema present and rich annotations, the description covers everything remaining an agent needs: authorization requirements, the token acquisition path, the accepted role values, and ID provenance. Nothing required to invoke it correctly is missing.

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 only 20% (requestId is the sole documented property), so the description must compensate and largely does: it disambiguates memberId from user id, lists the role enum values, and explains how confirmationToken is obtained. organizationId is left implicit as the obvious org scope, which is the only minor gap.

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?

States a specific verb and resource ('Give an organization member another role') and enumerates the exact target values (owner, manager, viewer). It is clearly distinguishable from siblings like set_member_project_access, invite_member, suspend_member, and reactivate_member.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite workflow: call preview_operation with tool "change_member_role", show the plan, and only proceed after explicit user agreement. It also names the alternate source for the ID ('memberId is the member id from list_members, not the user id') and states the required permission and role.

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.