@chinchillaenterprises/mcp-discord
Version:
Modular Discord MCP server with 45+ tools for comprehensive server management, featuring clean architecture and discord_ prefixed tools
40 lines (39 loc) • 3.19 kB
JavaScript
export const toolDefinition = {
name: "discord_get_invites",
description: "Get all active invites for the server",
inputSchema: {
type: "object",
properties: {},
}
};
export const handler = async (_args, services) => {
const guild = await services.getGuild();
try {
const invites = await guild.invites.fetch();
const inviteList = invites.map(invite => {
const expiresAt = invite.maxAge === 0 ? 'Never' :
new Date(invite.createdTimestamp + (invite.maxAge || 0) * 1000).toISOString();
return `**${invite.code}** - ${invite.url}
• Channel: ${invite.channel?.name}
• Created by: ${invite.inviter?.username}
• Uses: ${invite.uses}/${invite.maxUses === 0 ? '∞' : invite.maxUses}
• Expires: ${expiresAt}`;
});
return {
content: [
{
type: "text",
text: `Server Invites (${invites.size} total):
${inviteList.join('\n\n---\n\n') || 'No active invites'}`,
},
],
};
}
catch (error) {
console.error(`[GetInvites] Error getting invites:`, error);
throw new Error(`Failed to get invites: ${error.message}`);
}
};
// No schema needed for this tool
export const schema = null;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWludml0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvc2VydmVyL2dldC1pbnZpdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBUztJQUNsQyxJQUFJLEVBQUUscUJBQXFCO0lBQzNCLFdBQVcsRUFBRSx1Q0FBdUM7SUFDcEQsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUUsRUFBRTtLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBYyxFQUFFLFFBQTBCLEVBQUUsRUFBRTtJQUMxRSxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFNUMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9DLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBaUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFakYsT0FBTyxLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsTUFBTSxDQUFDLEdBQUc7YUFDbEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJO2dCQUNqQixNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVE7VUFDOUIsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTzthQUN2RCxTQUFTLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLG1CQUFtQixPQUFPLENBQUMsSUFBSTs7RUFFN0MsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxtQkFBbUIsRUFBRTtpQkFDaEQ7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyJ9