Skip to main content
Glama
discord-mcp

discord-mcp

discord_update_my_user

DestructiveIdempotent

Update the authenticated bot's global username, avatar, or banner image across every server it belongs to; use guild member tools for server-specific changes.

Instructions

Update the authenticated bot's global username, avatar image, or banner image. Changes apply globally across every server the bot is in. Changing the username can randomize the discriminator. To change the bot's nickname or avatar in one guild only, use discord_update_my_guild_member (members toolset). Returns the updated bot user object. No special bot permissions. Destructive: the user is asked to approve the exact change before it runs.

Input Schema

NameRequiredDescriptionDefault
avatarNoNew avatar image as a base64 data URI (png, jpeg, gif, webp), or null to clear avatar
bannerNoNew banner image as a base64 data URI (png, jpeg, gif, webp), or null to clear banner
usernameNoNew global username for the bot account (2 to 32 characters); cannot contain @, #, :, three backticks (```) or 'discord', and cannot be 'everyone' or 'here'

Output Schema

NameRequiredDescriptionDefault
userYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.1.2
    • changedInput schema / properties / avatar / anyOf
      Previous value: -[
      -  {
      -    "pattern": "^data:image\\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/=]+$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Image payload formatted as an RFC 2397 base64 data URI (data:image/{png|jpeg|gif|webp};base64,...)",
      +    "pattern": "^data:image\\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/=]+$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / avatar / description
      Added value: +"New avatar image as a base64 data URI (png, jpeg, gif, webp), or null to clear avatar"
    • changedInput schema / properties / banner / anyOf
      Previous value: -[
      -  {
      -    "pattern": "^data:image\\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/=]+$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Image payload formatted as an RFC 2397 base64 data URI (data:image/{png|jpeg|gif|webp};base64,...)",
      +    "pattern": "^data:image\\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/=]+$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / banner / description
      Added value: +"New banner image as a base64 data URI (png, jpeg, gif, webp), or null to clear banner"
    • addedInput schema / properties / username / description
      Added value: +"New global username for the bot account (2 to 32 characters); cannot contain @, #, :, three backticks (```) or 'discord', and cannot be 'everyone' or 'here'"
    • removedOutput schema / properties / user / properties / global_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / user / properties / global_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / user / properties / id / description
      Added value: +"Discord snowflake ID as a numeric string"
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint, idempotentHint, openWorldHint), the description discloses that changes propagate globally, that changing the username can randomize the discriminator, that no special bot permissions are required, and that the user must approve the exact change before execution. The approval mechanism in particular adds meaningful context not conveyed by destructiveHint alone. The only shortfall is that 'Destructive' restates the annotation rather than explaining exactly what is lost or overwritten.

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 purpose and scope, then alternatives, then behavior, with no filler. It is slightly longer than necessary because the return-value sentence ('Returns the updated bot user object') duplicates information already available in the output schema.

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 rich annotations, a full output schema, and 100% parameter coverage, the description fills the remaining gaps an agent needs: global blast radius, the discriminator side effect, permission requirements, and the approval gate. Nothing material about invoking this tool correctly is missing.

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%, and the schema already documents the base64 data-URI format for avatar/banner, the null-to-clear semantics, and the username character restrictions. The description only enumerates which fields are updatable and adds one behavioral note about the discriminator; it adds no syntax or format meaning beyond the schema, so the baseline of 3 applies.

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 first sentence names a specific verb and resource ('Update the authenticated bot's global username, avatar image, or banner image'), and the description explicitly contrasts the global scope with the per-guild alternative discord_update_my_guild_member. An agent can distinguish this tool from other user/profile toolsets without opening the schema.

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?

The description gives explicit routing guidance: use this tool for global bot identity changes, and use discord_update_my_guild_member for a single guild's nickname/avatar. The scope constraint ('globally across every server') tells the agent when this tool is the wrong choice because the change is too broad.

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