Discord MCP
Un servidor MCP para interactuar con servidores de Discord.
Documentación
Servidor Discord MCP
Un servidor Model Context Protocol (MCP) de nivel de producción para Discord construido con FastMCP y discord.py. Proporciona una superficie de API completa para gestionar canales, roles, permisos, mensajes, moderación y ajustes del servidor a través de MCP.
Características
- Sesiones de bot por token con gestión automática de sesiones
- Gestión de canales: crear, editar, eliminar, mover y reordenar por posición
- Gestión de roles: crear, editar (incluyendo posición), eliminar, asignar, quitar
- Configuración de permisos para canales, categorías y roles
- Inspección de permisos "Ver como rol/miembro" en el servidor y canales
- Operaciones de mensajes: enviar, editar, eliminar, eliminar en masa, recuperar
- Acciones de moderación: tiempo de espera, expulsar, banear, aplicar políticas de roles
- Gestión de ajustes del servidor/gremio (guild)
- Encuestas: crear, finalizar y obtener resultados
- Eventos programados: crear, editar, eliminar, listar, obtener asistentes
- Hilos y foros: crear, editar, eliminar, gestionar miembros, publicaciones de foro
- Webhooks: crear, enviar mensajes, listar, eliminar
- Invitaciones: crear, listar, eliminar
- Emojis y stickers: crear, eliminar, listar
- Reacciones: añadir, quitar, listar usuarios, limpiar
- AutoMod: crear, editar, eliminar, listar reglas
- Registro de auditoría: consultar con filtros
- Información de miembros: obtener detalles, listar miembros, editar apodos/silenciar/ensordecer
- Endpoints de estado para sesiones de bot
Instalación
uv sync
Configuración
Copia el archivo de plantilla .env y modifícalo según sea necesario:
cp .env.template .env
El enlace predeterminado es solo local:
MCP_HOST=127.0.0.1
MCP_PORT=8000
Uso
Ejecuta el servidor MCP localmente:
uv run python -m discord_mcp.main
O úsalo sin una configuración local:
uv run --with git+https://github.com/ExilProductions/discord-mcp discord-mcp
Ejemplo de Configuración de Cliente MCP
Ejemplo de configuración para OpenCode usando un servidor MCP remoto:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"discord-mcp": {
"type": "remote",
"url": "http://localhost:8000/mcp",
"enabled": true,
"headers": {
"Authorization": "YOUR_DISCORD_BOT_TOKEN"
}
}
}
}
Esto puede ser usado por cualquier cliente que soporte MCP.
Herramientas MCP
Gestión de Canales
create_channel- Crear un canal de texto, voz, noticias, escenario, foro, medios o categoríaedit_channel- Editar la configuración de un canaldelete_channel- Eliminar un canalmove_channel- Mover canal a una categoríaedit_channelconposition- Reordenar canales/categoríasget_channel- Obtener información del canalget_channels- Listar todos los canales del servidor
Gestión de Roles
create_role- Crear un nuevo roledit_role- Editar un rol (incluyendopositionpara reordenar)delete_role- Eliminar un rolassign_role- Asignar rol a un miembroremove_role- Quitar rol de un miembroget_role- Obtener información del rolget_roles- Listar todos los roles del servidor
Gestión de Permisos
set_channel_permissions- Establecer permisos de canalset_category_permissions- Establecer permisos de categoríaset_role_permissions- Actualizar permisos de rolget_channel_permissions- Obtener sobrescrituras de permisos de canalget_category_permissions- Obtener sobrescrituras de permisos de categoríaremove_channel_permissions- Eliminar sobrescrituras de permisosinspect_role_permissions- Resumen de permisos de rol compacto por defecto (conteos, vistas previas, capacidades clave)inspect_member_permissions- Resumen de permisos de miembro compacto por defecto (conteos, vistas previas, capacidades clave)inspect_target_channel_permissions- Permisos efectivos completos para un objetivo en un canal (desglose detallado)list_target_accessible_channels- Lista compacta de canales a los que un rol/miembro puede accederlist_target_inaccessible_channels- Lista compacta de canales a los que un rol/miembro no puede acceder
La inspección de permisos está optimizada para flujos de trabajo de agentes de IA: llama primero a las herramientas de resumen y luego solicita el detalle del canal solo cuando sea necesario.
Operaciones de Mensajes
send_message- Enviar un mensaje (soporta embeds, TTS, menciones, referencias)edit_message- Editar un mensajedelete_message- Eliminar un mensajebulk_delete_messages- Eliminar mensajes en masaget_message- Obtener un mensajeget_channel_messages- Obtener historial de mensajes del canal
Moderación
timeout_user- Aplicar tiempo de espera a un miembroremove_timeout- Quitar tiempo de espera a un miembrokick_user- Expulsar a un miembroban_user- Banear a un miembrounban_user- Desbanear a un miembroenforce_role_policy- Aplicar política de roles (expulsar/banear miembros que no tengan los roles requeridos)get_guild_bans- Listar baneos del servidorget_member_timeout_status- Verificar estado de tiempo de espera
Gestión del Servidor
get_guild_settings- Obtener ajustes del servidor (nombre, descripción, nivel de verificación, etc.)edit_guild_settings- Editar ajustes del servidor
Encuestas
create_poll- Crear una encuesta en un canalend_poll- Finalizar una encuesta activaget_poll_results- Obtener recuentos de votos y resultados de la encuesta
Eventos Programados
create_scheduled_event- Crear un evento programado (voz, escenario o externo)edit_scheduled_event- Editar un evento programadodelete_scheduled_event- Eliminar un evento programadolist_scheduled_events- Listar todos los eventos programados en un servidorget_scheduled_event_users- Obtener usuarios interesados en un evento
Hilos y Foros
create_thread- Crear un hilo (opcionalmente desde un mensaje)edit_thread- Editar ajustes del hilo (nombre, archivar, bloquear, modo lento)delete_thread- Eliminar un hilolist_threads- Listar hilos activos y archivados en un canaladd_thread_member- Añadir un miembro a un hiloremove_thread_member- Quitar un miembro de un hilocreate_forum_post- Crear una publicación de foro con etiquetas
Webhooks
create_webhook- Crear un webhook para un canalsend_webhook_message- Enviar un mensaje a través de webhooklist_webhooks- Listar webhooks de un servidor o canaldelete_webhook- Eliminar un webhook
Invitaciones
create_invite- Crear una invitación de canallist_invites- Listar todas las invitaciones del servidordelete_invite- Eliminar una invitación
Emojis y Stickers
create_emoji- Crear un emoji personalizadodelete_emoji- Eliminar un emoji personalizadolist_emojis- Listar todos los emojis personalizados en un servidorlist_stickers- Listar todos los stickers en un servidor
Reacciones
add_reaction- Añadir una reacción a un mensajeremove_reaction- Quitar una reacción de un mensajeget_reaction_users- Obtener usuarios que reaccionaron con un emoji específicoclear_reactions- Limpiar todas o reacciones específicas de un mensaje
AutoMod
create_automod_rule- Crear una regla de automod (palabra clave, spam, preestablecido, spam de menciones)edit_automod_rule- Editar una regla de automoddelete_automod_rule- Eliminar una regla de automodlist_automod_rules- Listar todas las reglas de automod en un servidor
Registro de Auditoría
get_audit_log- Consultar registro de auditoría con filtros (usuario, tipo de acción, límite)
Miembros
get_member_info- Obtener información detallada del perfil del miembrolist_members- Listar miembros del servidoredit_member- Editar miembro (apodo, silenciar, ensordecer)
Estado
get_bot_status- Obtener estado del bot e información de sesión