Implement Discord MCP server enabling AI assistants to interact with the Discord platform.
Go to file
Barry Yip 32a16fdc64
Update README.md
2025-05-09 11:57:42 +08:00
.github Create FUNDING.yml 2025-03-25 13:26:31 +08:00
src feat: implement multi-transport support and optimize Discord MCP server 2025-05-09 00:38:03 +08:00
.gitattributes Initial commit 2025-03-25 12:55:24 +08:00
.gitignore Added Webhook Management Tools 2025-03-27 16:34:02 +08:00
Dockerfile feat: Update Smithery config to support HTTP transport mode 2025-05-09 07:25:45 +08:00
LICENSE Initial commit 2025-03-25 12:55:24 +08:00
README.md Update README.md 2025-05-09 11:57:42 +08:00
package-lock.json feat: implement multi-transport support and optimize Discord MCP server 2025-05-09 00:38:03 +08:00
package.json feat: implement multi-transport support and optimize Discord MCP server 2025-05-09 00:38:03 +08:00
smithery.yaml feat: implement multi-transport support and optimize Discord MCP server 2025-05-09 00:38:03 +08:00
tsconfig.json Initial commit 2025-03-25 12:55:24 +08:00

README.md

MCP-Discord

smithery badge

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

MCP-Discord MCP server

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
  • Retrieve forum channel lists
  • Create/delete/reply to forum posts
  • Create/delete text channels
  • Add/remove message reactions
  • Create/edit/delete/use webhooks

Table of Contents

Prerequisites

  • Node.js (v16.0.0 or higher)
  • npm (v7.0.0 or higher)
  • A Discord bot with appropriate permissions
    • Bot token (obtainable from the Discord Developer Portal)
    • Message Content Intent enabled
    • Server Members Intent enabled
    • Presence Intent enabled
  • Permissions in your Discord server:
    • Send Messages
    • Create Public Threads
    • Send Messages in Threads
    • Manage Threads
    • Manage Channels
    • Add Reactions

Installation

Installing via Smithery

To install mcp-discord automatically via Smithery

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
    • Powered by Smithery SDK for improved reliability and performance

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

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_login: Login to Discord
  • discord_send: Send a message to a specified channel
  • 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