@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
JavaScript
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