NestDaddy

Discord Mcp

io.github.qungtai/discord-mcp ยท v0.2.0

A community MCP server for the Discord REST API with traceable coverage

Connect Runs on your machine

Terminal
claude mcp add discord-mcp -e DISCORD_TOKEN=<DISCORD_TOKEN> -e DISCORD_MCP_ALLOWED_GUILDS=<DISCORD_MCP_ALLOWED_GUILDS> -e DISCORD_MCP_TOOLSETS=<DISCORD_MCP_TOOLSETS> -e DISCORD_MCP_READ_ONLY=<DISCORD_MCP_READ_ONLY> -e DISCORD_MCP_APPROVAL=<DISCORD_MCP_APPROVAL> -e DISCORD_MCP_ALLOW_DMS=<DISCORD_MCP_ALLOW_DMS> -e DISCORD_MCP_FILE_ROOTS=<DISCORD_MCP_FILE_ROOTS> -e DISCORD_MCP_DOWNLOAD_DIR=<DISCORD_MCP_DOWNLOAD_DIR> -e DISCORD_MCP_MAX_DOWNLOAD_BYTES=<DISCORD_MCP_MAX_DOWNLOAD_BYTES> -e DISCORD_MCP_MAX_UPLOAD_BYTES=<DISCORD_MCP_MAX_UPLOAD_BYTES> -e DISCORD_MCP_REQUEST_TIMEOUT_MS=<DISCORD_MCP_REQUEST_TIMEOUT_MS> -e DISCORD_MCP_RATE_LIMIT_WAIT_MS=<DISCORD_MCP_RATE_LIMIT_WAIT_MS> -- npx -y @qungtai/[email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "discord-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@qungtai/[email protected]"
      ],
      "env": {
        "DISCORD_TOKEN": "<DISCORD_TOKEN>",
        "DISCORD_MCP_ALLOWED_GUILDS": "<DISCORD_MCP_ALLOWED_GUILDS>",
        "DISCORD_MCP_TOOLSETS": "<DISCORD_MCP_TOOLSETS>",
        "DISCORD_MCP_READ_ONLY": "<DISCORD_MCP_READ_ONLY>",
        "DISCORD_MCP_APPROVAL": "<DISCORD_MCP_APPROVAL>",
        "DISCORD_MCP_ALLOW_DMS": "<DISCORD_MCP_ALLOW_DMS>",
        "DISCORD_MCP_FILE_ROOTS": "<DISCORD_MCP_FILE_ROOTS>",
        "DISCORD_MCP_DOWNLOAD_DIR": "<DISCORD_MCP_DOWNLOAD_DIR>",
        "DISCORD_MCP_MAX_DOWNLOAD_BYTES": "<DISCORD_MCP_MAX_DOWNLOAD_BYTES>",
        "DISCORD_MCP_MAX_UPLOAD_BYTES": "<DISCORD_MCP_MAX_UPLOAD_BYTES>",
        "DISCORD_MCP_REQUEST_TIMEOUT_MS": "<DISCORD_MCP_REQUEST_TIMEOUT_MS>",
        "DISCORD_MCP_RATE_LIMIT_WAIT_MS": "<DISCORD_MCP_RATE_LIMIT_WAIT_MS>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "discord-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@qungtai/[email protected]"
      ],
      "env": {
        "DISCORD_TOKEN": "<DISCORD_TOKEN>",
        "DISCORD_MCP_ALLOWED_GUILDS": "<DISCORD_MCP_ALLOWED_GUILDS>",
        "DISCORD_MCP_TOOLSETS": "<DISCORD_MCP_TOOLSETS>",
        "DISCORD_MCP_READ_ONLY": "<DISCORD_MCP_READ_ONLY>",
        "DISCORD_MCP_APPROVAL": "<DISCORD_MCP_APPROVAL>",
        "DISCORD_MCP_ALLOW_DMS": "<DISCORD_MCP_ALLOW_DMS>",
        "DISCORD_MCP_FILE_ROOTS": "<DISCORD_MCP_FILE_ROOTS>",
        "DISCORD_MCP_DOWNLOAD_DIR": "<DISCORD_MCP_DOWNLOAD_DIR>",
        "DISCORD_MCP_MAX_DOWNLOAD_BYTES": "<DISCORD_MCP_MAX_DOWNLOAD_BYTES>",
        "DISCORD_MCP_MAX_UPLOAD_BYTES": "<DISCORD_MCP_MAX_UPLOAD_BYTES>",
        "DISCORD_MCP_REQUEST_TIMEOUT_MS": "<DISCORD_MCP_REQUEST_TIMEOUT_MS>",
        "DISCORD_MCP_RATE_LIMIT_WAIT_MS": "<DISCORD_MCP_RATE_LIMIT_WAIT_MS>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "discord-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@qungtai/[email protected]"
      ],
      "env": {
        "DISCORD_TOKEN": "<DISCORD_TOKEN>",
        "DISCORD_MCP_ALLOWED_GUILDS": "<DISCORD_MCP_ALLOWED_GUILDS>",
        "DISCORD_MCP_TOOLSETS": "<DISCORD_MCP_TOOLSETS>",
        "DISCORD_MCP_READ_ONLY": "<DISCORD_MCP_READ_ONLY>",
        "DISCORD_MCP_APPROVAL": "<DISCORD_MCP_APPROVAL>",
        "DISCORD_MCP_ALLOW_DMS": "<DISCORD_MCP_ALLOW_DMS>",
        "DISCORD_MCP_FILE_ROOTS": "<DISCORD_MCP_FILE_ROOTS>",
        "DISCORD_MCP_DOWNLOAD_DIR": "<DISCORD_MCP_DOWNLOAD_DIR>",
        "DISCORD_MCP_MAX_DOWNLOAD_BYTES": "<DISCORD_MCP_MAX_DOWNLOAD_BYTES>",
        "DISCORD_MCP_MAX_UPLOAD_BYTES": "<DISCORD_MCP_MAX_UPLOAD_BYTES>",
        "DISCORD_MCP_REQUEST_TIMEOUT_MS": "<DISCORD_MCP_REQUEST_TIMEOUT_MS>",
        "DISCORD_MCP_RATE_LIMIT_WAIT_MS": "<DISCORD_MCP_RATE_LIMIT_WAIT_MS>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
DISCORD_TOKEN
Required, secret
Discord Bot Token
DISCORD_MCP_ALLOWED_GUILDS
Optional
Comma-separated list of allowed guild IDs. When set, operations outside these guilds are refused.
DISCORD_MCP_TOOLSETS
Optional
Comma-separated list of enabled toolsets. Available: core, messages, reactions, threads, channels, webhooks, guild, members, roles, moderation, events, invites.
DISCORD_MCP_READ_ONLY
Optional
Blocks all mutating actions and allows read-only tools only (true or false). Any other value stops startup.
DISCORD_MCP_APPROVAL
Optional
Confirmation mode for destructive operations (elicitation or none). Any other value stops startup.
DISCORD_MCP_ALLOW_DMS
Optional
Permits direct messages and user-scoped operations alongside an active guild allowlist (true or false). Any other value stops startup.
DISCORD_MCP_FILE_ROOTS
Optional
Optional comma-separated list of absolute directory paths accessible for uploads. When unset, empty, or parsing to no entries, file access is open by default for any absolute path, except hidden files and directories.
DISCORD_MCP_DOWNLOAD_DIR
Optional
Absolute directory path where attachment downloads are stored. Defaults to ~/Downloads/discord-mcp and is created recursively on first download.
DISCORD_MCP_MAX_DOWNLOAD_BYTES
Optional
Maximum download size in bytes for discord_download_attachment (defaults to 100 MiB).
DISCORD_MCP_MAX_UPLOAD_BYTES
Optional
Maximum upload size in bytes (defaults to 20 MiB).
DISCORD_MCP_REQUEST_TIMEOUT_MS
Optional
HTTP request timeout in milliseconds for Discord REST API requests.
DISCORD_MCP_RATE_LIMIT_WAIT_MS
Optional
Maximum wait duration in milliseconds when encountering a Discord rate limit before aborting.

Details

Package@qungtai/[email protected] (NPM, stdio)
First published5 Nov 2026
Last updated5 Nov 2026
Registry nameio.github.qungtai/discord-mcp

More communication servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.