UNPKG

@chinchillaenterprises/mcp-discord

Version:

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

45 lines (42 loc) • 3.74 kB
import { ChannelType } from "discord.js"; export const toolDefinition = { name: "discord_list_channels", description: "List all channels in the server", inputSchema: { type: "object", properties: {}, } }; export const handler = async (_args, services) => { const guild = await services.getGuild(); try { const channels = guild.channels.cache; const channelsByType = { categories: channels.filter(ch => ch.type === ChannelType.GuildCategory), text: channels.filter(ch => ch.type === ChannelType.GuildText), voice: channels.filter(ch => ch.type === ChannelType.GuildVoice) }; const formatChannels = (channels, emoji) => channels.map(ch => `${emoji} ${ch.name} (${ch.id})`).join('\n'); return { content: [ { type: "text", text: `Server Channels (${channels.size} total): šŸ“ **Categories:** ${formatChannels(Array.from(channelsByType.categories.values()), 'šŸ“')} šŸ’¬ **Text Channels:** ${formatChannels(Array.from(channelsByType.text.values()), '#')} šŸ”Š **Voice Channels:** ${formatChannels(Array.from(channelsByType.voice.values()), 'šŸ”Š')}`, }, ], }; } catch (error) { console.error(`[ListChannels] Error listing channels:`, error); throw new Error(`Failed to list channels: ${error.message}`); } }; // No schema needed for this tool export const schema = null; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jaGFubmVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9zZXJ2ZXIvbGlzdC1jaGFubmVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBUztJQUNsQyxJQUFJLEVBQUUsdUJBQXVCO0lBQzdCLFdBQVcsRUFBRSxpQ0FBaUM7SUFDOUMsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUUsRUFBRTtLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBYyxFQUFFLFFBQTBCLEVBQUUsRUFBRTtJQUMxRSxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUV0QyxNQUFNLGNBQWMsR0FBRztZQUNyQixVQUFVLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUN4RSxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM5RCxLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFVBQVUsQ0FBQztTQUNqRSxDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFlLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FDeEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxFLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLG9CQUFvQixRQUFRLENBQUMsSUFBSTs7O0VBRy9DLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM7OztFQUdwRSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDOzs7RUFHN0QsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUMxRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLGlDQUFpQztBQUNqQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDIn0=