@chinchillaenterprises/mcp-discord
Version:
Modular Discord MCP server with 45+ tools for comprehensive server management, featuring clean architecture and discord_ prefixed tools
46 lines • 3.51 kB
JavaScript
export const toolDefinition = {
name: "discord_switch_account",
description: "Switch to a different Discord account",
inputSchema: {
type: "object",
properties: {
accountId: {
type: "string",
description: "Account ID to switch to",
},
},
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. Use 'discord_list_accounts' to see available accounts.`);
}
// Check if client exists, if not initialize it
if (!accountState.clients.has(accountId)) {
const client = await services.initializeClient(account);
accountState.clients.set(accountId, client);
}
accountState.activeAccountId = accountId;
// Update last used timestamp
try {
await credentialManager.updateAccount(account);
}
catch (error) {
console.error('[DiscordMCP] Failed to update account last used timestamp:', error);
}
return {
content: [
{
type: "text",
text: `Switched to Discord account: ${account.name} (${account.id})\nGuild: ${account.guildName || 'Unknown'}`,
},
],
};
};
export { SwitchAccountArgsSchema as schema } from "../../schemas/account.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvYWNjb3VudC9zd2l0Y2gtYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVM7SUFDbEMsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixXQUFXLEVBQUUsdUNBQXVDO0lBQ3BELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSx5QkFBeUI7YUFDdkM7U0FDRjtRQUNELFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUN4QjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQXVCLEVBQUUsUUFBMEIsRUFBRSxFQUFFO0lBQ25GLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFFMUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLFNBQVMscUVBQXFFLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsWUFBWSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7SUFFekMsNkJBQTZCO0lBQzdCLElBQUksQ0FBQztRQUNILE1BQU0saUJBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw0REFBNEQsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRTtZQUNQO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxnQ0FBZ0MsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsRUFBRSxhQUFhLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO2FBQy9HO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLHVCQUF1QixJQUFJLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDIn0=