Skip to main content
Glama
fboiero

Discord MCP

by fboiero

Discord MCP

Удалённый MCP-сервер (Streamable HTTP), который предоставляет Discord в виде инструментов, предназначен для подключения из Claude → Настройки → Коннекторы → Add custom connector (https://claude.ai/ask-your-org/setup, опция Custom).

Что предоставляет

Инструменты (tools) для работы с API Discord с использованием discord.py:

  • list_guilds — серверы, к которым имеет доступ бот.

  • list_channels(guild_id) — каналы сервера.

  • list_members(guild_id, limit) — участники сервера.

  • list_roles(guild_id) — роли сервера.

  • send_message(channel_id, content) — отправить сообщение.

  • read_messages(channel_id, limit, before_message_id) — читать историю.

  • create_thread(channel_id, name, message_id?, auto_archive_minutes) — создать ветку.

  • add_reaction(channel_id, message_id, emoji) / remove_reaction(...) — реакции.

  • add_role_to_member(guild_id, user_id, role_id) / remove_role_from_member(...) — роли.

Все идентификаторы (сервера, канала, сообщения, пользователя, роли) — это snowflake-идентификаторы Discord, передаваемые строкой.

Related MCP server: Discord MCP Server

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

  1. Перейдите на Discord Developer Portal и создайте New Application.

  2. В разделе Bot создайте бота и скопируйте Token (кнопка Reset Token). Это значение DISCORD_BOT_TOKEN.

  3. В том же разделе Bot → Privileged Gateway Intents включите:

    • Server Members Intent (необходим для list_members и управления ролями).

    • Message Content Intent (необходим для чтения содержимого сообщений в read_messages).

  4. В OAuth2 → URL Generator:

    • Scopes: bot.

    • Bot Permissions (настройте в соответствии с тем, что вы собираетесь использовать): View Channels, Send Messages, Read Message History, Create Public Threads, Add Reactions, Manage Roles.

    • Откройте сгенерированный URL и пригласите бота на сервер, где вы будете его использовать.

  5. Если вы собираетесь использовать add_role_to_member / remove_role_from_member, убедитесь, что роль бота находится выше (имеет более высокую иерархию), чем роли, которые вы хотите назначать.

2. Настройка переменных окружения

Скопируйте .env.example в .env и заполните:

cp .env.example .env
  • DISCORD_BOT_TOKEN: токен из предыдущего шага.

  • MCP_AUTH_TOKEN: собственный секрет для защиты сервера (сгенерируйте его с помощью python -c "import secrets; print(secrets.token_urlsafe(32))"). Claude.ai будет отправлять его как заголовок Authorization: Bearer <token> в каждом запросе (см. шаг 4).

  • Остальные переменные имеют разумные значения по умолчанию — см. комментарии в .env.example.

3. Запуск сервера

Локально (без Docker)

python -m venv .venv && source .venv/bin/activate
pip install -e .
python -m discord_mcp   # o: discord-mcp

По умолчанию слушает http://0.0.0.0:8000/mcp.

С Docker

docker compose up --build

или вручную:

docker build -t discord-mcp .
docker run --env-file .env -p 8000:8000 discord-mcp

Развёртывание (Render / Railway / Fly.io / любой VPS)

Образ — это универсальный HTTP-контейнер без собственного постоянного состояния (состояние бота хранится в памяти и в Discord), поэтому он работает на любом провайдере, поддерживающем Docker:

  • Настройте переменные окружения из шага 2 в панели провайдера.

  • Обеспечьте доступ к порту 8000 (или тому, который вы зададите в PORT) по HTTPS — Claude.ai требует, чтобы MCP-сервер был доступен по https://.

  • После развёртывания URL коннектора будет https://<tu-dominio>/mcp.

Чтобы усилить защиту от DNS rebinding в продакшене, задайте ALLOWED_HOSTS (публичное имя хоста сервера) и ALLOWED_ORIGINS (например, https://claude.ai).

4. Подключение в claude.ai в качестве custom-коннектора

  1. Перейдите на https://claude.ai/ask-your-org/setup (или Настройки → Коннекторы) и выберите Add custom connector / Custom.

  2. Name: Discord (или какой хотите).

  3. URL: https://<tu-dominio>/mcp.

  4. В Request headers / Advanced settings добавьте:

    • Заголовок: Authorization

    • Значение: Bearer <el mismo valor que pusiste en MCP_AUTH_TOKEN>

  5. Сохраните и проверьте, попросив Claude что-то вроде "Перечисли доступные серверы Discord" — он должен вызвать list_guilds.

Если вы предпочитаете не использовать аутентификацию (только для быстрых тестов, никогда в продакшене), оставьте MCP_AUTH_TOKEN пустым и не добавляйте заголовок.

Разработка

pip install -e ".[dev]"
pytest

Тесты покрывают конфигурацию, middleware аутентификации и логику DiscordService, которая не требует реального подключения к Discord (интеграционных тестов с реальным API Discord нет).

Заметки по архитектуре

  • Бот discord.py работает как фоновая задача в том же event loop, что и ASGI-сервер (Starlette/uvicorn); он запускается и останавливается вместе с lifespan приложения (src/discord_mcp/server.py).

  • MCP-сервер использует транспорт Streamable HTTP (mcp.server.MCPServer из официального SDK mcp) — удалённый транспорт, поддерживаемый custom-коннекторами Claude.

  • Аутентификация — это статический bearer-токен, проверяемый собственным ASGI-middleware (auth_middleware.py), предназначенным для механизма "Request headers" custom-коннекторов — он не реализует полный поток OAuth.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    D
    maintenance
    A Dockerized MCP server that enables Discord integration, offering tools for role management, messaging, moderation, and server administration via natural language.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables LLMs to control Discord servers via a bot token, providing comprehensive management tools for messages, members, roles, channels, permissions, and more.
    67
    124
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    An MCP server that exposes Discord bot actions as tools for LLM clients.
    4
    29
    1

View all related MCP servers

Related MCP Connectors

  • An MCP server that integrates with Discord to provide AI-powered features.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

Latest Blog Posts

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/fboiero/DiscordMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server