Discord MCP
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
Перейдите на Discord Developer Portal и создайте New Application.
В разделе Bot создайте бота и скопируйте Token (кнопка Reset Token). Это значение
DISCORD_BOT_TOKEN.В том же разделе Bot → Privileged Gateway Intents включите:
Server Members Intent (необходим для
list_membersи управления ролями).Message Content Intent (необходим для чтения содержимого сообщений в
read_messages).
В OAuth2 → URL Generator:
Scopes:
bot.Bot Permissions (настройте в соответствии с тем, что вы собираетесь использовать):
View Channels,Send Messages,Read Message History,Create Public Threads,Add Reactions,Manage Roles.Откройте сгенерированный URL и пригласите бота на сервер, где вы будете его использовать.
Если вы собираетесь использовать
add_role_to_member/remove_role_from_member, убедитесь, что роль бота находится выше (имеет более высокую иерархию), чем роли, которые вы хотите назначать.
2. Настройка переменных окружения
Скопируйте .env.example в .env и заполните:
cp .env.example .envDISCORD_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-коннектора
Перейдите на
https://claude.ai/ask-your-org/setup(или Настройки → Коннекторы) и выберите Add custom connector / Custom.Name:
Discord(или какой хотите).URL:
https://<tu-dominio>/mcp.В Request headers / Advanced settings добавьте:
Заголовок:
AuthorizationЗначение:
Bearer <el mismo valor que pusiste en MCP_AUTH_TOKEN>
Сохраните и проверьте, попросив 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из официального SDKmcp) — удалённый транспорт, поддерживаемый custom-коннекторами Claude.Аутентификация — это статический bearer-токен, проверяемый собственным ASGI-middleware (
auth_middleware.py), предназначенным для механизма "Request headers" custom-коннекторов — он не реализует полный поток OAuth.
This server cannot be installed
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
- Alicense-qualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.7MIT
- Alicense-qualityDmaintenanceA Dockerized MCP server that enables Discord integration, offering tools for role management, messaging, moderation, and server administration via natural language.1MIT
- AlicenseAqualityDmaintenanceAn 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.67124MIT
- FlicenseCqualityCmaintenanceAn MCP server that exposes Discord bot actions as tools for LLM clients.4291
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
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/fboiero/DiscordMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server