MCP Discord Extended
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 installQuick Test
# Create .env file
echo "DISCORD_TOKEN=your_bot_token_here" > .env
# Test connection
node cli.js loginCLI 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_hereClaude 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 |
| Authenticate with Discord |
| Get server details |
| Send message to channel |
Channels
Tool | Description |
| Create text channel |
| Create voice channel |
| Edit channel properties |
| Delete channel |
| Create category |
| Edit category |
| Delete category |
Roles
Tool | Description |
| List all roles |
| Create role with color/permissions |
| Modify role |
| Delete role |
| Assign role to member |
| Remove role from member |
Permissions
Tool | Description |
| Set allow/deny for role/member |
| View permission overwrites |
| Remove overwrites |
Members
Tool | Description |
| List all members |
| Get member details |
Messages
Tool | Description |
| Read channel messages |
| Delete message |
| Delete up to 100 messages |
| Edit message |
| Pin message |
| Unpin message |
| Move between channels |
Reactions
Tool | Description |
| Add emoji reaction |
| Add multiple reactions |
| Remove reaction |
Forums
Tool | Description |
| List forums |
| Create post |
| Get post |
| Reply to post |
| Delete post |
Webhooks
Tool | Description |
| Create webhook |
| Send via webhook |
| Edit webhook |
| Delete webhook |
Batch
Tool | Description |
| Execute multiple operations |
Examples
See examples/ folder:
Script | Description |
| Quick connection test |
| Create private channels |
| Send embed announcements |
| Display server info |
| Assign roles in bulk |
node examples/test-connection.jsDependencies
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