UNPKG

@chinchillaenterprises/mcp-discord

Version:

Modular Discord MCP server with 45+ tools for comprehensive server management, featuring clean architecture and discord_ prefixed tools

57 lines 4.46 kB
import { ChannelType } from "discord.js"; export const toolDefinition = { name: "discord_bulk_delete_messages", description: "Bulk delete messages in a channel", inputSchema: { type: "object", properties: { channelId: { type: "string", description: "Channel ID or name", }, count: { type: "number", description: "Number of messages to delete (2-100)", }, reason: { type: "string", description: "Reason for bulk delete (optional)", }, }, required: ["channelId", "count"], } }; export const handler = async (args, services) => { const { channelId, count, reason } = args; const client = await services.getActiveClient(); try { // Resolve channel name to ID if needed const resolvedChannelId = await services.resolveChannel(channelId); const channel = await client.channels.fetch(resolvedChannelId); if (!channel || channel.type !== ChannelType.GuildText) { throw new Error(`Channel ${channelId} is not a text channel`); } const textChannel = channel; const deletedMessages = await textChannel.bulkDelete(count, true); return { content: [ { type: "text", text: `Successfully bulk deleted messages! Channel: #${textChannel.name} (${textChannel.id}) Messages deleted: ${deletedMessages.size} Requested: ${count} ${reason ? `Reason: ${reason}` : 'No reason provided'} ${deletedMessages.size < count ? '\nNote: Some messages may have been too old (>14 days) to delete' : ''} Deleted at: ${new Date().toISOString()}` } ] }; } catch (error) { console.error(`[BulkDeleteMessages] Error bulk deleting messages:`, error); throw new Error(`Failed to bulk delete messages: ${error.message}`); } }; export { BulkDeleteMessagesArgsSchema as schema } from "../../schemas/messaging.js"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1kZWxldGUtbWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvbW9kZXJhdGlvbi9idWxrLWRlbGV0ZS1tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0sWUFBWSxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBUztJQUNsQyxJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLFdBQVcsRUFBRSxtQ0FBbUM7SUFDaEQsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUU7WUFDVixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLG9CQUFvQjthQUNsQztZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsc0NBQXNDO2FBQ3BEO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSxtQ0FBbUM7YUFDakQ7U0FDRjtRQUNELFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7S0FDakM7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxJQUE0QixFQUFFLFFBQTBCLEVBQUUsRUFBRTtJQUN4RixNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7SUFFaEQsSUFBSSxDQUFDO1FBQ0gsdUNBQXVDO1FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxTQUFTLHdCQUF3QixDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLE9BQXNCLENBQUM7UUFDM0MsTUFBTSxlQUFlLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRSxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRTtZQUNKLFdBQVcsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUU7b0JBQzNCLGVBQWUsQ0FBQyxJQUFJO2FBQzNCLEtBQUs7RUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7RUFDbkQsZUFBZSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtFQUFrRSxDQUFDLENBQUMsQ0FBQyxFQUFFO2NBQzFGLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7aUJBQy9CO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLDRCQUE0QixJQUFJLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDIn0=