UNPKG

@chinchillaenterprises/mcp-discord

Version:

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

49 lines 3.7 kB
import { ChannelType } from "discord.js"; export const toolDefinition = { name: "discord_send_tts_message", description: "Send a text-to-speech message", inputSchema: { type: "object", properties: { channel: { type: "string", description: "Channel ID or name", }, text: { type: "string", description: "Message text (will be spoken)", }, }, required: ["channel", "text"], }, }; export const handler = async (args, services) => { const { channel: channelInput, text } = args; const client = await services.getActiveClient(); try { const channelId = await services.resolveChannel(channelInput); const channel = await client.channels.fetch(channelId); if (!channel || channel.type !== ChannelType.GuildText) { throw new Error(`Channel ${channelId} not found or is not a text channel`); } const textChannel = channel; const message = await textChannel.send({ content: text, tts: true, }); return { content: [ { type: "text", text: `TTS message sent successfully!\n\nChannel: ${textChannel.name}\nMessage ID: ${message.id}\nContent: ${text}`, }, ], }; } catch (error) { console.error(`[SendTTSMessage] Error sending TTS message:`, error); throw new Error(`Failed to send TTS message: ${error.message}`); } }; export { SendTTSMessageArgsSchema as schema } from "../../schemas/content.js"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC10dHMtbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9jb250ZW50L3NlbmQtdHRzLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFdBQVcsRUFBZSxNQUFNLFlBQVksQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVM7SUFDbEMsSUFBSSxFQUFFLDBCQUEwQjtJQUNoQyxXQUFXLEVBQUUsK0JBQStCO0lBQzVDLFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSxvQkFBb0I7YUFDbEM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLCtCQUErQjthQUM3QztTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztLQUM5QjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQXdCLEVBQUUsUUFBMEIsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztJQUU3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUVoRCxJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxTQUFTLHFDQUFxQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLE9BQXNCLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxJQUFJO1lBQ2IsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSw4Q0FBOEMsV0FBVyxDQUFDLElBQUksaUJBQWlCLE9BQU8sQ0FBQyxFQUFFLGNBQWMsSUFBSSxFQUFFO2lCQUNwSDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyJ9