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 Notifications 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.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord by sending notifications, creating channels, and managing interactive questions with support for two-way responses. It allows for streamlined communication through channel keys and supports various question types like multiple-choice and extended-answer modals.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to manage Discord servers through natural language, offering tools for guilds, channels, messages, roles, members, webhooks, invites, and automations. Includes a conversational agent that responds to @mentions in Discord.
    8
    Apache 2.0
  • 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.
    6
    1
    MIT