UNPKG

@chinchillaenterprises/mcp-discord

Version:

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

58 lines 4.24 kB
import { ChannelType } from "discord.js"; export const toolDefinition = { name: "discord_create_webhook", description: "Create a webhook for a channel", inputSchema: { type: "object", properties: { channelId: { type: "string", description: "Channel ID or name to create webhook for", }, name: { type: "string", description: "Name for the webhook", }, avatar: { type: "string", description: "Avatar URL for the webhook (optional)", }, reason: { type: "string", description: "Reason for creating webhook (optional)", }, }, required: ["channelId", "name"], }, }; export const handler = async (args, services) => { const { channelId, name, avatar, reason } = args; const client = await services.getActiveClient(); try { 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 webhook = await textChannel.createWebhook({ name, avatar, reason, }); return { content: [ { type: "text", text: `Successfully created webhook!\n\nName: ${webhook.name}\nID: ${webhook.id}\nURL: ${webhook.url}\nChannel: ${textChannel.name}`, }, ], }; } catch (error) { console.error(`[CreateWebhook] Error creating webhook:`, error); throw new Error(`Failed to create webhook: ${error.message}`); } }; export { CreateWebhookArgsSchema as schema } from "../../schemas/content.js"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdlYmhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvY29udGVudC9jcmVhdGUtd2ViaG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0sWUFBWSxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBUztJQUNsQyxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFdBQVcsRUFBRSxnQ0FBZ0M7SUFDN0MsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUU7WUFDVixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLDBDQUEwQzthQUN4RDtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsc0JBQXNCO2FBQ3BDO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSx1Q0FBdUM7YUFDckQ7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLHdDQUF3QzthQUN0RDtTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztLQUNoQztDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQXVCLEVBQUUsUUFBMEIsRUFBRSxFQUFFO0lBQ25GLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7SUFFaEQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFNBQVMsd0JBQXdCLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsT0FBc0IsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDOUMsSUFBSTtZQUNKLE1BQU07WUFDTixNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsMENBQTBDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLENBQUMsR0FBRyxjQUFjLFdBQVcsQ0FBQyxJQUFJLEVBQUU7aUJBQ3JJO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLHVCQUF1QixJQUFJLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDIn0=