MCP Discord Extended

Discord MCP server with advanced server management capabilities
Extended Model Context Protocol server for Discord. Forked from barryyip0625/mcp-discord with additional features for complete server management.
Features
| Category | Capabilities |
|---|
| Roles | Create, edit, delete, assign, remove roles with full permission control |
| Permissions | Set, get, remove channel permission overwrites for roles/members |
| Channels | Text, voice, categories - create, edit, delete, organize |
| Members | List members, get detailed info, manage roles |
| Messages | Send, read, edit, delete, bulk delete, pin, move |
| Reactions | Add, remove, multiple reactions |
| Forums | Create posts, reply, manage forum channels |
| Webhooks | Create, edit, delete, send messages via webhooks |
| Batch | Execute multiple operations in a single call |
Advanced Features
| Feature | Description |
|---|
| Caching | TTL-based in-memory cache for guilds, channels, roles, members |
| Rate Limiting | Priority queue (HIGH/NORMAL/LOW) with batch and sequential execution |
| Sanitization | Input validation for Discord limits (snowflakes, names, messages) |
| Configuration | Centralized config with CLI > ENV > file > defaults priority |
| CLI Tool | Command-line interface for common Discord operations |
| Examples | Ready-to-use scripts for testing and automation |
Quick Start
Requirements
Installation
git clone https://github.com/Kogollones/mcp-discord.git
cd mcp-discord
npm install
Quick Test
# Create .env file
echo "DISCORD_TOKEN=your_bot_token_here" > .env
# Test connection
node cli.js login
node cli.js help # Show all commands
node cli.js login # Test connection
# Server info
node cli.js list-roles
node cli.js list-channels
node cli.js list-members
# Channels
node cli.js channel-create --name my-channel
node cli.js channel-create --name private --private --users user1,user2
node cli.js channel-delete --id 123456789
# Messages
node cli.js message-send --channel 123456789 --message "Hello!"
# Roles
node cli.js role-create --name "Admin" --color "#FF0000"
Configuration
Environment Variables (Recommended)
Create .env file:
DISCORD_TOKEN=your_discord_bot_token_here
DISCORD_GUILD_ID=your_guild_id_here
Claude Desktop / Claude Code
Add to claude_desktop_config.json:
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["path/to/mcp-discord/build/index.js", "--token", "YOUR_TOKEN"]
}
}
}
Server & Login
| Tool | Description |
|---|
discord_login | Authenticate with Discord |
discord_get_server_info | Get server details |
discord_send | Send message to channel |
Channels
| Tool | Description |
|---|
discord_create_text_channel | Create text channel |
discord_create_voice_channel | Create voice channel |
discord_edit_channel | Edit channel properties |
discord_delete_channel | Delete channel |
discord_create_category | Create category |
discord_edit_category | Edit category |
discord_delete_category | Delete category |
Roles
| Tool | Description |
|---|
discord_list_roles | List all roles |
discord_create_role | Create role with color/permissions |
discord_edit_role | Modify role |
discord_delete_role | Delete role |
discord_assign_role | Assign role to member |
discord_remove_role | Remove role from member |
Permissions
| Tool | Description |
|---|
discord_set_channel_permissions | Set allow/deny for role/member |
discord_get_channel_permissions | View permission overwrites |
discord_remove_channel_permissions | Remove overwrites |
Members
| Tool | Description |
|---|
discord_list_members | List all members |
discord_get_member | Get member details |
Messages
| Tool | Description |
|---|
discord_read_messages | Read channel messages |
discord_delete_message | Delete message |
discord_bulk_delete_messages | Delete up to 100 messages |
discord_edit_message | Edit message |
discord_pin_message | Pin message |
discord_unpin_message | Unpin message |
discord_move_messages | Move between channels |
Reactions
| Tool | Description |
|---|
discord_add_reaction | Add emoji reaction |
discord_add_multiple_reactions | Add multiple reactions |
discord_remove_reaction | Remove reaction |
Forums
| Tool | Description |
|---|
discord_get_forum_channels | List forums |
discord_create_forum_post | Create post |
discord_get_forum_post | Get post |
discord_reply_to_forum | Reply to post |
discord_delete_forum_post | Delete post |
Webhooks
| Tool | Description |
|---|
discord_create_webhook | Create webhook |
discord_send_webhook_message | Send via webhook |
discord_edit_webhook | Edit webhook |
discord_delete_webhook | Delete webhook |
Batch
| Tool | Description |
|---|
discord_batch_operations | Execute multiple operations |
Examples
See examples/ folder:
| Script | Description |
|---|
test-connection.js | Quick connection test |
create-private-channel.js | Create private channels |
send-announcement.js | Send embed announcements |
list-server-info.js | Display server info |
bulk-role-assign.js | Assign roles in bulk |
node examples/test-connection.js
Dependencies
| Package | Description |
|---|
| @modelcontextprotocol/sdk | MCP SDK |
| discord.js | Discord API |
| zod | Schema validation |
| express | HTTP server |
| dotenv | Environment variables |
Credits
License
MIT