discord-mcp
io.github.PaSympaPublished by GitHub account PaSympav2.3.0Updated Nov 7, 2026
Run your Discord server from Claude, Cursor or VS Code: messages, moderation, roles, forums, events
Overview
Connects an assistant to your own Discord bot so it can read, post, moderate and administer your servers in plain language.
- What you can do
- Discover servers, channels and guild details, and find channels by name
- Read, search, send, reply to, edit, delete, pin, react to and forward messages, plus threads and embeds
- Create, edit, move, clone and delete channels, and manage permission overwrites and audits
- List, search, kick, ban, timeout and prune members; create, edit and assign roles
- Manage forum posts and tags, webhooks, scheduled events, invites, DMs, audit log, screening and server stats
- When to use it
- Useful when you want an assistant to summarize busy channels, file feedback into forum posts, run moderation cleanups, schedule and announce community events, or audit permissions without clicking through Discord yourself.
- Requirements
- Runs locally via npx (Node.js 22 or later) or the Docker image. Needs a Discord bot token in DISCORD_TOKEN, a bot created in the Discord Developer Portal and invited to your server with the requested permissions. Optional DISCORD_MCP_TOOLSETS, DISCORD_ALLOWED_GUILDS, DISCORD_MESSAGE_CONTENT and DISCORD_GUILD_MEMBERS tune exposure and intents.
Installation
In SourceWeft
- Open discord-mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[npm] [npm downloads] [License] [discord-mcp MCP server]
[Install in VS Code] [Install in VS Code Insiders] [Install in Cursor]
discord-mcp connects Claude, Cursor, VS Code and any other MCP client to your Discord server through your own bot. Ask in plain language: your assistant reads channels, answers, moderates, and manages roles, channels, forums and events, with 100 tools behind it.
See it in action
Calls made live with Claude Code on a demo server; the panel summarizes their results. The Discord window shows real captures, except that the spot of each new message or post stays blank until it appears.
What you can ask
Quick start
-
Create a bot. In the Discord Developer Portal, create an application, open Bot, then Reset Token and copy it. On the same page, enable Server Members Intent and Message Content Intent.
-
Invite it to your server. Replace
YOUR_CLIENT_IDwith the Application ID from General Information, then open the link:It requests the permissions the tools use. Remove the ones you do not need in the authorization screen.
-
Add it to your client. Use a button above, or paste this into your client's MCP config:
npx downloads and runs the server (Node.js 22 or later); nothing else to install. Per-client instructions are under Clients.
Expose only what you need
The full set of 100 tools costs about 32k tokens of context when a client loads them all. Most assistants need a fraction of it: set DISCORD_MCP_TOOLSETS to the toolsets you want.
Context sizes are measured on the tools/list response (bytes divided by 4). Toolsets: discovery, messages, channels, permissions, members (includes kick, ban and timeout), roles, moderation (the audit log), screening, stats, forums, webhooks, scheduled_events, invites, dm. A toolset brings its whole module, destructive tools included; an unknown name stops the server at startup instead of exposing everything.
Safety
- Your bot, your permissions. The server can only do what the bot's Discord permissions allow.
- Preview before mass actions.
discord_bulk_delete_messages,discord_bulk_ban,discord_prune_membersanddiscord_delete_channelrun as a dry run by default and report what would happen. Passdry_run: falseto apply. - Stay in your servers.
DISCORD_ALLOWED_GUILDSrestricts every call to the guilds you list, whether the target is addressed by guild, channel, thread, webhook or invite. - Clear annotations. Every tool declares
readOnlyHint, and every write tool declaresdestructiveHint, so clients can approve reads automatically and ask before destructive calls. - Keep the token out of files. Prefer your client's secret prompt (the VS Code button asks for the token) over a config file you might commit.
Clients
Claude Desktop
Add the config from Quick start to claude_desktop_config.json, then restart Claude Desktop.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Code
Cursor
Use the Install in Cursor button, then replace YOUR_BOT_TOKEN. Or add the config from Quick start to ~/.cursor/mcp.json. See the Cursor MCP docs.
VS Code / GitHub Copilot
Use the Install in VS Code button: VS Code asks for the token and stores it as a secret. Or add this to .vscode/mcp.json:
See the VS Code MCP docs.
Windsurf
Add the config from Quick start to ~/.codeium/windsurf/mcp_config.json, then refresh the MCP servers list.
Codex CLI
Cline
Open MCP Servers, then Configure, and add the config from Quick start to cline_mcp_settings.json.
Docker
From source
You can also put DISCORD_TOKEN=YOUR_BOT_TOKEN in a .env file at the project root; the server loads it on start.
Configuration
The intent flags only change what the bot requests when it connects. Requesting a privileged intent that is not enabled in the Developer Portal closes the connection with code 4014; set the flag to false to connect anyway. What the tools can read is governed by the portal toggles: every message is fetched over the REST API, which Discord gates on the portal setting alone. With Message Content off in the portal, message bodies come back empty (content, embeds, attachments), except the bot's own messages, DMs and messages that mention the bot; with Server Members off, member listing fails.
Tools
100 tools in 14 toolsets. Each one documents its permissions, side effects and return shape in its description.
Discovery (4 tools)
Messages (21 tools)
Channels (8 tools)
Channel permissions (6 tools)
Members (11 tools)
Roles (9 tools)
Forums (10 tools)
Webhooks (8 tools)
Scheduled events (7 tools)
Direct messages (7 tools)
Invites (5 tools)
Moderation, screening and stats (4 tools)
Troubleshooting
- Every call fails with close code
4014. The bot requests a privileged intent that is off in the Developer Portal. Enable Server Members and Message Content there, or setDISCORD_GUILD_MEMBERS=false/DISCORD_MESSAGE_CONTENT=false. - Messages come back with empty text. Message Content is off in the portal. Enable it; the flag alone does not change what the REST API returns.
- A channel reads as empty. The bot lacks Read Message History there: Discord returns an empty list rather than an error.
Missing AccessorMissing Permissions. The bot cannot see the channel, or the target role or member sits above the bot's highest role. Check overwrites withdiscord_get_channel_permissions.- Finding IDs. Enable Developer Mode in Discord (Settings, Advanced), then right-click a server, channel or user and choose Copy ID.
Contributing
Contributions are welcome. CONTRIBUTING.md covers the module layout, the tool definition quality bar and the release flow. Report vulnerabilities as described in SECURITY.md.
License
MIT, see LICENSE. discord-mcp is an independent open-source project, not affiliated with or endorsed by Discord Inc.
VS Code and VS Code Insiders icons: Codicons © Microsoft Corporation, licensed under CC BY 4.0.
Source: README.md at commit 717592d
Tools
0Version history
2- v2.3.0LatestNov 7, 2026
- v2.2.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts