UNPKG

@chinchillaenterprises/mcp-discord

Version:

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

60 lines (59 loc) 5.43 kB
export const toolDefinition = { name: "discord_get_audit_logs", description: "Get server audit logs", inputSchema: { type: "object", properties: { limit: { type: "number", description: "Number of entries to fetch (1-100, default: 50)", }, userId: { type: "string", description: "Filter by user who performed actions", }, actionType: { type: "string", enum: ["All", "GuildUpdate", "ChannelCreate", "ChannelUpdate", "ChannelDelete", "ChannelOverwriteCreate", "ChannelOverwriteUpdate", "ChannelOverwriteDelete", "MemberKick", "MemberPrune", "MemberBanAdd", "MemberBanRemove", "MemberUpdate", "MemberRoleUpdate", "MemberMove", "MemberDisconnect", "BotAdd", "RoleCreate", "RoleUpdate", "RoleDelete", "InviteCreate", "InviteUpdate", "InviteDelete", "WebhookCreate", "WebhookUpdate", "WebhookDelete", "EmojiCreate", "EmojiUpdate", "EmojiDelete", "MessageDelete", "MessageBulkDelete", "MessagePin", "MessageUnpin", "IntegrationCreate", "IntegrationUpdate", "IntegrationDelete"], description: "Filter by action type", }, }, } }; export const handler = async (args, services) => { const { limit = 50, userId, actionType } = args; const guild = await services.getGuild(); try { const auditLogs = await guild.fetchAuditLogs({ limit, user: userId, type: actionType, }); const logEntries = auditLogs.entries.map(entry => { const targetInfo = entry.target ? (typeof entry.target === 'object' && 'username' in entry.target) ? entry.target.username : entry.target.toString() : 'Unknown'; return `**${entry.action}** by ${entry.executor?.username} • Target: ${targetInfo} • Reason: ${entry.reason || 'No reason provided'} • Timestamp: ${entry.createdAt.toISOString()}`; }); return { content: [ { type: "text", text: `Audit Log Entries (${auditLogs.entries.size} shown): ${logEntries.join('\n\n---\n\n') || 'No audit log entries found'}`, }, ], }; } catch (error) { console.error(`[GetAuditLogs] Error getting audit logs:`, error); throw new Error(`Failed to get audit logs: ${error.message}`); } }; export { GetAuditLogsArgsSchema as schema } from "../../schemas/server.js"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF1ZGl0LWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvc2VydmVyL2dldC1hdWRpdC1sb2dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBUztJQUNsQyxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFdBQVcsRUFBRSx1QkFBdUI7SUFDcEMsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLGlEQUFpRDthQUMvRDtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsc0NBQXNDO2FBQ3BEO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7Z0JBQzFtQixXQUFXLEVBQUUsdUJBQXVCO2FBQ3JDO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQXNCLEVBQUUsUUFBMEIsRUFBRSxFQUFFO0lBQ2xGLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzNDLEtBQUs7WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxVQUFpQjtTQUN4QixDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9CLENBQUMsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxVQUFVLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3ZCLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDM0IsU0FBUyxDQUFDO1lBRVosT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLFNBQVMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRO1lBQ25ELFVBQVU7WUFDVixLQUFLLENBQUMsTUFBTSxJQUFJLG9CQUFvQjtlQUNqQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxzQkFBc0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJOztFQUUxRCxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLDRCQUE0QixFQUFFO2lCQUN6RDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyJ9