Discord MCP Server

Interactúa con canales de Discord para enviar y leer mensajes usando la API de Discord.

Documentación

Discord MCP Server

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los LLMs interactuar con canales de Discord, permitiéndoles enviar y leer mensajes a través de la API de Discord. Usando este servidor, LLMs como Claude pueden interactuar directamente con canales de Discord mientras mantienen control del usuario y seguridad.

Características

  • Enviar mensajes a canales de Discord
  • Leer mensajes recientes de canales
  • Descubrimiento automático de servidores y canales
  • Soporte tanto para nombres de canales como IDs
  • Manejo adecuado de errores y validación

Requisitos previos

  • Node.js 16.x o superior
  • Un token de bot de Discord
  • El bot debe ser invitado a tu servidor con los permisos adecuados:
    • Leer Mensajes/Ver Canales
    • Enviar Mensajes
    • Leer Historial de Mensajes

Configuración

  1. Clona este repositorio:
git clone https://github.com/yourusername/discordmcp.git
cd discordmcp
  1. Instala las dependencias:
npm install
  1. Crea un archivo .env en el directorio raíz con tu token de bot de Discord:
DISCORD_TOKEN=your_discord_bot_token_here
  1. Compila el servidor:
npm run build

Uso con Claude para Desktop

  1. Abre tu archivo de configuración de Claude para Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Agrega la configuración del servidor Discord MCP:

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["path/to/discordmcp/build/index.js"],
      "env": {
        "DISCORD_TOKEN": "your_discord_bot_token_here"
      }
    }
  }
}
  1. Reinicia Claude para Desktop

Herramientas disponibles

send-message

Envía un mensaje a un canal de Discord especificado.

Parámetros:

  • server (opcional): Nombre o ID del servidor (requerido si el bot está en múltiples servidores)
  • channel: Nombre del canal (ej., "general") o ID
  • message: Contenido del mensaje a enviar

Ejemplo:

{
  "channel": "general",
  "message": "Hello from MCP!"
}

read-messages

Lee mensajes recientes de un canal de Discord especificado.

Parámetros:

  • server (opcional): Nombre o ID del servidor (requerido si el bot está en múltiples servidores)
  • channel: Nombre del canal (ej., "general") o ID
  • limit (opcional): Número de mensajes a obtener (predeterminado: 50, máximo: 100)

Ejemplo:

{
  "channel": "general",
  "limit": 10
}

Desarrollo

  1. Instala las dependencias de desarrollo:
npm install --save-dev typescript @types/node
  1. Inicia el servidor en modo de desarrollo:
npm run dev

Pruebas

Puedes probar el servidor usando el Inspector MCP:

npx @modelcontextprotocol/inspector node build/index.js

Ejemplos

Aquí hay algunos ejemplos de interacciones que puedes probar con Claude después de configurar el servidor Discord MCP:

  1. "¿Puedes leer los últimos 5 mensajes del canal general?"
  2. "Por favor envía un mensaje al canal de anuncios diciendo 'La reunión comienza en 10 minutos'"
  3. "¿Cuáles fueron los mensajes más recientes en el canal de desarrollo sobre la última versión?"

Claude usará las herramientas apropiadas para interactuar con Discord mientras solicita tu aprobación antes de enviar cualquier mensaje.

Consideraciones de seguridad

  • El bot requiere permisos adecuados de Discord para funcionar
  • Todas las operaciones de envío de mensajes requieren aprobación explícita del usuario
  • Las variables de entorno deben estar adecuadamente protegidas
  • El token nunca debe ser comprometido al control de versiones
  • El acceso a canales está limitado a los canales a los que el bot ha recibido acceso

Contribuciones

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/amazing-feature)
  3. Haz commit de tus cambios (git commit -m 'Add some amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

Soporte

Si encuentras algún problema o tienes preguntas:

  1. Consulta la sección de Problemas de GitHub
  2. Consulta la documentación de MCP en https://modelcontextprotocol.io
  3. Abre un nuevo problema con pasos detallados de reproducción