discord-mcp
discord-mcp
Читайте Discord и совершайте действия в нём через собственный запущенный десктопный клиент: сообщения каналов, личные сообщения, групповые чаты, треды, посты на форумах и поиск.
Как это работает
Десктопное приложение Discord построено на Electron. При запуске с флагом --remote-debugging-port его рендерер становится доступен через Chrome DevTools Protocol. discord-mcp подключается к этому рендереру, наблюдает за набором заголовков, которые клиент уже сам отправляет в своих API-запросах, и выполняет запросы изнутри той же страницы.
Поэтому каждый запрос исходит из настоящего процесса клиента, в настоящей сессии и с настоящим отпечатком. Нет второго клиента, который можно было бы обнаружить, а токен никогда не читается из хранилища Discord: он лишь наблюдается на запросе, который клиент и так уже совершает.
Related MCP server: Discord MCP Bridge
Прочитайте это перед использованием
Это нарушает Условия использования Discord. Автоматизация пользовательского аккаунта запрещена независимо от того, как была получена сессия, а раздел 11 отдельно запрещает модификацию клиента.
Практический риск находится в той же категории, что и моды клиента вроде Vencord, которым Discord публично понизил приоритет и за которые по состоянию на 2026 год. Это практика неприменения правил, а не обещание. Риск сосредоточен в записи, а не в чтении.
Токен бота полностью соответствовал бы правилам, но бот никогда не сможет читать ваши личные сообщения. Это ограничение — единственная причина, по которой существует этот проект.
Настройка
npm install
npm run buildDiscord удерживает блокировку единственного экземпляра, поэтому флаг отладки действует только при запуске. Сначала закройте запущенный клиент.
node dist/cli/main.js launch # starts Discord on a random loopback port
node dist/cli/main.js doctor # verifies attach, capture and a real readdoctor должен вывести ваш аккаунт, количество серверов и количество личных сообщений.
При первом подключении рендерер перезагружается один раз, потому что простаивающий клиент не делает REST-запросов, из которых можно перехватить заголовки. Перехват затем запоминается для каждого порта на двенадцать часов в ~/.local/state/discord-mcp/headers.json, поэтому последующие запуски подключаются примерно за секунду и не трогают ваш клиент.
Подключение к MCP-клиенту
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/path/to/discord-mcp/dist/cli/main.js", "serve"]
}
}
}Инструменты
По умолчанию доступны восемнадцать инструментов: двенадцать на чтение и шесть на запись.
Инструмент | Доступ | Назначение |
| чтение | Серверы, на которых состоит аккаунт |
| чтение | Каналы одного сервера |
| чтение | Роли, заданные на сервере |
| чтение | Описание канала или треда |
| чтение | Страница сообщений с листанием в обе стороны |
| чтение | Закреплённые сообщения |
| чтение | Одно сообщение по id |
| чтение | Личные и групповые беседы |
| чтение | Открытые треды канала — так читаются посты на форуме |
| чтение | Архивные треды, куда попадают тихие посты на форуме |
| чтение | Поиск по одному серверу |
| чтение | Поиск по одному каналу или беседе |
| запись | Отправить сообщение или ответ |
| запись | Изменить сообщение, отправленное этим аккаунтом |
| запись | Добавить реакцию |
| запись | Отметить канал прочитанным до указанного сообщения |
| запись | Создать тред, опционально из существующего сообщения |
| запись | Создать пост на форуме с его первым сообщением |
Чтение форума работает через перечисление тредов канала форума. Каждый пост возвращается вместе с сообщением, которое его открыло, и применёнными тегами, так что пост можно прочитать без второго запроса.
Деструктивные инструменты
Существует ещё семь операций, которые не регистрируются вообще, если их категория не включена. Они не появляются в списке инструментов, поэтому ни один хост и ни одна модель не могут их вызвать.
Инструмент | Категория |
|
|
|
|
|
|
|
|
|
|
|
|
Включайте только то, что вам нужно:
{ "destructive": ["messages", "threads"] }node dist/cli/main.js serve --config /path/to/policy.jsonЭто ключевой механизм контроля. Запросы подтверждения у хоста — второй уровень защиты, потому что поведение хостов различается, а некоторые хосты подтверждают автоматически. Каждый деструктивный инструмент выполняет операцию и возвращает объект, над которым она была выполнена, поэтому результат называет канал, а не просто возвращает снежинку.
Безопасность
Открытый порт DevTools — это локальный обход аутентификации: любой процесс, работающий от вашего имени, может управлять сессией, включая двухфакторную аутентификацию. discord-mcp привязывается только к loopback и выбирает случайный высокий порт вместо стандартного 9222. Не оставляйте клиент запущенным с открытым портом, когда вы им не пользуетесь.
Кэш заголовков хранит действующий токен. Повторное использование перехвата означает, что токен сохраняется, поэтому ~/.local/state/discord-mcp/headers.json содержит ваш заголовок Authorization, пока он не истечёт. Файл записывается с доступом только владельца, режим 0600; состояние запуска рядом с ним — тоже. Удалите файл, чтобы принудительно выполнить новый перехват:
rm ~/.local/state/discord-mcp/headers.jsonЗапускайте без пути к кэшу, если предпочитаете перехватывать каждый раз и никогда не хранить токен, — ценой перезагрузки рендерера при каждом подключении.
Структура
src/attach/ CDP connection, target selection, launch, state
src/bridge/ header capture, request execution, rate limiting
src/api/ typed wrappers over Discord REST v9
src/normalize/ reduce Discord's wire format to what a reader needs
src/policy/ operation tiers and the destructive gate
src/tools/ MCP tool registration
src/cli/ launch, doctor, serveЗависимости направлены только вниз. normalize/ и policy/ — чистые модули и ни от чего не зависят; именно здесь находится большая часть тестов.
npm test # 152 tests, no Discord required
npm run typecheckПроектный документ, включая результаты исследования Spike 0, которые повлияли на устройство моста, находится в docs/superpowers/specs/.
This server cannot be deployed
Maintenance
Related MCP Connectors
Control your Discord community: send/read messages, manage channels and forums, and handle webhook…
Connect a Discord bot (bot token from the developer portal) to read/send messages, list guilds and c
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Discord using personal user tokens instead of bot applications, allowing for seamless message management and server exploration. It provides tools for reading history, sending messages, and searching across channels and DMs directly through MCP-compatible clients.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables local AI agents to securely search and read Discord messages and channels visible to the current client, without requiring a bot or user token.-
- AlicenseAqualityAmaintenanceEnables AI assistants to read and control a local Discord desktop client, including viewing channels and messages, managing voice calls and volumes, and setting Rich Presence.91MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to control a logged-in Discord account through 70+ tools: browsing guilds and channels, sending and reacting to messages, moderating members, managing channels, roles, emojis, and webhooks, plus searching and analyzing captured message history stored in SQLite. Authenticates using tokens already cached by the local Discord client, requiring no bot account or manual token setup.154 npmMIT