discord-mcp-server
This server bridges AI assistants to Discord, enabling intelligent bot control and automation through 50+ powerful tools accessible via natural language commands.
Core Capabilities:
💬 Messages & Reactions: Send, read, edit, delete messages, and add emoji reactions with configurable history limits.
🎨 Rich Embeds: Create sophisticated embeds with 10 themes (cyberpunk, gaming, noel, minimal, etc.), images (4 positions), buttons, menus, charts, and visual effects. List, update, analyze, and auto-update embeds at intervals. Generate TypeScript code for embeds.
🔘 Interactive Components: Create buttons (multiple styles), dropdown menus, persistent polls, and interactive quizzes with validation and animations. Register custom JavaScript functions for button actions (refresh, link, role toggle, modal, etc.).
👥 Moderation & Members: List members with filters, get user info, kick, ban, unban, timeout, remove timeout, warn, move between voice channels, and add/remove roles.
🏷️ Roles & 📁 Channels: List, create, edit, delete roles and channels (text/voice/category) with granular permissions, colors, and organization settings.
🖼️ Images & Files: Search images from Unsplash, Coingecko, SimpleIcons (crypto logos, company logos, themed photos). Upload local files to Discord, download Discord files, and display code with syntax highlighting.
🔗 Webhooks: Create, list, and send messages via webhooks with custom avatars and usernames.
💻 System & Utilities: Get server statistics, bot status (health, uptime, latency), explore logs with filtering, preview code with auto-split for long content.
🎮 Gaming: Deploy persistent mini-RPG, create quiz systems with scoring, and show game results with animations (confetti, fireworks, trophy, etc.).
🤖 AI Integration: Compatible with all MCP-supporting assistants (Claude, Gemini, Cursor, etc.) with optimized system prompts for enhanced tool utilization.
Provides 26 tools for comprehensive Discord automation including sending messages, creating polls and interactive elements (buttons, menus), managing server channels and members, handling webhooks, uploading files, creating embeds, and moderating servers through a Discord bot.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@discord-mcp-server send a welcome message to the general channel"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
📖 À propos
Imaginez pouvoir contrôler Discord avec votre IA préférée ! 💬
Discord MCP Server est un pont entre votre intelligence artificielle et Discord. Il transforme votre bot Discord en un assistant intelligent capable de comprendre et d'exécuter vos commandes.
🤖 Comment ça marche ?
Votre IA envoie une commande
Discord MCP Server traduit cette commande pour Discord
Votre bot exécute l'action sur votre serveur
🌟 Compatible avec TOUS les assistants IA :
✅ Claude Code / Claude Desktop
✅ Hermes Agent (Nous Research)
✅ OpenClaw / Kilo Code
✅ Cursor AI
✅ Cline
✅ Gemini CLI / Google AI Studio
✅ Antigravity
✅ Et tous les autres assistants supportant MCP !
En résumé : Parlez à votre IA, et votre bot Discord exécute. C'est aussi simple que ça ! 🚀
Avec 10 outils unifiés avec actions Enum, vous pouvez faire absolument tout sur Discord :
Envoyer des messages
Créer des sondages interactifs, menus et boutons
Gérer votre serveur (Membres, Rôles, Canaux)
Et bien plus encore !
👉 Consulter la documentation des 10 outils ici
Related MCP server: discord-mcp-server
🛠️ Fonctionnalités (10 Outils Unifiés)
Le serveur Discord MCP offre 10 outils unifiés avec actions Enum pour une meilleure organisation :
Action | Description |
upload | Upload un fichier vers Discord (retourne URL CDN) |
download | Télécharge un fichier Discord en local |
Action | Description |
send | Envoie un message texte |
edit | Modifie un message existant |
delete | Supprime un message |
read | Lit l'historique d'un canal |
react | Ajoute une réaction emoji |
Action | Description |
create | Crée un embed avec thèmes, boutons, menus |
list | Liste les embeds d'un canal |
get | Récupère les détails d'un embed |
update | Met à jour un embed existant |
Action | Description |
list | Liste les canaux |
create | Crée un canal |
edit | Modifie un canal |
delete | Supprime un canal |
permissions | Gère les permissions |
Action | Description |
list | Liste les rôles |
create | Crée un rôle |
edit | Modifie un rôle |
delete | Supprime un rôle |
permissions | Gère les permissions |
Action | Description |
list | Liste les membres |
get | Info utilisateur |
kick | Expulse un membre |
ban | Ban un membre |
unban | Débannit |
timeout | Timeout temporaire |
warn | Avertissement |
move | Déplace en vocal |
role | Ajoute/retire rôle |
Action | Description |
create | Crée un sondage interactif |
list | Liste les sondages |
get | Détails d'un sondage |
stop | Arrête un sondage |
Action | Description |
create | Crée un bouton |
register | Lie une fonction JS |
list | Liste les fonctions |
delete | Supprime une fonction |
Action | Description |
create | Crée un menu |
delete | Supprime un menu |
Action | Description |
info | Info serveur |
webhook | Gère les webhooks |
💡 Chaque outil accepte une action
action: 'list' | 'create' | 'edit' | 'delete' | 'get'etc. selon l'outil.
⚙️ Configuration
1. Installation globale
npm install -g discord-mcp-proLe package installe automatiquement un binaire discord-mcp dans votre PATH. Lancez-le simplement :
discord-mcp💡 Au premier install, un message d'aide complet s'affiche (création du bot, .env, configuration MCP). Pas besoin de revenir ici.
2. Créer un bot Discord
New Application → donnez-lui un nom
Bot section → Add Bot → copiez le Token (c'est votre
DISCORD_TOKEN)Activez les Privileged Gateway Intents :
✅ Server Members Intent
✅ Message Content Intent
OAuth2 → URL Generator :
Scopes :
bot,applications.commandsBot Permissions :
Administrator(ou granular si vous savez ce que vous faites)Ouvrez l'URL générée pour inviter le bot
3. Variables d'environnement
Créez un fichier .env (le wrapper discord-mcp cherche automatiquement dans cet ordre) :
Priorité | Localisation | Usage |
1 |
| Override local, idéal pour tests |
2 |
| Config globale partagée |
3 |
| Config système |
Contenu minimum :
# Token Discord du bot (obligatoire)
DISCORD_TOKEN=your-bot-token-here
# Guild ID (optionnel, recommandé pour limiter les opérations serveur)
DISCORD_GUILD_ID=123456789012345678Variables complètes (voir .env.example à la racine du repo) :
Variable | Obligatoire | Description |
| ✅ Oui | Token du bot (https://discord.com/developers) |
| Non | Limite les opérations à un serveur spécifique |
| Non | Pour OAuth flow |
| Non | Restreint les commandes admin à cet utilisateur |
| Non | Préfixe des commandes texte (défaut: |
| Non |
|
4. Wire to your MCP client
Le serveur MCP écoute par défaut sur http://localhost:3141/mcp.
Claude Desktop
Éditez votre fichier de config MCP :
OS | Chemin |
macOS |
|
Linux |
|
Windows |
|
{
"mcpServers": {
"discord": {
"command": "discord-mcp",
"args": []
}
}
}💡 Pourquoi
"command": "discord-mcp"plutôt qu'un chemin absolu ? Parce quenpm install -gajoute le binaire à votre PATH automatiquement. Si vous avez installé via npm, cette config marche partout, multi-OS, sans chemin codé en dur.
Hermes / Kilo / Cline / Cursor / autres
Même format JSON dans leur config respective :
{
"mcpServers": {
"discord": {
"command": "discord-mcp",
"args": [],
"env": {
"DISCORD_TOKEN": "${env:DISCORD_TOKEN}",
"DISCORD_GUILD_ID": "${env:DISCORD_GUILD_ID}"
}
}
}
}5. Premier lancement
discord-mcpVous devriez voir :
[INFO] [serveur_discord] === DÉBUT ENREGISTREMENT DES OUTILS EMBEDS ===
[INFO] [serveur_discord] Ajout de l'outil creer_embed...
...
✓ discord-mcp-pro ready (17 tools, http://localhost:3141/mcp)Si vous voyez Cannot find dist/index.js, réinstallez avec :
npm install -g discord-mcp-pro --force6. Mise à jour
npm update -g discord-mcp-proPour repasser en local dev :
git clone https://github.com/DeamonDev888/-Serveur-Discord-MCP.git
cd -Serveur-Discord-MCP
npm install
npm run build
npm run dev💡 Cas d'usage
Avec Discord MCP Server, vous pouvez :
💬 Automatiser les messages de bienvenue
📊 Créer des sondages interactifs
🎨 Générer des embeds magnifiques
📋 Modérer votre serveur
🔔 Configurer des webhooks pour les notifications
🎮 Créer des boutons pour les commandes rapides
📈 Surveiller l'activité du serveur
🤖 Créer un bot IA qui répond à TOUT - Le bot ultime qui peut :
Répondre aux questions des membres
Aider à la modération automatiquement
Animer le serveur avec des jeux et quiz
Donner des informations en temps réel
Apprendre et s'adapter à votre communauté
Interagir avec tous les services externes (API, bases de données, etc.)
🤖 Prompt System Optimisé
Pour exploiter pleinement les 50 outils de Discord MCP Server, utilisez le prompt système dédié :
👉 Accéder au prompt ou skill système ici
Qu'est-ce que c'est ?
Un prompt système spécialement conçu pour permettre à votre IA de :
🎯 Utiliser automatiquement les bons outils Discord selon vos demandes
🔧 Comprendre les interactions complexes (boutons, menus, sondages)
📋 Générer des réponses adaptées à chaque contexte Discord
🚀 Optimiser l'utilisation des 50 outils disponibles
Comment l'utiliser ?
Copiez le prompt système depuis le lien ci-dessus
Collez-le dans votre système de prompt (Claude, ChatGPT, etc.)
Discutez normalement - l'IA choisira automatiquement les bons outils Discord
Exemple : "Envoie un message de bienvenue avec des boutons interactifs dans le channel #général"
L'IA utilisera automatiquement les outils :
get_channelspour trouver le channelenvoyer_messagepour le messagecreate_custom_buttonspour les boutons
📚 Documentation
🤖 Prompt System/Skill pour Discord MCP - Prompt système optimisé pour exploiter tous les outils Discord MCP
🤝 Contribuer
Les contributions sont les bienvenues ! N'hésitez pas à :
⭐ Mettre une étoile au projet
🐛 Signaler des issues
💡 Proposer des améliorations
🔧 Envoyer des pull requests
Made with ❤️ by DeaMoN888
📸 Galerie
Voici quelques exemples d'utilisation de Discord MCP Server :
🔐 Crypto

🎭 Feux de rôle

💻 Aperçu du code

🍌 Nano Banana

📈 Ethereum Price

Available Tools
53 toolsadd_reactionC
Ajoute une réaction emoji
Inputs: channelId (required), messageId (required), emoji (required).
add_role_to_memberC
Ajoute un rôle à un membre
Inputs: userId (required), roleId (required).
attacher_fonction_bouton_embedC
Attache une fonction personnalisée à un bouton d'embed existant
Inputs: embedId (required), buttonLabel (required), functionCode (required), functionName.
ban_memberC
Bannit un membre du serveur
Inputs: userId (required), reason, deleteMessageSeconds.
code_previewC
Affiche du code avec coloration syntaxique et division automatique si trop long
Inputs: channelId (required), code (required), language (required).
create_buttonC
Crée un message avec un bouton interactif
Inputs: channelId (required), label (required), customId (required), message, +2 more.
create_channelC
Crée un nouveau canal
Inputs: name (required), type, categoryId, reason.
create_interactive_quizC
Créer un quiz interactif avec validation automatique et animations
Inputs: channelId (required), question (required), options (required), correctIndex (required), +7 more.
create_pollC
Crée un sondage interactif avec boutons
Inputs: channelId (required), question (required), options (required), duration, +1 more.
create_roleC
Crée un nouveau rôle
Inputs: name (required), color, hoist, mentionable, +1 more.
create_webhookC
Crée un webhook sur un canal
Inputs: channelId (required), name (required), avatarUrl.
creer_embedA
🎯 ULTRA-INTUITIF - Créer un embed Discord en 3 étapes SIMPLES !
📋 ÉTAPE 1 (OBLIGATOIRE): • channelId: ID du canal Discord • title: Titre de l'embed • description: Texte principal
📚 ÉTAPE 2 (RECOMMANDÉ): • theme: basic | data_report | status_update | product_showcase | leaderboard | tech_announcement | social_feed | dashboard | noel | minimal
🎨 ÉTAPE 3 (OPTIONNEL): • image: Grande image (bas) • thumbnail: Petite image (haut-droite) • buttons: Boutons interactifs (max 5) • fields: Champs de données (max 10)
🖼️ IMAGES: 4 positions disponibles • authorIcon (haut-gauche) - PETITE (16x16px Discord) • thumbnail (haut-droite) - MOYENNE (80x80px Discord) • image (bas) - GRANDE (400x250px Discord) • footerIcon (bas-gauche) - PETITE (16x16px Discord)
💡 CONSEIL: Utilisez help=true pour afficher le guide interactif !
🚀 PHASE 1 ENHANCEMENT (automatique): • Cache local d'images • Fallback intelligent (URL invalide → Emoji) • Validation pré-exécution • Optimisation Discord
⚡ MENTIONS DISCORD - IMPORTANT: ❌ authorName/footerText NE supportent PAS les mentions ✅ description SUPPORTE les mentions (<@ID>, <@!ID>, <#ID>, <@&ID>) • Discord n'interprète PAS les mentions dans authorName/footerText • Utilisez description pour les mentions interactives (bleu, cliquable)
Inputs: channelId (required), help, title, description, +34 more.
delete_channelC
Supprime un canal
Inputs: channelId (required), reason.
delete_messageD
Supprime un message
Inputs: channelId (required), messageId (required), reason.
delete_roleC
Supprime un rôle
Inputs: roleId (required).
deploy_rpgB
Déploie le mini-RPG persistant dans le canal spécifié
Inputs: no named parameters.
edit_channelC
Modifie un canal existant
Inputs: channelId (required), name, categoryId, reason.
edit_messageC
Modifie un message existant
Inputs: channelId (required), messageId (required), newContent (required).
edit_roleC
Modifie un rôle existant
Inputs: roleId (required), name, color, hoist, +1 more.
enregistrer_fonction_boutonC
Enregistre une fonction personnalisée pour un bouton existant (par ID de bouton)
Inputs: buttonId (required), functionCode (required), functionName.
envoyer_messageC
Envoie un message texte simple
Inputs: channelId (required), content (required).
get_channelsC
Liste tous les canaux
Inputs: guildId, type.
get_embed_analyticsC
Obtenir les analytics d'un embed spécifique
Inputs: embedId (required).
get_embed_detailsB
Récupère les détails complets d'un embed existant pour permettre l'édition. Retourne toutes les propriétés (title, description, color, author, thumbnail, image, footer, fields, components) en format structuré.
Inputs: channelId (required), messageId (required), embedIndex.
get_server_infoC
Informations détaillées du serveur
Inputs: guildId.
get_user_infoC
Obtenir des informations détaillées sur un utilisateur
Inputs: userId (required), guildId.
kick_memberC
Expulse un membre du serveur
Inputs: userId (required), reason.
list_auto_update_embedsB
Lister tous les embeds avec auto-update actif
Inputs: no named parameters.
list_channelsC
Liste tous les canaux du serveur
Inputs: type.
list_embedsA
Scanne un channel et liste tous les messages avec des embeds. Retourne les ID de messages, titres, descriptions, et toutes les infos des embeds pour permettre l'édition.
Inputs: channelId (required), limit.
lister_fonctions_boutonsB
Liste toutes les fonctions personnalisées enregistrées pour les boutons
Inputs: no named parameters.
list_imagesA
🖼️ Liste/Récupère les URLs d'images pour les embeds Discord
🎯 MODE AUTO (recommandé): Détecte automatiquement la meilleure source
• Cyberpunk/Anime/Nature → Vraies photos Unsplash HD thématiques
• Symboles (BTC, AAPL) → Logos de la base locale
• Categories classiques → Logos statiques
📚 SOURCES DISPONIBLES:
• Logos: Coingecko (crypto), SimpleIcons (entreprises), base locale (services)
• Photos HD: Unsplash (cyberpunk, anime, nature, esport, devops)
• Photos aléatoires: Picsum Photos (avec seed pour la reproductibilité)
• GIFs stylisés: Picsum avec blur (effets visuels)
💡 EXEMPLES D'USAGE:
• Mode AUTO (recommandé):
- list_images({category: "cyberpunk"}) → Vraies photos cyberpunk Unsplash
- list_images({symbols: "BTC"}) → Logo Bitcoin
- list_images({category: "crypto", limit: 10}) → Top 10 cryptos
• Mode REAL (vraies photos thématiques):
- list_images({category: "cyberpunk", mode: "real"}) → Photos cyberpunk HD
- list_images({category: "anime_images", mode: "real"}) → Photos anime/style japonais
- list_images({category: "nature", mode: "real"}) → Photos nature/paysages
• Mode LOGO (logos statiques):
- list_images({symbols: "BTC", mode: "logo"}) → Logo Bitcoin Coingecko
- list_images({symbols: "AAPL", mode: "logo"}) → Logo Apple SimpleIcons
• Mode PHOTO (photos aléatoires Picsum):
- list_images({symbols: "BTC", mode: "photo"}) → Photo aléatoire avec seed BTC
- list_images({category: "crypto", mode: "photo", limit: 5}) → 5 photos aléatoires
• Mode GIF (effets stylisés):
- list_images({symbols: "BTC", mode: "gif"}) → Image avec blur (effet GIF)
🏷️ CATÉGORIES THÉMATIQUES (photos Unsplash HD):
• cyberpunk - Villes futuristes, néon, cyber-culture
• anime_images - Style japonais, action, fantasy
• nature - Paysages, montagnes, forêts
• esport_images - Gaming, compétition, setup
• devops_images - Infrastructure, cloud, code
• real_images - Toutes les photos Unsplash
🔍 RECHERCHE:
• list_images({search: "bitcoin"}) → Recherche par nom
• list_images({category: "cyberpunk", search: "neon"}) → Filtre les résultatsInputs: symbols, category, sector, subcategory, +4 more.
list_membersC
Liste les membres et leurs rôles d'un serveur
Inputs: guildId, limit.
list_rolesC
Liste tous les rôles du serveur
Inputs: includePermissions.
list_webhooksB
Liste tous les webhooks d'un canal
Inputs: channelId (required).
logs_explorerC
Explore les derniers logs du serveur
Inputs: lines, level.
move_memberC
Déplace un membre vers un salon vocal
Inputs: userId (required), channelId (required).
read_messagesC
Lit l'historique des messages
Inputs: channelId (required), limit.
remove_role_from_memberC
Retire un rôle d'un membre
Inputs: userId (required), roleId (required).
remove_timeoutC
Retire le timeout d'un membre
Inputs: userId (required), reason.
send_webhookC
Envoie un message via webhook
Inputs: webhookId (required), webhookToken (required), content, username, +1 more.
set_channel_permissionsC
Définit les permissions d'un canal pour un rôle
Inputs: channelId (required), roleId (required), allow, deny.
set_role_permissionsC
Définit les permissions d'un rôle
Inputs: roleId (required), permissions (required), reset.
show_game_resultC
Afficher un résultat de jeu avec animation de réussite/échec et option de recommencer
Inputs: channelId (required), isSuccess (required), points, badge, +6 more.
statut_botC
Statut actuel du bot
Inputs: no named parameters.
stop_embed_auto_updateB
Arrêter l'auto-update d'un embed
Inputs: embedId (required).
supprimer_fonction_boutonC
Supprime la fonction personnalisée d'un bouton
Inputs: buttonId (required).
timeout_memberC
Applique un timeout à un membre (mute temporaire)
Inputs: userId (required), duration (required), reason.
unban_memberC
Débannit un utilisateur
Inputs: userId (required), reason.
update_embedB
Modifie un embed existant. Permet de changer le titre, description, couleur, les 4 positions d'images (authorIcon, thumbnail, image, footerIcon), d'ajouter/modifier des champs, et d'ajouter/modifier des boutons. Peut aussi appliquer un thème prédéfini.
⚡ MENTIONS DISCORD: title/authorName/footerText NE supportent PAS les mentions. description SUPPORTE les mentions (<@ID>, <@!ID>, <#ID>, <@&ID>).
Inputs: channelId (required), messageId (required), embedIndex, title, +18 more.
uploader_fichierC
Upload un fichier local vers un canal Discord avec validation
Inputs: channelId (required), filePath (required), fileName, message, +2 more.
warn_memberC
Ajoute un avertissement à un membre
Inputs: userId (required), reason (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 53 tools
Multiple tools have overlapping or unclear boundaries, causing potential confusion. For example, 'list_channels' and 'get_channels' appear to serve the same purpose, and tools like 'creer_embed' and 'update_embed' have extensive descriptions that might overlap with other embed-related tools. The high tool count exacerbates this issue, making it difficult for an agent to distinguish between similar functions.
The naming is inconsistent, mixing English and French (e.g., 'add_reaction' vs. 'creer_embed'), and using varied verb styles (e.g., 'create_button' vs. 'envoyer_message'). Some tools follow a verb_noun pattern, but the language and style deviations create a chaotic naming scheme that lacks a predictable pattern.
With 53 tools, the count is excessive for a Discord server management domain, leading to bloat and complexity. This many tools suggests poor scoping, as many functions could be consolidated or omitted without losing essential coverage, making it overwhelming for agents to navigate effectively.
The tool set provides comprehensive coverage for Discord server management, including CRUD operations for channels, roles, messages, embeds, and members, along with advanced features like quizzes, polls, and analytics. Minor gaps might exist, such as limited moderation tools beyond basic actions, but overall, the surface is well-rounded for the domain.
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for AI dialogue using various LLM models via AceDataCloud
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables Claude Desktop to interact with Discord through a dedicated bot. It allows users to list channels, read message history, and send messages directly from the AI interface.2-
- AlicenseNot gradedqualityDmaintenanceLets any MCP-compatible AI client interact with Discord — send messages, manage channels, create webhooks, assign roles, and more.76 npm2MIT
- AlicenseAqualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.67 npmMIT
- FlicenseCqualityDmaintenanceAn MCP server that exposes Discord bot actions as tools for LLM clients.291-