Discord

Un servidor para leer y enviar mensajes en Discord.

Documentación

Servidor MCP de Discord

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los LLMs leer mensajes, descubrir canales, enviar mensajes y monitorear comunidades de Discord mediante web scraping.

Características

  • Lista los servidores y canales de Discord a los que tienes acceso
  • Lee mensajes recientes con filtrado por tiempo (más recientes primero)
  • Envía mensajes a canales de Discord (divide automáticamente mensajes largos)
  • Enfoque de web scraping: funciona con cualquier servidor de Discord al que puedas acceder como usuario
  • No requiere permisos de bot ni tokens de API

Inicio rápido con Claude Code

# Add Discord MCP server
claude mcp add discord-mcp -s user -e DISCORD_EMAIL=your_email@example.com -e DISCORD_PASSWORD=your_password -e DISCORD_HEADLESS=true -- uvx --from git+https://github.com/elyxlz/discord-mcp.git discord-mcp

# Start Claude Code
claude

Ejemplos de uso

# List your Discord servers
> use get_servers to show me all my Discord servers

# Read recent messages (max_messages is required)
> read the last 20 messages from channel ID 123 in server ID 456

# Send a message (long messages automatically split)
> send "Hello!" to channel 123 in server 456

# Send a long message (will be split automatically)
> send a very long message with multiple paragraphs to channel 123 in server 456

# Monitor communities
> summarize discussions from the last 24 hours across my Discord servers

Herramientas disponibles

  • get_servers - Lista todos los servidores de Discord a los que tienes acceso
  • get_channels(server_id) - Lista los canales en un servidor específico
  • read_messages(server_id, channel_id, max_messages, hours_back?) - Lee mensajes recientes (más recientes primero, max_messages requerido)
  • send_message(server_id, channel_id, content) - Envía mensajes a canales (divide automáticamente mensajes largos)

Configuración manual

Requisitos previos

  • Python 3.10+ con el gestor de paquetes uv
  • Credenciales de cuenta de Discord

Instalación

git clone https://github.com/elyxlz/discord-mcp.git
cd discord-mcp
uv sync
uv run playwright install

Configuración

Crea el archivo .env:

DISCORD_EMAIL=your_email@example.com
DISCORD_PASSWORD=your_password
DISCORD_HEADLESS=true

Ejecutar el servidor

uv run python main.py

Integración con Claude Desktop

Añade a ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "discord": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/elyxlz/discord-mcp.git", "discord-mcp"],
      "env": {
        "DISCORD_EMAIL": "your_email@example.com",
        "DISCORD_PASSWORD": "your_password",
        "DISCORD_HEADLESS": "true"
      }
    }
  }
}

Desarrollo

# Type checking
uv run pyright

# Formatting
uvx ruff format .

# Linting
uvx ruff check --fix --unsafe-fixes .

# Testing
uv run pytest -v tests/

Notas de seguridad

  • Usa contraseñas de aplicación si la verificación en dos pasos (2FA) está habilitada
  • Considera usar una cuenta de Discord dedicada para automatización
  • El servidor incluye retrasos para evitar limitación de velocidad (0.5s entre mensajes divididos)
  • Usa siempre DISCORD_HEADLESS=true en producción

Solución de problemas

  • Problemas de inicio de sesión: Verifica las credenciales, usa contraseña de aplicación para 2FA
  • Errores del navegador: Ejecuta uv run playwright install --force
  • Límites de velocidad: Reduce max_messages, monitorea advertencias de Discord (el servidor divide automáticamente mensajes largos con retrasos)
  • Problemas de cookies: Elimina ~/.discord_mcp_cookies.json si es necesario
  • División de mensajes: Los mensajes largos (>2000 caracteres) se dividen automáticamente en múltiples mensajes con retrasos de 0.5s

Aviso legal

Asegura el cumplimiento de los Términos de Servicio de Discord. Solo accede a información a la que normalmente tendrías acceso como usuario. Usa esto para fines legítimos de monitoreo e investigación.