A Model Context Protocol (MCP) server that provides Discord integration capabilities to MCP clients like Claude Desktop.
get_server_info: Get detailed server informationlist_channels: Get a list of channels in a serverget_self_info: Get detailed bot informationlist_members: List server members and their roles
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 messagemoderate_message: Delete messages and timeout users
create_text_channel: Create a new text channeldelete_channel: Delete an existing channel
add_role: Add a role to a userremove_role: Remove a role from a user
create_webhook: Create a new webhooklist_webhooks: List webhooks in a channelsend_webhook_message: Send messages via webhookmodify_webhook: Update webhook settingsdelete_webhook: Delete a webhook
await_mention: Wait for the bot to be mentioned and return a list of channel IDs where mentions have recently occurred
Supports a chat workflow:
- Wait for mentions using
await_mention - Read recent messages with
read_messages - Process the messages and determine an appropriate response
- Send a response using
send_message - Repeat as needed
See the included chat.md
To install Discord Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @hanweg/mcp-discord --client claude-
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/hanweg/mcp-discord.git
cd mcp-discord
# Create and activate virtual environment
uv venv
.venv\Scripts\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):
"discord": {
"command": "uv",
"args": [
"--directory",
"C:\\PATH\\TO\\mcp-discord",
"run",
"mcp-discord"
],
"env": {
"DISCORD_TOKEN": "your_bot_token"
"DISCORD_TIMEOUT": "60.0"
}
}MIT License - see LICENSE file for details.