Tools Reference
Discord Agent MCP provides 71 tools for comprehensive Discord server management. This reference documents each tool with parameters, examples, and use cases.
Messaging
10 tools for sending, editing, and managing messages.
send_message
Send a text message to a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Target channel ID |
content |
string | Yes | Message text (max 2000 chars) |
embeds |
array | No | Embed objects (max 10) |
Example:
"Send 'Welcome to our server!' to channel 123456789"
send_rich_message
Send formatted messages with embeds, images, and styling.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Target channel ID |
embeds |
array | Yes | Array of embed objects |
Embed Object:
title- Embed title (max 256 chars)description- Embed body (max 4096 chars)color- Hex color integer (0-0xFFFFFF)footer- Footer textfields- Array of field objectsimage- Image URLthumbnail- Thumbnail URL
Example:
"Create an announcement embed with title 'Server Update',
description about new features, and blue color"
send_message_with_file
Send a message with file attachments.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Target channel ID |
content |
string | No | Message text |
file |
string | Yes | File path or URL |
description |
string | No | Alt text (max 1024 chars) |
read_messages
Retrieve message history from a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
limit |
number | No | Number of messages (1-100, default 50) |
before |
string | No | Get messages before this ID |
after |
string | No | Get messages after this ID |
Returns: Array of messages with author, content, attachments, embeds, and reactions.
edit_message
Edit an existing message sent by the bot.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
messageId |
string | Yes | Message to edit |
newContent |
string | Yes | New message content |
embeds |
array | No | New embeds |
delete_message
Delete a specific message.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
messageId |
string | Yes | Message to delete |
reason |
string | No | Audit log reason |
bulk_delete_messages
Delete multiple messages at once (up to 100, messages must be < 14 days old).
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
limit |
number | Yes | Number to delete (2-100) |
userId |
string | No | Filter by author |
bots |
boolean | No | Filter bot messages only |
reason |
string | No | Audit log reason |
Example:
"Delete the last 50 messages from bots in #spam-channel"
add_reaction
Add an emoji reaction to a message.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
messageId |
string | Yes | Message ID |
emoji |
string | Yes | Unicode emoji or custom emoji ID |
pin_message
Pin a message to a channel (max 50 pins per channel).
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
messageId |
string | Yes | Message to pin |
reason |
string | No | Audit log reason |
unpin_message
Unpin a message from a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
channelId |
string | Yes | Channel ID |
messageId |
string | Yes | Message to unpin |
reason |
string | No | Audit log reason |
Channel Management
10 tools for creating and managing channels.
list_channels
Get all channels in a server.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
type |
string | No | Filter by type (text, voice, category, etc.) |
Returns: Channels organized by type with ID, name, topic, position, and parent category.
get_channel_details
Get detailed information about a specific channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Channel ID |
Returns: Full channel metadata including permissions, slowmode settings, NSFW flag, etc.
create_text_channel
Create a new text channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Channel name |
topic |
string | No | Channel topic |
parent |
string | No | Category ID |
nsfw |
boolean | No | Mark as NSFW |
Example:
"Create a text channel called 'project-updates' in the
'Work' category with topic 'Daily project status updates'"
create_voice_channel
Create a new voice channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Channel name |
bitrate |
number | No | Audio bitrate (8000-96000) |
userLimit |
number | No | Max users (0 = unlimited) |
parent |
string | No | Category ID |
create_category
Create a channel category for organization.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Category name |
create_forum_channel
Create a forum channel for threaded discussions.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Forum name |
topic |
string | No | Forum guidelines |
tags |
array | No | Available tags |
slowmode |
number | No | Slowmode in seconds |
create_stage_channel
Create a stage channel for presentations and events.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Stage name |
topic |
string | No | Stage topic |
parent |
string | No | Category ID |
modify_channel
Update channel settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Channel ID |
name |
string | No | New name |
topic |
string | No | New topic |
slowmode |
number | No | Slowmode in seconds |
nsfw |
boolean | No | NSFW flag |
parent |
string | No | New category |
reason |
string | No | Audit log reason |
delete_channel
Permanently delete a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Channel ID |
reason |
string | No | Audit log reason |
set_channel_permissions
Configure channel-specific permission overrides.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Channel ID |
targetId |
string | Yes | Role or user ID |
allow |
array | No | Permissions to allow |
deny |
array | No | Permissions to deny |
Example:
"Make #announcements read-only for @everyone but allow
Moderators to send messages"
Thread Management
3 tools for managing forum threads and discussions.
find_threads
Search for threads in a forum channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Forum channel ID |
query |
string | No | Search by name |
create_thread
Create a new thread in a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Parent channel ID |
threadName |
string | Yes | Thread title |
message |
string | No | Initial message |
archive_thread
Archive and lock a thread.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Parent channel ID |
threadId |
string | Yes | Thread ID |
reason |
string | No | Audit log reason |
Server Management
7 tools for server configuration and administration.
get_server_info
Get comprehensive server information.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
Returns: Name, description, owner, member count, features, icon URL, creation date, and more.
modify_server
Update server settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | No | New server name |
description |
string | No | New description |
reason |
string | No | Audit log reason |
get_audit_logs
Retrieve server audit log entries.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
actionType |
string | No | Filter by action type |
userId |
string | No | Filter by user |
limit |
number | No | Number of entries |
Returns: Actions with executor, target, changes, and timestamps.
list_webhooks
List all webhooks in the server.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | No | Filter by channel |
create_webhook
Create a new webhook for a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Target channel |
name |
string | Yes | Webhook name |
avatar |
string | No | Avatar URL |
get_invites
List all active invite links.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
Returns: Invites with code, channel, creator, uses, and expiration.
create_invite
Create a new invite link.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
channelId |
string | Yes | Target channel |
maxAge |
number | No | Expiration in seconds (0 = never) |
maxUses |
number | No | Max uses (0 = unlimited) |
temporary |
boolean | No | Grant temporary membership |
Member Management
3 tools for managing server members.
get_member_info
Get detailed information about a member.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
Returns: Username, avatar, join date, roles, nickname, status.
list_members
List all members with optional filtering.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
limit |
number | No | Max results |
role |
string | No | Filter by role ID |
joinedBefore |
string | No | Filter by join date |
joinedAfter |
string | No | Filter by join date |
set_nickname
Change a member’s server nickname.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
newNickname |
string | Yes | New nickname |
reason |
string | No | Audit log reason |
Role Management
7 tools for creating and managing roles.
list_roles
List all roles in the server.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
Returns: Roles with ID, name, color, position, permissions, and mentionable status.
get_role_info
Get detailed information about a specific role.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
roleId |
string | Yes | Role ID |
create_role
Create a new role with permissions.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Role name |
color |
number | No | Hex color integer |
hoist |
boolean | No | Display separately |
mentionable |
boolean | No | Allow mentions |
permissions |
array | No | Permission names |
reason |
string | No | Audit log reason |
Example:
"Create a 'Moderator' role with blue color, displayed
separately, with permissions to manage messages and kick members"
modify_role
Update role settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
roleId |
string | Yes | Role ID |
name |
string | No | New name |
color |
number | No | New color |
hoist |
boolean | No | Display separately |
mentionable |
boolean | No | Allow mentions |
permissions |
array | No | New permissions |
reason |
string | No | Audit log reason |
delete_role
Delete a role.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
roleId |
string | Yes | Role ID |
reason |
string | No | Audit log reason |
assign_role
Add a role to a member.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
roleId |
string | Yes | Role ID |
reason |
string | No | Audit log reason |
remove_role
Remove a role from a member.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
roleId |
string | Yes | Role ID |
reason |
string | No | Audit log reason |
Moderation
6 tools for moderating members.
kick_member
Remove a member from the server (they can rejoin).
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
reason |
string | No | Audit log reason |
ban_member
Ban a member from the server.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
deleteMessageDays |
number | No | Delete message history (0-7 days) |
reason |
string | No | Audit log reason |
unban_member
Remove a ban.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
reason |
string | No | Audit log reason |
timeout_member
Temporarily mute a member.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
durationMs |
number | Yes | Duration in milliseconds |
reason |
string | No | Audit log reason |
Example:
"Timeout user 123456789 for 1 hour for spamming"
remove_timeout
Remove a timeout from a member.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
userId |
string | Yes | User ID |
reason |
string | No | Audit log reason |
get_bans
List all banned users.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
Returns: Banned users with usernames and ban reasons.
Emoji Management
4 tools for managing custom emojis.
list_guild_emojis
Get all custom emojis for a server.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
Returns: Emojis with ID, name, animated status, and role restrictions.
create_emoji
Upload a custom emoji.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Emoji name |
image |
string | Yes | Base64 data or file path |
roleIds |
array | No | Restrict to roles |
modify_emoji
Update emoji settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
emojiId |
string | Yes | Emoji ID |
name |
string | No | New name |
roleIds |
array | No | New role restrictions |
delete_emoji
Delete a custom emoji.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
emojiId |
string | Yes | Emoji ID |
Sticker Management
4 tools for managing custom stickers.
list_guild_stickers
Get all custom stickers for a server.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
create_sticker
Upload a custom sticker (PNG, APNG, or Lottie).
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Sticker name |
file |
string | Yes | File path |
description |
string | No | Sticker description |
tags |
string | No | Related emoji |
modify_sticker
Update sticker settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
stickerId |
string | Yes | Sticker ID |
name |
string | No | New name |
description |
string | No | New description |
tags |
string | No | New tags |
delete_sticker
Delete a custom sticker.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
stickerId |
string | Yes | Sticker ID |
Scheduled Events
6 tools for managing server events.
list_scheduled_events
Get all scheduled events.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
withUserCount |
boolean | No | Include interested count |
get_event_details
Get detailed information about an event.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
eventId |
string | Yes | Event ID |
create_scheduled_event
Create a new scheduled event.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Event name |
description |
string | No | Event description |
scheduledStartTime |
string | Yes | ISO 8601 start time |
entityType |
string | Yes | STAGE_INSTANCE, VOICE, or EXTERNAL |
channelId |
string | Conditional | Required for stage/voice |
location |
string | Conditional | Required for external |
scheduledEndTime |
string | No | ISO 8601 end time |
image |
string | No | Cover image URL |
Example:
"Create a voice event called 'Game Night' in the Gaming
voice channel for Saturday at 8 PM"
modify_scheduled_event
Update event details.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
eventId |
string | Yes | Event ID |
name |
string | No | New name |
description |
string | No | New description |
status |
string | No | SCHEDULED, ACTIVE, COMPLETED, CANCELLED |
scheduledStartTime |
string | No | New start time |
scheduledEndTime |
string | No | New end time |
delete_scheduled_event
Delete or cancel an event.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
eventId |
string | Yes | Event ID |
get_event_users
Get users interested in an event.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
eventId |
string | Yes | Event ID |
limit |
number | No | Max results |
Auto-Moderation
5 tools for automatic moderation rules.
list_automod_rules
Get all auto-moderation rules.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
get_automod_rule
Get details about a specific rule.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
ruleId |
string | Yes | Rule ID |
create_automod_rule
Create an auto-moderation rule.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
name |
string | Yes | Rule name |
triggerType |
string | Yes | KEYWORD, SPAM, MENTION, HARMFUL_LINKS |
eventType |
string | Yes | MESSAGE_SEND |
actions |
array | Yes | BLOCK, ALERT_BLOCK, TIMEOUT |
keywords |
array | No | Trigger keywords |
keywordFilter |
string | No | Preset filter |
exemptRoles |
array | No | Bypass roles |
exemptChannels |
array | No | Bypass channels |
reason |
string | No | Audit log reason |
Example:
"Create an auto-mod rule to block messages containing
spam keywords and timeout the user for 5 minutes"
modify_automod_rule
Update rule settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
ruleId |
string | Yes | Rule ID |
enabled |
boolean | No | Enable/disable |
name |
string | No | New name |
triggerMetadata |
object | No | New triggers |
actions |
array | No | New actions |
delete_automod_rule
Delete an auto-moderation rule.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | Yes | Server ID |
ruleId |
string | Yes | Rule ID |
Application Commands
6 tools for managing slash commands.
list_application_commands
List all slash commands.
| Parameter | Type | Required | Description |
|---|---|---|---|
guildId |
string | No | Server ID (omit for global) |
get_application_command
Get details about a specific command.
| Parameter | Type | Required | Description |
|---|---|---|---|
commandId |
string | Yes | Command ID |
guildId |
string | No | Server ID (omit for global) |
create_application_command
Create a new slash command.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Command name |
description |
string | Yes | Command description |
type |
string | No | CHAT_INPUT, USER, MESSAGE |
options |
array | No | Command options |
defaultMemberPermissions |
string | No | Required permissions |
dmPermission |
boolean | No | Allow in DMs |
guildId |
string | No | Server ID (omit for global) |
modify_application_command
Update command settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
commandId |
string | Yes | Command ID |
name |
string | No | New name |
description |
string | No | New description |
options |
array | No | New options |
guildId |
string | No | Server ID (omit for global) |
delete_application_command
Delete a slash command.
| Parameter | Type | Required | Description |
|---|---|---|---|
commandId |
string | Yes | Command ID |
guildId |
string | No | Server ID (omit for global) |
bulk_overwrite_commands
Replace all commands at once.
| Parameter | Type | Required | Description |
|---|---|---|---|
commands |
array | Yes | Array of command definitions |
guildId |
string | No | Server ID (omit for global) |
Resources
discord://guilds
List all servers the bot is connected to.
Usage: Access through MCP resource protocol.
Returns: JSON array of guilds with ID, name, member count, and owner ID.