Skip to main content
Glama

Discord MCP

FastMCP Version Ruff Linted with Biome Built with Just

Репозиторий: github.com/sandraschi/discord-mcp

Сервер Discord MCP на базе FastMCP 3.1 с поддержкой сэмплинга (серверный Ollama / совместимый с OpenAI или клиентский LLM), агентского рабочего процесса (discord_agentic_workflow), навыков (SkillsDirectoryProvider + skill:///SKILL.md), промптов и панели управления в стиле 2026 fleet (React + Vite + Tailwind, темная стеклянная оболочка).

Порты

  • Бэкенд: 10756 REST (/api/v1/) + MCP потоковый HTTP на /mcp

  • Фронтенд: 10757

Related MCP server: Discord MCP Server

Настройка

  1. Создайте бота на Портале разработчиков Discord. Скопируйте токен бота.

  2. Пригласите бота на свой сервер (генератор URL OAuth2, область действия: bot).

  3. Скопируйте .env.example в .env в корне репозитория (discord-mcp/.env) и установите DISCORD_TOKEN=... (без кавычек). Бэкенд загружает этот файл при запуске (python-dotenv). Перезапустите сервер после изменения .env. Если токен уже установлен в системной среде или в env Cursor MCP, это значение имеет приоритет (.env не переопределяет существующие переменные).

  4. Для локального агентского сэмплинга (когда хост MCP не предоставляет сэмплинг): запустите Ollama и при необходимости установите DISCORD_SAMPLING_BASE_URL / DISCORD_SAMPLING_MODEL. Установите DISCORD_SAMPLING_USE_CLIENT_LLM=1, если вы хотите, чтобы хост LLM выполнял сэмплинг, а серверный обработчик использовался только как резервный вариант.

Запуск

  • Веб-приложение (бэкенд + панель управления): из корня репозитория запустите .\start.ps1 или start.bat, или из webapp/: .\start.ps1.

  • Только бэкенд: uv run python -m discord_mcp.server --mode dual --port 10756

  • Stdio (только MCP): uv run python -m discord_mcp.server --mode stdio

Cursor MCP

  • Этот репозиторий как корень рабочей области: .cursor/mcp.json регистрирует discord-mcp (stdio). Установите DISCORD_TOKEN в env этого файла или используйте переменную окружения вашей оболочки. Перезагрузите MCP / перезапустите Cursor после внесения изменений.

  • Глобальное / мульти-корневое объединение: скопируйте блок discord-mcp из cursor-config-template.json в ваш пользовательский JSON MCP (Windows: %USERPROFILE%\.cursor\mcp.json). Настройте cwd на путь к вашему клону, если вы не используете путь по умолчанию D:/Dev/repos/discord-mcp.

MCP HTTP (удаленный / Inspector)

  • Эндпоинт: http://localhost:10756/mcp (потоковый HTTP, FastMCP 3.1.0)

  • Обнаружение / манифест: GET /api/v1/meta

  • Здоровье: GET /api/v1/health (включает статус сэмплинга)

Инструменты

  • discord(operation=) Портманто: list_guilds, list_channels, send_message, get_messages, get_guild_stats, create_channel, create_guild, create_invite, list_invites, revoke_invite, list_members, get_member, list_active_threads, rag_ingest, rag_query. create_guild требует OAuth2 пользователя (бот выдаст 403). list_members / get_member требуют интента GUILD_MEMBERS.

  • discord_help(category=, topic=) Многоуровневая справка.

  • discord_agentic_workflow(goal, ctx) Высокоуровневая цель через ctx.sample + инструменты (SEP-1577). Возвращает структурированный dict (success, message, recommendations или поля ошибки).

Промпты (зарегистрированные)

discord_quick_start, discord_diagnostics, discord_moderation_playbook, discord_rag_workflow, discord_invite_operations

Навыки

Объединены в src/discord_mcp/skills/<name>/SKILL.md, представлены как ресурсы MCP (skill://). Перечислены в панели управления в разделе Навыки и через GET /api/v1/skills.

Ресурсы

  • resource://discord-mcp/capabilities Краткая сводка возможностей для клиентов.

API (REST)

  • GET /api/v1/health Здоровье, token_set, ограничения частоты, сэмплинг, mcp_http_path

  • GET /api/v1/meta Инструменты, промпты, ресурсы, корень навыков, сэмплинг

  • GET /api/v1/skills Предварительный просмотр навыков (панель управления)

  • GET /api/v1/guilds Список гильдий (прокси к инструменту)

  • GET /api/v1/guilds/{guild_id}/channels Список каналов

  • (См. OpenAPI в /docs для полного списка.)

Discord HTTP 429 (ограничения частоты API)

Discord применяет ограничения по маршрутам в REST API. При получении HTTP 429 сервер теперь ожидает retry_after (из тела ответа или заголовка Retry-After) и повторяет тот же запрос до 5 раз, прежде чем вернуть ошибку. Если после этого вы все еще видите 429, замедлите работу (например, меньше параллельных выборок сообщений, меньшие пакеты RAG-ингеста) или подождите минуту, особенно если в ответе Discord появляется "global": true (редко; указывает на более широкое ограничение).

Безопасность и ограничения частоты (анти-спам)

Операции записи ограничены по частоте, чтобы бота нельзя было использовать как спам-бота:

  • Сообщения: макс. 10/мин глобально, макс. 3/мин на канал, мин. 5 сек между отправками (настраивается).

  • Каналы: макс. 5 созданных в минуту.

  • Приглашения: макс. 5 созданных в минуту (DISCORD_RATE_LIMIT_INVITES_PER_MINUTE).

  • Длина сообщения: ограничена 2000 символов (максимум Discord); переопределяется через DISCORD_MAX_MESSAGE_LENGTH.

Переменные среды: DISCORD_RATE_LIMIT_MESSAGES_PER_MINUTE, DISCORD_RATE_LIMIT_MESSAGES_PER_CHANNEL_PER_MINUTE, DISCORD_RATE_LIMIT_CHANNELS_PER_MINUTE, DISCORD_MAX_MESSAGE_LENGTH, DISCORD_MIN_MESSAGE_INTERVAL_SECONDS. При достижении лимита инструмент возвращает success: false, rate_limited: true и пояснительную error. Текущая конфигурация находится в GET /api/v1/health в разделе rate_limit.

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

Стандарты

  • FastMCP 3.1.0: инструкции, обработчик сэмплинга, провайдер навыков, строгая валидация, потоковое монтирование HTTP.

  • Веб-приложение: start.ps1, порты 10756/10757, темная стеклянная раскладка, статус в верхней панели, журнал активности, страницы Инструменты / Навыки / Приложения.

🛡️ Стек промышленного качества

Этот проект придерживается промышленных стандартов SOTA 14.1 для высокоточной агентской оркестрации:

  • Python (Core): Ruff для линтинга и форматирования. Нулевая терпимость к операторам print в основных обработчиках (T201).

  • Веб-приложение (UI): Biome для линтинга с субмиллисекундной скоростью. Строгое соблюдение noConsoleLog.

  • Соответствие протоколу: Усиленная изоляция stdout/stderr для обеспечения устойчивой к сбоям связи JSON-RPC.

  • Автоматизация: Рецепты Justfile для всех операций флота (just lint, just fix, just dev).

  • Безопасность: Автоматизированные аудиты через bandit и safety.

Tool Schema Changelog

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

Loading tool schema changelog…

    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.
      16 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.
      19 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Exposes the full Discord API to LLM agents so they can send and manage rich messages, channels, threads, members, roles, moderation, AutoMod, webhooks, and interactive components. Acts as a drop-in replacement for the legacy Java/Spring implementation, keeping all 75 original tools while adding embeds, polls, files, server configuration, and restart-safe role menus.
      66 npm
      MIT