Skip to main content
Glama

MCP-Discord

Docker Hub

Сервер Discord MCP (Model Context Protocol), который позволяет ИИ-ассистентам взаимодействовать с платформой Discord.

Обзор

MCP-Discord предоставляет следующие функции для работы с Discord:

  • Вход в систему через бота Discord

  • Список серверов, на которых состоит бот

  • Получение информации о сервере

  • Список участников и просмотр подробной информации об участниках

  • Список, создание, редактирование, удаление, назначение и удаление ролей

  • Поиск сообщений на сервере

  • Чтение, редактирование и удаление сообщений в каналах

  • Отправка сообщений в указанные каналы

  • Получение списков каналов форумов

  • Создание, обновление, удаление и ответы на публикации на форумах

  • Список тем форума и управление тегами форума

  • Создание, редактирование и удаление текстовых, форумных, голосовых каналов и категорий

  • Установка и удаление переопределений прав доступа к каналам

  • Добавление/удаление реакций на сообщения

  • Создание/редактирование/удаление/использование вебхуков

Related MCP server: MCP-Discord

Содержание

Предварительные требования

  • Node.js (v18.0.0 или выше)

  • npm (v7.0.0 или выше)

  • Бот Discord с соответствующими правами доступа

  • Права доступа, необходимые на вашем сервере Discord:

    Простейшая настройка

    • Администратор (рекомендуется для быстрой настройки и полной функциональности)

    Или выберите только необходимые права:

    • Отправка сообщений

    • Создание публичных тем

    • Отправка сообщений в темах

    • Управление сообщениями

    • Управление темами

    • Управление каналами

    • Управление вебхуками

    • Управление ролями

    • Добавление реакций

    • Просмотр канала

  • Добавьте своего бота Discord на сервер

Примечание:
Согласно модели безопасности Discord, бот может получать доступ к информации только с тех серверов, на которые он был явно добавлен.
Если вы хотите использовать этот MCP-сервер для доступа к определенному серверу Discord, вы должны сначала добавить бота на этот сервер.
Используйте ссылку-приглашение ниже, чтобы добавить бота на целевой сервер.

Установка

Установка через NPM

Вы можете использовать его с помощью следующей команды:

npx mcp-discord --config ${DISCORD_TOKEN}

Для получения дополнительной информации вы можете ознакомиться с пакетом NPM.

Установка через Smithery

Чтобы установить mcp-discord автоматически через Smithery

Установка через Docker

Вы можете запустить mcp-discord с помощью Docker. Образы Docker автоматически собираются и публикуются в Docker Hub.

Репозиторий Docker Hub: barryy625/mcp-discord

Docker по умолчанию использует потоковый HTTP-сервер через build/app.js.

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

# Run HTTP server on port 8080
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest

# Override the listening port if needed
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

Доступные теги:

  • latest - Последняя стабильная версия из основной ветки

  • v1.3.8 и т.д. - Релизы конкретных версий

Ручная установка

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

# Install dependencies
npm install

# Compile TypeScript
npm run build

Конфигурация

Для правильной работы требуется токен бота Discord. Сервер поддерживает два метода передачи: stdio и потоковый HTTP.

Методы передачи

  1. stdio (по умолчанию)

    • Традиционная передача stdio для базового использования

    • Подходит для простых интеграций

  2. Потоковый HTTP

    • HTTP-передача для более сложных сценариев

    • Поддерживает работу без сохранения состояния

    • Настраиваемый номер порта

Параметры конфигурации

Вы можете предоставить конфигурацию двумя способами:

  1. Переменные окружения:

DISCORD_TOKEN=your_discord_bot_token
  1. Использование аргументов командной строки:

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

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

Использование с Claude/Cursor

1. Использование передачи Stdio с Claude/Cursor

Используйте build/index.js, когда ваш MCP-клиент ожидает stdio-сервер на основе команд.

Claude Desktop / Claude Code

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

Cursor

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

Это рекомендуемая настройка для локальных MCP-клиентов на основе команд.

2. Самостоятельный хостинг потокового HTTP-сервера

Используйте build/app.js, если вы хотите запустить mcp-discord как HTTP MCP-сервер.

Запуск с Node.js

DISCORD_TOKEN=your_discord_bot_token node build/app.js --transport http --port 3000

В Windows PowerShell:

$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000

Запуск с Docker

docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

После запуска конечная точка MCP HTTP будет:

http://localhost:3000/mcp

3. Подключение к размещенному HTTP MCP-серверу

Если вы уже разместили mcp-discord где-то еще, укажите своему MCP-клиенту конечную точку /mcp сервера вместо запуска build/app.js в качестве команды.

Пример конечной точки:

https://your-server.example.com/mcp

Важные примечания:

  • build/app.js запускает HTTP-сервер. Он не использует stdio.

  • build/index.js — это правильная точка входа для MCP-клиентов на основе stdio.

  • Для использования размещенного HTTP настройте свой MCP-клиент на подключение к URL-адресу HTTP-конечной точки, предоставленному вашим развертыванием.

  • Точный формат конфигурации HTTP-клиента зависит от используемого вами MCP-клиента.

Документация по инструментам

Основные функции

  • discord_login: Вход в Discord с использованием настроенного токена

  • discord_list_servers: Список всех серверов Discord, на которых состоит бот

  • discord_send: Отправка сообщения в указанный канал

  • discord_get_server_info: Получение информации о сервере Discord

Управление каналами

  • discord_create_text_channel: Создание текстового канала

  • discord_create_forum_channel: Создание канала форума

  • discord_create_voice_channel: Создание голосового канала

  • discord_edit_channel: Редактирование названия канала, темы, родительской категории или позиции

  • discord_delete_channel: Удаление канала

  • discord_create_category: Создание категории каналов

  • discord_edit_category: Редактирование категории каналов

  • discord_delete_category: Удаление категории каналов

  • discord_set_channel_permissions: Установка переопределений прав доступа для роли или пользователя в канале/категории

  • discord_remove_channel_permissions: Удаление переопределений прав доступа из канала/категории

Функции форума

  • discord_get_forum_channels: Получение списка каналов форумов

  • discord_create_forum_post: Создание публикации на форуме

  • discord_get_forum_post: Получение публикации на форуме

  • discord_list_forum_threads: Список активных и архивированных тем в канале форума

  • discord_reply_to_forum: Ответ на публикацию на форуме

  • discord_get_forum_tags: Получение всех доступных тегов для канала форума

  • discord_set_forum_tags: Замена доступных тегов для канала форума

  • discord_update_forum_post: Обновление заголовка, тегов, состояния архивации или состояния блокировки публикации на форуме

  • discord_delete_forum_post: Удаление публикации на форуме

Сообщения и реакции

  • discord_search_messages: Поиск сообщений на сервере

  • discord_read_messages: Чтение сообщений канала (поддерживает параметры before, after, around — принимает ID snowflake или даты в формате ISO 8601, например, "2025-03-01T00:00:00Z")

  • discord_edit_message: Редактирование сообщения, созданного ботом

  • discord_add_reaction: Добавление реакции на сообщение

  • discord_add_multiple_reactions: Добавление нескольких реакций на сообщение

  • discord_remove_reaction: Удаление реакции с сообщения

  • discord_delete_message: Удаление конкретного сообщения из канала

Управление вебхуками

  • discord_create_webhook: Создает новый вебхук для канала Discord

  • discord_send_webhook_message: Отправляет сообщение в канал Discord с помощью вебхука

  • discord_edit_webhook: Редактирует существующий вебхук для канала Discord

  • discord_delete_webhook: Удаляет существующий вебхук для канала Discord

Управление ролями

  • discord_list_roles: Список всех ролей на сервере

  • discord_create_role: Создание роли с параметрами цвета, отображения, упоминания и прав доступа

  • discord_edit_role: Редактирование существующей роли

  • discord_delete_role: Удаление роли

  • discord_assign_role: Назначение роли участнику

  • discord_remove_role: Удаление роли у участника

Управление участниками

  • discord_list_members: Список участников на сервере с ролями

  • discord_get_member: Получение подробной информации о конкретном участнике

Разработка

# Development mode
npm run dev

Лицензия

Лицензия MIT

Available Tools

46 tools
discord_add_multiple_reactionsB

Adds multiple emoji reactions to a Discord message at once

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

discord_add_reactionC

Adds an emoji reaction to a specific Discord message

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

discord_assign_roleC

Assigns a role to a member in a Discord server

Inputs: roleId (required), userId (required), guildId (required), reason.

discord_create_categoryC

Creates a new category in a Discord server.

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

discord_create_forum_channelA

Creates a new forum channel in a Discord server, optionally under a category

Inputs: name (required), guildId (required), topic, categoryId.

discord_create_forum_postB

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

Inputs: title (required), content (required), forumChannelId (required), tags, +1 more.

discord_create_roleB

Creates a new role in a Discord server

Inputs: name (required), guildId (required), color, hoist, +3 more.

discord_create_text_channelA

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

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

discord_create_voice_channelB

Creates a new voice channel in a Discord server with an optional parent category

Inputs: guildId (required), channelName (required), reason, userLimit, +1 more.

discord_create_webhookC

Creates a new webhook for a Discord channel

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

discord_delete_categoryB

Deletes a Discord category by ID.

Inputs: categoryId (required), reason.

discord_delete_channelB

Deletes a Discord channel with an optional reason

Inputs: channelId (required), reason.

discord_delete_forum_postC

Deletes a forum post or thread with an optional reason

Inputs: threadId (required), reason.

discord_delete_messageB

Deletes a specific message from a Discord text channel

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

discord_delete_roleA

Deletes a role from a Discord server

Inputs: roleId (required), guildId (required), reason.

discord_delete_webhookC

Deletes an existing webhook for a Discord channel

Inputs: webhookId (required), reason, webhookToken.

discord_edit_categoryB

Edits an existing Discord category (name and position).

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

discord_edit_channelA

Edits a Discord channel's name, topic, parent category, or position

Inputs: channelId (required), name, topic, reason, +2 more.

discord_edit_messageA

Edits a message previously sent by the bot. Only messages authored by the bot can be edited.

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

discord_edit_roleB

Edits an existing role in a Discord server

Inputs: roleId (required), guildId (required), name, color, +5 more.

discord_edit_webhookC

Edits an existing webhook for a Discord channel

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

discord_get_forum_channelsA

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

Inputs: guildId (required).

discord_get_forum_postB

Retrieves details about a forum post including its messages

Inputs: threadId (required).

discord_get_forum_tagsA

Gets all available tags for a Discord forum channel, including tag IDs, names, and emoji

Inputs: forumChannelId (required).

discord_get_memberB

Gets detailed information about a specific member in a Discord server

Inputs: userId (required), guildId (required).

discord_get_reaction_usersA

Lists the users who reacted with a specific emoji to a Discord message. Uses REST fetch and does not require Gateway intents. Returns up to 100 users per call.

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

discord_get_server_infoB

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

Inputs: guildId (required).

discord_list_forum_threadsA

Lists all threads (posts) in a Discord forum channel, including both active and archived threads

Inputs: forumChannelId (required), limit, includeArchived.

discord_list_membersB

Lists members in a Discord server with their roles

Inputs: guildId (required), after, limit.

discord_list_pinned_messagesA

Lists the pinned messages of a channel, newest pin first.

Inputs: channelId (required), limit.

discord_list_rolesA

Lists all roles in a Discord server with their properties

Inputs: guildId (required).

discord_list_serversA

Lists all Discord servers the bot is a member of

Inputs: no named parameters.

discord_loginB

Logs in to Discord using the configured token

Inputs: token.

discord_pin_messageB

Pins a message to its channel. A channel can hold at most 50 pinned messages.

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

discord_read_messagesA

Retrieves messages from a Discord text channel. Supports date-based filtering via before/after/around params (accepts snowflake IDs or ISO 8601 dates).

Inputs: channelId (required), after, limit, around, +1 more.

discord_remove_channel_permissionsA

Removes all permission overrides for a role or user on a channel or category

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

discord_remove_reactionB

Removes a specific emoji reaction from a Discord message

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

discord_remove_roleA

Removes a role from a member in a Discord server

Inputs: roleId (required), userId (required), guildId (required), reason.

discord_reply_to_forumB

Adds a reply to an existing forum post or thread

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

discord_search_messagesC

Searches for messages in a Discord server

Inputs: guildId (required), has, limit, maxId, +10 more.

discord_sendA

Sends a message to a specified Discord text channel. Optionally reply to another message by providing its message ID.

Inputs: message (required), channelId (required), replyToMessageId.

discord_send_webhook_messageB

Sends a message to a Discord channel using a webhook

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

discord_set_channel_permissionsA

Sets permission overrides for a role or user on a channel or category

Inputs: roleId (required), channelId (required), deny, allow, +1 more.

discord_set_forum_tagsA

Sets the available tags for a Discord forum channel. Replaces all existing tags.

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

discord_unpin_messageA

Removes a message from its channel's pinned messages.

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

discord_update_forum_postB

Updates a forum post's title, applied tags, archived status, locked status, or pinned status. Tags can be specified by name or ID.

Inputs: threadId (required), name, tags, locked, +2 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 46 tools

    Disambiguation3/5

    Multiple tools have overlapping purposes, such as 'discord_read_messages' vs 'discord_search_messages' and 'discord_reply_to_forum' vs 'discord_create_forum_post', which could confuse agents. The distinction between 'get', 'list', and 'read' is not always clear.

    Naming Consistency4/5

    All tools follow a consistent 'discord_verb_object' pattern, making the naming predictable. However, there is some verb variation (get, list, read, search) that slightly reduces strict consistency, but overall it is well-structured.

    Tool Count1/5

    With 46 tools, this far exceeds the recommended 3-15 scope for a well-designed MCP server. The high number of tools likely overwhelms agents and increases selection complexity, making it inappropriate for most use cases.

    Completeness2/5

    Despite the large number of tools, there are notable gaps such as missing getters for channels, webhooks, and roles (e.g., 'get_channel', 'list_webhooks'). Core operations like updating a message or deleting a webhook are present, but the surface is uneven and overfocused on creation/deletion.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • 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
      842 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
    • A
      license
      B
      quality
      D
      maintenance
      A Discord MCP server that enables AI assistants to interact with the Discord platform, providing features like message sending, channel management, forum operations, reactions, and webhook management.
      22
      842 npm
      MIT