Skip to main content
Glama

discord_edit_webhook_message

Idempotent

Edit a message sent by a Discord webhook using its ID and token, replacing content or embeds without bot permissions. Returns a confirmation.

Instructions

Edit a message previously sent through a webhook, using the webhook's ID and token. Replaces the provided fields. No bot permission is needed: the token authorizes the edit. For a message the bot sent itself, use discord_edit_message or discord_edit_embed. Returns a confirmation.

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": {
      "webhook_id": "<webhook_id>",
      "webhook_token": "<webhook_token>",
      "message_id": "<message_id>"
    },
    "name": "discord_edit_webhook_message"
  }
}

Input Schema

NameRequiredDescriptionDefault
embedsNoUp to 10 embed objects to attach to the webhook message.
contentNoNew plain-text content for the message (max 2000 characters).
message_idYesID of the webhook message to edit.
webhook_idYesID (snowflake) of the webhook that sent the message.
webhook_tokenYesSecret token of the webhook.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv2.2.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / embeds / items / additionalProperties
      Added value: +false
    • addedInput schema / properties / embeds / items / properties / author / additionalProperties
      Added value: +false
    • addedInput schema / properties / embeds / items / properties / fields / items / additionalProperties
      Added value: +false
  2. Changed13 schema fields changedv2.0.0
    • addedInput schema / properties / embeds / items / properties / author
      Added value: +{
      +  "description": "Author block shown at the top of the embed.",
      +  "properties": {
      +    "icon_url": {
      +      "description": "Small icon shown next to the author name.",
      +      "format": "uri",
      +      "pattern": "^https?://",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Author display name.",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "URL the author name links to.",
      +      "format": "uri",
      +      "pattern": "^https?://",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / embeds / items / properties / color / pattern
      Added value: +"^#[0-9A-Fa-f]{6}$"
    • changedInput schema / properties / embeds / items / properties / fields / description
      Previous value: -"Up to 25 name/value field blocks."New value: +"Up to 25 name/value field blocks. Set inline:true on a field to render it side-by-side with adjacent inline fields (up to 3 per row)."
    • changedInput schema / properties / embeds / items / properties / fields / items / properties / inline / description
      Previous value: -"If true, render side-by-side with adjacent inline fields."New value: +"If true, render this field side-by-side with adjacent inline fields."
    • addedInput schema / properties / embeds / items / properties / image_url / format
      Added value: +"uri"
    • addedInput schema / properties / embeds / items / properties / image_url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / embeds / items / properties / thumbnail_url / format
      Added value: +"uri"
    • addedInput schema / properties / embeds / items / properties / thumbnail_url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / embeds / items / properties / url / format
      Added value: +"uri"
    • addedInput schema / properties / embeds / items / properties / url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / embeds / maxItems
      Added value: +10
    • addedInput schema / properties / message_id / pattern
      Added value: +"^\\d{17,20}$"
    • addedInput schema / properties / webhook_id / pattern
      Added value: +"^\\d{17,20}$"
  3. Changed17 schema fields changedv1.6.0
    • addedInput schema / properties / content / description
      Added value: +"New plain-text content for the message (max 2000 characters)."
    • changedInput schema / properties / embeds / description
      Previous value: -"Optional array of embed objects."New value: +"Up to 10 embed objects to attach to the webhook message."
    • changedInput schema / properties / embeds / items / properties / color / description
      Previous value: -"Hex color e.g. #5865F2"New value: +"Side-bar color as a hex string, e.g. '#5865F2'."
    • addedInput schema / properties / embeds / items / properties / description / description
      Added value: +"Main body text of the embed (supports Markdown)."
    • addedInput schema / properties / embeds / items / properties / fields / description
      Added value: +"Up to 25 name/value field blocks."
    • addedInput schema / properties / embeds / items / properties / fields / items / properties / inline / description
      Added value: +"If true, render side-by-side with adjacent inline fields."
    • addedInput schema / properties / embeds / items / properties / fields / items / properties / name / description
      Added value: +"Field heading."
    • addedInput schema / properties / embeds / items / properties / fields / items / properties / value / description
      Added value: +"Field body text."
    • addedInput schema / properties / embeds / items / properties / footer / description
      Added value: +"Footer text shown at the bottom of the embed."
    • addedInput schema / properties / embeds / items / properties / image_url / description
      Added value: +"Large image shown below the embed body."
    • addedInput schema / properties / embeds / items / properties / thumbnail_url / description
      Added value: +"Small image shown in the top-right corner."
    • addedInput schema / properties / embeds / items / properties / timestamp / description
      Added value: +"If true, stamp the embed with the current time."
    • addedInput schema / properties / embeds / items / properties / title / description
      Added value: +"Embed title shown in bold at the top."
    • addedInput schema / properties / embeds / items / properties / url / description
      Added value: +"URL that makes the title clickable."
    • addedInput schema / properties / message_id / description
      Added value: +"ID of the webhook message to edit."
    • addedInput schema / properties / webhook_id / description
      Added value: +"ID (snowflake) of the webhook that sent the message."
    • addedInput schema / properties / webhook_token / description
      Added value: +"Secret token of the webhook."
  4. Addedv1.5.0

TDQS

A4.4/5.0
Behavior4/5

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

Adds real context beyond the annotations: 'Replaces the provided fields' signals replace-style semantics rather than a merge, and 'No bot permission is needed: the token authorizes the edit' explains the auth model, which the annotations do not cover. 'Returns a confirmation' sets response expectations. The one gap is that 'replaces the provided fields' leaves ambiguous whether omitted fields are cleared or left untouched, which matters for an idempotent mutation.

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?

Four short sentences, front-loaded with the action and scope, then the replacement behavior, then the routing alternative. Every sentence carries a distinct fact; nothing is repeated from the title or annotations.

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

Completeness4/5

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

For a 5-parameter mutation with full schema coverage, annotations present, and no output schema, the description covers purpose, auth, alternatives, and return shape adequately. The only shortfall is the unresolved replace-vs-merge semantics for partial edits, which is the main uncertainty an agent would still have.

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 all five parameters including the nested embed structure are already documented in the schema. The description only names webhook_id/webhook_token as the credentialing pair; it adds no format, length, or constraint detail beyond what the schema states. Baseline 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?

States a specific verb and resource ("Edit a message previously sent through a webhook") plus the identifying scope (webhook ID and token). It explicitly contrasts itself with discord_edit_message and discord_edit_embed, so an agent can pick the right tool without opening any 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?

Gives an explicit decision rule: use this for webhook-sent messages, use discord_edit_message / discord_edit_embed for messages the bot itself sent. It also states the prerequisite (webhook token) that selects this path over the ordinary edit tools.

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

Deploy Server

Other Tools