Skip to main content
Glama

MCP-Discord

Docker Hub

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

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 3000

Etiquetas disponibles:

  • latest - Última versión estable de la rama principal

  • v1.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 build

Configuració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

  1. stdio (Predeterminado)

    • Transporte stdio tradicional para uso básico

    • Adecuado para integraciones simples

  2. 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:

  1. Variables de entorno:

DISCORD_TOKEN=your_discord_bot_token
  1. Usando 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 3000

En Windows PowerShell:

$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000

Ejecutar con Docker

docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

Una vez iniciado, el punto final HTTP de MCP es:

http://localhost:3000/mcp

3. 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/mcp

Notas importantes:

  • build/app.js inicia un servidor HTTP. No utiliza stdio.

  • build/index.js es 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 configurado

  • discord_list_servers: Listar todos los servidores de Discord de los que el bot es miembro

  • discord_send: Enviar un mensaje a un canal especificado

  • discord_get_server_info: Obtener información del servidor de Discord

Gestión de canales

  • discord_create_text_channel: Crear un canal de texto

  • discord_create_forum_channel: Crear un canal de foro

  • discord_create_voice_channel: Crear un canal de voz

  • discord_edit_channel: Editar el nombre, tema, categoría principal o posición de un canal

  • discord_delete_channel: Eliminar un canal

  • discord_create_category: Crear una categoría de canal

  • discord_edit_category: Editar una categoría de canal

  • discord_delete_category: Eliminar una categoría de canal

  • discord_set_channel_permissions: Establecer anulaciones de permisos para un rol o usuario en un canal/categoría

  • discord_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 foro

  • discord_create_forum_post: Crear una publicación en un foro

  • discord_get_forum_post: Obtener una publicación de foro

  • discord_list_forum_threads: Listar hilos activos y archivados en un canal de foro

  • discord_reply_to_forum: Responder a una publicación de foro

  • discord_get_forum_tags: Obtener todas las etiquetas disponibles para un canal de foro

  • discord_set_forum_tags: Reemplazar las etiquetas disponibles para un canal de foro

  • discord_update_forum_post: Actualizar el título, las etiquetas, el estado archivado o el estado bloqueado de una publicación de foro

  • discord_delete_forum_post: Eliminar una publicación de foro

Mensajes y reacciones

  • discord_search_messages: Buscar mensajes en un servidor

  • discord_read_messages: Leer mensajes de canal (admite parámetros before, after, around — acepta IDs snowflake o fechas ISO 8601 como "2025-03-01T00:00:00Z")

  • discord_edit_message: Editar un mensaje escrito por el bot

  • discord_add_reaction: Añadir una reacción a un mensaje

  • discord_add_multiple_reactions: Añadir múltiples reacciones a un mensaje

  • discord_remove_reaction: Eliminar una reacción de un mensaje

  • discord_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 Discord

  • discord_send_webhook_message: Envía un mensaje a un canal de Discord usando un webhook

  • discord_edit_webhook: Edita un webhook existente para un canal de Discord

  • discord_delete_webhook: Elimina un webhook existente para un canal de Discord

Gestión de roles

  • discord_list_roles: Listar todos los roles en un servidor

  • discord_create_role: Crear un rol con opciones de color, hoist, mencionable y permisos

  • discord_edit_role: Editar un rol existente

  • discord_delete_role: Eliminar un rol

  • discord_assign_role: Asignar un rol a un miembro

  • discord_remove_role: Eliminar un rol de un miembro

Gestión de miembros

  • discord_list_members: Listar miembros en un servidor con roles

  • discord_get_member: Obtener información detallada sobre un miembro específico

Desarrollo

# Development mode
npm run dev

Licencia

Licencia MIT

Available Tools

46 tools
discord_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

    C2.9/5.0

    Scored across 46 tools

    Disambiguation3/5

    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.

    Naming Consistency4/5

    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.

    Tool Count1/5

    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.

    Completeness2/5

    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

    ActivityActive
    ResponsivenessUsually handled

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A 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.
      21
      827 npm
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A 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.
      22
      84 npm
      5
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A 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.
      22
      827 npm
      MIT