Skip to main content
Glama
blackgirlbytes

Discord Community MCP

Discord Community MCP

Локальный Model Context Protocol сервер, который через учётную запись бота предоставляет ИИ-агентам доступ только для чтения: поиск по Discord, восстановление переписок, исследование сообщества и анализ роста. Отправка сообщений и реакций доступна только при явном включении.

Что умеет

  • Находить диалог по смутному воспоминанию, даже если формулировка неточна.

  • Восстанавливать контекст вокруг найденного сообщения.

  • Индексировать выбранную историю Discord в локальной базе данных SQLite.

  • Анализировать активность, время ответа, участие, концентрацию, взаимность и тематики.

  • Сохранять снимки участников и анализировать приходы, уходы, роли и рост активных участников.

  • При необходимости отправлять сообщения, ответы и реакции.

Related MCP server: Discord MCP Server

Требования

  • Node.js 22.5 или новее

  • Приложение Discord и токен бота

  • MCP-клиент с поддержкой локальных stdio-серверов, например Codex

1. Создание бота Discord

  1. Откройте Discord Developer Portal и создайте приложение.

  2. В разделе Bot создайте бота и скопируйте его токен.

  3. В Bot → Privileged Gateway Intents включите:

    • Message Content Intent — для текста сообщений и поиска

    • Server Members Intent — для снимков участников, дат вступления, ролей и роста

  4. Presence Intent не обязателен.

  5. В OAuth2 → URL Generator выберите область bottom.

  6. Выдайте боту разрешения View Channels и Read Message History. Добавьте Send Messages или Add Reactions, только если вы планируете включить инструменты записи.

  7. Откройте сгенерированную ссылку и пригласите бота на свой сервер Discord.

Бот может обращаться только к каналам, которые разрешено просматривать его роли Discord.

2. Установка

git clone https://github.com/blackgirlbytes/discord-community-mcp.git
cd discord-community-mcp
npm ci
npm run build
cp .env.example .env

Откройте .env и замените токен-плейсхолдер:

DISCORD_BOT_TOKEN=replace-with-your-bot-token
DISCORD_ENABLE_WRITE=false

Храните .env в тайне. Этот файл исключён из git.

3. Подключение к MCP-клиенту

Codex CLI

Используйте абсолютные пути, чтобы клиент мог запустить сервер из любого каталога:

codex mcp add discord-community -- \
  node \
  --env-file=/absolute/path/to/discord-community-mcp/.env \
  /absolute/path/to/discord-community-mcp/dist/index.js

После добавления сервера перезапустите Codex.

Универсальная конфигурация stdio

Клиенты, использующие JSON-объект mcpServers, могут применить такую конфигурацию:

{
  "mcpServers": {
    "discord-community": {
      "command": "node",
      "args": [
        "--env-file=/absolute/path/to/discord-community-mcp/.env",
        "/absolute/path/to/discord-community-mcp/dist/index.js"
      ]
    }
  }
}

После изменения конфигурации перезапустите MCP-клиент. Затем вы можете попросить его перечислить доступные боту серверы и каналы Discord.

Примеры вопросов

  • «Найди диалог, в котором кто-то сказал, что онбординг ощущается как домашняя работа».

  • «Что мы решили насчёт переименования SDK прошлой весной?»

  • «Почему бета-тестеры отвечают так медленно? Посмотри на свидетельства за последние три месяца».

  • «Как росло сообщество по месяцам и как этот рост соотносится с участием?»

  • «Какие вопросы в поддержку остались без ответа на прошлой неделе?»

Для широкого анализа агенту нужно сначала синхронизировать соответствующие каналы и диапазон дат, проверить покрытие индекса, а затем запустить исследование сообщества. Объяснения поведения следует формулировать как гипотезы, если только они напрямую не подтверждаются сообщениями.

Доступные инструменты

Tool

Назначение

discord_list_guilds

Выводит список серверов, доступных боту

track Facade community

discord_list_groups

Выводит список серверов, на которых есть бот

discord_list_channels

Выводит список каналов на сервере

discord_read_messages

Читает последние сообщения с постраничной разбивкой

discord_find_messages

Ищет смутно запоминающийся разговор

discord_get_message_context

Читает сообщения вокруг найденного совпадения

discord_sync_community_history

Создаёт или обновляет локальный индекс сообщений

discord_research_community

Готовит пакет фактов для вопроса о сообществе

discord_get_community_index_status

Проверяет проиндексированные каналы, даты и полноту покрытия

discord_sync_member_snapshot

Сохраняет текущий состав участников, даты вступления и роли

discord_analyze_growth

Анализирует изменение состава и активность по времени

discord_send_message

Отправляет сообщение, когда включена запись

discord_reply_to_message

Отвечает на сообщение, когда включена запись

discord_add_reaction

Ставит реакцию, когда включена запись

Данные и конфиденциальность

Содержимое сообщений и метаданные об участниках по умолчанию хранятся без шифрования в data/discord-analytics.sqlite. Можно изменить расположение через DISCORD_ANALYTICS_DB.

DISCORD_ANALYTICS_DB=/absolute/private/path/discord-analytics.sqlite
  • Индексируйте только каналы и диапазоны дат, которые нужны для анализа.

  • Защищайте и удаляйте базу данных согласно политике конфиденциальности вашего сообщества.

  • Выдавайте боту минимальные права Discord, которые ему необходимы.

  • Держите значение DISCORD_ENABLE_WRITE=false, если отправка контента не является осознанным намерением.

  • Если токен бота стал известен посторонним, немедленно перевыпустите его.

Аналитические ограничения

  • Архив сообщений показывает паттерны поведения, но не может достоверно объяснить причины такого поведения.

  • Пользователи Discord могу отвечать и без действия Reply, поэтому метрики ответов могут занижать реальное количество.

  • Историческая принадлежность к ролям не реконструируется: для более старых сообщений используется последняя наблюдая роль.

  • Точный момент ухода участника определяется только между двумя сохранёнными снятпсами.

  • Первый снимок участников не позволяет восстановить тех, кто ушёл до того, как бот начал их видеть.

  • Поиск и аналитика распространяются только на каналы, доступные боту, и на синхронизированную историю.

  • Личные сообщения не поддержиты.

Права записи

Инструменты записи зарегистрированы, но по умолчанию отключены. Для их включения обновите .env:

DISCORD_ENABLE_WRITE=true

У бота также должны быть соответствующие прав Discord. Для исследовательских инсталляций запись следует оставлять отключенной.

Разработка

npm ci
npm run check
npm test

Сервер пишет операционные журналы в stderr, так как stdout зарезервирован для протокола MCP stdio.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord through the REST API and real-time events, supporting message management, user info, channel operations, and more with security controls.
    12 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to send and read messages in Discord channels, manage servers, channels, and roles via Discord's API.
    13 npm
    2
    MIT