A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.
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
-
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:
- Administrator (Recommended for quick setup and full functionality)
- 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_HERE
with 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
- To add your Discord bot to your server, use one of the following invite links (replace
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.
To install mcp-discord automatically via Smithery
# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run build
A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.
-
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
You can provide configuration in two ways:
- Environment variables:
DISCORD_TOKEN=your_discord_bot_token
- Using 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"
- 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"
]
}
}
}
- 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"
]
}
}
}
discord_send
: Send a message to a specified channel (supports both channel ID and channel name)discord_get_server_info
: Get Discord server information
discord_create_text_channel
: Create a text channeldiscord_delete_channel
: Delete a channel
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
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
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 mode
npm run dev