Skip to main content
Glama
railyard-sh

Railyard MCP Server

by railyard-sh

Change a member's role

set_member_role
Idempotent

Change an existing member's role in an organization. Requires owner permissions; prevents demoting the last owner, and resets the member's live sessions to apply the new role.

Instructions

Change an existing member's role in an organisation. Requires the OWNER role. Demoting the last remaining owner is refused (409) — promote someone else first. The member's live collaboration sessions are dropped so they reconnect with the new role.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orgNoOrganisation to target: an org id (org_…), slug, or name. Defaults to RAILYARD_ORG, or to your first (personal) org if that is unset. Use list_orgs to see the options.
roleYesviewer = read-only, editor = can create and change projects, owner = full control including members and billing.
userIdYesThe member's user id (usr_…) — from list_members.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations, the description discloses meaningful behavioral details: the OWNER permission requirement, the 409 refusal when demoting the last owner with a suggested workaround, and the side effect of dropping live collaboration sessions. This goes well beyond what readOnly/idempotent/destructive hints alone convey.

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?

Three dense sentences front-load the primary action, then add permission requirements, a failure case, and a side effect. There is no filler or repetition of schema content, and every sentence earns its place.

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 mutation tool with no output schema, the description covers the essential invocation context: the action, required permission, an important edge case with status code, and the consequence of the action. An agent has what it needs to call the tool correctly and anticipate the key failure mode.

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 100%, so the parameters are already fully documented in the schema. The description adds context around the 'owner' role via the last-owner demotion rule, but it does not add new parameter-level meaning beyond what the schema already provides.

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 description opens with a specific verb and resource: 'Change an existing member's role in an organisation.' It clearly distinguishes this from siblings like remove_member (removal) and set_org_roles (org-level roles), making the tool's purpose immediately identifiable.

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?

The description implies when to use the tool—when you need to change a member's role—and provides contextual constraints like requiring the OWNER role. However, it does not explicitly contrast this tool with alternatives such as remove_member or set_org_roles, so the guidance is implied rather than explicit.

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