UNPKG

@chinchillaenterprises/mcp-discord

Version:

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

55 lines 4.46 kB
export const toolDefinition = { name: "discord_remove_account", description: "Remove a Discord account configuration", inputSchema: { type: "object", properties: { accountId: { type: "string", description: "Account ID to remove", }, }, required: ["accountId"], } }; export const handler = async (args, services) => { const { accountId } = args; const accountState = services.getAccountState(); const credentialManager = services.getCredentialManager(); const account = accountState.accounts.get(accountId); if (!account) { throw new Error(`Account '${accountId}' not found.`); } // Clean up client const client = accountState.clients.get(accountId); if (client) { client.destroy(); accountState.clients.delete(accountId); } // Remove from persistent storage try { await credentialManager.deleteAccount(accountId); } catch (error) { console.error(`[DiscordMCP] Failed to delete account from storage: ${error.message}`); } // Remove from in-memory state accountState.accounts.delete(accountId); // If this was the active account, switch to another one if (accountState.activeAccountId === accountId) { const remainingAccounts = Array.from(accountState.accounts.keys()); accountState.activeAccountId = remainingAccounts.length > 0 ? remainingAccounts[0] : null; } return { content: [ { type: "text", text: `Discord account '${account.name}' (${accountId}) has been removed.${accountState.activeAccountId ? `\n\nActive account is now: ${accountState.accounts.get(accountState.activeAccountId)?.name}` : "\n\nNo active account. Use 'discord_add_account' to add a new account."}`, }, ], }; }; export { RemoveAccountArgsSchema as schema } from "../../schemas/account.js"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvYWNjb3VudC9yZW1vdmUtYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVM7SUFDbEMsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixXQUFXLEVBQUUsd0NBQXdDO0lBQ3JELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSxzQkFBc0I7YUFDcEM7U0FDRjtRQUNELFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUN4QjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQXVCLEVBQUUsUUFBMEIsRUFBRSxFQUFFO0lBQ25GLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFFMUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLFNBQVMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1REFBdUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4Qyx3REFBd0Q7SUFDeEQsSUFBSSxZQUFZLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkUsWUFBWSxDQUFDLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVGLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLG9CQUFvQixPQUFPLENBQUMsSUFBSSxNQUFNLFNBQVMsc0JBQ25ELFlBQVksQ0FBQyxlQUFlO29CQUMxQixDQUFDLENBQUMsOEJBQThCLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUU7b0JBQy9GLENBQUMsQ0FBQyx3RUFDTixFQUFFO2FBQ0g7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsdUJBQXVCLElBQUksTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUMifQ==