@chinchillaenterprises/mcp-discord
Version:
Modular Discord MCP server with 45+ tools for comprehensive server management, featuring clean architecture and discord_ prefixed tools
51 lines • 3.42 kB
JavaScript
export const toolDefinition = {
name: "discord_ban_member",
description: "Ban a member from the server",
inputSchema: {
type: "object",
properties: {
userId: {
type: "string",
description: "User ID to ban",
},
reason: {
type: "string",
description: "Reason for banning (optional)",
},
deleteMessageDays: {
type: "number",
description: "Number of days of messages to delete (0-7, default: 0)",
},
},
required: ["userId"],
}
};
export const handler = async (args, services) => {
const { userId, reason, deleteMessageDays = 0 } = args;
const guild = await services.getGuild();
try {
await guild.members.ban(userId, {
deleteMessageDays,
reason,
});
return {
content: [
{
type: "text",
text: `Successfully banned user!
User ID: ${userId}
${reason ? `Reason: ${reason}` : 'No reason provided'}
${deleteMessageDays > 0 ? `Deleted ${deleteMessageDays} days of messages` : 'No messages deleted'}
Server: ${guild.name}
Banned at: ${new Date().toISOString()}`
}
]
};
}
catch (error) {
console.error(`[BanMember] Error banning member:`, error);
throw new Error(`Failed to ban member: ${error.message}`);
}
};
export { BanMemberArgsSchema as schema } from "../../schemas/moderation.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuLW1lbWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9tb2RlcmF0aW9uL2Jhbi1tZW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFTO0lBQ2xDLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsV0FBVyxFQUFFLDhCQUE4QjtJQUMzQyxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSwrQkFBK0I7YUFDN0M7WUFDRCxpQkFBaUIsRUFBRTtnQkFDakIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLHdEQUF3RDthQUN0RTtTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ3JCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsSUFBbUIsRUFBRSxRQUEwQixFQUFFLEVBQUU7SUFDL0UsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXZELE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRXhDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQzlCLGlCQUFpQjtZQUNqQixNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUU7V0FDTCxNQUFNO0VBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7RUFDbkQsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLGlCQUFpQixtQkFBbUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCO1VBQ3ZGLEtBQUssQ0FBQyxJQUFJO2FBQ1AsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtpQkFDOUI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsbUJBQW1CLElBQUksTUFBTSxFQUFFLE1BQU0sNkJBQTZCLENBQUMifQ==