Skip to main content
Glama

discord_edit_dm_embed

Idempotent

Replace the embed on a DM message previously sent by your bot. Provided fields are applied and omitted fields are dropped, so use it to fully overwrite embed content, images, and fields in a direct message.

Instructions

Replace the embed on a DM message previously sent by this bot. Full replace, not merge: provided fields are applied and omitted fields are dropped. Omitting content keeps the message's current text. Use discord_edit_dm to change only the text, or discord_edit_embed for a message in a server channel. 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": {
      "user_id": "<user_id>",
      "message_id": "<message_id>"
    },
    "name": "discord_edit_dm_embed"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNoURL that makes the title clickable.
colorNoSide-bar color as a hex string, e.g. '#5865F2'.
titleNoEmbed title shown in bold at the top.
authorNoAuthor block shown at the top of the embed.
fieldsNoUp 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).
footerNoFooter text shown at the bottom of the embed.
contentNoOptional new plain text shown above the embed.
user_idYesDiscord user ID (snowflake) of the DM recipient.
image_urlNoLarge image shown below the embed body.
timestampNoIf true, stamp the embed with the current time.
message_idYesID of the target message within the DM conversation.
descriptionNoMain body text of the embed (supports Markdown).
thumbnail_urlNoSmall image shown in the top-right corner.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv2.2.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / author / additionalProperties
      Added value: +false
    • addedInput schema / properties / fields / items / additionalProperties
      Added value: +false
  2. Changed13 schema fields changedv2.0.0
    • addedInput schema / properties / author / properties / icon_url / format
      Added value: +"uri"
    • addedInput schema / properties / author / properties / icon_url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / author / properties / url / format
      Added value: +"uri"
    • addedInput schema / properties / author / properties / url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / color / pattern
      Added value: +"^#[0-9A-Fa-f]{6}$"
    • addedInput schema / properties / image_url / format
      Added value: +"uri"
    • addedInput schema / properties / image_url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / message_id / pattern
      Added value: +"^\\d{17,20}$"
    • addedInput schema / properties / thumbnail_url / format
      Added value: +"uri"
    • addedInput schema / properties / thumbnail_url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / url / format
      Added value: +"uri"
    • addedInput schema / properties / url / pattern
      Added value: +"^https?://"
    • addedInput schema / properties / user_id / pattern
      Added value: +"^\\d{17,20}$"
  3. Changed1 schema field changedv1.6.2
    • changedInput schema / properties / fields / description
      Previous value: -"Up to 25 name/value field blocks. Set inline:true to render up to 3 side-by-side."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)."
  4. Changed16 schema fields changedv1.6.0
    • addedInput schema / properties / author / properties / icon_url / description
      Added value: +"Small icon shown next to the author name."
    • addedInput schema / properties / author / properties / name / description
      Added value: +"Author display name."
    • addedInput schema / properties / author / properties / url / description
      Added value: +"URL the author name links to."
    • changedInput schema / properties / color / description
      Previous value: -"Hex color e.g. #5865F2"New value: +"Side-bar color as a hex string, e.g. '#5865F2'."
    • changedInput schema / properties / content / description
      Previous value: -"Optional new text content above the embed."New value: +"Optional new plain text shown above the embed."
    • addedInput schema / properties / description / description
      Added value: +"Main body text of the embed (supports Markdown)."
    • changedInput schema / properties / fields / description
      Previous value: -"Name/value blocks shown inside the embed (max 25). Set inline:true to render up to 3 side-by-side."New value: +"Up to 25 name/value field blocks. Set inline:true to render up to 3 side-by-side."
    • addedInput schema / properties / fields / items / properties / inline / description
      Added value: +"If true, render this field side-by-side with adjacent inline fields."
    • addedInput schema / properties / fields / items / properties / name / description
      Added value: +"Field heading."
    • addedInput schema / properties / fields / items / properties / value / description
      Added value: +"Field body text."
    • addedInput schema / properties / footer / description
      Added value: +"Footer text shown at the bottom of the embed."
    • addedInput schema / properties / image_url / description
      Added value: +"Large image shown below the embed body."
    • changedInput schema / properties / message_id / description
      Previous value: -"The message ID (must be a bot message)."New value: +"ID of the target message within the DM conversation."
    • changedInput schema / properties / timestamp / description
      Previous value: -"If true, adds the current timestamp to the embed."New value: +"If true, stamp the embed with the current time."
    • addedInput schema / properties / title / description
      Added value: +"Embed title shown in bold at the top."
    • changedInput schema / properties / user_id / description
      Previous value: -"The Discord user ID."New value: +"Discord user ID (snowflake) of the DM recipient."
  5. Changed1 schema field changedv1.5.0
    • addedInput schema / properties / fields / description
      Added value: +"Name/value blocks shown inside the embed (max 25). Set inline:true to render up to 3 side-by-side."
  6. Addedv1.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, but they do not reveal that omitted embed fields are dropped on each call – the description supplies exactly that, which is the single most important behavioral fact for this tool. It also notes the content omission carve-out. It does not cover failure modes (e.g. the target message no longer being bot-authored or editable), which keeps it short of a 5.

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?

Front-loads the action, then the replace-not-merge rule, then the alternative routing, then the return value. Every sentence carries information an agent needs; nothing is repeated from the schema.

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?

Handles the complexity well for a 13-parameter mutation with nested objects: replace semantics, text-preservation exception, sibling routing and a return confirmation are all covered. With a 100%-covered schema, the only remaining gap is what happens on failure, which is a minor omission rather than a blocker.

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 every one of the 13 parameters, including the nested author and fields objects, is already documented. The description adds one genuine semantic not in the schema – omitting content preserves existing text – but otherwise defers entirely to the schema, so 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 ('Replace the embed on a DM message previously sent by this bot') and immediately distinguishes itself from the two nearest siblings, discord_edit_dm and discord_edit_embed. The bot-authored scope is stated explicitly, which the name alone would not convey.

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?

Explicit routing: use discord_edit_dm to change only text, discord_edit_embed for a server-channel message, this tool for a DM embed. The condition selecting each alternative is unambiguous, so no inference is required.

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