discord-mcp
Servidor MCP de Discord
Un servidor MCP de Discord ligero y multi-servidor con más de 90 herramientas
Gestiona todo tu servidor de Discord desde Claude Desktop, Claude Code, Cursor, VS Code Copilot o cualquier cliente compatible con MCP. Mensajes, canales, roles, permisos, moderación, foros, webhooks: todo mediante lenguaje natural.
¿Por qué este?
Más de 90 herramientas: mensajes, canales, roles, permisos, moderación, foros, webhooks, eventos programados, invitaciones, mensajes directos, incrustaciones (embeds) y más.
Multi-servidor: funciona en múltiples servidores, sin bloqueo por
GUILD_ID.Ligero: TypeScript + Node.js, paquete de ~25kB, imagen de Docker de ~73MB (frente a los más de 400MB de las alternativas en Java).
Modular: arquitectura limpia, fácil de extender con nuevas herramientas.
Dos métodos de instalación: npm o Docker, tú eliges.
Inicio rápido
Añade esto a la configuración de tu cliente MCP y reemplaza YOUR_TOKEN_HERE con el token de tu bot:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}No se necesita instalación: npx se encarga de todo.
¿Aún no tienes un bot? Consulta Crear tu bot de Discord.
Configuración
Añade la configuración anterior a tu claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Reinicia Claude Desktop después de guardar.
claude mcp add discord -e DISCORD_TOKEN=YOUR_TOKEN_HERE -- npx -y @pasympa/discord-mcpAñade la configuración anterior a ~/.cursor/mcp.json. Consulta la documentación de MCP de Cursor para más detalles.
Añade a tu .vscode/mcp.json:
{
"inputs": [
{
"type": "promptString",
"id": "discord-token",
"description": "Discord Bot Token",
"password": true
}
],
"servers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "${input:discord-token}"
}
}
}
}Consulta la documentación de MCP de VS Code para más detalles.
{
"mcpServers": {
"discord": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DISCORD_TOKEN=YOUR_TOKEN_HERE",
"pasympa/discord-mcp:latest"
]
}
}
}git clone https://github.com/PaSympa/discord-mcp
cd discord-mcp
npm install && npm run build{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/absolute/path/to/discord-mcp/dist/index.js"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}En lugar de pasar el token en la configuración de MCP, crea un archivo .env en la raíz del proyecto:
DISCORD_TOKEN=YOUR_TOKEN_HEREEl servidor carga .env automáticamente mediante dotenv.
Crear tu bot de Discord
New Application > dale un nombre
Pestaña Bot > Reset Token > copia el token
Habilita los Privileged Gateway Intents:
Server Members Intent
Message Content Intent
OAuth2 > URL Generator:
Scopes:
botPermissions:
Send Messages,Read Message History,Manage Channels,Manage Roles,Kick Members,Ban Members,Moderate Members,View Audit Log,Manage Messages,Manage Threads,Add Reactions,Manage Guild,Manage Webhooks,Manage Events,Create Instant Invite
Copia la URL generada e invita al bot a tu servidor
Herramientas disponibles (91)
Descubrimiento y navegación
Herramienta | Descripción |
| Lista todos los servidores a los que está conectado el bot |
| Obtiene información detallada del servidor (nombre, miembros, canales, roles, boosts) |
| Lista todos los canales en un servidor agrupados por categoría |
| Encuentra un canal por nombre (coincidencia parcial) |
Mensajes (18 herramientas)
Herramienta | Descripción |
| Lee los últimos N mensajes de un canal de texto |
| Envía un mensaje de texto plano |
| Responde a un mensaje específico |
| Edita un mensaje enviado por el bot |
| Elimina un mensaje específico |
| Añade un emoji de reacción a un mensaje |
| Elimina reacciones (todas, por emoji o por usuario) |
| Lista los usuarios que reaccionaron con un emoji específico |
| Crea un hilo a partir de un mensaje o de forma independiente |
| Elimina múltiples mensajes a la vez (2-100) |
| Envía una incrustación (embed) enriquecida con todas las opciones |
| Edita una incrustación enviada previamente por el bot |
| Envía hasta 10 incrustaciones en un solo mensaje |
| Fija o desfija un mensaje |
| Lista todos los mensajes fijados en un canal |
| Busca mensajes por palabra clave (últimos 100) |
| Publica un mensaje para los seguidores de un canal de anuncios |
| Reenvía un mensaje a otro canal |
Canales (8 herramientas)
Herramienta | Descripción |
| Crea un canal de texto, voz o categoría |
| Elimina un canal |
| Edita nombre, tema, modo lento, indicador NSFW |
| Mueve un canal dentro o fuera de una categoría |
| Clona un canal con sus permisos |
| Establece la posición de visualización dentro de una categoría |
| Sigue un canal de anuncios |
| Sincroniza permisos con la categoría principal |
Permisos de canal (6 herramientas)
Herramienta | Descripción |
| Lista todas las anulaciones de permisos en un canal |
| Permite/deniega permisos para un rol en un canal |
| Permite/deniega permisos para un miembro en un canal |
| Elimina todas las anulaciones (restablece a los heredados) |
| Copia anulaciones de un canal a otro |
| Auditoría completa de permisos para todos los canales |
Miembros (11 herramientas)
Herramienta | Descripción |
| Lista los miembros del servidor con sus roles |
| Información detallada del miembro (roles, permisos, fecha de unión) |
| Busca miembros por nombre de usuario o apodo |
| Establece o borra el apodo de un miembro |
| Expulsa a un miembro |
| Banea a un miembro (opcionalmente elimina mensajes recientes) |
| Desbanea a un usuario |
| Banea a múltiples usuarios a la vez (mitigación de incursiones) |
| Lista todos los usuarios baneados |
| Aplica tiempo de espera a un miembro (0 para eliminar) |
| Elimina miembros inactivos (con simulación) |
Roles (9 herramientas)
Herramienta | Descripción |
| Lista todos los roles con permisos y recuento de miembros |
| Crea un nuevo rol |
| Edita un rol (nombre, color, permisos, hoist, mencionable) |
| Elimina un rol |
| Asigna un rol a un miembro |
| Elimina un rol de un miembro |
| Lista todos los miembros con un rol específico |
| Cambia la posición de un rol en la jerarquía |
| Establece un icono personalizado o emoji unicode en un rol |
Foros (10 herramientas)
Herramienta | Descripción |
| Lista todos los canales de foro en un servidor |
| Crea un nuevo canal de foro |
| Crea una publicación/hilo en un foro |
| Obtiene los detalles y mensajes de una publicación |
| Lista hilos (activos + archivados) |
| Responde a una publicación de foro |
| Elimina un hilo de foro |
| Obtiene las etiquetas disponibles |
| Establece/actualiza etiquetas en un foro |
| Actualiza título, archivado, bloqueado, etiquetas |
Webhooks (8 herramientas)
Herramienta | Descripción |
| Crea un webhook en un canal |
| Envía mediante webhook (nombre de usuario/avatar personalizado, incrustaciones) |
| Edita el nombre, avatar o canal de un webhook |
| Elimina un webhook |
| Lista webhooks para un canal o servidor |
| Edita un mensaje enviado por un webhook |
| Elimina un mensaje enviado por un webhook |
| Obtiene un mensaje de webhook específico |
Eventos programados (7 herramientas)
Herramienta | Descripción |
| Lista todos los eventos programados en un servidor |
| Obtiene información detallada sobre un evento programado |
| Crea un evento de voz, escenario o externo |
| Edita un evento programado existente |
| Elimina un evento programado |
| Obtiene los usuarios que marcaron "Interesado" |
| Crea una invitación vinculada a un evento |
Mensajes directos
Herramienta | Descripción |
| Envía un mensaje directo a un usuario por su ID de usuario |
Invitaciones (5 herramientas)
Herramienta | Descripción |
| Lista todas las invitaciones activas en un servidor |
| Lista invitaciones para un canal específico |
| Obtiene detalles sobre una invitación por su código |
| Crea un enlace de invitación para un canal |
| Revoca una invitación |
Moderación y filtrado
Herramienta | Descripción |
| Obtiene el registro de auditoría del servidor |
| Obtiene el formulario de selección de miembros |
| Actualiza las reglas de selección para nuevos miembros |
Estadísticas
Herramienta | Descripción |
| Estadísticas del servidor: miembros, canales, roles, nivel de boost |
Ejemplos de uso
"List all servers the bot is in"
"Read the last 10 messages in #general"
"Send 'Hello everyone!' to the announcements channel"
"Create a forum channel called 'feedback' with tags Bug, Feature, Question"
"Show the full permission audit for the server"
"Create a webhook on #notifications and send a test message"
"Ban user 112233445566 and delete their messages from the last 3 days"
"Create an event called 'Game Night' for next Friday at 8pm"
"List all upcoming events in the server"
"Create a permanent invite for #general"
"List all active invites and delete expired ones"
"Send a DM to user 112233445566 saying 'Your build passed!'"
"Search for members named 'john'"
"List all banned users in the server"
"Show all pinned messages in #general"
"Forward that message to #announcements"Encontrar IDs de Discord
Habilita el Modo de desarrollador en Discord:
Ajustes > Avanzado > Modo de desarrollador
Luego, haz clic derecho en un servidor, canal o usuario > Copiar ID.
Estructura del proyecto
discord-mcp/
├── src/
│ ├── index.ts ← Entry point (MCP server + transport)
│ ├── client.ts ← Discord client + shared helpers
│ ├── constants.ts ← Shared constants (limits, defaults)
│ └── tools/
│ ├── index.ts ← Tool registry
│ ├── types.ts ← Shared TypeScript interfaces
│ ├── discovery.ts ← Guild/channel discovery
│ ├── messages.ts ← Message CRUD, reactions, threads, embeds
│ ├── channels.ts ← Channel management
│ ├── permissions.ts ← Permission overwrites
│ ├── members.ts ← Member management
│ ├── roles.ts ← Role CRUD and assignment
│ ├── moderation.ts ← Audit log
│ ├── screening.ts ← Membership screening
│ ├── stats.ts ← Server statistics
│ ├── forums.ts ← Forum channels, posts, tags
│ ├── webhooks.ts ← Webhook management
│ ├── scheduledEvents.ts ← Scheduled events
│ ├── invites.ts ← Invite management
│ └── dm.ts ← Direct messages
├── .github/workflows/ ← CI/CD (build check + auto release)
├── Dockerfile
├── .dockerignore
├── .env.example
├── package.json
├── tsconfig.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
└── README.mdAñadir una nueva herramienta
Crea un nuevo archivo en
src/tools/(ej.events.ts)Exporta
definitions(esquemas de herramientas) yhandle()(lógica de la herramienta)Importa y añádela a la matriz
modulesensrc/tools/index.ts
Seguridad
Nunca subas tu token de Discord a Git
Usa variables de entorno o un archivo
.env(no versionado)Dale al bot solo los permisos que necesita
Contribución
¡Las contribuciones son bienvenidas!
Haz un fork del repositorio
Crea una rama de características (
git checkout -b feature/mi-caracteristica)Sigue la estructura modular: consulta Añadir una nueva herramienta
Confirma tus cambios y abre una solicitud de extracción (pull request)
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PaSympa/discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server