Discord MCP
Discord administration MCP server for Codex, Claude Code, and other stdio MCP clients.
Tools
- Discovery: servers, channels, members, roles, channel access
- Messages: read, send, delete
- Channels: create, rename, delete
- Access: add/remove one member or all human members from a private channel
- Roles: add/remove roles from members
- Moderation: kick, ban, unban
Destructive tools require confirm: true. The server never returns the Discord token.
Setup
npm install
cp .env.example .env
npm start
The Discord application should enable Server Members Intent and Message Content Intent. Grant only the server permissions needed by the tools you intend to use.
One launcher for every harness
Create a tiny stdio launcher once, then point each client at it (absolute paths, so GUI
apps with a minimal PATH can start it too):
# ~/.local/bin/discord-mcp
#!/bin/sh
export PATH="$HOME/.local/bin:/usr/local/bin:/opt/homebrew/bin:$PATH"
exec "$HOME/.local/bin/npm" --prefix "$HOME/discord-mcp" start --silent
Without the launcher, the raw command is npm --prefix /path/to/discord-mcp start --silent.
--silent matters: plain npm start prints its > pkg start banner on stdout, which strict
stdio clients (Oh My Pi, some others) read as a broken JSON-RPC frame and drop the transport
(Transport closed). Claude Code and Codex happen to tolerate it.
Oh My Pi (omp) needs no entry of its own: it imports MCP servers from ~/.claude.json,
~/.codex/config.toml, Cursor, Gemini, Windsurf and VS Code configs automatically.