@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.
- package/LICENSE +21 -0
- package/README.md +474 -0
- package/dist/discord-client.d.ts +57 -0
- package/dist/discord-client.js +188 -0
- package/dist/discord-client.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +135 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.d.ts +15 -0
- package/dist/mcp-server.js +65 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/tools/automod.d.ts +6 -0
- package/dist/tools/automod.js +376 -0
- package/dist/tools/automod.js.map +1 -0
- package/dist/tools/channels.d.ts +6 -0
- package/dist/tools/channels.js +840 -0
- package/dist/tools/channels.js.map +1 -0
- package/dist/tools/emojis.d.ts +6 -0
- package/dist/tools/emojis.js +295 -0
- package/dist/tools/emojis.js.map +1 -0
- package/dist/tools/events.d.ts +6 -0
- package/dist/tools/events.js +304 -0
- package/dist/tools/events.js.map +1 -0
- package/dist/tools/forums.d.ts +6 -0
- package/dist/tools/forums.js +276 -0
- package/dist/tools/forums.js.map +1 -0
- package/dist/tools/guild.d.ts +6 -0
- package/dist/tools/guild.js +88 -0
- package/dist/tools/guild.js.map +1 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.js +142 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/members.d.ts +6 -0
- package/dist/tools/members.js +628 -0
- package/dist/tools/members.js.map +1 -0
- package/dist/tools/messages.d.ts +6 -0
- package/dist/tools/messages.js +688 -0
- package/dist/tools/messages.js.map +1 -0
- package/dist/tools/reactions.d.ts +6 -0
- package/dist/tools/reactions.js +137 -0
- package/dist/tools/reactions.js.map +1 -0
- package/dist/tools/roles.d.ts +6 -0
- package/dist/tools/roles.js +469 -0
- package/dist/tools/roles.js.map +1 -0
- package/dist/tools/server.d.ts +6 -0
- package/dist/tools/server.js +607 -0
- package/dist/tools/server.js.map +1 -0
- package/dist/tools/stage.d.ts +6 -0
- package/dist/tools/stage.js +153 -0
- package/dist/tools/stage.js.map +1 -0
- package/dist/tools/threads.d.ts +6 -0
- package/dist/tools/threads.js +331 -0
- package/dist/tools/threads.js.map +1 -0
- package/dist/tools/utils.d.ts +21 -0
- package/dist/tools/utils.js +315 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/webhooks.d.ts +6 -0
- package/dist/tools/webhooks.js +195 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/tools/roles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,607 @@
|
|
|
1
|
+
import { getGuild } from '../discord-client.js';
|
|
2
|
+
import { smartFindChannel } from './utils.js';
|
|
3
|
+
import { AuditLogEvent, GuildVerificationLevel, GuildDefaultMessageNotifications } from 'discord.js';
|
|
4
|
+
/**
|
|
5
|
+
* Server administration tools
|
|
6
|
+
*/
|
|
7
|
+
export const serverTools = [
|
|
8
|
+
{
|
|
9
|
+
name: 'edit_server',
|
|
10
|
+
description: 'Modify server settings such as name, description, verification level, and default notification settings.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
name: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'New name for the server',
|
|
17
|
+
},
|
|
18
|
+
description: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'New description for the server',
|
|
21
|
+
},
|
|
22
|
+
verificationLevel: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'Verification level for the server',
|
|
25
|
+
enum: ['none', 'low', 'medium', 'high', 'very_high'],
|
|
26
|
+
},
|
|
27
|
+
defaultNotifications: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
description: 'Default notification setting for new members',
|
|
30
|
+
enum: ['all', 'mentions'],
|
|
31
|
+
},
|
|
32
|
+
reason: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'The reason for editing the server (shown in audit log)',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
required: [],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'list_invites',
|
|
42
|
+
description: 'List all active invite links for the Discord server, including usage stats and expiration info.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {},
|
|
46
|
+
required: [],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'create_invite',
|
|
51
|
+
description: 'Generate a new invite link for a specific channel. Channel name is fuzzy-matched.',
|
|
52
|
+
inputSchema: {
|
|
53
|
+
type: 'object',
|
|
54
|
+
properties: {
|
|
55
|
+
channel: {
|
|
56
|
+
type: 'string',
|
|
57
|
+
description: 'The channel name or ID to create the invite for (fuzzy matched)',
|
|
58
|
+
},
|
|
59
|
+
maxAge: {
|
|
60
|
+
type: 'number',
|
|
61
|
+
description: 'Maximum age of the invite in seconds (0 = never expires, default: 86400)',
|
|
62
|
+
},
|
|
63
|
+
maxUses: {
|
|
64
|
+
type: 'number',
|
|
65
|
+
description: 'Maximum number of uses (0 = unlimited, default: 0)',
|
|
66
|
+
},
|
|
67
|
+
temporary: {
|
|
68
|
+
type: 'boolean',
|
|
69
|
+
description: 'Whether the invite grants temporary membership (default: false)',
|
|
70
|
+
},
|
|
71
|
+
reason: {
|
|
72
|
+
type: 'string',
|
|
73
|
+
description: 'The reason for creating this invite (shown in audit log)',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
required: ['channel'],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'delete_invite',
|
|
81
|
+
description: 'Revoke an active invite link by its invite code.',
|
|
82
|
+
inputSchema: {
|
|
83
|
+
type: 'object',
|
|
84
|
+
properties: {
|
|
85
|
+
code: {
|
|
86
|
+
type: 'string',
|
|
87
|
+
description: 'The invite code to revoke',
|
|
88
|
+
},
|
|
89
|
+
reason: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'The reason for deleting this invite (shown in audit log)',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
required: ['code'],
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'get_audit_log',
|
|
99
|
+
description: 'Fetch recent audit log entries for the server. Optionally filter by action type or user.',
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: 'object',
|
|
102
|
+
properties: {
|
|
103
|
+
limit: {
|
|
104
|
+
type: 'number',
|
|
105
|
+
description: 'Number of entries to fetch (default: 25, max: 100)',
|
|
106
|
+
},
|
|
107
|
+
actionType: {
|
|
108
|
+
type: 'string',
|
|
109
|
+
description: 'Filter by action type (e.g., "MemberKick", "MemberBan", "ChannelCreate", "MessageDelete")',
|
|
110
|
+
},
|
|
111
|
+
userId: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
description: 'Filter by the user ID who performed the action',
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
required: [],
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: 'list_bans',
|
|
121
|
+
description: 'View all banned users in the server along with their ban reasons.',
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: 'object',
|
|
124
|
+
properties: {},
|
|
125
|
+
required: [],
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'get_welcome_screen',
|
|
130
|
+
description: 'Get the server welcome screen configuration including description and channels.',
|
|
131
|
+
inputSchema: {
|
|
132
|
+
type: 'object',
|
|
133
|
+
properties: {},
|
|
134
|
+
required: [],
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: 'set_welcome_screen',
|
|
139
|
+
description: 'Configure the server welcome screen with a description and featured channels.',
|
|
140
|
+
inputSchema: {
|
|
141
|
+
type: 'object',
|
|
142
|
+
properties: {
|
|
143
|
+
enabled: {
|
|
144
|
+
type: 'boolean',
|
|
145
|
+
description: 'Whether the welcome screen is enabled',
|
|
146
|
+
},
|
|
147
|
+
description: {
|
|
148
|
+
type: 'string',
|
|
149
|
+
description: 'The welcome screen description',
|
|
150
|
+
},
|
|
151
|
+
channels: {
|
|
152
|
+
type: 'array',
|
|
153
|
+
description: 'Array of welcome channels with channel name, description, and optional emoji',
|
|
154
|
+
items: {
|
|
155
|
+
type: 'object',
|
|
156
|
+
properties: {
|
|
157
|
+
channel: { type: 'string', description: 'Channel name or ID (fuzzy matched)' },
|
|
158
|
+
description: { type: 'string', description: 'Description for this welcome channel' },
|
|
159
|
+
emoji: { type: 'string', description: 'Unicode emoji for this channel (optional)' },
|
|
160
|
+
},
|
|
161
|
+
required: ['channel', 'description'],
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
required: [],
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: 'get_widget',
|
|
170
|
+
description: 'Get the server widget settings including whether it is enabled and which channel it uses.',
|
|
171
|
+
inputSchema: {
|
|
172
|
+
type: 'object',
|
|
173
|
+
properties: {},
|
|
174
|
+
required: [],
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
name: 'set_widget',
|
|
179
|
+
description: 'Configure the server widget settings.',
|
|
180
|
+
inputSchema: {
|
|
181
|
+
type: 'object',
|
|
182
|
+
properties: {
|
|
183
|
+
enabled: {
|
|
184
|
+
type: 'boolean',
|
|
185
|
+
description: 'Whether the widget is enabled',
|
|
186
|
+
},
|
|
187
|
+
channel: {
|
|
188
|
+
type: 'string',
|
|
189
|
+
description: 'The channel name or ID for the widget invite (fuzzy matched)',
|
|
190
|
+
},
|
|
191
|
+
reason: {
|
|
192
|
+
type: 'string',
|
|
193
|
+
description: 'The reason for changing widget settings (shown in audit log)',
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
required: [],
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: 'get_vanity_url',
|
|
201
|
+
description: 'Get the server vanity URL if the server has the VANITY_URL feature.',
|
|
202
|
+
inputSchema: {
|
|
203
|
+
type: 'object',
|
|
204
|
+
properties: {},
|
|
205
|
+
required: [],
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: 'list_integrations',
|
|
210
|
+
description: 'List all integrations (bots, apps) connected to the server.',
|
|
211
|
+
inputSchema: {
|
|
212
|
+
type: 'object',
|
|
213
|
+
properties: {},
|
|
214
|
+
required: [],
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: 'delete_integration',
|
|
219
|
+
description: 'Remove an integration from the server by its ID.',
|
|
220
|
+
inputSchema: {
|
|
221
|
+
type: 'object',
|
|
222
|
+
properties: {
|
|
223
|
+
integrationId: {
|
|
224
|
+
type: 'string',
|
|
225
|
+
description: 'The ID of the integration to remove',
|
|
226
|
+
},
|
|
227
|
+
reason: {
|
|
228
|
+
type: 'string',
|
|
229
|
+
description: 'The reason for removing the integration (shown in audit log)',
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
required: ['integrationId'],
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
];
|
|
236
|
+
export async function executeServerTool(name, args) {
|
|
237
|
+
switch (name) {
|
|
238
|
+
case 'edit_server':
|
|
239
|
+
return await editServer(args);
|
|
240
|
+
case 'list_invites':
|
|
241
|
+
return await listInvites();
|
|
242
|
+
case 'create_invite':
|
|
243
|
+
return await createInvite(args);
|
|
244
|
+
case 'delete_invite':
|
|
245
|
+
return await deleteInvite(args);
|
|
246
|
+
case 'get_audit_log':
|
|
247
|
+
return await getAuditLog(args);
|
|
248
|
+
case 'list_bans':
|
|
249
|
+
return await listBans();
|
|
250
|
+
case 'get_welcome_screen':
|
|
251
|
+
return await getWelcomeScreen();
|
|
252
|
+
case 'set_welcome_screen':
|
|
253
|
+
return await setWelcomeScreen(args);
|
|
254
|
+
case 'get_widget':
|
|
255
|
+
return await getWidget();
|
|
256
|
+
case 'set_widget':
|
|
257
|
+
return await setWidget(args);
|
|
258
|
+
case 'get_vanity_url':
|
|
259
|
+
return await getVanityUrl();
|
|
260
|
+
case 'list_integrations':
|
|
261
|
+
return await listIntegrations();
|
|
262
|
+
case 'delete_integration':
|
|
263
|
+
return await deleteIntegration(args);
|
|
264
|
+
default:
|
|
265
|
+
throw new Error(`Unknown server tool: ${name}`);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async function editServer(args) {
|
|
269
|
+
const guild = await getGuild();
|
|
270
|
+
const reason = args['reason'];
|
|
271
|
+
const updates = {};
|
|
272
|
+
if (args['name'] !== undefined) {
|
|
273
|
+
updates['name'] = args['name'];
|
|
274
|
+
}
|
|
275
|
+
if (args['description'] !== undefined) {
|
|
276
|
+
updates['description'] = args['description'];
|
|
277
|
+
}
|
|
278
|
+
if (args['verificationLevel'] !== undefined) {
|
|
279
|
+
const verificationMap = {
|
|
280
|
+
'none': GuildVerificationLevel.None,
|
|
281
|
+
'low': GuildVerificationLevel.Low,
|
|
282
|
+
'medium': GuildVerificationLevel.Medium,
|
|
283
|
+
'high': GuildVerificationLevel.High,
|
|
284
|
+
'very_high': GuildVerificationLevel.VeryHigh,
|
|
285
|
+
};
|
|
286
|
+
const level = verificationMap[args['verificationLevel']];
|
|
287
|
+
if (level === undefined) {
|
|
288
|
+
throw new Error(`Invalid verification level "${args['verificationLevel']}". Must be one of: none, low, medium, high, very_high`);
|
|
289
|
+
}
|
|
290
|
+
updates['verificationLevel'] = level;
|
|
291
|
+
}
|
|
292
|
+
if (args['defaultNotifications'] !== undefined) {
|
|
293
|
+
const notificationMap = {
|
|
294
|
+
'all': GuildDefaultMessageNotifications.AllMessages,
|
|
295
|
+
'mentions': GuildDefaultMessageNotifications.OnlyMentions,
|
|
296
|
+
};
|
|
297
|
+
const setting = notificationMap[args['defaultNotifications']];
|
|
298
|
+
if (setting === undefined) {
|
|
299
|
+
throw new Error(`Invalid default notifications "${args['defaultNotifications']}". Must be one of: all, mentions`);
|
|
300
|
+
}
|
|
301
|
+
updates['defaultMessageNotifications'] = setting;
|
|
302
|
+
}
|
|
303
|
+
if (Object.keys(updates).length === 0) {
|
|
304
|
+
throw new Error('No settings provided to update. Specify at least one of: name, description, verificationLevel, defaultNotifications');
|
|
305
|
+
}
|
|
306
|
+
await guild.edit({
|
|
307
|
+
...updates,
|
|
308
|
+
reason: reason ?? 'Edited via MCP',
|
|
309
|
+
});
|
|
310
|
+
return JSON.stringify({
|
|
311
|
+
success: true,
|
|
312
|
+
message: `Server settings updated successfully`,
|
|
313
|
+
updated: Object.keys(updates),
|
|
314
|
+
}, null, 2);
|
|
315
|
+
}
|
|
316
|
+
async function listInvites() {
|
|
317
|
+
const guild = await getGuild();
|
|
318
|
+
const invites = await guild.invites.fetch();
|
|
319
|
+
const inviteList = invites.map(invite => ({
|
|
320
|
+
code: invite.code,
|
|
321
|
+
url: `https://discord.gg/${invite.code}`,
|
|
322
|
+
channel: {
|
|
323
|
+
id: invite.channel?.id ?? null,
|
|
324
|
+
name: invite.channel && 'name' in invite.channel ? invite.channel.name : null,
|
|
325
|
+
},
|
|
326
|
+
inviter: invite.inviter ? {
|
|
327
|
+
id: invite.inviter.id,
|
|
328
|
+
username: invite.inviter.username,
|
|
329
|
+
} : null,
|
|
330
|
+
uses: invite.uses,
|
|
331
|
+
maxUses: invite.maxUses,
|
|
332
|
+
maxAge: invite.maxAge,
|
|
333
|
+
temporary: invite.temporary,
|
|
334
|
+
expiresAt: invite.expiresAt?.toISOString() ?? null,
|
|
335
|
+
createdAt: invite.createdAt?.toISOString() ?? null,
|
|
336
|
+
}));
|
|
337
|
+
return JSON.stringify({
|
|
338
|
+
totalInvites: inviteList.length,
|
|
339
|
+
invites: inviteList,
|
|
340
|
+
}, null, 2);
|
|
341
|
+
}
|
|
342
|
+
async function createInvite(args) {
|
|
343
|
+
const channelIdentifier = args['channel'];
|
|
344
|
+
const maxAge = args['maxAge'];
|
|
345
|
+
const maxUses = args['maxUses'];
|
|
346
|
+
const temporary = args['temporary'];
|
|
347
|
+
const reason = args['reason'];
|
|
348
|
+
const channel = await smartFindChannel(channelIdentifier);
|
|
349
|
+
if (!('createInvite' in channel)) {
|
|
350
|
+
throw new Error(`Cannot create invite for channel "${channel.name}" — unsupported channel type`);
|
|
351
|
+
}
|
|
352
|
+
const invite = await channel.createInvite({
|
|
353
|
+
maxAge: maxAge ?? 86400,
|
|
354
|
+
maxUses: maxUses ?? 0,
|
|
355
|
+
temporary: temporary ?? false,
|
|
356
|
+
reason: reason ?? 'Created via MCP',
|
|
357
|
+
});
|
|
358
|
+
return JSON.stringify({
|
|
359
|
+
success: true,
|
|
360
|
+
message: `Invite created successfully`,
|
|
361
|
+
invite: {
|
|
362
|
+
code: invite.code,
|
|
363
|
+
url: `https://discord.gg/${invite.code}`,
|
|
364
|
+
channel: {
|
|
365
|
+
id: channel.id,
|
|
366
|
+
name: channel.name,
|
|
367
|
+
},
|
|
368
|
+
maxAge: invite.maxAge,
|
|
369
|
+
maxUses: invite.maxUses,
|
|
370
|
+
temporary: invite.temporary,
|
|
371
|
+
expiresAt: invite.expiresAt?.toISOString() ?? null,
|
|
372
|
+
},
|
|
373
|
+
}, null, 2);
|
|
374
|
+
}
|
|
375
|
+
async function deleteInvite(args) {
|
|
376
|
+
const guild = await getGuild();
|
|
377
|
+
const code = args['code'];
|
|
378
|
+
const reason = args['reason'];
|
|
379
|
+
const invites = await guild.invites.fetch();
|
|
380
|
+
const invite = invites.find(i => i.code === code);
|
|
381
|
+
if (!invite) {
|
|
382
|
+
throw new Error(`Invite with code "${code}" not found`);
|
|
383
|
+
}
|
|
384
|
+
await invite.delete(reason ?? 'Deleted via MCP');
|
|
385
|
+
return JSON.stringify({
|
|
386
|
+
success: true,
|
|
387
|
+
message: `Invite "${code}" has been revoked`,
|
|
388
|
+
}, null, 2);
|
|
389
|
+
}
|
|
390
|
+
async function getAuditLog(args) {
|
|
391
|
+
const guild = await getGuild();
|
|
392
|
+
const limit = Math.min(args['limit'] || 25, 100);
|
|
393
|
+
const actionType = args['actionType'];
|
|
394
|
+
const userId = args['userId'];
|
|
395
|
+
const fetchOptions = { limit };
|
|
396
|
+
if (actionType) {
|
|
397
|
+
const eventType = AuditLogEvent[actionType];
|
|
398
|
+
if (eventType === undefined) {
|
|
399
|
+
throw new Error(`Invalid action type "${actionType}". Examples: MemberKick, MemberBanAdd, ChannelCreate, MessageDelete`);
|
|
400
|
+
}
|
|
401
|
+
fetchOptions.type = eventType;
|
|
402
|
+
}
|
|
403
|
+
if (userId) {
|
|
404
|
+
fetchOptions.user = userId;
|
|
405
|
+
}
|
|
406
|
+
const auditLogs = await guild.fetchAuditLogs(fetchOptions);
|
|
407
|
+
const entries = auditLogs.entries.map(entry => ({
|
|
408
|
+
actionType: AuditLogEvent[entry.action] ?? String(entry.action),
|
|
409
|
+
executor: entry.executor ? {
|
|
410
|
+
id: entry.executor.id,
|
|
411
|
+
username: entry.executor.username,
|
|
412
|
+
} : null,
|
|
413
|
+
target: entry.target ? {
|
|
414
|
+
id: 'id' in entry.target ? entry.target.id : null,
|
|
415
|
+
type: entry.targetType,
|
|
416
|
+
} : null,
|
|
417
|
+
reason: entry.reason ?? null,
|
|
418
|
+
changes: entry.changes.length > 0 ? entry.changes.map(c => ({
|
|
419
|
+
key: c.key,
|
|
420
|
+
old: c.old ?? null,
|
|
421
|
+
new: c.new ?? null,
|
|
422
|
+
})) : null,
|
|
423
|
+
createdAt: entry.createdAt.toISOString(),
|
|
424
|
+
}));
|
|
425
|
+
return JSON.stringify({
|
|
426
|
+
totalEntries: entries.length,
|
|
427
|
+
entries,
|
|
428
|
+
}, null, 2);
|
|
429
|
+
}
|
|
430
|
+
async function listBans() {
|
|
431
|
+
const guild = await getGuild();
|
|
432
|
+
const bans = await guild.bans.fetch();
|
|
433
|
+
const banList = bans.map(ban => ({
|
|
434
|
+
user: {
|
|
435
|
+
id: ban.user.id,
|
|
436
|
+
username: ban.user.username,
|
|
437
|
+
},
|
|
438
|
+
reason: ban.reason ?? null,
|
|
439
|
+
}));
|
|
440
|
+
return JSON.stringify({
|
|
441
|
+
totalBans: banList.length,
|
|
442
|
+
bans: banList,
|
|
443
|
+
}, null, 2);
|
|
444
|
+
}
|
|
445
|
+
async function getWelcomeScreen() {
|
|
446
|
+
const guild = await getGuild();
|
|
447
|
+
try {
|
|
448
|
+
const welcomeScreen = await guild.fetchWelcomeScreen();
|
|
449
|
+
return JSON.stringify({
|
|
450
|
+
enabled: welcomeScreen.enabled,
|
|
451
|
+
description: welcomeScreen.description,
|
|
452
|
+
channels: welcomeScreen.welcomeChannels.map(ch => ({
|
|
453
|
+
channelId: ch.channelId,
|
|
454
|
+
channelName: guild.channels.cache.get(ch.channelId)?.name ?? null,
|
|
455
|
+
description: ch.description,
|
|
456
|
+
emoji: ch.emoji ? { name: ch.emoji.name, id: ch.emoji.id } : null,
|
|
457
|
+
})),
|
|
458
|
+
}, null, 2);
|
|
459
|
+
}
|
|
460
|
+
catch {
|
|
461
|
+
return JSON.stringify({
|
|
462
|
+
enabled: false,
|
|
463
|
+
description: null,
|
|
464
|
+
channels: [],
|
|
465
|
+
note: 'Welcome screen is not configured or server does not have the WELCOME_SCREEN_ENABLED feature.',
|
|
466
|
+
}, null, 2);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
async function setWelcomeScreen(args) {
|
|
470
|
+
const guild = await getGuild();
|
|
471
|
+
const enabled = args['enabled'];
|
|
472
|
+
const description = args['description'];
|
|
473
|
+
const channelsInput = args['channels'];
|
|
474
|
+
const updates = {};
|
|
475
|
+
if (enabled !== undefined)
|
|
476
|
+
updates['enabled'] = enabled;
|
|
477
|
+
if (description !== undefined)
|
|
478
|
+
updates['description'] = description;
|
|
479
|
+
if (channelsInput && channelsInput.length > 0) {
|
|
480
|
+
const welcomeChannels = [];
|
|
481
|
+
for (const ch of channelsInput) {
|
|
482
|
+
const channel = await smartFindChannel(ch.channel);
|
|
483
|
+
welcomeChannels.push({
|
|
484
|
+
channel: channel.id,
|
|
485
|
+
description: ch.description,
|
|
486
|
+
emoji: ch.emoji ? { name: ch.emoji } : undefined,
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
updates['welcomeChannels'] = welcomeChannels;
|
|
490
|
+
}
|
|
491
|
+
await guild.editWelcomeScreen(updates);
|
|
492
|
+
return JSON.stringify({
|
|
493
|
+
success: true,
|
|
494
|
+
message: 'Welcome screen updated successfully',
|
|
495
|
+
updated: Object.keys(updates),
|
|
496
|
+
}, null, 2);
|
|
497
|
+
}
|
|
498
|
+
async function getWidget() {
|
|
499
|
+
const guild = await getGuild();
|
|
500
|
+
try {
|
|
501
|
+
const widgetSettings = await guild.fetchWidgetSettings();
|
|
502
|
+
return JSON.stringify({
|
|
503
|
+
enabled: widgetSettings.enabled,
|
|
504
|
+
channel: widgetSettings.channel ? {
|
|
505
|
+
id: widgetSettings.channel.id,
|
|
506
|
+
name: widgetSettings.channel.name,
|
|
507
|
+
} : null,
|
|
508
|
+
}, null, 2);
|
|
509
|
+
}
|
|
510
|
+
catch {
|
|
511
|
+
return JSON.stringify({
|
|
512
|
+
enabled: false,
|
|
513
|
+
channel: null,
|
|
514
|
+
note: 'Widget settings could not be fetched.',
|
|
515
|
+
}, null, 2);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
async function setWidget(args) {
|
|
519
|
+
const guild = await getGuild();
|
|
520
|
+
const enabled = args['enabled'];
|
|
521
|
+
const channelIdentifier = args['channel'];
|
|
522
|
+
const reason = args['reason'];
|
|
523
|
+
const updates = {};
|
|
524
|
+
if (enabled !== undefined)
|
|
525
|
+
updates['enabled'] = enabled;
|
|
526
|
+
if (channelIdentifier) {
|
|
527
|
+
const channel = await smartFindChannel(channelIdentifier);
|
|
528
|
+
updates['channel'] = channel.id;
|
|
529
|
+
}
|
|
530
|
+
await guild.editWidget({
|
|
531
|
+
...updates,
|
|
532
|
+
reason: reason ?? 'Widget updated via MCP',
|
|
533
|
+
});
|
|
534
|
+
return JSON.stringify({
|
|
535
|
+
success: true,
|
|
536
|
+
message: 'Widget settings updated successfully',
|
|
537
|
+
updated: Object.keys(updates),
|
|
538
|
+
}, null, 2);
|
|
539
|
+
}
|
|
540
|
+
async function getVanityUrl() {
|
|
541
|
+
const guild = await getGuild();
|
|
542
|
+
if (!guild.features.includes('VANITY_URL')) {
|
|
543
|
+
return JSON.stringify({
|
|
544
|
+
available: false,
|
|
545
|
+
note: 'This server does not have the VANITY_URL feature.',
|
|
546
|
+
}, null, 2);
|
|
547
|
+
}
|
|
548
|
+
try {
|
|
549
|
+
const vanity = await guild.fetchVanityData();
|
|
550
|
+
return JSON.stringify({
|
|
551
|
+
available: true,
|
|
552
|
+
code: vanity.code,
|
|
553
|
+
url: `https://discord.gg/${vanity.code}`,
|
|
554
|
+
uses: vanity.uses,
|
|
555
|
+
}, null, 2);
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
return JSON.stringify({
|
|
559
|
+
available: true,
|
|
560
|
+
code: null,
|
|
561
|
+
note: 'No vanity URL has been set for this server.',
|
|
562
|
+
}, null, 2);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
async function listIntegrations() {
|
|
566
|
+
const guild = await getGuild();
|
|
567
|
+
const integrations = await guild.fetchIntegrations();
|
|
568
|
+
const integrationList = integrations.map(integration => ({
|
|
569
|
+
id: integration.id,
|
|
570
|
+
name: integration.name,
|
|
571
|
+
type: integration.type,
|
|
572
|
+
enabled: integration.enabled,
|
|
573
|
+
account: integration.account ? {
|
|
574
|
+
id: integration.account.id,
|
|
575
|
+
name: integration.account.name,
|
|
576
|
+
} : null,
|
|
577
|
+
application: integration.application ? {
|
|
578
|
+
id: integration.application.id,
|
|
579
|
+
name: integration.application.name,
|
|
580
|
+
bot: integration.application.bot ? {
|
|
581
|
+
id: integration.application.bot.id,
|
|
582
|
+
username: integration.application.bot.username,
|
|
583
|
+
} : null,
|
|
584
|
+
} : null,
|
|
585
|
+
}));
|
|
586
|
+
return JSON.stringify({
|
|
587
|
+
totalIntegrations: integrationList.length,
|
|
588
|
+
integrations: integrationList,
|
|
589
|
+
}, null, 2);
|
|
590
|
+
}
|
|
591
|
+
async function deleteIntegration(args) {
|
|
592
|
+
const guild = await getGuild();
|
|
593
|
+
const integrationId = args['integrationId'];
|
|
594
|
+
const reason = args['reason'];
|
|
595
|
+
const integrations = await guild.fetchIntegrations();
|
|
596
|
+
const integration = integrations.get(integrationId);
|
|
597
|
+
if (!integration) {
|
|
598
|
+
throw new Error(`Integration with ID "${integrationId}" not found. Use list_integrations to see available integrations.`);
|
|
599
|
+
}
|
|
600
|
+
const integrationName = integration.name;
|
|
601
|
+
await guild.deleteIntegration(integrationId);
|
|
602
|
+
return JSON.stringify({
|
|
603
|
+
success: true,
|
|
604
|
+
message: `Integration "${integrationName}" has been removed`,
|
|
605
|
+
}, null, 2);
|
|
606
|
+
}
|
|
607
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/tools/server.ts"],"names":[],"mappings":"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"}
|