MCP-Discord
MCP-Discord
Сервер 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)
Включенный Message Content Intent
Включенный Server Members Intent
Включенный Presence Intent
Права доступа, необходимые на вашем сервере Discord:
Простейшая настройка
Администратор (рекомендуется для быстрой настройки и полной функциональности)
Или выберите только необходимые права:
Отправка сообщений
Создание публичных тем
Отправка сообщений в темах
Управление сообщениями
Управление темами
Управление каналами
Управление вебхуками
Управление ролями
Добавление реакций
Просмотр канала
Добавьте своего бота Discord на сервер
Чтобы добавить бота Discord на свой сервер, используйте одну из следующих ссылок-приглашений (замените
INSERT_CLIENT_ID_HEREна ID клиента вашего бота):Администратор (полный доступ): https://discord.com/oauth2/authorize?client\\\\_id=INSERT\\\\_CLIENT\\\\_ID\\\\_HERE\\\\&scope=bot\\\\&permissions=8
Пользовательские права (минимально необходимые): https://discord.com/oauth2/authorize?client\\\\_id=INSERT\\\\_CLIENT\\\\_ID\\\\_HERE\\\\&scope=bot\\\\&permissions=52076489808
Примечание:
Согласно модели безопасности 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.
Методы передачи
stdio (по умолчанию)
Традиционная передача stdio для базового использования
Подходит для простых интеграций
Потоковый HTTP
HTTP-передача для более сложных сценариев
Поддерживает работу без сохранения состояния
Настраиваемый номер порта
Параметры конфигурации
Вы можете предоставить конфигурацию двумя способами:
Переменные окружения:
DISCORD_TOKEN=your_discord_bot_tokenИспользование аргументов командной строки:
# 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/mcp3. Подключение к размещенному 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: Создает новый вебхук для канала Discorddiscord_send_webhook_message: Отправляет сообщение в канал Discord с помощью вебхукаdiscord_edit_webhook: Редактирует существующий вебхук для канала Discorddiscord_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Лицензия
Available Tools
46 toolsdiscord_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
Scored across 46 tools
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.
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.
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.
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
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that integrates with Discord to provide AI-powered features.
Official Duck Framework MCP server for AI-assisted development and project scaffolding.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseBqualityDmaintenanceA 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.21842 npm1MIT
- AlicenseBqualityDmaintenanceA 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.2284 npm5MIT
- AlicenseNot gradedqualityDmaintenanceA Discord bot server based on Model Context Protocol (MCP), enabling AI models to interact with Discord through the MCP protocol.2MIT
- AlicenseBqualityDmaintenanceA 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.22842 npmMIT