mcp-discord
Allows interaction with Discord, enabling AI assistants to perform actions such as sending messages, managing channels, handling forum posts, adding reactions, and managing webhooks.
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., "@mcp-discord Send a message 'Hello' to channel #general"
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.
MCP-Discord
A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.
Overview
MCP-Discord provides the following Discord-related functionalities:
Login to Discord bot
Get server information
Read/delete channel messages
Send messages to specified channels (using either channel IDs or channel names)
Retrieve forum channel lists
Create/delete/reply to forum posts
Create/delete text channels
Add/remove message reactions
Create/edit/delete/use webhooks
Related MCP server: MCP-Discord
Table of Contents
Prerequisites
Node.js (v16.0.0 or higher)
npm (v7.0.0 or higher)
A Discord bot with appropriate permissions
Bot token (obtainable from the Discord Developer Portal)
Message Content Intent enabled
Server Members Intent enabled
Presence Intent enabled
Permissions required in your Discord server:
Easiest Setup
Administrator (Recommended for quick setup and full functionality)
Or, select only the required permissions:
Send Messages
Create Public Threads
Send Messages in Threads
Manage Messages
Manage Threads
Manage Channels
Manage Webhooks
Add Reactions
View Channel
Add your Discord bot to your server
To add your Discord bot to your server, use one of the following invite links (replace
INSERT_CLIENT_ID_HEREwith your bot's client ID):Administrator (full access): https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=8
Custom permissions (minimum required): https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=52076489808
Note:
According to Discord's security model, a bot can only access information from servers it has been explicitly added to.
If you want to use this MCP server to access a specific Discord server, you must add the bot to that server first.
Use the invite link below to add the bot to your target server.
Installation
Installing via NPM
You can use it with the following command:
npx mcp-discord --config ${DISCORD_TOKEN}For more details, you can check out the NPM Package.
Installing via Smithery
To install mcp-discord automatically via Smithery
Installing via Docker
You can run mcp-discord using Docker. The Docker images are automatically built and published to Docker Hub.
Docker Hub Repository: barryy625/mcp-discord
# Pull the latest image
docker pull barryy625/mcp-discord:latest
# Run with environment variable
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest
# Or run with command line config
docker run -p 8080:8080 barryy625/mcp-discord:latest --config "your_discord_bot_token"Available Tags:
latest- Latest stable version from main branchv1.3.3, etc. - Specific version releases
Manual Installation
# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run buildConfiguration
A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.
Transport Methods
stdio (Default)
Traditional stdio transport for basic usage
Suitable for simple integrations
streamable HTTP
HTTP-based transport for more advanced scenarios
Supports stateless operation
Configurable port number
Configuration Options
You can provide configuration in two ways:
Environment variables:
DISCORD_TOKEN=your_discord_bot_tokenUsing command line arguments:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"
# For streamable HTTP transport
node build/index.js --transport http --port 3000 --config "your_discord_bot_token"Usage with Claude/Cursor
Docker
You can use Docker containers with both Claude and Cursor:
{
"mcpServers": {
"discord": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"DISCORD_TOKEN=your_discord_bot_token",
"-p",
"8080:8080",
"barryy625/mcp-discord:latest",
"--transport",
"http",
"--port",
"8080"
]
}
}
}Claude
Using stdio transport:
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js",
"--config",
"your_discord_bot_token"
]
}
}
}Using streamable HTTP transport:
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}Cursor
Using stdio transport:
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"node",
"path/to/mcp-discord/build/index.js",
"--config",
"your_discord_bot_token"
]
}
}
}Using streamable HTTP transport:
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"node",
"path/to/mcp-discord/build/index.js",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}Tools Documentation
Basic Functions
discord_send: Send a message to a specified channel (supports both channel ID and channel name)discord_get_server_info: Get Discord server information
Channel Management
discord_create_text_channel: Create a text channeldiscord_delete_channel: Delete a channel
Forum Functions
discord_get_forum_channels: Get a list of forum channelsdiscord_create_forum_post: Create a forum postdiscord_get_forum_post: Get a forum postdiscord_reply_to_forum: Reply to a forum postdiscord_delete_forum_post: Delete a forum post
Messages and Reactions
discord_read_messages: Read channel messagesdiscord_add_reaction: Add a reaction to a messagediscord_add_multiple_reactions: Add multiple reactions to a messagediscord_remove_reaction: Remove a reaction from a messagediscord_delete_message: Delete a specific message from a channel
Webhook Management
discord_create_webhook: Creates a new webhook for a Discord channeldiscord_send_webhook_message: Sends a message to a Discord channel using a webhookdiscord_edit_webhook: Edits an existing webhook for a Discord channeldiscord_delete_webhook: Deletes an existing webhook for a Discord channel
Development
# Development mode
npm run devLicense
Available Tools
22 toolsdiscord_add_multiple_reactionsBInspect
Adds multiple emoji reactions to a Discord message at once
Inputs: emojis (required), channelId (required), messageId (required).
discord_add_reactionCInspect
Adds an emoji reaction to a specific Discord message
Inputs: emoji (required), channelId (required), messageId (required).
discord_create_categoryCInspect
Creates a new category in a Discord server.
Inputs: name (required), guildId (required), reason, position.
discord_create_forum_postBInspect
Creates a new post in a Discord forum channel with optional tags
Inputs: title (required), content (required), forumChannelId (required), tags.
discord_create_text_channelBInspect
Creates a new text channel in a Discord server with an optional topic
Inputs: guildId (required), channelName (required), topic.
discord_create_webhookCInspect
Creates a new webhook for a Discord channel
Inputs: name (required), channelId (required), avatar, reason.
discord_delete_categoryBInspect
Deletes a Discord category by ID.
Inputs: categoryId (required), reason.
discord_delete_channelBInspect
Deletes a Discord channel with an optional reason
Inputs: channelId (required), reason.
discord_delete_forum_postCInspect
Deletes a forum post or thread with an optional reason
Inputs: threadId (required), reason.
discord_delete_messageBInspect
Deletes a specific message from a Discord text channel
Inputs: channelId (required), messageId (required), reason.
discord_delete_webhookCInspect
Deletes an existing webhook for a Discord channel
Inputs: webhookId (required), reason, webhookToken.
discord_edit_categoryBInspect
Edits an existing Discord category (name and position).
Inputs: categoryId (required), name, reason, position.
discord_edit_webhookCInspect
Edits an existing webhook for a Discord channel
Inputs: webhookId (required), name, avatar, reason, +2 more.
discord_get_forum_channelsAInspect
Lists all forum channels in a specified Discord server (guild)
Inputs: guildId (required).
discord_get_forum_postBInspect
Retrieves details about a forum post including its messages
Inputs: threadId (required).
discord_get_server_infoBInspect
Retrieves detailed information about a Discord server including channels and member count
Inputs: guildId (required).
discord_loginBInspect
Logs in to Discord using the configured token
Inputs: token.
discord_read_messagesAInspect
Retrieves messages from a Discord text channel with a configurable limit
Inputs: channelId (required), limit.
discord_remove_reactionBInspect
Removes a specific emoji reaction from a Discord message
Inputs: emoji (required), channelId (required), messageId (required), userId.
discord_reply_to_forumBInspect
Adds a reply to an existing forum post or thread
Inputs: message (required), threadId (required).
discord_sendCInspect
Sends a message to one or more Discord text channels by name in a server
Inputs: guildId (required), message (required), channelNames (required).
discord_send_webhook_messageBInspect
Sends a message to a Discord channel using a webhook
Inputs: content (required), webhookId (required), webhookToken (required), threadId, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
Each tool targets a distinct Discord entity or action: reactions, categories, channels, forums, webhooks, messages, server info, and login. Even similar tools like discord_send and discord_send_webhook_message have clear differences in mechanism. No overlap or ambiguity.
All tools follow the consistent pattern discord_verb_noun (e.g., discord_create_category, discord_delete_message). Verbs are descriptive and nouns precisely identify the target. No mixing of naming conventions.
22 tools is slightly above the ideal 3-15 range, but given the breadth of Discord's API (categories, channels, forums, webhooks, reactions, messages, etc.), the count is justified and not excessive. Each tool serves a clear purpose without redundancy.
The tool set covers core CRUD operations for categories, channels, forums, webhooks, and reactions, plus message sending, reading, and login. Minor gaps exist, such as missing edit_message or pin message, but the surface is sufficient for most common Discord automation tasks.
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
- Discortics - Discord BotDeprecatedcom.discortics
Set up and manage your Discord server from MCP: channels, roles, verification, tickets and security.
Related MCP Servers
- AlicenseCqualityBmaintenanceA Discord Model Context Protocol server that enables AI assistants to interact with Discord, providing functionality for sending messages, managing channels, handling forum posts, and working with reactions.46860 npm111MIT
- AlicenseBqualityDmaintenanceA Discord MCP server that enables AI assistants to interact with Discord platforms, providing functionalities like sending messages, managing channels, creating forum posts, and handling webhooks.21860 npm1MIT
- AlicenseBqualityDmaintenanceA Discord Model Context Protocol server that enables AI assistants to interact with Discord by sending messages, managing channels, handling forum posts, managing webhooks, and processing reactions.2284 npm5MIT
- AlicenseAqualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.67 npmMIT