Skip to main content
Glama
Buu-AI

Buu AI MCP Server

team_update_member_role

Assign or modify a team member's role by specifying the member's address and their new role within Buu AI MCP Server.

Instructions

[PRIVATE] Update the role of a team member.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
memberYesAddress of the team member
newRoleYesNew role for the team member

Implementation Reference

  • The handler function that executes the tool logic by invoking the GraphQL mutation to update a team member's role.
    async ({ member, newRole }) => {
      try {
        const response = await client.request(updateTeamMemberRoleMutation, {
          member,
          newRole,
        });
        return { content: [{ type: 'text', text: JSON.stringify(response) }] };
      } catch (error) {
        console.error('Error calling team_update_member_role:', error);
        return {
          isError: true,
          content: [{ type: 'text', text: `Error: Failed to update member role. ${error}` }],
        };
      }
    }
  • Zod input schema defining parameters: member (address) and newRole.
    {
      member: z.string().describe('Address of the team member'),
      newRole: z.string().describe('New role for the team member'),
    },
  • Registration of the 'team_update_member_role' tool on the MCP server, including schema and handler.
    server.tool(
      'team_update_member_role',
      '[PRIVATE] Update the role of a team member.',
      {
        member: z.string().describe('Address of the team member'),
        newRole: z.string().describe('New role for the team member'),
      },
      async ({ member, newRole }) => {
        try {
          const response = await client.request(updateTeamMemberRoleMutation, {
            member,
            newRole,
          });
          return { content: [{ type: 'text', text: JSON.stringify(response) }] };
        } catch (error) {
          console.error('Error calling team_update_member_role:', error);
          return {
            isError: true,
            content: [{ type: 'text', text: `Error: Failed to update member role. ${error}` }],
          };
        }
      }
    );
  • GraphQL mutation query used by the handler to perform the role update.
    const updateTeamMemberRoleMutation = gql`
      mutation UpdateTeamMemberRole($newRole: TeamRole!, $member: String!) {
        updateTeamMemberRole(newRole: $newRole, member: $member) {
          ... on Team {
            _id
            type
            name
            creator
            wallet
            members {
              address
              role
              status
            }
            available
            pending
            confirmed
            updatedAt
            createdAt
          }
          ... on HandledError {
            code
            message
          }
        }
      }
    `;
  • src/index.ts:49-49 (registration)
    Invocation of registerTeamTools which registers the team_update_member_role tool among others.
    registerTeamTools(server, buuServerClient);
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation operation, it doesn't specify whether this requires admin permissions, what happens if the role change fails, whether it's reversible, or what the typical response looks like. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 extremely concise at just one sentence, with no wasted words. The '[PRIVATE]' prefix is front-loaded but potentially distracting. While efficient, some might argue it's too brief for a mutation tool with no annotations or output schema.

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

Completeness2/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 annotations, no output schema, and multiple sibling tools in the team management domain, the description is insufficient. It doesn't explain what happens after the update, what roles are available, whether there are validation rules, or how this differs from other team_update operations. The context demands more guidance than provided.

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?

The schema description coverage is 100%, with both parameters clearly documented in the schema itself. The description doesn't add any additional semantic context beyond what's already in the schema descriptions for 'member' and 'newRole'. This meets the baseline expectation when schema coverage is complete.

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 clearly states the action ('Update') and resource ('role of a team member'), making the purpose immediately understandable. It distinguishes this from sibling tools like team_add_member or team_remove_member by focusing specifically on role modification. However, the '[PRIVATE]' prefix adds some ambiguity about whether this is a general tool or has restricted visibility.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like team_update (which might handle other team modifications) or team_add_member/team_remove_member. There's no mention of prerequisites, permissions required, or typical scenarios where role updates are appropriate versus creating new teams or removing members.

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

Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Buu-AI/buu-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server