Discord MCP Extended
Provides tools for sending and reading messages, reacting, searching messages, managing channels, categories, webhooks, forums, and fetching images in Discord servers.
Allows sending voice messages via ElevenLabs TTS by providing an API key and voice ID.
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., "@Discord MCP Extended Read the last 5 messages from 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.
Discord MCP (Extended)
A feature-rich MCP (Model Context Protocol) server for Discord, giving AI companions full presence in Discord communities — reading, responding, reacting, searching, and speaking.
Extended by Digital Haven from the original mcp-discord and Codependent AI fork.
What's New in This Fork
Voice Messages — Send audio via ElevenLabs TTS
Image Fetching — Retrieve Discord images with auto-scaling for Claude's context window
Message Search — Full search across servers with filters (author, content type, date range)
Extended Reactions — Add/remove multiple reactions at once
Webhook Support — Create, send, edit, and delete webhooks
Category Management — Create, edit, delete server categories
Forum Support — Full forum channel operations
Related MCP server: @striderlabs/mcp-discord
Features
Core Messaging
Tool | Description |
| Send a message (with optional reply) |
| Read messages from a channel (up to 100) |
| Delete a specific message |
| Search messages with filters |
Voice
Tool | Description |
| Send voice message via ElevenLabs TTS |
Images
Tool | Description |
| Fetch and auto-scale Discord images |
Reactions
Tool | Description |
| Add a single reaction |
| Add multiple reactions at once |
| Remove a reaction |
Forums
Tool | Description |
| List forum channels in a server |
| Create a new forum post |
| Get forum post details |
| Reply to a forum thread |
| Delete a forum post |
Channels & Categories
Tool | Description |
| Create a text channel |
| Delete a channel |
| Create a category |
| Edit a category |
| Delete a category |
Webhooks
Tool | Description |
| Create a webhook |
| Send via webhook |
| Edit a webhook |
| Delete a webhook |
Server Info
Tool | Description |
| List all servers the bot is in |
| Get server details and channels |
| Log in with bot token |
Setup
1. Create a Discord Bot
Go to Discord Developer Portal
Create a new application
Go to Bot section, create a bot
Copy the bot token
Enable Message Content Intent under Privileged Gateway Intents
Go to OAuth2 > URL Generator:
Select
botscopeSelect permissions:
Read Messages/View Channels,Send Messages,Add Reactions,Read Message History,Manage Webhooks,Manage Channels,Attach Files
Use the generated URL to invite the bot to your server
2. Install
git clone https://github.com/YOUR_USERNAME/mcp-discord.git
cd mcp-discord
npm install
npm run build3. Configure Claude Desktop
Add to your claude_desktop_config.json:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["C:/path/to/mcp-discord/build/index.js"],
"env": {
"DISCORD_TOKEN": "your-bot-token-here"
}
}
}
}4. For Voice Messages (Optional)
Add ElevenLabs credentials:
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["C:/path/to/mcp-discord/build/index.js"],
"env": {
"DISCORD_TOKEN": "your-bot-token-here",
"ELEVENLABS_API_KEY": "your-elevenlabs-key",
"ELEVENLABS_VOICE_ID": "your-voice-id"
}
}
}
}Get your voice ID from ElevenLabs — they have a free tier.
Usage Examples
Once configured, Claude can:
"Read the last 20 messages from #general"
"Send 'Hello everyone!' to channel 123456789"
"React with fire emoji to message 987654321"
"Search for messages containing 'bug report' in the server"
"Send a voice message saying 'Good morning!' to the channel"
"Fetch that image so I can see it"For AI Companions
See README-AI.md for companion-specific guidance:
Multi-room presence (desktop + mobile + Cloudflare)
Memory integration patterns
Community interaction guidelines
Setting up a portable version for mobile Claude
Architecture
Claude Desktop ←→ MCP Server (Node.js) ←→ Discord API ←→ Your ServerThe bridge runs locally. Only connects to:
Discord (official API)
Anthropic (when Claude processes)
ElevenLabs (if using voice)
Security
Bot token is stored locally in your Claude config — never commit it
Bot can only see channels it has permission to view
No third-party data storage
If your token leaks, reset it immediately in Discord Developer Portal.
Credits
Original: barryyip0625/mcp-discord
Community Fork: Codependent AI
Extended Fork: Fox & Alex @ Digital Haven
Image Fetching: Vex & Nana
License
MIT — use it, modify it, share it.
Guides
BEGINNER_GUIDE.md — Step-by-step for non-coders
INSTALL.md — Quick technical setup
README-AI.md — AI companion integration patterns
Available Tools
26 toolsdiscord_add_multiple_reactionsB
Adds multiple emoji reactions to a Discord message at once
Inputs: emojis (required), channelId (required), messageId (required).
discord_add_reactionC
Adds an emoji reaction to a specific Discord message
Inputs: emoji (required), channelId (required), messageId (required).
discord_create_categoryC
Creates a new category in a Discord server.
Inputs: name (required), guildId (required), reason, position.
discord_create_forum_postB
Creates a new post in a Discord forum channel with optional tags
Inputs: title (required), content (required), forumChannelId (required), tags.
discord_create_text_channelB
Creates a new text channel in a Discord server with an optional topic
Inputs: guildId (required), channelName (required), topic.
discord_create_webhookC
Creates a new webhook for a Discord channel
Inputs: name (required), channelId (required), avatar, reason.
discord_delete_categoryB
Deletes a Discord category by ID.
Inputs: categoryId (required), reason.
discord_delete_channelB
Deletes a Discord channel with an optional reason
Inputs: channelId (required), reason.
discord_delete_forum_postC
Deletes a forum post or thread with an optional reason
Inputs: threadId (required), reason.
discord_delete_messageB
Deletes a specific message from a Discord text channel
Inputs: channelId (required), messageId (required), reason.
discord_delete_webhookC
Deletes an existing webhook for a Discord channel
Inputs: webhookId (required), reason, webhookToken.
discord_edit_categoryB
Edits an existing Discord category (name and position).
Inputs: categoryId (required), name, reason, position.
discord_edit_webhookC
Edits an existing webhook for a Discord channel
Inputs: webhookId (required), name, avatar, reason, +2 more.
discord_fetch_imageA
Fetch an image from Discord CDN and return it as base64. Uses iterative scaling to fit within token limits.
Inputs: url (required), maxSizeKB.
discord_get_forum_channelsA
Lists all forum channels in a specified Discord server (guild)
Inputs: guildId (required).
discord_get_forum_postB
Retrieves details about a forum post including its messages
Inputs: threadId (required).
discord_get_server_infoB
Retrieves detailed information about a Discord server including channels and member count
Inputs: guildId (required).
discord_list_serversA
Lists all Discord servers the bot is a member of
Inputs: no named parameters.
discord_loginB
Logs in to Discord using the configured token
Inputs: token.
discord_read_messagesA
Retrieves messages from a Discord text channel with a configurable limit
Inputs: channelId (required), limit.
discord_remove_reactionB
Removes a specific emoji reaction from a Discord message
Inputs: emoji (required), channelId (required), messageId (required), userId.
discord_reply_to_forumB
Adds a reply to an existing forum post or thread
Inputs: message (required), threadId (required).
discord_search_messagesC
Searches for messages in a Discord server
Inputs: guildId (required), has, limit, maxId, +10 more.
discord_sendA
Sends a message to a specified Discord text channel. Optionally reply to another message by providing its message ID.
Inputs: message (required), channelId (required), replyToMessageId.
discord_send_voiceA
Sends a voice message to a Discord channel using ElevenLabs TTS. Converts text to speech and attaches the audio file.
Inputs: text (required), channelId (required), voiceId, includeText, +1 more.
discord_send_webhook_messageB
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 26 tools
All tools have clear resource-action pairs, such as category vs channel vs webhook vs message operations. Even overlapping actions like send are distinguished by medium: text channel, webhook, or voice. The only minor overlap is add_reaction vs add_multiple_reactions, but they serve distinct purposes.
Tools follow a consistent discord_verb_noun pattern with clear verbs like create, delete, and send. However, retrieval actions use mixed verbs: get (get_server_info), list (list_servers), and read (read_messages), which is a minor deviation. Overall, the naming is predictable and readable.
With 26 tools, this exceeds the recommended range and falls into the 'too many' category. While each tool covers a distinct Discord feature, the count feels heavy and some tools could be merged (e.g., add_multiple_reactions with add_reaction). The extended scope justifies some volume, but 26 is on the high side.
The tool surface covers core operations for categories, text channels, forums, webhooks, messages, and reactions. However, obvious gaps exist: no update operation for text channels or messages, and no channel-specific detail retrieval beyond server info. CRUD coverage is incomplete for certain resources, limiting full workflow automation.
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 for AI dialogue using various LLM models via AceDataCloud
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLets any MCP-compatible AI client interact with Discord — send messages, manage channels, create webhooks, assign roles, and more.76 npm2MIT
- AlicenseAqualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.67 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to communicate with humans through Discord. Agents can send messages, create threads, wait for replies, and manage conversations across any MCP client.7 npmISC
- AlicenseNot gradedqualityCmaintenanceA Discord MCP server that gives AI agents full control of a Discord bot — messages, channels, roles, threads, forums, events, webhooks, reactions, moderation, image generation, and real-time voice.98 npm7MIT