discord-mcp
๐ค Discord MCP Server
Give Claude full access to Discord.
Read messages, send messages, manage threads, react, search history, send DMs โ all through natural conversation.
What is this?
Discord MCP Server is a Model Context Protocol server that bridges Claude and Discord. Once connected, you can talk to Claude in plain English and it will interact with your Discord account โ no scripting, no dashboards, no manual API calls.
Uses a Discord user token โ no bot registration needed.
Demo
You: "What are the last 15 messages in #general?"
You: "Send a message to #announcements: deployment done โ
"
You: "Search #support for messages about 'login error'"
You: "DM user 123456789 and say hey, got a minute?"
You: "Create a thread called 'Release notes' from that last message"
You: "What are my recent mentions across all servers?"
You: "React to message 987654321 with ๐"Tools
Tool | Description |
| Connected account info (username, ping, server count) |
| All Discord servers you're in |
| Server details: members, boosts, verification level, etc. |
| All channels in a server, sorted by position |
| Info about a specific channel |
| Fetch recent messages (up to 100), with pagination |
| Send a message, with optional reply |
| Send a rich embed (title, description, fields, color, footer) |
| Edit one of your own messages |
| Delete a message |
| Pin or unpin a message |
| React with a Unicode or custom emoji |
| Start a thread from a message or create a standalone one |
| List server members with roles (up to 1 000) |
| Full profile of a user in a server |
| Keyword search across recent channel history |
| All pinned messages in a channel |
| List your open DM conversations |
| Send a direct message to any user by ID |
| Recent messages that mention you across all servers |
Requirements
Node.js 18+
Your Discord user token
Setup
1. Get your Discord User Token
Open Discord in your browser at discord.com/app
Press
F12โ Network tabSend any message or switch a channel
Find any request to
discord.com/api, click it, look at Request HeadersCopy the value of the
Authorizationheader โ that's your token
Or paste this in the browser Console:
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m)
.find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken()โ ๏ธ Your user token = your password. Never share it, commit it to git, or put it in public config files.
2. Install
git clone https://github.com/vovafes/discord-mcp-server.git
cd discord-mcp-server
npm install
npm run build3. Connect to Claude Desktop
Edit your Claude Desktop config:
macOS โ
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows โ
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/absolute/path/to/discord-mcp-server/dist/index.js"],
"env": {
"DISCORD_USER_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}Restart Claude Desktop โ the Discord tools will appear automatically.
4. Connect to Claude Code CLI
claude mcp add discord \
--env DISCORD_USER_TOKEN=YOUR_TOKEN_HERE \
-- node /absolute/path/to/discord-mcp-server/dist/index.jsConfiguration
Variable | Required | Default | Description |
| โ | โ | Your Discord user token |
| โ |
| Delay between REST calls in ms. Lower = faster, higher = safer. |
Rate-Limit Protection
Discord enforces strict limits on user tokens. Three layers of protection are built in:
Global throttle
Every REST call passes through a shared gate that enforces a minimum gap of REQUEST_DELAY_MS (default 5 seconds) between consecutive requests.
Exponential back-off
On a 429 Too Many Requests response, the server automatically retries:
attempt 1 โ wait 2s
attempt 2 โ wait 4s
attempt 3 โ wait 8s
attempt 4 โ wait 16s (then give up)Hard scan caps
Bulk tools that touch many channels are capped to prevent runaway API storms:
Tool | Limit |
| Max 500 messages (5 batches ร 100) |
| Max 20 channels scanned across all servers |
To tune the throttle:
"env": {
"DISCORD_USER_TOKEN": "...",
"REQUEST_DELAY_MS": "2000"
}Architecture
โโโโโโโโโโโโโโโโโโโโ
โ Claude / MCP โ
โ Client โ
โโโโโโโโโโคโโโโโโโโโโ
โ stdio (JSON-RPC)
โโโโโโโโโโผโโโโโโโโโโ
โ discord-mcp โ โ this server
โ (Node.js) โ
โโโโโโโโโโคโโโโโโโโโโ
โ discord.js (WebSocket + REST)
โโโโโโโโโโผโโโโโโโโโโ
โ Discord API โ
โโโโโโโโโโโโโโโโโโโโThe server speaks MCP over stdio โ no open ports, no HTTP server. The MCP host (Claude Desktop, Claude Code, etc.) spawns it as a subprocess.
Development
# Dev mode โ no build step needed
DISCORD_USER_TOKEN=your_token npm run dev
# Build
npm run build
# Run built output
DISCORD_USER_TOKEN=your_token npm startMade by Claude for Claude ๐ค
Built with discord.js ยท Model Context Protocol SDK
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/vovafes/discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server