mcp-discord
@devli13/mcp-discord
MCP-сервер для Discord. Отправляйте сообщения, модерируйте, управляйте каналами, проверяйте серверы — из Claude Code, агентов Paperclip, Gemini CLI или любого другого MCP-совместимого клиента.
Чистая обертка REST. Без Gateway. Без базы данных. Только API Discord v10 в виде 26 хорошо задокументированных инструментов с ограничением частоты запросов (rate limiting) для каждого маршрута и структурированными результатами ошибок.
Зачем
API Discord обширен и неудобен для агентов при вызове через обычный curl. Агенты сталкиваются с ограничениями частоты запросов, неправильно обрабатывают 429 ошибки, путаются в причинах аудита, забывают курсоры пагинации. Этот MCP решает это раз и навсегда, чтобы агенты могли сосредоточиться на намерениях: «удалить то спам-сообщение», «опубликовать ежедневную сводку в #mod-log», «заблокировать @user на час».
Также отлично подходит для людей. Подключившись к Claude Code, вы можете сказать: «сделай краткую сводку последних 50 сообщений в моем Discord-канале #dev», и Claude просто сделает это.
Related MCP server: Discord Bridge MCP Server
Установка
npm install -g @devli13/mcp-discordИли через npx (без установки):
DISCORD_BOT_TOKEN=<your-token> npx -y @devli13/mcp-discordНастройка
1. Создайте бота Discord
Перейдите на https://discord.com/developers/applications → New Application
Добавьте Bot в приложение
Скопируйте токен бота — это ваш
DISCORD_BOT_TOKENПригласите бота на свой сервер, используя генератор URL OAuth2 (область действия:
bot). Выберите разрешения в зависимости от того, что должен делать MCP (например, «Управление сообщениями» для удаления, «Модерация участников» для тайм-аутов)
2. Подключите его к вашему MCP-клиенту
Claude Code:
claude mcp add discord \
--env DISCORD_BOT_TOKEN=<your-token> \
-- npx -y @devli13/mcp-discordPaperclip mcp-gateway (.mcp.json):
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@devli13/mcp-discord"],
"env": {
"DISCORD_BOT_TOKEN": "<your-token>"
}
}
}
}Gemini CLI (~/.gemini/config.json):
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@devli13/mcp-discord"]
}
}
}3. (Опционально) Включите привилегированные интенты
Если вы хотите получать список участников сервера (discord_list_members) или использовать этот MCP вместе с сопутствующим плагином для входящих событий, включите Server Members Intent и Message Content Intent в настройках вашего бота на портале разработчика. Они не требуются для большинства операций MCP — только для определенных конечных точек.
Справочник инструментов
Все инструменты имеют префикс discord_* и возвращают либо JSON-блок (в случае успеха), либо отформатированное сообщение об ошибке (в случае неудачи). Ни один из них не вызывает исключений — каждый инструмент возвращает пригодный для использования строковый результат.
Сообщения (8)
Инструмент | Назначение |
| Отправка в канал. Поддерживает эмбеды, ответы, управление упоминаниями |
| Редактирование собственного сообщения бота |
| Удаление одного сообщения (ботом или другими, при наличии прав «Управление сообщениями») |
| Удаление 2-100 сообщений (младше 14 дней) за один вызов |
| Получение одного сообщения по ID |
| История канала с пагинацией (курсоры before/after/around) |
| Управление закрепленными сообщениями |
Реакции (3)
Инструмент | Назначение |
| Бот добавляет реакцию |
| Удаление реакции бота или пользователя |
| Список пользователей, отреагировавших эмодзи |
Каналы и ветки (5)
Инструмент | Назначение |
| Все каналы на сервере |
| Детали одного канала |
| Создание новой ветки (публичной или приватной, привязанной или отдельной) |
| Все активные ветки на сервере |
| Запуск индикатора «бот печатает…» |
Модерация (6)
Инструмент | Назначение |
| Профиль участника (роли, дата вступления, состояние тайм-аута) |
| Список участников с пагинацией (требуется интент Server Members) |
| Заглушение через |
| Удаление с сервера |
| Управление ролями |
Информация о сервере (4)
Инструмент | Назначение |
| Все серверы, на которых есть бот |
| Детали одного сервера |
| Все роли, отсортированные по позиции |
| Недавние записи журнала аудита (фильтрация по пользователю, действию и т.д.) |
Не включено (намеренно):
ban/unban— намеренно. Используйте интерфейс Discord; необратимые действия не должны выполняться одним вызовом агентаСоздание/удаление/редактирование каналов — высокий риск, используйте интерфейс
CRUD вебхуков — не требуется для большинства сценариев агентов; можно добавить в будущем релизе
Голосовые операции, управление стикерами/эмодзи — вне области действия v0.1
Пример: краткая сводка канала через Claude Code
User: Summarize the last 30 messages in the #dev channel of my Discord server, guild ID 1234...
Claude (calls discord_list_channels → finds #dev → calls discord_list_messages → writes summary)Пример: ежедневная сводка агента Paperclip
// From an agent's prompt:
"Post the daily digest to channel 1234. Summarize the last 24h of activity
using discord_list_messages with limit=100, then format as an embed via
discord_send_message."Обработка ошибок
Каждый инструмент возвращает пригодный для использования текстовый результат. В случае ошибки:
Error (DISCORD_50001, HTTP 403): Missing Access
Details: [...]
(This error is transient and may succeed on retry.)MCP уже обрабатывает повторные попытки внутри для 429 (ограничения частоты) и 5xx (ошибки сервера) с экспоненциальной задержкой.
Ограничения частоты запросов (Rate limits)
В Discord есть два уровня ограничений:
По маршруту — каждая конечная точка API имеет независимые корзины. Этот MCP сериализует запросы по (метод + шаблон маршрута), чтобы предотвратить превышение лимита 429.
Глобальный — на бота, по всем конечным точкам. MCP глобально учитывает заголовки
Retry-After.
Вам не нужно об этом думать. Если вы постоянно достигаете глобального лимита, вероятно, вы делаете что-то, что требует участия человека.
Безопасность
Никогда не коммитьте токен вашего бота. Этот MCP считывает его из переменной окружения
DISCORD_BOT_TOKENпри запуске.Используйте URL-адреса приглашений с минимальными привилегиями. Не давайте ботам права администратора, если вам нужно только «Управление сообщениями».
Причины в журнале аудита — все инструменты модерации принимают аргумент
reason, который отображается в журнале аудита Discord. Используйте его.
Разработка
git clone https://github.com/devli13/mcp-discord.git
cd mcp-discord
npm install
npm test # smoke tests (no live Discord calls)
npm run lint # syntax check all files
npm start # boot server over stdio (needs DISCORD_BOT_TOKEN)Сопутствующий проект — входящие события
Этот MCP обрабатывает исходящие REST-вызовы (отправка, удаление, модерация). Он не поддерживает WebSocket Discord Gateway, поэтому не может реагировать на входящие события (упоминание бота через @, личные сообщения, вступление новых участников).
Для входящих событий Discord в настройке Paperclip используйте @devli13/paperclip-plugin-discord — форк @mvanhorn/paperclip-plugin-discord с произвольной маршрутизацией @упоминаний, поддержкой личных сообщений, сериализованной очередью сообщений для каждого контекста и заполнением пропущенных упоминаний.
Эти два проекта разработаны для совместной работы: плагин получает события и вызывает вашего агента; агент использует этот MCP для ответа и модерации. Используйте один или оба в зависимости от вашей настройки.
Атрибуция
См. ATTRIBUTION.md. Кратко: создано вместе с форком paperclip-plugin-discord от @mvanhorn, чья обработка Gateway вдохновила использованные здесь паттерны проектирования.
Лицензия
MIT — см. LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that allows Claude to interact with Discord by providing tools for sending/reading messages and managing server resources through Discord's API.619159MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides native Discord tools for Claude Code, enabling bidirectional communication with remote agents or humans via the Discord REST API. It allows users to send messages, read channel history, and manage reactions directly from their local environment.6223MIT
- Flicense-qualityCmaintenanceAn MCP server that enables Claude Desktop to interact with Discord through a dedicated bot. It allows users to list channels, read message history, and send messages directly from the AI interface.2
- Alicense-qualityDmaintenanceComprehensive Discord MCP server with 66 tools that provides rich message context including emoji reactions, thread indicators, and attachment metadata inline. Enables AI assistants to interact with Discord servers for messaging, moderation, roles, channels, and more.1591MIT
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
An MCP server that integrates with Discord to provide AI-powered features.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/devli13/mcp-discord'
If you have feedback or need assistance with the MCP directory API, please join our Discord server