MCP-Discord
MCP-Discord enables AI assistants to interact with Discord through a comprehensive API. With this server, you can:
Login & Authentication: Log in to Discord using a bot token
Server Management: List available servers (guilds) and retrieve server details including channels and member count
Channel Operations: Create, delete, and manage text channels
Messaging: Send, read, and delete messages from channels
Reactions: Add, remove, and manage multiple reactions to messages
Forum Interactions: Get forum channels, create/delete posts, and reply to forum threads
Webhook Management: Create, edit, delete webhooks and send messages through them
Enables AI assistants to interact with Discord, including logging in as a bot, managing servers and channels, sending/reading/deleting messages, creating and managing forum posts, adding reactions to messages, and creating/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-Discordsend a welcome message to the general channel"
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
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 in your Discord server:
Send Messages
Create Public Threads
Send Messages in Threads
Manage Threads
Manage Channels
Add Reactions
Installation
Installing via Smithery
To install mcp-discord for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @barryyip0625/mcp-discord --client claudeManual 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. You can provide it in two ways:
Environment variables:
DISCORD_TOKEN=your_discord_bot_token
DEFAULT_SERVER_ID=your_default_server_id # Optional
DEFAULT_CHANNEL_ID=your_default_channel_id # OptionalUsing the
--configparameter when launching:
node path/to/mcp-discord/build/index.js --config "{\"DISCORD_TOKEN\":\"your_discord_bot_token\"}"Enhanced Startup Script
The project includes an enhanced startup script (start-discord.js) that provides better debugging and error handling:
Loads environment variables from the .env file
Sets default server and channel IDs if not provided
Redirects console.log to stderr to avoid JSON parsing issues in Claude Desktop
Tests the Discord connection directly before starting the MCP server
Provides detailed error information if anything goes wrong
To use this script:
node start-discord.jsUsage with Claude/Cursor
Claude
{ "mcpServers": { "discord": { "command": "node", "args": [ "path/to/mcp-discord/start-discord.js" ], "env": { "DISCORD_TOKEN": "your_discord_bot_token", "DEFAULT_SERVER_ID": "your_default_server_id", "DEFAULT_CHANNEL_ID": "your_default_channel_id" } } } }Cursor
{ "mcpServers": { "discord": { "command": "cmd", "args": [ "/c", "node", "path/to/mcp-discord/start-discord.js" ], "env": { "DISCORD_TOKEN": "your_discord_bot_token", "DEFAULT_SERVER_ID": "your_default_server_id", "DEFAULT_CHANNEL_ID": "your_default_channel_id" } } } }
Tools Documentation
Basic Functions
discord_login: Login to Discorddiscord_list_guilds: List all available Discord servers (guilds) with their channelsdiscord_send: Send a message to a specified channeldiscord_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
21 toolsdiscord_add_multiple_reactionsB
Adds multiple emoji reactions to a Discord message at once
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes | ||
| emojis | Yes |
discord_add_reactionC
Adds an emoji reaction to a specific Discord message
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes | ||
| emoji | Yes |
discord_create_forum_postB
Creates a new post in a Discord forum channel with optional tags
| Name | Required | Description | Default |
|---|---|---|---|
| forumChannelId | Yes | ||
| title | Yes | ||
| content | Yes | ||
| tags | No |
discord_create_text_channelB
Creates a new text channel in a Discord server with an optional topic
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes | ||
| channelName | Yes | ||
| topic | No |
discord_create_webhookC
Creates a new webhook for a Discord channel
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| name | Yes | ||
| avatar | No | ||
| reason | No |
discord_delete_channelB
Deletes a Discord channel with an optional reason
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| reason | No |
discord_delete_forum_postC
Deletes a forum post or thread with an optional reason
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes | ||
| reason | No |
discord_delete_messageB
Deletes a specific message from a Discord text channel
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes | ||
| reason | No |
discord_delete_webhookC
Deletes an existing webhook for a Discord channel
| Name | Required | Description | Default |
|---|---|---|---|
| webhookId | Yes | ||
| webhookToken | No | ||
| reason | No |
discord_edit_webhookC
Edits an existing webhook for a Discord channel
| Name | Required | Description | Default |
|---|---|---|---|
| webhookId | Yes | ||
| webhookToken | No | ||
| name | No | ||
| avatar | No | ||
| channelId | No | ||
| reason | No |
discord_get_forum_channelsA
Lists all forum channels in a specified Discord server (guild)
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
discord_get_forum_postB
Retrieves details about a forum post including its messages
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes |
discord_get_server_infoB
Retrieves detailed information about a Discord server including channels and member count
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
discord_list_guildsB
Lists all Discord servers (guilds) the bot has access to
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
discord_loginC
Logs in to Discord using the configured token
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
discord_read_messagesA
Retrieves messages from a Discord text channel with a configurable limit
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| limit | No |
discord_remove_reactionB
Removes a specific emoji reaction from a Discord message
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes | ||
| emoji | Yes | ||
| userId | No |
discord_reply_to_forumB
Adds a reply to an existing forum post or thread
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes | ||
| message | Yes |
discord_sendC
Sends a message to a specified Discord text channel
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| message | Yes |
discord_send_webhook_messageB
Sends a message to a Discord channel using a webhook
| Name | Required | Description | Default |
|---|---|---|---|
| webhookId | Yes | ||
| webhookToken | Yes | ||
| content | Yes | ||
| username | No | ||
| avatarURL | No | ||
| threadId | No |
testA
A simple test tool to verify the MCP server is working correctly
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
- First observed
discord_add_multiple_reactions - First observed
discord_add_reaction - First observed
discord_create_forum_post - First observed
discord_create_text_channel - First observed
discord_create_webhook - First observed
discord_delete_channel - First observed
discord_delete_forum_post - First observed
discord_delete_message - First observed
discord_delete_webhook - First observed
discord_edit_webhook - First observed
discord_get_forum_channels - First observed
discord_get_forum_post - First observed
discord_get_server_info - First observed
discord_list_guilds - First observed
discord_login - First observed
discord_read_messages - First observed
discord_remove_reaction - First observed
discord_reply_to_forum - First observed
discord_send - First observed
discord_send_webhook_message - First observed
test
TDQS
Scored across 21 tools
Most tools have distinct purposes targeting specific Discord resources like channels, messages, reactions, webhooks, and forum posts. However, discord_send and discord_send_webhook_message could be slightly confusing as both send messages, though they use different mechanisms. The descriptions help clarify this distinction.
All tools follow a consistent snake_case pattern with a clear discord_ prefix and descriptive verb_noun structure (e.g., discord_create_text_channel, discord_delete_message). The only exception is 'test', which is a simple utility tool and doesn't disrupt the overall pattern.
With 21 tools, the count is on the higher side for a Discord integration, bordering on heavy. While it covers many operations, some tools might be redundant or overly granular (e.g., separate add_reaction and add_multiple_reactions). A more streamlined set could improve usability without losing functionality.
The toolset provides comprehensive coverage for core Discord operations, including CRUD for channels, messages, webhooks, and forum posts, plus server info and login. Minor gaps exist, such as no tools for editing messages or managing roles, but agents can likely work around these for most common workflows.
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
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.
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.46825 npm111MIT
- 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.2252 npm5MIT
- AlicenseAqualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.67 npmMIT
- AlicenseBqualityDmaintenanceA Discord MCP server that enables AI assistants to interact with the Discord platform, providing features like message sending, channel management, forum operations, reactions, and webhook management.22825 npmMIT