Discord MCP Server

โš ๏ธ SECURITY WARNING: This project handles Discord bot tokens and server access. Please read our Security Policy before using or contributing.

A comprehensive Model Context Protocol (MCP) server for Discord API integration, providing powerful Discord bot management capabilities through a standardized interface.

Features

This server provides 93 Discord tools organized into the following categories:

Category Tools Count Description
Message Management 18 tools Send, edit, delete, reactions, pin, bulk operations
Channel Management 25 tools Create/edit/delete all channel types, positions, privacy
Member & Role Management 12 tools Add/remove roles, edit members, search, info retrieval
Voice & Audio 6 tools Join/leave voice, play audio, volume control
Webhooks 4 tools Create, delete, list, send webhook messages
Events & Scheduling 4 tools Create, edit, delete, list server events
Emoji & Stickers 6 tools Manage custom emojis and stickers
Privacy & Security 7 tools Auto-moderation, privacy controls, bulk settings
Server Administration 6 tools Server settings, welcome screen, widget management
Analytics & Export 5 tools Statistics, message history, chat log export

Key Tools

  • discord_manage - Unified tool that handles all 93 operations through one interface
  • comprehensive_channel_management - Multi-operation channel orchestrator
  • bulk_set_privacy - Mass privacy control across channels/categories
  • organize_channels - Advanced channel/category positioning system
  • export_chat_log - Professional chat export in JSON/CSV/TXT formats

Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Discord bot token (see setup below)

Installation

# Clone the repository
git clone https://github.com/sashathelambo/discord-mcp.git
cd discord-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Development Mode

npm run dev

Configuration

Discord Bot Setup

  1. Go to Discord Developer Portal
  2. Create a new application and bot
  3. Copy the bot token to your .env file
  4. IMPORTANT: Regenerate your token if you suspect it's been exposed

Environment Variables

Create a .env file:

# Your Discord bot token (KEEP SECRET!)
DISCORD_TOKEN=your_bot_token_here

# Default Discord server ID (optional)
DISCORD_GUILD_ID=your_guild_id_here

Required Bot Permissions

Manage Server
Manage Roles  
Manage Channels
Manage Messages
View Channels
Send Messages
Connect (for voice)
Speak (for voice)

Usage

MCP Integration

Use with MCP-compatible clients:

# Via stdio
npx discord-mcp

# Via HTTP (port 3001)
HTTP_PORT=3001 npx discord-mcp

Examples

Using the Master Control Tool
// All operations through one unified interface
await discord_manage({
  action: 'send_message',
  channelId: '123',
  message: 'Hello World!'
});

await discord_manage({
  action: 'create_text_channel',
  guildId: '456',
  name: 'new-channel'
});

await discord_manage({
  action: 'comprehensive_channel_management',
  guildId: '456',
  operations: [
    { action: 'create_category', name: 'New Category' },
    { action: 'create_text_channel', name: 'general', categoryId: 'cat_id' },
    { action: 'set_channel_private', channelId: 'chan_id', isPrivate: true }
  ]
});
Using Individual Tools
// Server information
await discord.getServerInfo(guildId);

// Advanced channel creation
await discord.createForumChannel(guildId, "discussions", categoryId, {
  topic: "Community discussions",
  slowmode: 30,
  isPrivate: true,
  allowedRoles: ["member_role_id"]
});

// Bulk privacy management
await discord.bulkSetPrivacy(guildId, {
  targets: [
    { id: "channel1", type: "channel", isPrivate: true },
    { id: "category1", type: "category", isPrivate: false }
  ]
});

// Export chat logs
await discord.exportChatLog(channelId, "JSON", {
  limit: 1000,
  dateRange: { start: "2024-01-01", end: "2024-12-31" }
});

Security

For Users

  • Keep your Discord bot token secret
  • Regularly rotate your tokens
  • Monitor bot activity
  • Use minimal required permissions

For Contributors

  • Never commit tokens or secrets
  • Validate all user inputs
  • Review dependencies for vulnerabilities
  • Follow secure coding practices

Tool Reference

Complete Tool List (93 Tools)

Message Management Tools (18)

Tool Name Description
send_message Send messages to channels
edit_message Edit existing messages
delete_message Delete specific messages
read_messages Read message history from channels
send_private_message Send DMs to users
edit_private_message Edit private messages
delete_private_message Delete private messages
read_private_messages Read DM history
add_reaction Add emoji reactions
remove_reaction Remove emoji reactions
pin_message Pin messages in channels
unpin_message Unpin messages
get_pinned_messages List pinned messages
bulk_delete_messages Delete multiple messages
crosspost_message Crosspost announcements
get_message_history Advanced message history with pagination
get_message_attachments Extract message attachments
read_images Read and analyze images from messages

Channel Management Tools (25)

Tool Name Description
create_text_channel Create text channels
create_voice_channel Create voice channels
create_forum_channel Create forum channels
create_announcement_channel Create announcement channels
create_stage_channel Create stage channels
edit_channel_advanced Edit any channel with advanced settings
delete_channel Delete channels
find_channel Find channels by name
list_channels List all server channels
create_category Create channel categories
delete_category Delete categories
find_category Find categories by name
list_channels_in_category List channels in specific category
set_channel_position Move channel position
set_channel_positions Move multiple channels
set_category_position Move category position
move_channel_to_category Move channels between categories
organize_channels Comprehensive channel organization
get_channel_structure Get complete channel hierarchy
set_channel_private Set channel privacy settings
set_category_private Set category privacy settings
bulk_set_privacy Bulk privacy management
comprehensive_channel_management All-in-one channel operations
upload_file Upload files to channels
export_chat_log Export chat logs (JSON/CSV/TXT)

Member & Role Management Tools (12)

Tool Name Description
get_user_id_by_name Find user IDs by username
get_members List server members with pagination
search_members Search members by name
edit_member Edit member properties
get_member_info Get detailed member information
create_role Create new server roles
delete_role Delete server roles
edit_role Modify role properties
add_role_to_member Assign roles to members
remove_role_from_member Remove roles from members
get_roles List all server roles
set_role_positions Reorder role hierarchy

Voice & Audio Tools (6)

Tool Name Description
join_voice_channel Connect bot to voice channels
leave_voice_channel Disconnect from voice channels
play_audio Stream audio in voice channels
stop_audio Stop audio playback
set_volume Control audio volume
get_voice_connections List active voice connections

Webhook Tools (4)

Tool Name Description
create_webhook Create channel webhooks
delete_webhook Delete webhooks
list_webhooks List channel webhooks
send_webhook_message Send messages via webhooks

Events & Scheduling Tools (4)

Tool Name Description
create_event Create scheduled server events
edit_event Edit existing events
delete_event Delete server events
get_events List all scheduled events

Emoji & Sticker Tools (6)

Tool Name Description
create_emoji Create custom server emojis
delete_emoji Delete custom emojis
get_emojis List all server emojis
create_sticker Create custom server stickers
delete_sticker Delete custom stickers
get_stickers List all server stickers

Privacy & Security Tools (7)

Tool Name Description
create_automod_rule Create automoderation rules
edit_automod_rule Edit automod rules
delete_automod_rule Delete automod rules
get_automod_rules List all automod rules
create_invite Create server invites
delete_invite Delete/revoke invites
get_invites List all server invites

Server Administration Tools (6)

Tool Name Description
get_server_info Get comprehensive server information
edit_server Edit server settings
get_server_widget Get server widget information
get_welcome_screen Get welcome screen settings
edit_welcome_screen Configure welcome screen
get_server_stats Get comprehensive server statistics

Interactive Components Tools (4)

Tool Name Description
send_embed Send rich embed messages
send_button Send messages with interactive buttons
send_select_menu Send messages with select menus
send_modal Send modal dialogs (interaction context)

Master Control Tool (1)

Tool Name Description
discord_manage Unified tool - access ALL 93 operations through one interface

Contributing

Project Creator & Lead Developer: @sashathelambo (Dr. Vova)

This project is primarily developed and maintained by sashathelambo. For contributions:

  1. Read our Contributing Guidelines
  2. Follow our Security Policy
  3. Use the PR template
  4. Test thoroughly before submitting
  5. Discuss major changes with @sashathelambo first

Development Guidelines

  • Use TypeScript for all code
  • Follow existing code style
  • Add tests for new features
  • Never commit sensitive data
  • Update documentation

Troubleshooting

Common Issues

  • Token Invalid: Regenerate your Discord bot token
  • Permission Denied: Check bot permissions in Discord server
  • Build Errors: Ensure Node.js 18+ and TypeScript are installed

Getting Help

  • Check our documentation
  • Report bugs
  • Request features
  • Join our community discussions

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This software is provided "as-is" without warranty. Users are responsible for:

  • Complying with Discord's Terms of Service
  • Securing their bot tokens and credentials
  • Using appropriate permissions and rate limiting
  • Monitoring and maintaining their Discord bots

Acknowledgments

  • @sashathelambo (Dr. Vova) - Project creator, lead developer, and architect of all 93 Discord tools
  • Discord.js team for the excellent Discord API wrapper
  • Model Context Protocol community for the standardized protocol
  • Everyone who uses and supports this project

MCP Server ยท Populars

MCP Server ยท New

    conorluddy

    Context-Pods

    ๐Ÿซ› Local-first Model Context Protocol management suite. Provides an MCP to create and manage other local MCPs. Useful for local Tooling etc.

    Community conorluddy
    vfarcic

    DevOps AI Toolkit

    Intelligent dual-mode agent for deploying applications to ANY Kubernetes cluster through dynamic discovery and plain English governance

    Community vfarcic
    paiml

    Depyler

    Compiles Python to Rust, helping transition off of Python to Energy Efficient and Safe Rust Code

    Community paiml
    campfirein

    Cipher

    Cipher is an opensource memory layer specifically designed for coding agents. Compatible with Cursor, Windsurf, Claude Desktop, Claude Code, Gemini CLI, AWS's Kiro, VS Code, and Roo Code through MCP, and coding agents, such as Kimi K2. Built by https://byterover.dev/

    Community campfirein
    neilberkman

    Clippy ๐Ÿ“Ž

    Unified clipboard tool for macOS that intelligently handles both text and file copying

    Community neilberkman