HD

hardheadhackerhead/discord-mcp

Developer tools
35 stars 5 forks Quality 73 Trend 26MIT

Manage your entire Discord server from Claude Code, Claude Desktop, Cursor, or Windsurf via MCP. 134 admin tools across 20 categories. Interactive setup wizard included.

Overview

139 admin tools across 20 categories — roles, channels, members, messages, threads, moderation, forums, stages, webhooks, events, polls, DMs, and more. Just talk to your AI in plain English. If you find this useful, consider giving it a star on GitHub — it helps others discover the project! One command. No manual config files. No copying IDs. The interactive wizard walks you through everything: It will: 1. Guide you through creating a Discord bot (or use an existing one) 2. Validate your bot token live 3. Auto-generate the invite URL with all required permissions 4. Let you pick which server to manage 5. Auto-detect your installed MCP clients and write the config for you The wizard auto-detects which clients you have installed: Select one, multiple, or "All detected" to configure everything at once. Once connected to Claude Code or Claude Co-Work, just ask in natural language:

README

@quadslab.io/discord-mcp

Manage your entire Discord server from Claude Code, Claude Co-Work, Claude Desktop, Cursor, or Windsurf. 139 admin tools across 20 categories — roles, channels, members, messages, threads, moderation, forums, stages, webhooks, events, polls, DMs, and more. Just talk to your AI in plain English.

Built by QuadsLab.io | Discord | npm

If you find this useful, consider giving it a star on GitHub — it helps others discover the project!


Setup in 60 Seconds

One command. No manual config files. No copying IDs.

npx @quadslab.io/discord-mcp init

The interactive wizard walks you through everything:

It will:

  1. Guide you through creating a Discord bot (or use an existing one)
  2. Validate your bot token live
  3. Auto-generate the invite URL with all required permissions
  4. Let you pick which server to manage
  5. Auto-detect your installed MCP clients and write the config for you

Works With Every MCP Client

The wizard auto-detects which clients you have installed:

  Detected MCP clients:

  ● Claude Code      .mcp.json
  ● Claude Desktop   ~/Library/Application Support/Claude/claude_desktop_config.json
  ● Cursor           ~/.cursor/mcp.json
  ○ Windsurf         (not detected)

  ? Which client(s) to configure?
  1. Claude Code (detected)
  2. Claude Desktop (detected)
  3. Cursor (detected)
  4. Windsurf (not found)
  5. All detected (3 clients)
  6. Skip (show config to copy manually)

Select one, multiple, or “All detected” to configure everything at once.

Verify Your Setup

npx @quadslab.io/discord-mcp check
  QuadsLab.io [discord-mcp] — Health Check
  ────────────────────────────────────────────────────

  Token ............ present
  Bot .............. MyBot#1234
  Server ........... My Gaming Server (1,024 members)

  Permissions
  ────────────────────────────────────────────────────

  ✔ Manage Roles .............. yes
  ✔ Manage Channels ........... yes
  ✔ Kick Members .............. yes
  ✔ Ban Members ............... yes
  ...

  ██████████████████████████████  100% (24/24)

  ✔ All 24 permissions granted

  ┌──────────────────────────────────────────────────┐
  │ MCP server is ready!                             │
  │ Run discord-mcp or use via .mcp.json in Claude   │
  └──────────────────────────────────────────────────┘

What Can You Do With It?

Once connected to Claude Code or Claude Co-Work, just ask in natural language:

  • “Send a welcome message in #general”
  • “Lock down the #announcements channel”
  • “Who reacted to the last message in #server-guide?”
  • “Create a role called VIP with a gold color and assign it to @john”
  • “Show me the audit log for the last 24 hours”
  • “Set up an automod rule to block links in #general”
  • “Show me the last 20 messages in the ‘API Discussion’ thread”
  • “Send a reply in the ‘bug-report’ thread saying we’re looking into it”
  • “List all archived threads in #general”
  • “Create a forum post in #feedback titled Bug Reports”
  • “Timeout @spammer for 1 hour for spamming”
  • “List all webhooks and delete the unused ones”
  • “Schedule a community event for Friday at 8pm in the Stage channel”
  • “Bulk delete the last 50 messages in #bot-testing”
  • “Give everyone with the Member role access to #private-channel”
  • “Create a poll in #general asking which game to play Friday”
  • “DM all moderators about the upcoming server event”
  • “Set the bot’s status to ‘Watching over 500 members’”
  • “Show me who’s in the Gaming voice channel right now”

Claude automatically resolves channel, role, and member names using fuzzy matching — no need to look up IDs.


Features

  • 139 tools across 20 categories — comprehensive Discord server administration without leaving the terminal
  • Interactive setup wizard — npx init walks you through bot creation, token validation, and config in under a minute
  • Health check & permission audit — npx check verifies your token, server access, and all 24 required permissions with a visual progress bar
  • Fuzzy name resolution — type "bot testing", "bot-testing", or "bottesting" and it resolves correctly; no need to look up IDs
  • Thread-aware messaging — all message tools (send, edit, pin, react, etc.) work in threads and channels alike — no separate tools needed
  • Zero-config name matching — channels, roles, and members are all resolved by name, ID, or mention format automatically
  • Pre-cached server data — all channels, roles, and members are cached on startup for instant lookups without extra API calls
  • Structured JSON responses — every tool returns consistent, pretty-printed JSON
  • Audit log integration — all modifying operations accept a reason parameter that appears in the Discord audit log
  • Helpful error recovery — failed lookups return suggestions (e.g., “Did you mean: #general, #bot-testing?”)
  • MCP resources — three read-only resources for server overview data

Alternative Setup (Manual)

If you prefer to configure things manually instead of using the wizard:


CLI Reference

$ npx @quadslab.io/discord-mcp [command]
Command Description
init Interactive setup wizard — creates bot, validates token, auto-configures Claude Code / Co-Work / Desktop / Cursor / Windsurf
check Health check — verifies token, server access, and permission audit
update Check for new versions and clear the npx cache so the next run pulls the latest
start Start the MCP server (default when no command given)
help Show help message
version Show version

When launched via .mcp.json (stdin is not a TTY), the server starts automatically — no subcommand needed.

Updating

Your MCP client config doesn’t pin a version, so updating is simple:

npx @quadslab.io/discord-mcp update

This checks npm for the latest version, clears the npx cache, and your next MCP client launch will use the new version automatically. Your bot token, server, and client configuration are all preserved — nothing needs to be reconfigured.

To verify after updating:

npx @quadslab.io/discord-mcp version
npx @quadslab.io/discord-mcp check

Tools Overview

Summary

Category Tools Description
Guild 2 Server information and metadata
Roles 11 Role creation, editing, permissions, and assignment
Channels 20 Channel creation, editing, permissions, and organization
Members 15 Member management, moderation, and bulk operations
Messages 14 Send, edit, delete, pin, and react to messages (works in threads too)
Reactions 1 Detailed reaction data with reactor info
Server Admin 16 Server settings, invites, bans, audit log, and integrations
Threads 15 Thread creation, reading, editing, archiving, and member management
Forums 5 Forum posts and tag management
Emojis & Stickers 7 Custom emoji and sticker management
Webhooks 4 Webhook creation, deletion, and messaging
Scheduled Events 5 Event creation, editing, and deletion
Stage Instances 3 Stage channel management
Auto-Moderation 4 Automod rule creation, editing, and deletion
Polls 3 Create polls, get results, end polls early
Direct Messages 2 Send DMs and embed DMs to server members
Bot Presence 2 Set bot status/activity, get bot info
Server Templates 4 List, create, delete, sync server templates
Application Commands 4 Manage slash commands (CRUD)
Onboarding 2 Get and edit server onboarding configuration
Total 139


Fuzzy Matching

All tools that accept channel, role, or member names use smart fuzzy matching. You never need to look up IDs manually. The resolution order is:

  1. Exact ID match — pass a Discord snowflake ID directly
  2. Exact name match — case-insensitive
  3. Normalized match — ignores hyphens, spaces, and underscores ("bot testing" matches "bot-testing")
  4. Substring match — partial name matches at 0.7+ similarity threshold
  5. Thread fallback — if no channel matches, active threads are searched using the same steps above
  6. Archived thread fallback — if an ID is provided and not found in active threads, the thread is fetched directly (covers archived threads)

Mention formats are also handled automatically:

  • Channels: #name or ``
  • Roles: @name or ``
  • Members: @name or or

If no match is found, the error message includes suggestions of similar names to help you correct the input.


MCP Resources

Three read-only resources are exposed for quick server overview data:

URI Description
discord://server/summary Text overview of the server (channels, roles, members)
discord://server/channels JSON list of all channels organized by category
discord://server/roles JSON list of all roles sorted by position

Required Permissions

The Discord bot needs the following permissions for full functionality:

Category Permissions
General Manage Server, Manage Roles, Manage Channels, View Audit Log, Manage Webhooks, Manage Events, Manage Emojis and Stickers
Text Send Messages, Manage Messages, Read Message History, Add Reactions, Use External Emojis
Voice Move Members, Disconnect Members
Moderation Kick Members, Ban Members, Moderate Members, Manage Auto Moderation

The init wizard auto-generates an invite URL with all of these. If you set up manually, see the Bot Setup Guide for which checkboxes to select.

The bot can only act within its role hierarchy — it cannot manage roles positioned higher than its own highest role.

Gateway Intents

These privileged intents must be enabled in the Discord Developer Portal:

  • Server Members Intent — required for member management
  • Message Content Intent — required for reading message content

Troubleshooting

Run the health check to diagnose issues:

npx @quadslab.io/discord-mcp check

Architecture

@quadslab.io/discord-mcp/
├── package.json
├── tsconfig.json
├── README.md
├── LICENSE
├── .env.example
├── docs/
│   ├── discord-mcp-server.md    # Full tool reference documentation
│   └── bot-setup-guide.md       # Step-by-step bot creation guide
└── src/
    ├── cli.ts                   # CLI — init wizard, health check, server start
    ├── mcp-server.ts            # MCP server entry — validates env, exports main()
    ├── index.ts                 # Tool/resource registration and MCP request routing
    ├── discord-client.ts        # Discord.js client — intents, caching, rate limit retry
    └── tools/
        ├── index.ts             # Tool registry — routes calls to category handlers
        ├── utils.ts             # Fuzzy matching for channels, roles, members
        ├── guild.ts             # Server info (2)
        ├── roles.ts             # Role management (11)
        ├── channels.ts          # Channel management (20)
        ├── members.ts           # Member management (15)
        ├── messages.ts          # Messaging (14)
        ├── reactions.ts         # Reactions (1)
        ├── server.ts            # Server admin (16)
        ├── threads.ts           # Thread management (15)
        ├── forums.ts            # Forum channels (5)
        ├── emojis.ts            # Emoji & stickers (7)
        ├── webhooks.ts          # Webhooks (4)
        ├── events.ts            # Scheduled events (5)
        ├── stage.ts             # Stage instances (3)
        ├── automod.ts           # Auto-moderation (4)
        ├── polls.ts             # Polls (3)
        ├── dms.ts               # Direct messages (2)
        ├── presence.ts          # Bot presence (2)
        ├── templates.ts         # Server templates (4)
        ├── commands.ts          # Application commands (4)
        └── onboarding.ts        # Onboarding (2)

Community


Contributing

Contributions are welcome! See CONTRIBUTING.md for development setup, code style, and guidelines.


License

MIT License. Copyright © 2026 QuadsLab.io.

See LICENSE for the full text.

View this README on GitHub

Install

npx -y @quadslab.io/discord-mcp

Configuration

{ "mcpServers": { "discord": { "command": "npx", "args": ["-y", "@quadslab.io/discord-mcp"], "env": { "DISCORD_TOKEN": "your-bot-token", "DISCORD_GUILD_ID": "your-server-id" } } } }