Skip to main content
Glama

discord_edit_embed

Edit Discord bot embed messages by updating specific fields like title, description, color, or images while removing omitted elements.

Instructions

Edit an embed message previously sent by the bot. Only provided fields are updated; omitted fields are removed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channel_idYes
message_idYesThe message ID to edit (must be a bot message with an embed).
titleNo
urlNoURL that makes the title clickable.
descriptionNo
colorNoHex color e.g. #5865F2
fieldsNo
authorNo
thumbnail_urlNo
footerNo
image_urlNo
timestampNoIf true, adds the current timestamp to the embed.

Implementation Reference

  • The handler logic for 'discord_edit_embed' which fetches the message, validates the sender, updates the embed, and edits the message.
    case "discord_edit_embed": {
      const channel = await getTextChannel(args.channel_id as string);
      const msg = await channel.messages.fetch(args.message_id as string);
      if (msg.author.id !== discord.user?.id) throw new Error("Can only edit embeds sent by the bot.");
      const embed = buildEmbed(args);
      await msg.edit({ embeds: [embed] });
      return { content: [{ type: "text", text: `✅ Embed edited on message ${args.message_id} in #${channel.name}.` }] };
    }
  • The schema definition for the 'discord_edit_embed' tool, outlining required parameters and input properties.
    {
      name: "discord_edit_embed",
      description: "Edit an embed message previously sent by the bot. Only provided fields are updated; omitted fields are removed.",
      inputSchema: {
        type: "object",
        properties: {
          channel_id: { type: "string" },
          message_id: { type: "string", description: "The message ID to edit (must be a bot message with an embed)." },
          title: { type: "string" },
          url: { type: "string", description: "URL that makes the title clickable." },
          description: { type: "string" },
          color: { type: "string", description: "Hex color e.g. #5865F2" },
          fields: {
            type: "array",
            items: {
              type: "object",
              properties: {
                name: { type: "string" },
                value: { type: "string" },
                inline: { type: "boolean" },
              },
              required: ["name", "value"],
            },
          },
          author: {
            type: "object",
            properties: {
              name: { type: "string" },
              icon_url: { type: "string" },
              url: { type: "string" },
            },
            required: ["name"],
          },
          thumbnail_url: { type: "string" },
          footer: { type: "string" },
          image_url: { type: "string" },
          timestamp: { type: "boolean", description: "If true, adds the current timestamp to the embed." },
        },
        required: ["channel_id", "message_id"],
      },
    },
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the partial update behavior ('Only provided fields are updated; omitted fields are removed'), which is crucial for understanding how the tool works. However, it doesn't mention permission requirements, rate limits, error conditions, or what happens when editing fails. The description adds some behavioral context but leaves significant gaps.

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?

The description is extremely concise with just two sentences that directly communicate the core functionality and behavior. Every word earns its place, and the information is front-loaded with no unnecessary elaboration. This is an excellent example of efficient communication.

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

Completeness3/5

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

For a mutation tool with 12 parameters, no annotations, no output schema, and only 33% schema description coverage, the description is incomplete. While it clearly states the purpose and partial update behavior, it lacks information about permissions, error handling, response format, and parameter details. The description provides a good foundation but leaves the agent with significant unknowns about how to use this tool effectively.

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 only 33%, meaning most parameters lack documentation in the schema. The description doesn't provide any parameter-specific information beyond the general update behavior statement. It doesn't explain what individual parameters like 'fields', 'author', or 'thumbnail_url' represent or how they should be formatted. The description adds minimal value beyond what the sparse schema provides.

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 states the specific action ('Edit an embed message'), target resource ('previously sent by the bot'), and scope ('Only provided fields are updated; omitted fields are removed'). It distinguishes from siblings like discord_edit_message by focusing specifically on embed editing rather than general message editing.

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

Usage Guidelines3/5

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

The description implies usage context by specifying 'previously sent by the bot' and 'must be a bot message with an embed' (from schema), but doesn't explicitly state when to use this versus alternatives like discord_edit_message or discord_send_embed. No exclusions or prerequisites are mentioned beyond what's in the parameter description.

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