Enables sending and receiving messages, listing guilds and channels, and monitoring bot responses via a user account, facilitating real-time testing of Discord bot commands.
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., "@Discord MCP Serversend !help to #bot-testing and show me the bot's response"
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.
Discord MCP Server for VS Code
An MCP (Model Context Protocol) server that lets VS Code Copilot (or any MCP-compatible agent) send and receive Discord messages as your own user account — enabling real-time testing of Discord bot commands directly from your editor.
⚠️ Discord ToS Notice: Automating a user account ("self-botting") is against Discord's Terms of Service. This tool is intended strictly for local development/testing of your own bots on your own servers. Do not use it for spam, abuse, or on servers you don't control. Use at your own risk.
Why a user account?
Many bot commands check server state tied to the command invoker — e.g., message.member.voice.channel to verify the user is in a voice channel before playing audio. A separate bot account cannot satisfy these checks. Messages must originate from your real Discord user to test these commands properly.
Prerequisites
Node.js 18+ (uses native
fetch)VS Code with GitHub Copilot (or another MCP host like Claude Desktop / Cursor)
Your Discord user token (see below)
Obtaining your Discord user token
Open Discord in a browser or the desktop app
Open Developer Tools (
F12/Ctrl+Shift+I)Go to the Network tab
Perform any action in Discord (send a message, switch channels)
Find any request to
discord.com/apiCopy the
Authorizationheader value — that's your user token
Your user token grants full access to your Discord account. Treat it like a password and never commit it to version control.
Installation
# 1. Clone the repository
git clone https://github.com/masonbesmer/code-discord-mcp.git
cd code-discord-mcp
# 2. Install dependencies
npm install
# 3. Build
npm run build
# 4. Set your Discord user token
cp .env.example .env
# Edit .env and set DISCORD_USER_TOKEN=your-token-hereVS Code Integration
The repository includes .vscode/mcp.json which automatically registers the server with VS Code. The server reads your token from the DISCORD_USER_TOKEN environment variable.
Make sure the variable is set in your shell before launching VS Code:
# macOS / Linux
export DISCORD_USER_TOKEN="your-token-here"
code .
# Windows PowerShell
$env:DISCORD_USER_TOKEN = "your-token-here"
code .Available Tools
Tool | Description |
| Send a text message to a Discord channel |
| Read recent messages from a channel |
| Send a command and wait for a bot response |
| List channels in a guild |
| List guilds your account is in |
| Delete a message (with confirmation prompt) |
Available Resources
Resource | Description |
| Channel list for a guild |
| Last 25 messages in a channel |
Example Workflow
Open your Discord bot project in VS Code
Start a Copilot Chat session in Agent Mode
Ask: "Send
!helpto my #bot-testing channel and show me what my bot responds with"Copilot will:
Call
list_guildsto find your serverCall
list_channelsto find#bot-testingCall
wait_for_responsewith!helpShow you the bot's response inline in the chat
Development
# Watch mode (recompiles on file changes)
npm run dev
# Run tests
npm test
# Debug with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsSecurity
Concern | Mitigation |
Token exposure | Read from env var only; never logged or returned in responses; |
Discord ToS | Local dev/testing on your own servers only |
Rate limiting | Automatic retry after |
Accidental pings |
|
Destructive actions |
|
Stdout pollution | All diagnostic output goes to stderr; stdout is reserved for MCP JSON-RPC |
Dependencies
Package | Purpose |
| MCP server framework (stdio transport, tool registration) |
| Input schema validation |
| TypeScript compiler |
| Node.js type definitions |
| Test runner |
No Discord library needed. All Discord API calls use Node 18+ native
fetch.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.