Discord MCP
Discord MCP
Remote-MCP-Server (Streamable HTTP), der Discord als Tools bereitstellt und für die Verbindung über Claude → Einstellungen → Connectors → Add custom connector (https://claude.ai/ask-your-org/setup, Option Custom) gedacht ist.
Was er bereitstellt
Werkzeuge (Tools) für die Discord-API, basierend auf discord.py:
list_guilds— Server, auf die der Bot Zugriff hat.list_channels(guild_id)— Kanäle eines Servers.list_members(guild_id, limit)— Mitglieder eines Servers.list_roles(guild_id)— Rollen eines Servers.send_message(channel_id, content)— eine Nachricht senden.read_messages(channel_id, limit, before_message_id)— Verlauf lesen.create_thread(channel_id, name, message_id?, auto_archive_minutes)— einen Thread erstellen.add_reaction(channel_id, message_id, emoji)/remove_reaction(...)— Reaktionen.add_role_to_member(guild_id, user_id, role_id)/remove_role_from_member(...)— Rollen.
Alle IDs (Server, Kanal, Nachricht, Benutzer, Rolle) sind die Discord-Snowflakes, als String.
Related MCP server: Discord MCP Server
1. Discord-Bot erstellen
Gehe zum Discord Developer Portal und erstelle eine New Application.
Unter Bot erstellst du den Bot und kopierst das Token (Schaltfläche Reset Token). Es ist der Wert von
DISCORD_BOT_TOKEN.Aktiviere im selben Abschnitt Bot → Privileged Gateway Intents:
Server Members Intent (erforderlich für
list_membersund Rollenverwaltung).Message Content Intent (erforderlich, um den Inhalt der Nachrichten in
read_messageszu lesen).
Unter OAuth2 → URL Generator:
Scopes:
bot.Bot Permissions (passe sie je nach Verwendungszweck an):
View Channels,Send Messages,Read Message History,Create Public Threads,Add Reactions,Manage Roles.Öffne die generierte URL und lade den Bot auf den Server ein, auf dem du ihn verwenden möchtest.
Wenn du
add_role_to_member/remove_role_from_memberverwenden möchtest, stelle sicher, dass die Bot-Rolle höher steht (höhere Hierarchie) als die Rollen, die du zuweisen möchtest.
2. Umgebungsvariablen konfigurieren
Kopiere .env.example nach .env und fülle sie aus:
cp .env.example .envDISCORD_BOT_TOKEN: das Token aus dem vorherigen Schritt.MCP_AUTH_TOKEN: ein eigenes Geheimnis zum Schutz des Servers (generiere es mitpython -c "import secrets; print(secrets.token_urlsafe(32))"). Claude.ai sendet es bei jeder Anfrage als HeaderAuthorization: Bearer <token>(siehe Schritt 4).Die übrigen Variablen haben sinnvolle Standardwerte — siehe Kommentare in
.env.example.
3. Server ausführen
Lokal (ohne Docker)
python -m venv .venv && source .venv/bin/activate
pip install -e .
python -m discord_mcp # o: discord-mcpStandardmäßig lauscht er auf http://0.0.0.0:8000/mcp.
Mit Docker
docker compose up --buildoder manuell:
docker build -t discord-mcp .
docker run --env-file .env -p 8000:8000 discord-mcpBereitstellen (Render / Railway / Fly.io / beliebiges VPS)
Das Image ist ein generischer HTTP-Container ohne eigenen persistenten Zustand (der Zustand des Bots lebt im Speicher und in Discord) und läuft daher bei jedem Anbieter, der Docker unterstützt:
Konfiguriere die Umgebungsvariablen aus Schritt 2 im Panel des Anbieters.
Gib den Port
8000(oder den inPORTdefinierten) über HTTPS frei — Claude.ai verlangt, dass der MCP-Server überhttps://erreichbar ist.Nach der Bereitstellung lautet die Connector-URL
https://<tu-dominio>/mcp.
Um den Schutz gegen DNS-Rebinding in der Produktion zu verstärken, setze ALLOWED_HOSTS (den öffentlichen Hostnamen des Servers) und ALLOWED_ORIGINS (z. B. https://claude.ai).
4. In claude.ai als Custom-Connector verbinden
Gehe zu
https://claude.ai/ask-your-org/setup(oder Einstellungen → Connectors) und wähle Add custom connector / Custom.Name:
Discord(oder wie du möchtest).URL:
https://<tu-dominio>/mcp.Füge unter Request headers / Advanced settings hinzu:
Header:
AuthorizationWert:
Bearer <el mismo valor que pusiste en MCP_AUTH_TOKEN>
Speichere und teste, indem du Claude etwas wie „Liste die verfügbaren Discord-Server auf" bittest — er sollte
list_guildsaufrufen.
Wenn du keine Authentifizierung verwenden möchtest (nur für schnelle Tests, niemals in der Produktion), lasse MCP_AUTH_TOKEN leer und lasse den Header weg.
Entwicklung
pip install -e ".[dev]"
pytestDie Tests decken die Konfiguration, die Authentifizierungs-Middleware und die Logik von DiscordService ab, die keine echte Verbindung zu Discord erfordert (es gibt keine Integrationstests gegen die echte Discord-API).
Anmerkungen zur Architektur
Der
discord.py-Bot läuft als Hintergrundaufgabe im selben Event-Loop wie der ASGI-Server (Starlette/uvicorn); er startet und stoppt zusammen mit dem Lifespan der App (src/discord_mcp/server.py).Der MCP-Server verwendet den Transport Streamable HTTP (
mcp.server.MCPServeraus dem offiziellen SDKmcp), den Remote-Transport, der von den Custom-Connectors von Claude unterstützt wird.Die Authentifizierung ist ein statischer Bearer-Token, der von einer eigenen ASGI-Middleware (
auth_middleware.py) validiert wird, die für den Mechanismus „Request headers" der Custom-Connectors gedacht ist — ein vollständiger OAuth-Flow wird nicht implementiert.
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server for AI dialogue using various LLM models via AceDataCloud
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.63 npmMIT
- AlicenseNot gradedqualityDmaintenanceA 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.6756 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to manage Discord servers, including roles, channels, members, messages, and moderation, via natural language commands.1MIT