Skip to main content
Glama

Discord Agent

Ein autonomer KI-Agent, der in Discord lebt. Erwähne ihn, frag ihn in einfacher Sprache, und er untersucht den Server, plant mehrstufige Aktionen, führt sie über Discord-API-Tools aus, überprüft das Ergebnis und meldet zurück — wie es ein echter Administrator tun würde.

Es ist von Natur aus Multi-Guild: Jede Operation ist strikt auf die Guild beschränkt, in der sie aufgerufen wurde, ohne die Möglichkeit, Kontext, Speicher oder Berechtigungen über Server hinweg zu vermischen.

User:  @Agent create a Development category with frontend, backend, devops,
       and code-review channels, plus a Dev role that can access them.
Agent: Done. Created the Development category with 4 channels and the Dev role,
       and configured permissions. Everything verified.

Features

  • Autonome Planung & Ausführung — Benutzer beschreiben Ziele, keine API-Aufrufe.

  • LLM-agnostisch — OpenAI, Anthropic, Gemini, OpenRouter, DeepSeek, Ollama oder ein beliebiger OpenAI-kompatibler Endpunkt.

  • Multi-Guild-Isolation — jede Abfrage, jeder Cache-Eintrag und jeder Speichereintrag ist in einem Guild-Namespace abgelegt.

  • MCP-artige Tool-Schichtdiscord.guild.*, discord.channel.*, discord.role.*, discord.permission.*, discord.message.*, discord.member.*, discord.moderation.*, discord.thread.*, discord.forum.*, discord.search.*, discord.audit.*, discord.analytics.*, discord.memory.*, discord.automation.*, discord.schedule.*, discord.server.*, discord.bulk.*.

  • Berechtigungs-Intelligenz — erklärt warum ein Mitglied handeln kann oder nicht.

  • Sicherheits-Gates — Risikoklassifizierung, konfigurierbare Bestätigungsstufen, Dry-Run-/Plan-Modus, idempotente ensure_*-Operationen, Autorisierung unabhängig vom LLM.

  • Prompt-Injection-Resistenz — sämtliche Discord-Inhalte werden als nicht vertrauenswürdig behandelt; Regeln und Guild-Grenzen können nicht außer Kraft gesetzt werden.

  • Guild-gebundener Speicher — „erinnere dich, dass …“, „vergiss, dass …“, „woran erinnerst du dich?“.

  • Event-Automatisierungen & geplante Aufgaben — Begrüßungsnachrichten, Reaktionen, wöchentliche Zusammenfassungen.

  • Audit-Trail — strukturierte Ausführungs-/Aktionshistorie pro Guild.

  • CLI-Diagnoseagent doctor, agent status, agent guilds, agent capabilities, agent test.

Related MCP server: discord-mcp

Quick start

1. Discord-Anwendung erstellen

  1. Gehe zu https://discord.com/developers/applications und erstelle eine Neue Anwendung.

  2. Erstelle unter Bot einen Bot und kopiere den Token.

  3. Aktiviere die erforderlichen Privileged Gateway Intents:

    • Server Members Intent

    • Message Content Intent

  4. Verwende den OAuth2 → URL Generator, um den Bot mit dem bot-Scope und den benötigten Berechtigungen einzuladen (z. B. Manage Channels, Manage Roles, Manage Messages). Der Bot wird nur das tun, was seine Discord-Berechtigungen erlauben.

2. Konfigurieren

cp .env.example .env
# edit .env and set at minimum:
#   DISCORD_BOT_TOKEN=
#   LLM_PROVIDER=openai
#   LLM_API_KEY=
#   LLM_MODEL=gpt-4o-mini

3. Ausführen

Docker:

docker compose up --build

Lokale Entwicklung:

npm install
npm run dev

Produktions-Build:

npm run build
npm start

4. Verwenden

Erwähne den Bot in einem beliebigen Kanal:

@Agent organize this server
@Agent create a private staff section
@Agent why can't John send messages in #general?
@Agent audit the server permissions
@Agent remember that release channels should always be read-only

Stelle einer Anfrage plan / preview / dry-run voran, um einen Plan ohne Ausführung zu erhalten, oder audit / analyze für eine schreibgeschützte Analyse.

Befehle & Diagnose

npm run cli -- doctor         # environment + configuration health check
npm run cli -- status         # configuration summary
npm run cli -- guilds         # list known guilds
npm run cli -- capabilities   # list all tools by namespace and risk
npm run cli -- config         # show resolved config (secrets redacted)
npm run cli -- test           # quick self-test

Docker

Das Projekt enthält ein mehrstufiges Dockerfile (Build in einem vollständigen Toolchain-Image, Ausführung in einem schlanken Image als node-Benutzer) sowie eine docker-compose.yml.

# Build and run with docker compose
docker compose up --build -d

# Or build the image directly
docker build -t discord-agent .

# Run the self-test inside the built image
docker run --rm discord-agent node dist/cli/cli.js test

Die SQLite-Datenbank wird im Volume agent-data unter /app/data/agent.sqlite gespeichert. Siehe docs/DEPLOYMENT.md.

Ein vorgefertigtes Image wird bei jedem Push auf main und jedem Tag vom Docker-Workflow in die GitHub Container Registry veröffentlicht:

docker pull ghcr.io/NacreousDawn596/DiscordMCP:main

Der CI-Workflow führt bei jedem Push und PR Typprüfung, die Testsuite und einen Produktions-Build aus.

Konfiguration

Siehe .env.example für die vollständige Liste. Wichtige Einstellungen:

Variable

Beschreibung

DISCORD_BOT_TOKEN

Bot-Token (erforderlich).

LLM_PROVIDER

openai, anthropic, gemini, openrouter, ollama, deepseek, custom.

LLM_API_KEY / LLM_MODEL / LLM_BASE_URL

Modellauswahl und Endpunkt (LLM_MODEL akzeptiert eine kommagetrennte Fallback-Liste).

AGENT_CONFIRMATION_LEVEL

Risikoschwelle für erforderliche Bestätigung (Standard: HIGH).

ENABLE_MODERATION

Schaltet destruktive Moderations-Tools frei.

ALLOWED_USER_IDS

Kommagetrennte Benutzer-IDs, die die Autorisierung auf Guild-Ebene umgehen.

Verbindung zu OpenCode (MCP)

Ja — die discord.*-Tool-Suite kann als echter Model Context Protocol Server über stdio für opencode (oder jeden MCP-Client: Claude Code, Cursor usw.) bereitgestellt werden. Nach der Verbindung kannst du deinen Discord-Server mit Aufforderungen wie diesen steuern:

use the discord-agent tools to create a "Development" category with
#frontend, #backend and #devops in guild 123456789

So funktioniert es

Der MCP-Server (npm run mcp) startet denselben Discord-Bot, meldet sich mit deinem Token an und stellt alle 127 Tools über stdin/stdout bereit. Jedes Tool akzeptiert eine optionale guild_id, sodass derselbe Server jede Guild verwalten kann, in der der Bot ist.

Wichtig: MCP-Aufrufe laufen als der Bot selbst (Admin-Kontext), beschränkt auf das, was der Bot tatsächlich tun kann. Destruktive Moderation (Bannen/Kicken/Löschen) erfordert weiterhin ENABLE_MODERATION=true. Über MCP gibt es keinen interaktiven Bestätigungskanal, daher werden Aktionen sofort ausgeführt.

Schritt 1 — Build (oder mit tsx ausführen)

npm install
npm run build        # produces dist/mcp/entry.js

Schritt 2 — opencode konfigurieren

Füge einen mcp-Eintrag zu deiner opencode-Konfiguration hinzu. Das kann die Projektkonfiguration (opencode.json) oder deine globale Konfiguration (~/.config/opencode/opencode.json) sein.

Option A — sich auf die Projekt-.env verlassen (empfohlen):

// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "discord-agent": {
      "type": "local",
      "command": ["node", "dist/mcp/entry.js"],
      "cwd": "/absolute/path/to/discord-agent",
      "enabled": true,
      "timeout": 30000
    }
  }
}

Setze cwd auf das Projektverzeichnis, damit der Server deine .env lädt (die DISCORD_BOT_TOKEN und optional MCP_DEFAULT_GUILD_ID enthält).

Option B — Token explizit übergeben (keine .env erforderlich):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "discord-agent": {
      "type": "local",
      "command": ["node", "dist/mcp/entry.js"],
      "cwd": "/absolute/path/to/discord-agent",
      "environment": {
        "DISCORD_BOT_TOKEN": "your-bot-token",
        "MCP_DEFAULT_GUILD_ID": "123456789"
      },
      "enabled": true,
      "timeout": 30000
    }
  }
}

Setze timeout über den Standardwert von 5s — der Server meldet den Bot bei Discord an, bevor er antwortet, was einige Sekunden dauern kann.

Dev (ohne Build): verwende "command": ["npx", "tsx", "src/mcp/entry.ts"].

Schritt 3 — opencode neu starten

Starte opencode neu, damit es den neuen MCP-Server übernimmt. Du kannst die Verbindung mit /mcp überprüfen (oder indem du fragst: list the discord-agent tools).

Schritt 4 — Verwenden

Jedes Tool hat das Präfix discord_. Beispiele:

create a #welcome channel in guild 123456789 using discord-agent
list the roles in guild 123456789
audit the permissions in guild 123456789

Wenn MCP_DEFAULT_GUILD_ID gesetzt ist (oder der Bot in genau einer Guild ist), kannst du guild_id weglassen:

using discord-agent, create a Development category with #frontend and #backend

MCP-Optionen

Option

Zweck

MCP_DEFAULT_GUILD_ID

Standard-Guild, wenn ein Tool-Aufruf guild_id weglässt.

guild_id (Tool-Argument)

Ziel-Guild für einen bestimmten Aufruf; überschreibt den Standardwert.

Siehe docs/CONFIGURATION.md für den vollständigen Tool-Katalog und npm run cli -- capabilities für die Live-Liste.

Architektur

Discord ── message/mention/interaction ──► Discord Agent
                                            ├── Context Manager
                                            ├── LLM / Agent Runtime (tool loop)
                                            ├── Memory (guild-scoped)
                                            ├── Planner + validation
                                            ├── Permission awareness
                                            ├── MCP Tool Layer
                                            └── Execution Engine ──► Discord API

Siehe docs/ARCHITECTURE.md, docs/CONFIGURATION.md, docs/SECURITY.md und docs/DEPLOYMENT.md für Details. Vorgefertigte Beispiel-Prompts und Provider-Konfigurationen findest du in examples/.

Tests

npm test

Unit-Tests decken Guild-Isolation, Autorisierung, Berechtigungsberechnung, Risikoklassifizierung, Speicher-Isolation, Tool-Validierung, Plan-Validierung und Prompt-Injection-Abwehr ab.

Sicherheit

Der Bot hat unveränderliche Grenzen: Er gibt niemals sein Token preis, umgeht niemals Discord-Berechtigungen, überschreitet niemals Guild-Grenzen, lässt niemals zu, dass Nachrichteninhalte Richtlinien außer Kraft setzen, autorisiert niemals privilegierte Aktionen von nicht autorisierten Benutzern und behauptet niemals Erfolg, ohne den Zustand zu überprüfen. Siehe docs/SECURITY.md.

Lizenz

MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

  • 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
    Control your Discord server with AI. Lets you manage channels, roles, members, messages, and more through natural language.
    348
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables managing a Discord server using natural language through AI clients like Claude, with 139 admin tools across 20 categories for roles, channels, members, messages, threads, moderation, and more.
    168
    28
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Gives your AI assistant full control of a Discord server: 148 tools for chat, moderation, automod, events, and administration, up to building a complete community server from one paragraph. Every destructive action previews first and waits for your confirmation.
    100
    154
    7
    Elastic 2.0

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

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