UNPKG

@chinchillaenterprises/mcp-discord

Version:

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

69 lines (68 loc) • 5.66 kB
export const toolDefinition = { name: "discord_list_members", description: "List server members", inputSchema: { type: "object", properties: { limit: { type: "number", description: "Maximum number of members to return (1-1000, default: 100)", }, withRoles: { type: "boolean", description: "Include role information for each member", }, }, } }; export const handler = async (args, services) => { const { limit = 100, withRoles = false } = args; const guild = await services.getGuild(); try { await guild.members.fetch({ limit }); const members = guild.members.cache.first(limit); const memberList = members.map(member => { const baseInfo = { username: `${member.user.username}`, displayName: member.displayName, id: member.id, joinedAt: member.joinedAt?.toISOString() || 'Unknown', isBot: member.user.bot }; if (withRoles) { return { ...baseInfo, roles: member.roles.cache .filter(role => role.name !== '@everyone') .map(role => role.name) .join(', ') || 'No roles' }; } return baseInfo; }); const botCount = memberList.filter(m => m.isBot).length; const humanCount = memberList.length - botCount; return { content: [ { type: "text", text: `Server Members (showing ${memberList.length} of ${guild.memberCount}): šŸ‘„ ${humanCount} humans, šŸ¤– ${botCount} bots ${memberList.map(member => { const emoji = member.isBot ? 'šŸ¤–' : 'šŸ‘¤'; const roleInfo = withRoles && 'roles' in member ? `\n Roles: ${member.roles}` : ''; return `${emoji} **${member.displayName}** (${member.username}) ID: ${member.id} Joined: ${member.joinedAt}${roleInfo}`; }).join('\n\n')}`, }, ], }; } catch (error) { console.error(`[ListMembers] Error listing members:`, error); throw new Error(`Failed to list members: ${error.message}`); } }; export { ListMembersArgsSchema as schema } from "../../schemas/server.js"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1tZW1iZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xzL3NlcnZlci9saXN0LW1lbWJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFTO0lBQ2xDLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsNERBQTREO2FBQzFFO1lBQ0QsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxTQUFTO2dCQUNmLFdBQVcsRUFBRSwwQ0FBMEM7YUFDeEQ7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsSUFBcUIsRUFBRSxRQUEwQixFQUFFLEVBQUU7SUFDakYsTUFBTSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsU0FBUyxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztJQUVoRCxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxNQUFNLFFBQVEsR0FBRztnQkFDZixRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksU0FBUztnQkFDckQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRzthQUN2QixDQUFDO1lBRUYsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxPQUFPO29CQUNMLEdBQUcsUUFBUTtvQkFDWCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLO3lCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQzt5QkFDekMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt5QkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVU7aUJBQzVCLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4RCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUVoRCxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSwyQkFBMkIsVUFBVSxDQUFDLE1BQU0sT0FBTyxLQUFLLENBQUMsV0FBVztLQUMvRSxVQUFVLGVBQWUsUUFBUTs7RUFFcEMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ3pDLE1BQU0sUUFBUSxHQUFHLFNBQVMsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNyRixPQUFPLEdBQUcsS0FBSyxNQUFNLE1BQU0sQ0FBQyxXQUFXLE9BQU8sTUFBTSxDQUFDLFFBQVE7U0FDdEQsTUFBTSxDQUFDLEVBQUU7YUFDTCxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRSxDQUFDO29CQUMxQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQ1I7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUscUJBQXFCLElBQUksTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUMifQ==