Skip to main content
Glama
tools.md26.5 kB
--- layout: default title: "Tools Reference - Discord Agent MCP" description: "Complete reference for all 71 Discord Agent MCP tools. Messaging, channels, roles, moderation, events, auto-mod, and slash command management." keywords: "Discord MCP tools, Discord API tools, Discord bot commands, channel management, role management, Discord moderation tools" permalink: /tools/ --- # 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 text - `fields` - Array of field objects - `image` - Image URL - `thumbnail` - 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. --- ## Need Help? - [Getting Started Guide]({{ '/getting-started/' | relative_url }}) - [Interactive Prompts]({{ '/prompts/' | relative_url }}) - [Troubleshooting]({{ '/troubleshooting/' | relative_url }}) - [GitHub Issues](https://github.com/aj-geddes/discord-agent-mcp/issues)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aj-geddes/discord-agent-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server