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
MCP Tools
| 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
- Node.js v20.0.0 or higher
- Discord Bot with Administrator permission
- Bot Token from Discord Developer Portal
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
---
CLI Tool
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"]
}
}
}
---
MCP Tools Reference
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
- Original: Barry Yip
- Extended by: Kogollones











