Skip to main content
Glama

discord_delete_message

Remove a specific message in a Discord text channel by specifying the channel and message IDs, ensuring clean and organized communication management.

Instructions

Deletes a specific message from a Discord text channel

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelIdYes
messageIdYes
reasonNo

Implementation Reference

  • The main handler function for the discord_delete_message tool. It validates arguments using DeleteMessageSchema, checks client readiness, fetches the channel and message, deletes the message, and returns success or error response.
    export async function deleteMessageHandler(
      args: unknown, 
      context: ToolContext
    ): Promise<ToolResponse> {
      const { channelId, messageId, reason } = DeleteMessageSchema.parse(args);
      try {
        if (!context.client.isReady()) {
          return {
            content: [{ type: "text", text: "Discord client not logged in." }],
            isError: true
          };
        }
    
        const channel = await context.client.channels.fetch(channelId);
        if (!channel || !channel.isTextBased() || !('messages' in channel)) {
          return {
            content: [{ type: "text", text: `Cannot find text channel with ID: ${channelId}` }],
            isError: true
          };
        }
    
        // Fetch the message
        const message = await channel.messages.fetch(messageId);
        if (!message) {
          return {
            content: [{ type: "text", text: `Cannot find message with ID: ${messageId}` }],
            isError: true
          };
        }
    
        // Delete the message
        await message.delete();
    
        return {
          content: [{ 
            type: "text", 
            text: `Successfully deleted message with ID: ${messageId} from channel: ${channelId}` 
          }]
        };
      } catch (error) {
        return handleDiscordError(error);
      }
    } 
  • Zod schema for input validation used within the deleteMessageHandler.
    export const DeleteMessageSchema = z.object({
        channelId: z.string(),
        messageId: z.string(),
        reason: z.string().optional()
    });
  • JSON Schema definition for the tool's input parameters, used in the MCP listTools response.
    {
      name: "discord_delete_message",
      description: "Deletes a specific message from a Discord text channel",
      inputSchema: {
        type: "object",
        properties: {
          channelId: { type: "string" },
          messageId: { type: "string" },
          reason: { type: "string" }
        },
        required: ["channelId", "messageId"]
      }
    },
  • src/server.ts:158-161 (registration)
    Registration and dispatching logic in the MCP server's CallToolRequest handler switch statement.
    case "discord_delete_message":
      this.logClientState("before discord_delete_message handler");
      toolResponse = await deleteMessageHandler(args, this.toolContext);
      return toolResponse;

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

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