Discord

Permite que los asistentes de IA interactúen con la plataforma Discord, permitiéndoles enviar mensajes, gestionar canales y realizar otras acciones.

Documentación

MCP-Discord

MCP Toplist smithery badge Docker Hub

Un servidor MCP (Model Context Protocol) de Discord que permite a los asistentes de IA interactuar con la plataforma Discord.

MCP-Discord MCP server

Resumen

MCP-Discord proporciona las siguientes funcionalidades relacionadas con Discord:

  • Iniciar sesión en el 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 quitar roles
  • Buscar mensajes en un servidor
  • Leer, editar y eliminar mensajes de canales
  • Enviar mensajes a canales específicos
  • Obtener 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

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 (obtenible desde el Portal de desarrolladores de Discord)
    • Intención de contenido de mensaje habilitada
    • Intención de miembros del servidor habilitada
    • Intención de presencia 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 selecciona solo los permisos necesarios:

    • 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 los servidores a los que ha sido añadido explícitamente.
Si quieres usar este servidor MCP para acceder a un servidor de Discord específico, debes añadir el bot a ese servidor primero.
Usa el enlace de invitación a continuación para añadir el bot a tu servidor de destino.

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 a través de Smithery

Instalación mediante Docker

Puedes ejecutar mcp-discord usando Docker. Las imágenes de Docker se compilan y publican automáticamente en Docker Hub.

Repositorio de Docker Hub: barryy625/mcp-discord

Docker usa el servidor HTTP transmisible 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. - 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 transmisible.

Métodos de transporte

  1. stdio (Predeterminado)

    • Transporte stdio tradicional para uso básico
    • Adecuado para integraciones simples
  2. HTTP transmisible

    • 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. Autoalojar el servidor HTTP transmisible

Usa build/app.js cuando quieras 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 endpoint 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 endpoint /mcp del servidor en lugar de lanzar build/app.js como comando.

Ejemplo de endpoint:

https://your-server.example.com/mcp

Notas importantes:

  • build/app.js inicia un servidor HTTP. No habla stdio.
  • build/index.js es el punto de entrada correcto para clientes MCP stdio basados en comandos.
  • Para uso HTTP alojado, configura tu cliente MCP para conectarse a la URL del endpoint HTTP proporcionada por tu despliegue.
  • El formato exacto de configuración del cliente HTTP depende del cliente MCP que uses.

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 específico
  • 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 de 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, etiquetas, estado de archivado o estado de bloqueo 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 de copo de nieve o fechas ISO 8601 como "2025-03-01T00:00:00Z")
  • discord_edit_message: Editar un mensaje creado 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, elevación, 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: Quitar 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