mcp discord

Local 2025-08-31 23:41:58 0

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.


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 for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @barryyip0625/mcp-discord --client claude

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. You can provide it in two ways:

  1. Environment variables:

    DISCORD_TOKEN=your_discord_bot_token

  2. Using the --config parameter when launching:

    node path/to/mcp-discord/build/index.js --config "{"DISCORD_TOKEN":"your_discord_bot_token"}"

Usage with Claude/Cursor

  • Claude

    {
        "mcpServers": {
            "discord": {
                "command": "node",
                "args": [
                    "path/to/mcp-discord/build/index.js"
                ],
                "env": {
                    "DISCORD_TOKEN": "your_discord_bot_token"
                }
            }
        }
    }
  • Cursor

    {
        "mcpServers": {
            "discord": {
                "command": "cmd",
                "args": [
                    "/c",
                    "node",
                    "path/to/mcp-discord/build/index.js"
                ],
                "env": {
                    "DISCORD_TOKEN": "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

[
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "name": "test"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "random_string": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "name": "discord_login"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "channelId",
        "message"
      ],
      "type": "object"
    },
    "name": "discord_send"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "guildId": {
          "type": "string"
        }
      },
      "required": [
        "guildId"
      ],
      "type": "object"
    },
    "name": "discord_get_forum_channels"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "content": {
          "type": "string"
        },
        "forumChannelId": {
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "forumChannelId",
        "title",
        "content"
      ],
      "type": "object"
    },
    "name": "discord_create_forum_post"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "threadId": {
          "type": "string"
        }
      },
      "required": [
        "threadId"
      ],
      "type": "object"
    },
    "name": "discord_get_forum_post"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "message": {
          "type": "string"
        },
        "threadId": {
          "type": "string"
        }
      },
      "required": [
        "threadId",
        "message"
      ],
      "type": "object"
    },
    "name": "discord_reply_to_forum"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelName": {
          "type": "string"
        },
        "guildId": {
          "type": "string"
        },
        "topic": {
          "type": "string"
        }
      },
      "required": [
        "guildId",
        "channelName"
      ],
      "type": "object"
    },
    "name": "discord_create_text_channel"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "channelId"
      ],
      "type": "object"
    },
    "name": "discord_delete_channel"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "limit": {
          "default": 50,
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        }
      },
      "required": [
        "channelId"
      ],
      "type": "object"
    },
    "name": "discord_read_messages"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "guildId": {
          "type": "string"
        }
      },
      "required": [
        "guildId"
      ],
      "type": "object"
    },
    "name": "discord_get_server_info"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "emoji": {
          "type": "string"
        },
        "messageId": {
          "type": "string"
        }
      },
      "required": [
        "channelId",
        "messageId",
        "emoji"
      ],
      "type": "object"
    },
    "name": "discord_add_reaction"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "emojis": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "messageId": {
          "type": "string"
        }
      },
      "required": [
        "channelId",
        "messageId",
        "emojis"
      ],
      "type": "object"
    },
    "name": "discord_add_multiple_reactions"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "channelId": {
          "type": "string"
        },
        "emoji": {
          "type": "string"
        },
        "messageId": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        }
      },
      "required": [
        "channelId",
        "messageId",
        "emoji"
      ],
      "type": "object"
    },
    "name": "discord_remove_reaction"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "reason": {
          "type": "string"
        },
        "threadId": {
          "type": "string"
        }
      },
      "required": [
        "threadId"
      ],
      "type": "object"
    },
    "name": "discord_delete_forum_post"
  }
]