Skip to main content
Glama
fboiero

Discord MCP

by fboiero

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

  1. Gehe zum Discord Developer Portal und erstelle eine New Application.

  2. Unter Bot erstellst du den Bot und kopierst das Token (Schaltfläche Reset Token). Es ist der Wert von DISCORD_BOT_TOKEN.

  3. Aktiviere im selben Abschnitt Bot → Privileged Gateway Intents:

    • Server Members Intent (erforderlich für list_members und Rollenverwaltung).

    • Message Content Intent (erforderlich, um den Inhalt der Nachrichten in read_messages zu lesen).

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

  5. Wenn du add_role_to_member / remove_role_from_member verwenden 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 .env
  • DISCORD_BOT_TOKEN: das Token aus dem vorherigen Schritt.

  • MCP_AUTH_TOKEN: ein eigenes Geheimnis zum Schutz des Servers (generiere es mit python -c "import secrets; print(secrets.token_urlsafe(32))"). Claude.ai sendet es bei jeder Anfrage als Header Authorization: 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-mcp

Standardmäßig lauscht er auf http://0.0.0.0:8000/mcp.

Mit Docker

docker compose up --build

oder manuell:

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

Bereitstellen (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 in PORT definierten) über HTTPS frei — Claude.ai verlangt, dass der MCP-Server über https:// 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

  1. Gehe zu https://claude.ai/ask-your-org/setup (oder Einstellungen → Connectors) und wähle Add custom connector / Custom.

  2. Name: Discord (oder wie du möchtest).

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

  4. Füge unter Request headers / Advanced settings hinzu:

    • Header: Authorization

    • Wert: Bearer <el mismo valor que pusiste en MCP_AUTH_TOKEN>

  5. Speichere und teste, indem du Claude etwas wie „Liste die verfügbaren Discord-Server auf" bittest — er sollte list_guilds aufrufen.

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]"
pytest

Die 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.MCPServer aus dem offiziellen SDK mcp), 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.

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