mcp-discord
MCP-Discord is a Model Context Protocol server designed for integrating AI with the Discord platform. It offers comprehensive functionalities for Discord channel management and interaction, tailored for AI assistants.
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
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_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.
Installation
Installing via Smithery
To install mcp-discord automatically via Smithery
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 build
Configuration
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_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"
Usage with Claude/Cursor
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_login
: Login to Discorddiscord_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 dev