TheeDiscordMCP
TheeDiscordMCP lets you fully manage an allowlisted Discord server through the official REST API, with multiple safety modes, dry-run planning, and an idempotent blueprint system.
Guild & Settings: Read/modify guild properties (name, description, verification level, locale) and manage onboarding, welcome screen, membership screening.
Channel Management: Create, update, delete, reorder text/voice/stage/forum/media/category channels; set permission overwrites.
Role Management: Create, update, delete, reorder roles; bulk assign/remove roles from members.
Member Moderation: List/search members; modify properties; timeout, kick, ban, unban (destructive actions require exact confirmation).
Messages: List, send, edit, delete, pin/unpin messages; bulk-delete messages.
Automod & Emojis: Manage AutoMod rules; list/create/modify/delete guild emojis.
Webhooks & Invites: Full webhook lifecycle (create, execute, etc.) with secret redaction; manage invites.
Voice: Inspect, move, disconnect, mute/deafen members in voice channels.
Bot Profile: Read/update operator bot’s username, avatar, banner, and application metadata.
Blueprint System: Export a guild snapshot; plan changes via a JSON blueprint (non‑destructive dry‑run); apply blueprints idempotently without deleting unmanaged resources.
Safety: Three modes –
read-only(default),safe-write(creates/updates),full(all operations); destructive actions require opt‑in and exact confirmation strings.Audit & Health: Read audit logs; validate bot token and list accepted permission names.
Raw API: Tightly scoped HTTP escape hatch for Discord endpoints not covered by named tools.
Rate Limiting & State: Automatic rate‑limit handling; local state tracking for idempotent ops.
Provides tools for inspecting and managing an allowlisted Discord server, covering guild settings, roles, channels, messages, members, moderation actions, AutoMod, onboarding, emojis, and audit logs.
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., "@TheeDiscordMCPExport the server snapshot to review current setup"
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.
TheeDiscordMCP
A local MCP server for inspecting and managing an allowlisted Discord server through Discord's official REST API. It covers day-to-day administration, dry-run planning, local resource tracking, audit reasons, and explicit safeguards around high-impact actions.
What it manages
Guild settings, roles, role order, and member role assignment
Categories, text/announcement/voice/stage/forum/media channels, ordering, and permission overwrites
Forum tags, posting guidelines, sorting, and layout
Messages: list, send, edit, delete, pin, unpin, and bulk delete
Members: list/search, timeout, kick, ban, and unban
Reactions, invites, scheduled events, and forum/thread membership
Webhook lifecycle and execution with token/URL redaction
Voice member inspection, moves, disconnects, server mute, and server deaf
Membership Screening rule reads and guarded updates
AutoMod rules, onboarding, welcome screen, emojis, and audit-log reads
Idempotent JSON blueprints with a dry-run planner
Bot and application profile management, including avatar and banner data URIs
A tightly scoped raw REST escape hatch for new Discord endpoints and guild-owned resources
There are 37 MCP tools. Related operations are grouped into explicit action-based tools, so the public surface stays discoverable without turning every REST action into a separate executable. Every server call is limited to guild IDs in the local allowlist. The raw escape hatch accepts routes under an allowed guild, its verified channels, webhooks, invites, stage instances, and the operator's commands for that guild. This keeps broad Discord API coverage without exposing unrelated servers.
discord_capabilities reports the named operation families without contacting Discord. The advanced families cover directory/member searches, reactions, webhooks, invites, scheduled events, forum threads, voice members, permission overwrites, and Membership Screening. Empty 204 No Content responses are normalized to { "ok": true }, and webhook tokens and URLs are redacted from tool results.
Related MCP server: mcp-gatehouse
Safety modes
Mode | Reads | Create/update | Delete, ban, kick, raw writes |
| yes | no | no |
| yes | yes | no |
| yes | yes | only with destructive opt-in and exact confirmation |
The default is read-only. Blueprint application never deletes resources. It creates or updates matching resources and tracks their Discord IDs in .data/state.json so reruns do not create duplicates.
1. Create the Discord operator
Create a dedicated application in the Discord Developer Portal, add a bot, and invite it only to the server you want to manage. Never use a personal/user token.
For the full tool set, the bot may need:
View Channels, Read Message History, Send Messages, Add Reactions, Manage Messages, Manage Threads
Manage Channels, Manage Roles
Moderate Members, Kick Members, Ban Members
Move Members, Mute Members, Deafen Members
Manage Guild, View Audit Log, Create Events, Manage Events
Create Instant Invite, Manage Webhooks, and Manage Emojis and Stickers only if you use related operations
Administrator is convenient but not required or recommended. Discord role hierarchy still applies: the operator can manage only roles and members below its highest role.
2. Install and configure
Requires Node.js 20.19 or newer and pnpm.
cd TheeDiscordMCP
pnpm install
Copy-Item .env.example .envOpen .env locally and set:
DISCORD_BOT_TOKEN=your_dedicated_bot_token
DISCORD_ALLOWED_GUILD_IDS=123456789012345678
DISCORD_MODE=read-onlyDo not paste the token into messages, issue reports, or committed files. To copy a Discord server ID, enable Developer Mode in Discord, right-click the server, and choose Copy Server ID.
Build and verify:
pnpm check3. Connect an MCP client
Add the server to your MCP client configuration. An editable example is included as mcp.config.example.toml:
[mcp_servers.thee-discord]
command = "node"
args = ["C:/path/to/TheeDiscordMCP/dist/index.js"]
cwd = "C:/path/to/TheeDiscordMCP"
startup_timeout_sec = 20
tool_timeout_sec = 120Restart the client and export a snapshot before making changes. Review the channels, roles, forums, and permission overwrites while the server is still in read-only mode.
Once the snapshot looks right, set DISCORD_MODE=safe-write, restart the MCP server, and apply ordinary changes. Keep destructive mode disabled until a specific deletion or moderation action is needed.
Blueprint workflow
examples/elalem.blueprint.json provides an English ELALEM support and community layout with restrained category styling, a welcome message, two forum templates, tags, staff privacy, and practical channel names.
See docs/ELALEM.md for the live-server handoff, current user-facing channel copy, and the remaining boundaries that require Discord's UI or another bot runtime.
Recommended flow:
discord_export_snapshotAdjust the blueprint to preserve intentional existing resources.
discord_plan_blueprintordiscord_apply_blueprintwithdryRun: true.Review every planned action.
Switch to
safe-writeand rundiscord_apply_blueprintwithdryRun: false.Export another snapshot and verify the result.
Blueprint channel mentions use {{channel:key}}; they are resolved to real clickable Discord mentions when a message is sent.
The blueprint deliberately performs no deletion. Existing channels or roles with different names are left alone unless their tracked key points to them. Review duplicate or obsolete resources separately before removing anything.
Destructive operations
To permit a specific destructive action temporarily:
DISCORD_MODE=full
DISCORD_ENABLE_DESTRUCTIVE=trueEach destructive tool returns or documents the exact confirmation text it expects, such as DELETE CHANNEL <id>. The confirmation is checked again inside the MCP server. Return to safe-write or read-only afterward.
The raw REST tool treats every non-GET request as destructive. This keeps an unfamiliar endpoint from bypassing the named safety gates.
Development
pnpm typecheck
pnpm test
pnpm buildThe server uses stdio, so stdout is reserved for MCP protocol traffic; operational messages go to stderr. Discord rate limits are handled by @discordjs/rest.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceThe most complete open-source MCP server for Discord — 80+ tools, dual-mode: integrated (plugin) or standaloneLast updated279MIT
- AlicenseAqualityBmaintenancePermission tiers, approval gates, and audit logging for MCP servers.Last updated3MIT
- FlicenseCqualityCmaintenanceAn MCP server that exposes Discord bot actions as tools for LLM clients.Last updated429
- Alicense-qualityAmaintenanceA local MCP server that reads Discord servers and channels and optionally sends messages with explicit allowlists, read-only by default.Last updated40MIT
Related MCP Connectors
A basic MCP server to operate on the Postman API.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
A MCP server built for developers enabling Git based project management with project and personal…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheETR/TheeDiscordMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server