Skip to main content
Glama
mcp-discord

mcp-discord

MCP-Discord

Docker Hub

A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.

Overview

MCP-Discord provides the following Discord-related functionalities:

  • Login to Discord bot

  • Get server information

  • Read/delete channel messages

  • Send messages to specified channels (using either channel IDs or channel names)

  • Retrieve forum channel lists

  • Create/delete/reply to forum posts

  • Create/delete text channels

  • Add/remove message reactions

  • Create/edit/delete/use webhooks

Related MCP server: MCP-Discord

Table of Contents

Prerequisites

Note:
According to Discord's security model, a bot can only access information from servers it has been explicitly added to.
If you want to use this MCP server to access a specific Discord server, you must add the bot to that server first.
Use the invite link below to add the bot to your target server.

Installation

Installing via NPM

You can use it with the following command:

npx mcp-discord --config ${DISCORD_TOKEN}

For more details, you can check out the NPM Package.

Installing via Smithery

To install mcp-discord automatically via Smithery

Installing via Docker

You can run mcp-discord using Docker. The Docker images are automatically built and published to Docker Hub.

Docker Hub Repository: barryy625/mcp-discord

# Pull the latest image
docker pull barryy625/mcp-discord:latest

# Run with environment variable
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest

# Or run with command line config
docker run -p 8080:8080 barryy625/mcp-discord:latest --config "your_discord_bot_token"

Available Tags:

  • latest - Latest stable version from main branch

  • v1.3.3, etc. - Specific version releases

Manual Installation

# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord

# Install dependencies
npm install

# Compile TypeScript
npm run build

Configuration

A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.

Transport Methods

  1. stdio (Default)

    • Traditional stdio transport for basic usage

    • Suitable for simple integrations

  2. streamable HTTP

    • HTTP-based transport for more advanced scenarios

    • Supports stateless operation

    • Configurable port number

Configuration Options

You can provide configuration in two ways:

  1. Environment variables:

DISCORD_TOKEN=your_discord_bot_token
  1. Using command line arguments:

# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"

# For streamable HTTP transport
node build/index.js --transport http --port 3000 --config "your_discord_bot_token"

Usage with Claude/Cursor

Docker

You can use Docker containers with both Claude and Cursor:

{
    "mcpServers": {
        "discord": {
            "command": "docker",
            "args": [
                "run",
                "--rm",
                "-e",
                "DISCORD_TOKEN=your_discord_bot_token",
                "-p",
                "8080:8080",
                "barryy625/mcp-discord:latest",
                "--transport",
                "http",
                "--port",
                "8080"
            ]
        }
    }
}

Claude

  1. Using stdio transport:

{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}
  1. Using streamable HTTP transport:

{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js",
                "--transport",
                "http",
                "--port",
                "3000",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}

Cursor

  1. Using stdio transport:

{
    "mcpServers": {
        "discord": {
            "command": "cmd",
            "args": [
                "/c",
                "node",
                "path/to/mcp-discord/build/index.js",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}
  1. Using streamable HTTP transport:

{
    "mcpServers": {
        "discord": {
            "command": "cmd",
            "args": [
                "/c",
                "node",
                "path/to/mcp-discord/build/index.js",
                "--transport",
                "http",
                "--port",
                "3000",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}

Tools Documentation

Basic Functions

  • discord_send: Send a message to a specified channel (supports both channel ID and channel name)

  • discord_get_server_info: Get Discord server information

Channel Management

  • discord_create_text_channel: Create a text channel

  • discord_delete_channel: Delete a channel

Forum Functions

  • discord_get_forum_channels: Get a list of forum channels

  • discord_create_forum_post: Create a forum post

  • discord_get_forum_post: Get a forum post

  • discord_reply_to_forum: Reply to a forum post

  • discord_delete_forum_post: Delete a forum post

Messages and Reactions

  • discord_read_messages: Read channel messages

  • discord_add_reaction: Add a reaction to a message

  • discord_add_multiple_reactions: Add multiple reactions to a message

  • discord_remove_reaction: Remove a reaction from a message

  • discord_delete_message: Delete a specific message from a channel

Webhook Management

  • discord_create_webhook: Creates a new webhook for a Discord channel

  • discord_send_webhook_message: Sends a message to a Discord channel using a webhook

  • discord_edit_webhook: Edits an existing webhook for a Discord channel

  • discord_delete_webhook: Deletes an existing webhook for a Discord channel

Development

# Development mode
npm run dev

License

MIT License

Available Tools

22 tools
discord_add_multiple_reactionsBInspect

Adds multiple emoji reactions to a Discord message at once

Inputs: emojis (required), channelId (required), messageId (required).

discord_add_reactionCInspect

Adds an emoji reaction to a specific Discord message

Inputs: emoji (required), channelId (required), messageId (required).

discord_create_categoryCInspect

Creates a new category in a Discord server.

Inputs: name (required), guildId (required), reason, position.

discord_create_forum_postBInspect

Creates a new post in a Discord forum channel with optional tags

Inputs: title (required), content (required), forumChannelId (required), tags.

discord_create_text_channelBInspect

Creates a new text channel in a Discord server with an optional topic

Inputs: guildId (required), channelName (required), topic.

discord_create_webhookCInspect

Creates a new webhook for a Discord channel

Inputs: name (required), channelId (required), avatar, reason.

discord_delete_categoryBInspect

Deletes a Discord category by ID.

Inputs: categoryId (required), reason.

discord_delete_channelBInspect

Deletes a Discord channel with an optional reason

Inputs: channelId (required), reason.

discord_delete_forum_postCInspect

Deletes a forum post or thread with an optional reason

Inputs: threadId (required), reason.

discord_delete_messageBInspect

Deletes a specific message from a Discord text channel

Inputs: channelId (required), messageId (required), reason.

discord_delete_webhookCInspect

Deletes an existing webhook for a Discord channel

Inputs: webhookId (required), reason, webhookToken.

discord_edit_categoryBInspect

Edits an existing Discord category (name and position).

Inputs: categoryId (required), name, reason, position.

discord_edit_webhookCInspect

Edits an existing webhook for a Discord channel

Inputs: webhookId (required), name, avatar, reason, +2 more.

discord_get_forum_channelsAInspect

Lists all forum channels in a specified Discord server (guild)

Inputs: guildId (required).

discord_get_forum_postBInspect

Retrieves details about a forum post including its messages

Inputs: threadId (required).

discord_get_server_infoBInspect

Retrieves detailed information about a Discord server including channels and member count

Inputs: guildId (required).

discord_loginBInspect

Logs in to Discord using the configured token

Inputs: token.

discord_read_messagesAInspect

Retrieves messages from a Discord text channel with a configurable limit

Inputs: channelId (required), limit.

discord_remove_reactionBInspect

Removes a specific emoji reaction from a Discord message

Inputs: emoji (required), channelId (required), messageId (required), userId.

discord_reply_to_forumBInspect

Adds a reply to an existing forum post or thread

Inputs: message (required), threadId (required).

discord_sendCInspect

Sends a message to one or more Discord text channels by name in a server

Inputs: guildId (required), message (required), channelNames (required).

discord_send_webhook_messageBInspect

Sends a message to a Discord channel using a webhook

Inputs: content (required), webhookId (required), webhookToken (required), threadId, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 22 tools

    Disambiguation5/5

    Each tool targets a distinct Discord entity or action: reactions, categories, channels, forums, webhooks, messages, server info, and login. Even similar tools like discord_send and discord_send_webhook_message have clear differences in mechanism. No overlap or ambiguity.

    Naming Consistency5/5

    All tools follow the consistent pattern discord_verb_noun (e.g., discord_create_category, discord_delete_message). Verbs are descriptive and nouns precisely identify the target. No mixing of naming conventions.

    Tool Count4/5

    22 tools is slightly above the ideal 3-15 range, but given the breadth of Discord's API (categories, channels, forums, webhooks, reactions, messages, etc.), the count is justified and not excessive. Each tool serves a clear purpose without redundancy.

    Completeness4/5

    The tool set covers core CRUD operations for categories, channels, forums, webhooks, and reactions, plus message sending, reading, and login. Minor gaps exist, such as missing edit_message or pin message, but the surface is sufficient for most common Discord automation tasks.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      B
      maintenance
      A Discord Model Context Protocol server that enables AI assistants to interact with Discord, providing functionality for sending messages, managing channels, handling forum posts, and working with reactions.
      46
      860 npm
      111
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Discord MCP server that enables AI assistants to interact with Discord platforms, providing functionalities like sending messages, managing channels, creating forum posts, and handling webhooks.
      21
      860 npm
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Discord Model Context Protocol server that enables AI assistants to interact with Discord by sending messages, managing channels, handling forum posts, managing webhooks, and processing reactions.
      22
      84 npm
      5
      MIT