Skip to main content
Glama

discord_edit_dm_embed

Idempotent

Replace a previously sent bot DM embed with a new one. Provide Discord user ID, message ID, and desired fields; omitted fields are cleared.

Instructions

Replace the embed on a DM message previously sent by this bot. Only the bot's own messages can be edited. Full replace, not merge: provided fields are applied and omitted fields are dropped. Returns a confirmation.

Input Schema

TableJSON 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. Dates show when Glama detected each change.

  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.2/5.0
Behavior4/5

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

The description discloses the full-replace behavior ('provided fields are applied and omitted fields are dropped'), which is a critical non-obvious trait. Annotations already indicate idempotentHint=true and destructiveHint=false, so the description's replacement semantics add meaningful context beyond annotations. It also states the return is a confirmation, which is useful. Slight gap: no mention of auth/rate limits or what happens if the message isn't found.

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 sentences with zero filler. The first sentence states the verb+resource, the second adds the critical ownership constraint, and the third crystallizes the most important behavior (full replace). Everything is front-loaded and earns its place.

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?

Given the 100% schema coverage, the required params are clear, and the nested object shapes (author, fields) are fully documented. The description explains the full-replace semantic that the schema can't express, and the confirmation return. Minor omissions (error cases, not-found behavior) are acceptable for an edit tool with idempotentHint=true.

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 coverage is 100%, so the schema already documents all 13 parameters. The description's 'full replace, not merge' is high-level and applies to all parameters collectively, but it doesn't add per-parameter meaning beyond the schema. This is baseline 3 territory since the schema does the heavy lifting.

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 clearly identifies the specific verb ('Replace'), the resource ('the embed on a DM message previously sent by this bot'), and distinct scope ('DM message', 'previously sent by this bot'). It also differentiates from generic edit tools by specifying DM-only context and bot-owned messages.

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

Usage Guidelines4/5

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

The description states the critical when-not-to-use constraint: only the bot's own messages can be edited. It clearly implies this tool is for DM messages, distinguishing it from discord_edit_embed (which likely targets server messages). However, it doesn't explicitly name an alternative tool like discord_edit_embed or discord_edit_dm for non-embed edits, so it misses the full explicit alternative mapping.

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

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/PaSympa/discord-mcp'

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