Provides tools for automating Discord server setup and management, including the creation and configuration of servers, channels, categories, and roles, as well as applying pre-built templates for gaming, community, business, and study groups.
Click on "Install 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 Server Setup MCPCreate a new server for me using the Gaming template"
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 Server Setup MCP
An MCP (Model Context Protocol) server for automating Discord server setup on macOS using AppleScript/JXA. This server exposes tools for creating servers, channels, categories, roles, and configuring server settings through AI assistants like Claude.
Features
Server Management: Create new Discord servers, check Discord status, and focus the Discord window
Channel Management: Create, edit, and delete text, voice, announcement, stage, and forum channels
Category Management: Create and organize channel categories
Role Management: Create, edit, delete, and reorder server roles with full permission control
Server Settings: Configure verification levels, content filters, and notification settings
Pre-built Templates: 4 ready-to-use server templates for common use cases
Pre-built Templates
Template | Description | Roles | Categories | Channels |
Gaming | Comprehensive gaming community with competitive, streaming, and events sections | 10 | 11 | 40+ |
Community | General community server for discussions and social interaction | 6 | 6 | 20+ |
Business | Professional workspace for teams and organizations | 6 | 6 | 18+ |
Study Group | Academic collaboration space for study groups and classes | 5 | 5 | 15+ |
Prerequisites
System Requirements
macOS (required for AppleScript automation)
Node.js 18.0.0 or higher
Discord Desktop App (not the web version)
Permissions Setup
This MCP server uses AppleScript to automate the Discord desktop application. For this to work, you must grant Accessibility permissions to the application running the MCP server.
Open System Preferences (or System Settings on macOS Ventura+)
Navigate to Privacy & Security > Accessibility
Click the lock icon to make changes
Add and enable the application that will run this MCP server:
If using Claude Desktop: Add Claude Desktop
If using Terminal: Add Terminal.app
If using VS Code: Add Visual Studio Code
If using a custom client: Add that application
Discord Setup
Install Discord Desktop App from discord.com
Log in to your Discord account
Keep Discord visible on screen during automation
Ensure Discord has a visible window (not minimized)
Installation
From npm (when published)
From Source
Configuration
Claude Desktop
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Or if installed globally:
Other MCP Clients
For other MCP-compatible clients, configure the server with:
Command:
nodeArguments:
["/path/to/discord-setup-mcp/dist/index.js"]Transport:
stdio
Available Tools
Server Tools
Tool | Description |
| Check if Discord is running and focused |
| Create a new Discord server with optional template |
| Bring Discord to the foreground |
Channel Tools
Tool | Description |
| Create a new category to organize channels |
| Create a text, voice, announcement, stage, or forum channel |
| Modify channel settings (name, topic, slowmode, etc.) |
| Delete a channel (requires confirmation) |
Role Tools
Tool | Description |
| Create a new role with custom color and permissions |
| Modify an existing role's properties |
| Delete a role (requires confirmation) |
| Change the hierarchy order of roles |
Settings Tools
Tool | Description |
| Open the server settings panel |
| Set member verification requirements |
| Configure explicit content scanning |
| Set default notification preferences |
Template Tools
Tool | Description |
| List all available server templates |
| Preview a template's roles and channels |
| Apply a template to create a new server |
Usage Examples
Checking Discord Status
Before performing any operations, verify Discord is running:
Creating a Server from a Template
Creating Custom Channels
Managing Roles
Configuring Server Settings
Tool Reference
check_discord_status
Checks if Discord is running and ready for automation.
Parameters: None
Returns:
isRunning: Whether Discord is runningisFrontmost: Whether Discord is the active windowwindowCount: Number of Discord windowsmainWindowTitle: Title of the main window
create_server
Creates a new Discord server.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | Server name (2-100 characters) |
| string | No | Discord template: |
create_channel
Creates a new channel in the server.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | Channel name (1-100 characters) |
| string | No | Channel type: |
| string | No | Category to place the channel in |
| string | No | Channel topic (max 1024 characters) |
| number | No | Slowmode in seconds (0-21600) |
| boolean | No | Age-restricted channel |
| number | No | Voice channel bitrate (8000-384000) |
| number | No | Voice channel user limit (0-99) |
create_role
Creates a new role in the server.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | Name of the server |
| string | Yes | Role name (1-100 characters) |
| string | No | Hex color code (e.g., |
| boolean | No | Display separately in member list |
| boolean | No | Allow @mentioning this role |
| array | No | Array of permission names |
set_verification_level
Sets the server verification level.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | One of: |
Verification Levels:
none: No requirementslow: Verified email requiredmedium: Registered on Discord for 5+ minuteshigh: Member of server for 10+ minuteshighest: Verified phone number required
list_templates
Lists all available server templates.
Parameters: None
Returns: Array of templates with name, description, and counts
preview_template
Shows detailed information about a template.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | Template ID: |
| boolean | No | Include channel details (default: true) |
| boolean | No | Include role details (default: true) |
apply_template
Applies a template to create a server structure.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | Template ID |
| string | Yes | Name for the new server |
| array | No | Channel names to skip |
| array | No | Role names to skip |
| object | No | Override role colors |
Troubleshooting
"Discord is not running" error
Launch the Discord desktop application
Make sure you're logged in
Wait for Discord to fully load before retrying
"Could not find element" errors
Ensure Discord is visible on screen (not minimized)
Make sure the correct Discord view is open (server list visible)
Try clicking on the Discord window manually first
Wait a moment and retry the operation
Accessibility permission issues
If operations fail silently:
Go to System Preferences > Privacy & Security > Accessibility
Remove and re-add your application
Restart the application
Try the operation again
Automation is too fast/slow
The automation includes built-in delays for UI elements to load. If you experience issues:
Discord's responsiveness varies with system load
Complex operations may need more time
Close unnecessary applications to improve performance
Development
Building from Source
Project Structure
Known Limitations
macOS Only: AppleScript automation is only available on macOS
Desktop App Required: The web version of Discord cannot be automated
Visual Automation: Discord must be visible on screen during operations
UI Changes: Discord UI updates may temporarily break some automations
Single Server: Operations work on the currently active/selected server
Rate Limits: Rapid successive operations may fail; built-in delays help mitigate this
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'feat: add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
MIT License - see the LICENSE file for details.
Acknowledgments
Built with the Model Context Protocol SDK
Uses Zod for runtime type validation
Inspired by the need to streamline Discord server setup for communities