Skip to main content
Glama

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.


Related MCP server: discord-mcp

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

  1. Open Discord in a browser or the desktop app

  2. Open Developer Tools (F12 / Ctrl+Shift+I)

  3. Go to the Network tab

  4. Perform any action in Discord (send a message, switch channels)

  5. Find any request to discord.com/api

  6. Copy the Authorization header 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-here

VS 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_message

Send a text message to a Discord channel

read_messages

Read recent messages from a channel

wait_for_response

Send a command and wait for a bot response

list_channels

List channels in a guild

list_guilds

List guilds your account is in

delete_message

Delete a message (with confirmation prompt)

Available Resources

Resource

Description

discord://guild/{guildId}/channels

Channel list for a guild

discord://channel/{channelId}/recent

Last 25 messages in a channel


Example Workflow

  1. Open your Discord bot project in VS Code

  2. Start a Copilot Chat session in Agent Mode

  3. Ask: "Send !help to my #bot-testing channel and show me what my bot responds with"

  4. Copilot will:

    • Call list_guilds to find your server

    • Call list_channels to find #bot-testing

    • Call wait_for_response with !help

    • Show 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.js

Security

Concern

Mitigation

Token exposure

Read from env var only; never logged or returned in responses; .env in .gitignore

Discord ToS

Local dev/testing on your own servers only

Rate limiting

Automatic retry after retry_after on HTTP 429; 500ms polling interval

Accidental pings

allowed_mentions: { parse: [] } prevents @everyone/@here pings

Destructive actions

delete_message has destructiveHint: true — VS Code shows a confirmation dialog

Stdout pollution

All diagnostic output goes to stderr; stdout is reserved for MCP JSON-RPC


Dependencies

Package

Purpose

@modelcontextprotocol/sdk

MCP server framework (stdio transport, tool registration)

zod

Input schema validation

typescript (dev)

TypeScript compiler

@types/node (dev)

Node.js type definitions

vitest (dev)

Test runner

No Discord library needed. All Discord API calls use Node 18+ native fetch.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord by sending notifications, creating channels, and managing interactive questions with support for two-way responses. It allows for streamlined communication through channel keys and supports various question types like multiple-choice and extended-answer modals.
    -
  • A
    license
    A
    quality
    F
    maintenance
    Enables LLMs to read and send Discord messages, list servers and channels, and monitor unread messages via a selfbot that uses a user token (violates Discord ToS).
    8
    20
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord through the REST API and real-time events, supporting message management, user info, channel operations, and more with security controls.
    6
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to send and read messages in Discord channels, manage servers, channels, and roles via Discord's API.
    37
    2
    MIT