@quadslab.io/discord-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +474 -0
  3. package/dist/discord-client.d.ts +57 -0
  4. package/dist/discord-client.js +188 -0
  5. package/dist/discord-client.js.map +1 -0
  6. package/dist/index.d.ts +9 -0
  7. package/dist/index.js +135 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/mcp-server.d.ts +15 -0
  10. package/dist/mcp-server.js +65 -0
  11. package/dist/mcp-server.js.map +1 -0
  12. package/dist/tools/automod.d.ts +6 -0
  13. package/dist/tools/automod.js +376 -0
  14. package/dist/tools/automod.js.map +1 -0
  15. package/dist/tools/channels.d.ts +6 -0
  16. package/dist/tools/channels.js +840 -0
  17. package/dist/tools/channels.js.map +1 -0
  18. package/dist/tools/emojis.d.ts +6 -0
  19. package/dist/tools/emojis.js +295 -0
  20. package/dist/tools/emojis.js.map +1 -0
  21. package/dist/tools/events.d.ts +6 -0
  22. package/dist/tools/events.js +304 -0
  23. package/dist/tools/events.js.map +1 -0
  24. package/dist/tools/forums.d.ts +6 -0
  25. package/dist/tools/forums.js +276 -0
  26. package/dist/tools/forums.js.map +1 -0
  27. package/dist/tools/guild.d.ts +6 -0
  28. package/dist/tools/guild.js +88 -0
  29. package/dist/tools/guild.js.map +1 -0
  30. package/dist/tools/index.d.ts +13 -0
  31. package/dist/tools/index.js +142 -0
  32. package/dist/tools/index.js.map +1 -0
  33. package/dist/tools/members.d.ts +6 -0
  34. package/dist/tools/members.js +628 -0
  35. package/dist/tools/members.js.map +1 -0
  36. package/dist/tools/messages.d.ts +6 -0
  37. package/dist/tools/messages.js +688 -0
  38. package/dist/tools/messages.js.map +1 -0
  39. package/dist/tools/reactions.d.ts +6 -0
  40. package/dist/tools/reactions.js +137 -0
  41. package/dist/tools/reactions.js.map +1 -0
  42. package/dist/tools/roles.d.ts +6 -0
  43. package/dist/tools/roles.js +469 -0
  44. package/dist/tools/roles.js.map +1 -0
  45. package/dist/tools/server.d.ts +6 -0
  46. package/dist/tools/server.js +607 -0
  47. package/dist/tools/server.js.map +1 -0
  48. package/dist/tools/stage.d.ts +6 -0
  49. package/dist/tools/stage.js +153 -0
  50. package/dist/tools/stage.js.map +1 -0
  51. package/dist/tools/threads.d.ts +6 -0
  52. package/dist/tools/threads.js +331 -0
  53. package/dist/tools/threads.js.map +1 -0
  54. package/dist/tools/utils.d.ts +21 -0
  55. package/dist/tools/utils.js +315 -0
  56. package/dist/tools/utils.js.map +1 -0
  57. package/dist/tools/webhooks.d.ts +6 -0
  58. package/dist/tools/webhooks.js +195 -0
  59. package/dist/tools/webhooks.js.map +1 -0
  60. package/package.json +48 -0
@@ -0,0 +1,88 @@
1
+ import { getClient, getGuild, getGuildId } from '../discord-client.js';
2
+ /**
3
+ * Guild information tools
4
+ */
5
+ export const guildTools = [
6
+ {
7
+ name: 'list_guilds',
8
+ description: 'List all Discord servers (guilds) the bot is a member of. Returns server names and IDs.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {},
12
+ required: [],
13
+ },
14
+ },
15
+ {
16
+ name: 'get_guild_info',
17
+ description: 'Get detailed information about the configured Discord server, including member count, channels, roles, and server settings.',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {},
21
+ required: [],
22
+ },
23
+ },
24
+ ];
25
+ export async function executeGuildTool(name, args) {
26
+ switch (name) {
27
+ case 'list_guilds':
28
+ return await listGuilds();
29
+ case 'get_guild_info':
30
+ return await getGuildInfo();
31
+ default:
32
+ throw new Error(`Unknown guild tool: ${name}`);
33
+ }
34
+ }
35
+ async function listGuilds() {
36
+ const client = getClient();
37
+ const guilds = client.guilds.cache;
38
+ const configuredGuildId = getGuildId();
39
+ const guildList = guilds.map(guild => ({
40
+ id: guild.id,
41
+ name: guild.name,
42
+ memberCount: guild.memberCount,
43
+ isConfigured: guild.id === configuredGuildId,
44
+ }));
45
+ return JSON.stringify({
46
+ totalGuilds: guildList.length,
47
+ configuredGuildId,
48
+ guilds: guildList,
49
+ }, null, 2);
50
+ }
51
+ async function getGuildInfo() {
52
+ const guild = await getGuild();
53
+ // Fetch additional guild data
54
+ await guild.members.fetch();
55
+ const info = {
56
+ id: guild.id,
57
+ name: guild.name,
58
+ description: guild.description,
59
+ icon: guild.iconURL(),
60
+ banner: guild.bannerURL(),
61
+ ownerId: guild.ownerId,
62
+ memberCount: guild.memberCount,
63
+ createdAt: guild.createdAt.toISOString(),
64
+ features: guild.features,
65
+ verificationLevel: guild.verificationLevel,
66
+ premiumTier: guild.premiumTier,
67
+ premiumSubscriptionCount: guild.premiumSubscriptionCount,
68
+ channels: {
69
+ total: guild.channels.cache.size,
70
+ text: guild.channels.cache.filter(c => c.isTextBased() && !c.isVoiceBased()).size,
71
+ voice: guild.channels.cache.filter(c => c.isVoiceBased()).size,
72
+ categories: guild.channels.cache.filter(c => c.type === 4).size,
73
+ },
74
+ roles: {
75
+ total: guild.roles.cache.size,
76
+ list: guild.roles.cache
77
+ .sort((a, b) => b.position - a.position)
78
+ .map(r => ({ id: r.id, name: r.name, color: r.hexColor, position: r.position })),
79
+ },
80
+ emojis: {
81
+ total: guild.emojis.cache.size,
82
+ static: guild.emojis.cache.filter(e => !e.animated).size,
83
+ animated: guild.emojis.cache.filter(e => e.animated === true).size,
84
+ },
85
+ };
86
+ return JSON.stringify(info, null, 2);
87
+ }
88
+ //# sourceMappingURL=guild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guild.js","sourceRoot":"","sources":["../../src/tools/guild.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;GAEG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,yFAAyF;QACtG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,6HAA6H;QAC1I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAA6B;IAChF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,OAAO,MAAM,UAAU,EAAE,CAAC;QAC5B,KAAK,gBAAgB;YACnB,OAAO,MAAM,YAAY,EAAE,CAAC;QAC9B;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,iBAAiB,GAAG,UAAU,EAAE,CAAC;IAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,EAAE,KAAK,iBAAiB;KAC7C,CAAC,CAAC,CAAC;IAEJ,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,WAAW,EAAE,SAAS,CAAC,MAAM;QAC7B,iBAAiB;QACjB,MAAM,EAAE,SAAS;KAClB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAE/B,8BAA8B;IAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;QACrB,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;QACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QACxD,QAAQ,EAAE;YACR,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;YAChC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI;YACjF,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI;YAC9D,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI;SAChE;QACD,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAC7B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;iBACpB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SACnF;QACD,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI;YACxD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,IAAI;SACnE;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ /**
3
+ * All available MCP tools for Discord server management
4
+ */
5
+ export declare const allTools: Tool[];
6
+ /**
7
+ * Execute a tool by name with the given arguments
8
+ */
9
+ export declare function executeTool(name: string, args: Record<string, unknown>): Promise<string>;
10
+ /**
11
+ * Get a tool definition by name
12
+ */
13
+ export declare function getTool(name: string): Tool | undefined;
@@ -0,0 +1,142 @@
1
+ // Import all tool definitions
2
+ import { guildTools, executeGuildTool } from './guild.js';
3
+ import { roleTools, executeRoleTool } from './roles.js';
4
+ import { channelTools, executeChannelTool } from './channels.js';
5
+ import { memberTools, executeMemberTool } from './members.js';
6
+ import { messageTools, executeMessageTool } from './messages.js';
7
+ import { reactionTools, executeReactionTool } from './reactions.js';
8
+ import { serverTools, executeServerTool } from './server.js';
9
+ import { threadTools, executeThreadTool } from './threads.js';
10
+ import { emojiTools, executeEmojiTool } from './emojis.js';
11
+ import { automodTools, executeAutomodTool } from './automod.js';
12
+ import { eventTools, executeEventTool } from './events.js';
13
+ import { webhookTools, executeWebhookTool } from './webhooks.js';
14
+ import { forumTools, executeForumTool } from './forums.js';
15
+ import { stageTools, executeStageTool } from './stage.js';
16
+ /**
17
+ * All available MCP tools for Discord server management
18
+ */
19
+ export const allTools = [
20
+ ...guildTools,
21
+ ...roleTools,
22
+ ...channelTools,
23
+ ...memberTools,
24
+ ...messageTools,
25
+ ...reactionTools,
26
+ ...serverTools,
27
+ ...threadTools,
28
+ ...emojiTools,
29
+ ...automodTools,
30
+ ...eventTools,
31
+ ...webhookTools,
32
+ ...forumTools,
33
+ ...stageTools,
34
+ ];
35
+ /**
36
+ * Tool name to category mapping for routing
37
+ */
38
+ const toolCategories = {};
39
+ // Map guild tools
40
+ for (const tool of guildTools) {
41
+ toolCategories[tool.name] = 'guild';
42
+ }
43
+ // Map role tools
44
+ for (const tool of roleTools) {
45
+ toolCategories[tool.name] = 'role';
46
+ }
47
+ // Map channel tools
48
+ for (const tool of channelTools) {
49
+ toolCategories[tool.name] = 'channel';
50
+ }
51
+ // Map member tools
52
+ for (const tool of memberTools) {
53
+ toolCategories[tool.name] = 'member';
54
+ }
55
+ // Map message tools
56
+ for (const tool of messageTools) {
57
+ toolCategories[tool.name] = 'message';
58
+ }
59
+ // Map reaction tools
60
+ for (const tool of reactionTools) {
61
+ toolCategories[tool.name] = 'reaction';
62
+ }
63
+ // Map server tools
64
+ for (const tool of serverTools) {
65
+ toolCategories[tool.name] = 'server';
66
+ }
67
+ // Map thread tools
68
+ for (const tool of threadTools) {
69
+ toolCategories[tool.name] = 'thread';
70
+ }
71
+ // Map emoji tools
72
+ for (const tool of emojiTools) {
73
+ toolCategories[tool.name] = 'emoji';
74
+ }
75
+ // Map automod tools
76
+ for (const tool of automodTools) {
77
+ toolCategories[tool.name] = 'automod';
78
+ }
79
+ // Map event tools
80
+ for (const tool of eventTools) {
81
+ toolCategories[tool.name] = 'event';
82
+ }
83
+ // Map webhook tools
84
+ for (const tool of webhookTools) {
85
+ toolCategories[tool.name] = 'webhook';
86
+ }
87
+ // Map forum tools
88
+ for (const tool of forumTools) {
89
+ toolCategories[tool.name] = 'forum';
90
+ }
91
+ // Map stage tools
92
+ for (const tool of stageTools) {
93
+ toolCategories[tool.name] = 'stage';
94
+ }
95
+ /**
96
+ * Execute a tool by name with the given arguments
97
+ */
98
+ export async function executeTool(name, args) {
99
+ const category = toolCategories[name];
100
+ if (!category) {
101
+ throw new Error(`Unknown tool: ${name}`);
102
+ }
103
+ switch (category) {
104
+ case 'guild':
105
+ return executeGuildTool(name, args);
106
+ case 'role':
107
+ return executeRoleTool(name, args);
108
+ case 'channel':
109
+ return executeChannelTool(name, args);
110
+ case 'member':
111
+ return executeMemberTool(name, args);
112
+ case 'message':
113
+ return executeMessageTool(name, args);
114
+ case 'reaction':
115
+ return executeReactionTool(name, args);
116
+ case 'server':
117
+ return executeServerTool(name, args);
118
+ case 'thread':
119
+ return executeThreadTool(name, args);
120
+ case 'emoji':
121
+ return executeEmojiTool(name, args);
122
+ case 'automod':
123
+ return executeAutomodTool(name, args);
124
+ case 'event':
125
+ return executeEventTool(name, args);
126
+ case 'webhook':
127
+ return executeWebhookTool(name, args);
128
+ case 'forum':
129
+ return executeForumTool(name, args);
130
+ case 'stage':
131
+ return executeStageTool(name, args);
132
+ default:
133
+ throw new Error(`Unknown tool category: ${category}`);
134
+ }
135
+ }
136
+ /**
137
+ * Get a tool definition by name
138
+ */
139
+ export function getTool(name) {
140
+ return allTools.find(t => t.name === name);
141
+ }
142
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ /**
3
+ * Member management tools
4
+ */
5
+ export declare const memberTools: Tool[];
6
+ export declare function executeMemberTool(name: string, args: Record<string, unknown>): Promise<string>;