MCP-Discord
MCP-Discord
Un servidor MCP (Protocolo de Contexto de Modelo) de Discord que permite a los asistentes de IA interactuar con la plataforma Discord.
Descripción general
MCP-Discord proporciona las siguientes funcionalidades relacionadas con Discord:
Iniciar sesión en un bot de Discord
Listar los servidores de los que el bot es miembro
Obtener información del servidor
Listar miembros e inspeccionar detalles de los miembros
Listar, crear, editar, eliminar, asignar y eliminar roles
Buscar mensajes en un servidor
Leer, editar y eliminar mensajes de canal
Enviar mensajes a canales específicos
Recuperar listas de canales de foro
Crear, actualizar, eliminar y responder a publicaciones de foro
Listar hilos de foro y gestionar etiquetas de foro
Crear, editar y eliminar canales de texto, foro, voz y categorías
Establecer y eliminar anulaciones de permisos de canal
Añadir/eliminar reacciones a mensajes
Crear/editar/eliminar/usar webhooks
Related MCP server: MCP-Discord
Tabla de contenidos
Requisitos previos
Node.js (v18.0.0 o superior)
npm (v7.0.0 o superior)
Un bot de Discord con los permisos adecuados
Token del bot (se puede obtener en el Portal de desarrolladores de Discord)
Intención de contenido de mensaje (Message Content Intent) habilitada
Intención de miembros del servidor (Server Members Intent) habilitada
Intención de presencia (Presence Intent) habilitada
Permisos requeridos en tu servidor de Discord:
Configuración más sencilla
Administrador (Recomendado para una configuración rápida y funcionalidad completa)
O bien, selecciona solo los permisos requeridos:
Enviar mensajes
Crear hilos públicos
Enviar mensajes en hilos
Gestionar mensajes
Gestionar hilos
Gestionar canales
Gestionar webhooks
Gestionar roles
Añadir reacciones
Ver canal
Añade tu bot de Discord a tu servidor
Para añadir tu bot de Discord a tu servidor, utiliza uno de los siguientes enlaces de invitación (reemplaza
INSERT_CLIENT_ID_HEREcon el ID de cliente de tu bot):Administrador (acceso completo): https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=8
Permisos personalizados (mínimo requerido): https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=52076489808
Nota: Según el modelo de seguridad de Discord, un bot solo puede acceder a información de servidores a los que ha sido añadido explícitamente. Si deseas utilizar este servidor MCP para acceder a un servidor de Discord específico, primero debes añadir el bot a ese servidor. Utiliza el enlace de invitación a continuación para añadir el bot a tu servidor objetivo.
Instalación
Instalación mediante NPM
Puedes usarlo con el siguiente comando:
npx mcp-discord --config ${DISCORD_TOKEN}Para más detalles, puedes consultar el paquete NPM.
Instalación mediante Smithery
Para instalar mcp-discord automáticamente mediante Smithery
Instalación mediante Docker
Puedes ejecutar mcp-discord usando Docker. Las imágenes de Docker se crean y publican automáticamente en Docker Hub.
Repositorio de Docker Hub: barryy625/mcp-discord
Docker utiliza el servidor HTTP transmitible por defecto a través de build/app.js.
# Pull the latest image
docker pull barryy625/mcp-discord:latest
# Run HTTP server on port 8080
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest
# Override the listening port if needed
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000Etiquetas disponibles:
latest- Última versión estable de la rama principalv1.3.8, etc. - Lanzamientos de versiones específicas
Instalación manual
# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run buildConfiguración
Se requiere un token de bot de Discord para un funcionamiento correcto. El servidor admite dos métodos de transporte: stdio y HTTP transmitible.
Métodos de transporte
stdio (Predeterminado)
Transporte stdio tradicional para uso básico
Adecuado para integraciones simples
HTTP transmitible
Transporte basado en HTTP para escenarios más avanzados
Admite operación sin estado
Número de puerto configurable
Opciones de configuración
Puedes proporcionar la configuración de dos maneras:
Variables de entorno:
DISCORD_TOKEN=your_discord_bot_tokenUsando argumentos de línea de comandos:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"
# For streamable HTTP transport
node build/app.js --transport http --port 3000 --config "your_discord_bot_token"Uso con Claude/Cursor
1. Usar transporte Stdio con Claude/Cursor
Usa build/index.js cuando tu cliente MCP espere un servidor stdio basado en comandos.
Claude Desktop / Claude Code
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js"
],
"env": {
"DISCORD_TOKEN": "your_discord_bot_token"
}
}
}
}Cursor
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js"
],
"env": {
"DISCORD_TOKEN": "your_discord_bot_token"
}
}
}
}Esta es la configuración recomendada para clientes MCP locales basados en comandos.
2. Alojar el servidor HTTP transmitible
Usa build/app.js cuando desees ejecutar mcp-discord como un servidor MCP HTTP.
Ejecutar con Node.js
DISCORD_TOKEN=your_discord_bot_token node build/app.js --transport http --port 3000En Windows PowerShell:
$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000Ejecutar con Docker
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000Una vez iniciado, el punto final HTTP de MCP es:
http://localhost:3000/mcp3. Conectarse a un servidor MCP HTTP alojado
Si ya alojas mcp-discord en otro lugar, apunta tu cliente MCP al punto final /mcp del servidor en lugar de iniciar build/app.js como un comando.
Ejemplo de punto final:
https://your-server.example.com/mcpNotas importantes:
build/app.jsinicia un servidor HTTP. No utiliza stdio.build/index.jses el punto de entrada correcto para clientes MCP stdio basados en comandos.Para el uso de HTTP alojado, configura tu cliente MCP para que se conecte a la URL del punto final HTTP proporcionada por tu despliegue.
El formato exacto de configuración del cliente HTTP depende del cliente MCP que utilices.
Documentación de herramientas
Funciones básicas
discord_login: Iniciar sesión en Discord usando el token configuradodiscord_list_servers: Listar todos los servidores de Discord de los que el bot es miembrodiscord_send: Enviar un mensaje a un canal especificadodiscord_get_server_info: Obtener información del servidor de Discord
Gestión de canales
discord_create_text_channel: Crear un canal de textodiscord_create_forum_channel: Crear un canal de forodiscord_create_voice_channel: Crear un canal de vozdiscord_edit_channel: Editar el nombre, tema, categoría principal o posición de un canaldiscord_delete_channel: Eliminar un canaldiscord_create_category: Crear una categoría de canaldiscord_edit_category: Editar una categoría de canaldiscord_delete_category: Eliminar una categoría de canaldiscord_set_channel_permissions: Establecer anulaciones de permisos para un rol o usuario en un canal/categoríadiscord_remove_channel_permissions: Eliminar anulaciones de permisos de un canal/categoría
Funciones de foro
discord_get_forum_channels: Obtener una lista de canales de forodiscord_create_forum_post: Crear una publicación en un forodiscord_get_forum_post: Obtener una publicación de forodiscord_list_forum_threads: Listar hilos activos y archivados en un canal de forodiscord_reply_to_forum: Responder a una publicación de forodiscord_get_forum_tags: Obtener todas las etiquetas disponibles para un canal de forodiscord_set_forum_tags: Reemplazar las etiquetas disponibles para un canal de forodiscord_update_forum_post: Actualizar el título, las etiquetas, el estado archivado o el estado bloqueado de una publicación de forodiscord_delete_forum_post: Eliminar una publicación de foro
Mensajes y reacciones
discord_search_messages: Buscar mensajes en un servidordiscord_read_messages: Leer mensajes de canal (admite parámetrosbefore,after,around— acepta IDs snowflake o fechas ISO 8601 como "2025-03-01T00:00:00Z")discord_edit_message: Editar un mensaje escrito por el botdiscord_add_reaction: Añadir una reacción a un mensajediscord_add_multiple_reactions: Añadir múltiples reacciones a un mensajediscord_remove_reaction: Eliminar una reacción de un mensajediscord_delete_message: Eliminar un mensaje específico de un canal
Gestión de webhooks
discord_create_webhook: Crea un nuevo webhook para un canal de Discorddiscord_send_webhook_message: Envía un mensaje a un canal de Discord usando un webhookdiscord_edit_webhook: Edita un webhook existente para un canal de Discorddiscord_delete_webhook: Elimina un webhook existente para un canal de Discord
Gestión de roles
discord_list_roles: Listar todos los roles en un servidordiscord_create_role: Crear un rol con opciones de color, hoist, mencionable y permisosdiscord_edit_role: Editar un rol existentediscord_delete_role: Eliminar un roldiscord_assign_role: Asignar un rol a un miembrodiscord_remove_role: Eliminar un rol de un miembro
Gestión de miembros
discord_list_members: Listar miembros en un servidor con rolesdiscord_get_member: Obtener información detallada sobre un miembro específico
Desarrollo
# Development mode
npm run devLicencia
Available Tools
46 toolsdiscord_add_multiple_reactionsB
Adds multiple emoji reactions to a Discord message at once
Inputs: emojis (required), channelId (required), messageId (required).
discord_add_reactionC
Adds an emoji reaction to a specific Discord message
Inputs: emoji (required), channelId (required), messageId (required).
discord_assign_roleC
Assigns a role to a member in a Discord server
Inputs: roleId (required), userId (required), guildId (required), reason.
discord_create_categoryC
Creates a new category in a Discord server.
Inputs: name (required), guildId (required), reason, position.
discord_create_forum_channelA
Creates a new forum channel in a Discord server, optionally under a category
Inputs: name (required), guildId (required), topic, categoryId.
discord_create_forum_postB
Creates a new post in a Discord forum channel with optional tags
Inputs: title (required), content (required), forumChannelId (required), tags, +1 more.
discord_create_roleB
Creates a new role in a Discord server
Inputs: name (required), guildId (required), color, hoist, +3 more.
discord_create_text_channelA
Creates a new text channel in a Discord server with an optional topic and parent category
Inputs: guildId (required), channelName (required), topic, categoryId.
discord_create_voice_channelB
Creates a new voice channel in a Discord server with an optional parent category
Inputs: guildId (required), channelName (required), reason, userLimit, +1 more.
discord_create_webhookC
Creates a new webhook for a Discord channel
Inputs: name (required), channelId (required), avatar, reason.
discord_delete_categoryB
Deletes a Discord category by ID.
Inputs: categoryId (required), reason.
discord_delete_channelB
Deletes a Discord channel with an optional reason
Inputs: channelId (required), reason.
discord_delete_forum_postC
Deletes a forum post or thread with an optional reason
Inputs: threadId (required), reason.
discord_delete_messageB
Deletes a specific message from a Discord text channel
Inputs: channelId (required), messageId (required), reason.
discord_delete_roleA
Deletes a role from a Discord server
Inputs: roleId (required), guildId (required), reason.
discord_delete_webhookC
Deletes an existing webhook for a Discord channel
Inputs: webhookId (required), reason, webhookToken.
discord_edit_categoryB
Edits an existing Discord category (name and position).
Inputs: categoryId (required), name, reason, position.
discord_edit_channelA
Edits a Discord channel's name, topic, parent category, or position
Inputs: channelId (required), name, topic, reason, +2 more.
discord_edit_messageA
Edits a message previously sent by the bot. Only messages authored by the bot can be edited.
Inputs: content (required), channelId (required), messageId (required).
discord_edit_roleB
Edits an existing role in a Discord server
Inputs: roleId (required), guildId (required), name, color, +5 more.
discord_edit_webhookC
Edits an existing webhook for a Discord channel
Inputs: webhookId (required), name, avatar, reason, +2 more.
discord_get_forum_channelsA
Lists all forum channels in a specified Discord server (guild)
Inputs: guildId (required).
discord_get_forum_postB
Retrieves details about a forum post including its messages
Inputs: threadId (required).
discord_get_forum_tagsA
Gets all available tags for a Discord forum channel, including tag IDs, names, and emoji
Inputs: forumChannelId (required).
discord_get_memberB
Gets detailed information about a specific member in a Discord server
Inputs: userId (required), guildId (required).
discord_get_reaction_usersA
Lists the users who reacted with a specific emoji to a Discord message. Uses REST fetch and does not require Gateway intents. Returns up to 100 users per call.
Inputs: emoji (required), channelId (required), messageId (required), limit.
discord_get_server_infoB
Retrieves detailed information about a Discord server including channels and member count
Inputs: guildId (required).
discord_list_forum_threadsA
Lists all threads (posts) in a Discord forum channel, including both active and archived threads
Inputs: forumChannelId (required), limit, includeArchived.
discord_list_membersB
Lists members in a Discord server with their roles
Inputs: guildId (required), after, limit.
discord_list_pinned_messagesA
Lists the pinned messages of a channel, newest pin first.
Inputs: channelId (required), limit.
discord_list_rolesA
Lists all roles in a Discord server with their properties
Inputs: guildId (required).
discord_list_serversA
Lists all Discord servers the bot is a member of
Inputs: no named parameters.
discord_loginB
Logs in to Discord using the configured token
Inputs: token.
discord_pin_messageB
Pins a message to its channel. A channel can hold at most 50 pinned messages.
Inputs: channelId (required), messageId (required), reason.
discord_read_messagesA
Retrieves messages from a Discord text channel. Supports date-based filtering via before/after/around params (accepts snowflake IDs or ISO 8601 dates).
Inputs: channelId (required), after, limit, around, +1 more.
discord_remove_channel_permissionsA
Removes all permission overrides for a role or user on a channel or category
Inputs: roleId (required), channelId (required), reason.
discord_remove_reactionB
Removes a specific emoji reaction from a Discord message
Inputs: emoji (required), channelId (required), messageId (required), userId.
discord_remove_roleA
Removes a role from a member in a Discord server
Inputs: roleId (required), userId (required), guildId (required), reason.
discord_reply_to_forumB
Adds a reply to an existing forum post or thread
Inputs: message (required), threadId (required).
discord_search_messagesC
Searches for messages in a Discord server
Inputs: guildId (required), has, limit, maxId, +10 more.
discord_sendA
Sends a message to a specified Discord text channel. Optionally reply to another message by providing its message ID.
Inputs: message (required), channelId (required), replyToMessageId.
discord_send_webhook_messageB
Sends a message to a Discord channel using a webhook
Inputs: content (required), webhookId (required), webhookToken (required), threadId, +2 more.
discord_set_channel_permissionsA
Sets permission overrides for a role or user on a channel or category
Inputs: roleId (required), channelId (required), deny, allow, +1 more.
discord_set_forum_tagsA
Sets the available tags for a Discord forum channel. Replaces all existing tags.
Inputs: tags (required), forumChannelId (required).
discord_unpin_messageA
Removes a message from its channel's pinned messages.
Inputs: channelId (required), messageId (required), reason.
discord_update_forum_postB
Updates a forum post's title, applied tags, archived status, locked status, or pinned status. Tags can be specified by name or ID.
Inputs: threadId (required), name, tags, locked, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 46 tools
Multiple tools have overlapping purposes, such as 'discord_read_messages' vs 'discord_search_messages' and 'discord_reply_to_forum' vs 'discord_create_forum_post', which could confuse agents. The distinction between 'get', 'list', and 'read' is not always clear.
All tools follow a consistent 'discord_verb_object' pattern, making the naming predictable. However, there is some verb variation (get, list, read, search) that slightly reduces strict consistency, but overall it is well-structured.
With 46 tools, this far exceeds the recommended 3-15 scope for a well-designed MCP server. The high number of tools likely overwhelms agents and increases selection complexity, making it inappropriate for most use cases.
Despite the large number of tools, there are notable gaps such as missing getters for channels, webhooks, and roles (e.g., 'get_channel', 'list_webhooks'). Core operations like updating a message or deleting a webhook are present, but the surface is uneven and overfocused on creation/deletion.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that integrates with Discord to provide AI-powered features.
Discord MCP server for ChatGPT, Claude and any AI agent: list servers and channels, read channel messages, search messages, send message, reply to message, send DM, read mentions and assign role in your own Discord account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Discord yourself; Cotlet does not store your password and you need no Discord API key. About the official Discord API: Yes, Discord has an official API for bots and OAuth2 apps, but it acts as a bot that a server manager adds, not as you, and Discord has no official MCP server for it (checked 5 Nov 2026). The MCP server on Discord's docs site only searches documentation. Setup and FAQ: https://cotlet.dev/integrations/discord-api-mcp-server
Official Duck Framework MCP server for AI-assisted development and project scaffolding.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Discord MCP server that enables AI assistants to interact with Discord platforms, providing functionalities like sending messages, managing channels, creating forum posts, and handling webhooks.21827 npm1MIT
- AlicenseBqualityDmaintenanceA Discord Model Context Protocol server that enables AI assistants to interact with Discord by sending messages, managing channels, handling forum posts, managing webhooks, and processing reactions.2284 npm5MIT
- AlicenseNot gradedqualityDmaintenanceA Discord bot server based on Model Context Protocol (MCP), enabling AI models to interact with Discord through the MCP protocol.2MIT
- AlicenseBqualityDmaintenanceA Discord MCP server that enables AI assistants to interact with the Discord platform, providing features like message sending, channel management, forum operations, reactions, and webhook management.22827 npmMIT