Discord MCP Server
Provides comprehensive Discord bot integration with tools for server management, message operations (sending, reading, reactions, pinning, bulk deletion), channel management (creating text/voice/stage channels and categories), role management (creating, editing, assigning roles), and member moderation (kicking, banning, timeouts). Includes access to server information, member lists, invites, and bans.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Discord MCP Server list the channels in the general server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Discord MCP Server
A Model Context Protocol (MCP) server that provides Discord integration capabilities to MCP clients like Claude Desktop.
Available Tools
Server Information
list_servers: List available serversget_server_info: Get detailed server informationget_channels: List channels in a serverlist_roles: View all roles in a serverlist_members: List server members and their roleslist_invites: Display active invite linkslist_bans: Show banned usersget_user_info: Get detailed information about a user
Message Management
send_message: Send a message to a channelread_messages: Read recent message historyadd_reaction: Add a reaction to a messageadd_multiple_reactions: Add multiple reactions to a messageremove_reaction: Remove a reaction from a messagepin_message: Pin a message in a channelunpin_message: Unpin a pinned messagebulk_delete_messages: Remove batches of recent messagesmoderate_message: Delete messages and timeout users
Channel Management
create_text_channel: Create a new text channelcreate_voice_channel: Create a new voice channelcreate_stage_channel: Create a stage channel for eventscreate_category: Create a channel categoryupdate_channel: Modify channel settingsdelete_channel: Delete an existing channelcreate_invite: Generate invite links for channels
Role Management
create_role: Create new rolesedit_role: Update existing rolesdelete_role: Remove rolesadd_role: Add a role to a userremove_role: Remove a role from a user
Member Management
kick_member: Remove a member from the serverban_member: Ban a member and optionally delete recent messagesunban_member: Lift a ban for a usertimeout_member: Apply or clear communication timeouts
Related MCP server: discord-mcp
Installation
Set up your Discord bot:
Create a new application at Discord Developer Portal
Create a bot and copy the token
Enable required privileged intents:
MESSAGE CONTENT INTENT
PRESENCE INTENT
SERVER MEMBERS INTENT
Invite the bot to your server using OAuth2 URL Generator
Clone and install the package:
# Clone the repository
git clone https://github.com/wowjinxy/mcp-discord.git
cd mcp-discord
# Create and activate virtual environment
uv venv
.venv\Scripts\activate # On macOS/Linux, use: source .venv/bin/activate
### If using Python 3.13+ - install audioop library: `uv pip install audioop-lts`
# Install the package
uv pip install -e .Configure Claude Desktop (
%APPDATA%\Claude\claude_desktop_config.jsonon Windows,~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS) so it runs the installed entry point viauv. Provide your Discord token using either the MCP session configuration or theDISCORD_TOKEN/discordTokenenvironment variable:
"discord": {
"command": "uv",
"args": [
"--directory",
"C:\\PATH\\TO\\mcp-discord",
"run",
"mcp-discord"
],
"session_config": {
"discordToken": "your_bot_token"
}
} Alternatively, export the token before starting Claude Desktop and omit the session_config block:
export DISCORD_TOKEN=your_bot_token
## or use the camelCase environment name supported by some clients
export discordToken=your_bot_tokenInstalling via Smithery
To install Discord Server for Claude Desktop automatically via Smithery, ensure you supply the Discord token through your MCP client configuration (for example by setting discordToken in the session config) or by exporting DISCORD_TOKEN/discordToken before starting the client:
npx -y @smithery/cli install @wowjinxy/mcp-discord-manager --client claudeLicense
MIT License - see LICENSE file for details.
Available Tools
33 toolsadd_multiple_reactionsC
Add multiple reactions to a message.
Inputs: channel_id (required), message_id (required), emojis (required). Returns: result
add_reactionC
Add a reaction to a specific message.
Inputs: channel_id (required), message_id (required), emoji (required). Returns: result
add_roleC
Add a role to a Discord user.
Inputs: user_id (required), role_id (required), server_id, reason. Returns: result
ban_memberC
Ban a user from the server.
Inputs: user_id (required), server_id, delete_message_seconds, reason. Returns: result
bulk_delete_messagesC
Delete multiple recent messages from a channel.
Inputs: channel_id (required), message_ids, limit, reason. Returns: result
create_categoryC
Create a new channel category.
Inputs: name (required), server_id, position, reason. Returns: result
create_inviteC
Create an invite link for a channel.
Inputs: channel_id (required), max_age_seconds, max_uses, temporary, +2 more. Returns: result
create_roleC
Create a new role in the specified server.
Inputs: name (required), server_id, color, colour, +6 more. Returns: result
create_stage_channelC
Create a new stage channel for events and announcements.
Inputs: name (required), server_id, category_id, topic, +1 more. Returns: result
create_text_channelC
Create a new text channel in the specified server.
Inputs: name (required), server_id, category_id, topic, +1 more. Returns: result
create_voice_channelC
Create a new voice channel in the specified server.
Inputs: name (required), server_id, category_id, user_limit, +2 more. Returns: result
delete_channelC
Delete a Discord channel.
Inputs: channel_id (required), reason. Returns: result
delete_roleC
Delete a role from the server.
Inputs: role_id (required), server_id, reason. Returns: result
edit_roleC
Update the configuration of an existing role.
Inputs: role_id (required), server_id, name, color, +8 more. Returns: result
get_channelsB
List channels for a Discord server grouped by category.
Inputs: server_id. Returns: result
get_server_infoB
Retrieve detailed information about a Discord server.
Inputs: server_id. Returns: result
get_user_infoB
Fetch information about a specific Discord user.
Inputs: user_id (required). Returns: result
kick_memberC
Kick a member from the server.
Inputs: user_id (required), server_id, reason. Returns: result
list_bansB
List banned users for the server.
Inputs: server_id, limit. Returns: result
list_invitesB
List active invites for a server.
Inputs: server_id. Returns: result
list_membersC
List members of a Discord server.
Inputs: server_id, limit, include_bots. Returns: result
list_rolesB
List all roles defined in the Discord server.
Inputs: server_id. Returns: result
list_serversB
List the Discord servers the bot is currently connected to.
Inputs: no named parameters. Returns: result
moderate_messageB
Moderate a message by deleting it and optionally timing out the author.
Inputs: channel_id (required), message_id (required), delete_message, timeout_minutes, +1 more. Returns: result
pin_messageC
Pin a message in a text channel.
Inputs: channel_id (required), message_id (required), reason. Returns: result
read_messagesC
Read recent messages from a channel.
Inputs: channel_id (required), limit. Returns: result
remove_reactionC
Remove the bot's reaction from a message.
Inputs: channel_id (required), message_id (required), emoji (required). Returns: result
remove_roleC
Remove a role from a Discord user.
Inputs: user_id (required), role_id (required), server_id, reason. Returns: result
send_messageC
Send a message to a Discord text channel or thread.
Inputs: channel_id (required), message (required). Returns: result
timeout_memberC
Apply or clear a communication timeout for a member.
Inputs: user_id (required), server_id, duration_minutes, reason. Returns: result
unban_memberC
Remove a ban for a user.
Inputs: user_id (required), server_id, reason. Returns: result
unpin_messageC
Unpin a message in a text channel.
Inputs: channel_id (required), message_id (required), reason. Returns: result
update_channelC
Update channel settings such as name, topic, and category.
Inputs: channel_id (required), name, category_id, position, +6 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 33 tools
Each tool has a clearly distinct purpose targeting specific Discord resources and actions, such as add_reaction vs. remove_reaction or create_text_channel vs. delete_channel. There is no significant overlap that would cause confusion in tool selection, as descriptions precisely define the scope of each operation.
Tool names follow a consistent verb_noun pattern throughout, such as create_role, list_members, and update_channel. All tools use snake_case with clear, descriptive verbs, making the naming scheme predictable and easy to understand across the entire set.
With 33 tools, the count is slightly high but reasonable for a comprehensive Discord server management system, covering channels, roles, members, messages, and moderation. It feels slightly heavy but not excessive, as each tool serves a specific function in the domain.
The tool set provides complete CRUD and lifecycle coverage for Discord server management, including creation, retrieval, updating, and deletion of channels, roles, and messages, along with moderation actions like ban, kick, and timeout. No obvious gaps exist for the intended purpose, ensuring agents can handle typical workflows without dead ends.
Maintenance
Related MCP Connectors
Discord MCP server for ChatGPT, Claude and any AI agent: list servers and channels, read channel messages, search messages, send message, reply to message, send DM, read mentions and assign role in your own Discord account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Discord yourself; Cotlet does not store your password and you need no Discord API key. About the official Discord API: Yes, Discord has an official API for bots and OAuth2 apps, but it acts as a bot that a server manager adds, not as you, and Discord has no official MCP server for it (checked 5 Nov 2026). The MCP server on Discord's docs site only searches documentation. Setup and FAQ: https://cotlet.dev/integrations/discord-api-mcp-server
An MCP server that integrates with Discord to provide AI-powered features.
The AI admin for Discord: manage channels, roles, members, moderation and automations.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables comprehensive Discord bot management and server operations through MCP, including channel management, message handling, member moderation, role management, and voice operations. Provides secure Discord API integration with built-in permission controls and audit logging capabilities.19190 npm19MIT
- FlicenseNot gradedqualityDmaintenanceComprehensive Discord server management through MCP, enabling channel, role, permission, message, moderation, and automation tasks via natural language.4-
- AlicenseBqualityDmaintenanceEnables Discord server moderation actions including kick, ban, timeout, role management, channel operations, audit logs, and member management through MCP tools.297MIT
- FlicenseBqualityDmaintenanceEnables Discord server administration through MCP, providing tools for role management, member moderation, channel operations, and message purging.17-