@chinchillaenterprises/mcp-discord
Version:
Modular Discord MCP server with 45+ tools for comprehensive server management, featuring clean architecture and discord_ prefixed tools
53 lines • 3.91 kB
JavaScript
export const toolDefinition = {
name: "discord_change_nickname",
description: "Change a member's nickname",
inputSchema: {
type: "object",
properties: {
userId: {
type: "string",
description: "User ID to change nickname for",
},
nickname: {
type: "string",
description: "New nickname (null to remove)",
},
reason: {
type: "string",
description: "Reason for nickname change (optional)",
},
},
required: ["userId"],
}
};
export const handler = async (args, services) => {
const { userId, nickname, reason } = args;
const guild = await services.getGuild();
try {
const member = await guild.members.fetch(userId);
if (!member) {
throw new Error(`Member ${userId} not found`);
}
await member.setNickname(nickname || null, reason);
return {
content: [
{
type: "text",
text: `Successfully changed nickname!
User: ${member.user.username}#${member.user.discriminator} (${userId})
${nickname ? `New nickname: ${nickname}` : 'Nickname removed (using username)'}
Previous nickname: ${member.nickname || 'None (using username)'}
${reason ? `Reason: ${reason}` : 'No reason provided'}
Server: ${guild.name}
Changed at: ${new Date().toISOString()}`
}
]
};
}
catch (error) {
console.error(`[ChangeNickname] Error changing nickname:`, error);
throw new Error(`Failed to change nickname: ${error.message}`);
}
};
export { ChangeNicknameArgsSchema as schema } from "../../schemas/moderation.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLW5pY2tuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xzL21vZGVyYXRpb24vY2hhbmdlLW5pY2tuYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBUztJQUNsQyxJQUFJLEVBQUUseUJBQXlCO0lBQy9CLFdBQVcsRUFBRSw0QkFBNEI7SUFDekMsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUU7WUFDVixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLGdDQUFnQzthQUM5QztZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsK0JBQStCO2FBQzdDO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSx1Q0FBdUM7YUFDckQ7U0FDRjtRQUNELFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNyQjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQXdCLEVBQUUsUUFBMEIsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztJQUUxQyxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxNQUFNLFlBQVksQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVuRCxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRTtRQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU07RUFDbEUsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztxQkFDekQsTUFBTSxDQUFDLFFBQVEsSUFBSSx1QkFBdUI7RUFDN0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7VUFDM0MsS0FBSyxDQUFDLElBQUk7Y0FDTixJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO2lCQUMvQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyJ9