Discord MCP
Discord MCP
Servidor MCP remoto (Streamable HTTP) que expone Discord como herramientas,
pensado para conectarse desde Claude → Configuración → Conectores → Add
custom connector (https://claude.ai/ask-your-org/setup, opción Custom).
Qué expone
Herramientas (tools) sobre la API de Discord, usando discord.py:
list_guilds— servidores a los que tiene acceso el bot.list_channels(guild_id)— canales de un servidor.list_members(guild_id, limit)— miembros de un servidor.list_roles(guild_id)— roles de un servidor.send_message(channel_id, content)— enviar un mensaje.read_messages(channel_id, limit, before_message_id)— leer historial.create_thread(channel_id, name, message_id?, auto_archive_minutes)— crear un hilo.add_reaction(channel_id, message_id, emoji)/remove_reaction(...)— reacciones.add_role_to_member(guild_id, user_id, role_id)/remove_role_from_member(...)— roles.
Todos los ids (servidor, canal, mensaje, usuario, rol) son los snowflakes de Discord, como string.
Related MCP server: Discord MCP Server
1. Crear el bot de Discord
Entrá al Discord Developer Portal y creá una New Application.
En Bot, creá el bot y copiá el Token (botón Reset Token). Es el valor de
DISCORD_BOT_TOKEN.En la misma sección Bot → Privileged Gateway Intents, activá:
Server Members Intent (necesario para
list_membersy gestión de roles).Message Content Intent (necesario para leer el contenido de los mensajes en
read_messages).
En OAuth2 → URL Generator:
Scopes:
bot.Bot Permissions (ajustá según lo que vayas a usar):
View Channels,Send Messages,Read Message History,Create Public Threads,Add Reactions,Manage Roles.Abrí la URL generada e invitá el bot al servidor donde lo vas a usar.
Si vas a usar
add_role_to_member/remove_role_from_member, asegurate de que el rol del bot esté por encima (mayor jerarquía) de los roles que quiera asignar.
2. Configurar variables de entorno
Copiá .env.example a .env y completá:
cp .env.example .envDISCORD_BOT_TOKEN: el token del paso anterior.MCP_AUTH_TOKEN: un secreto propio para proteger el servidor (generalo conpython -c "import secrets; print(secrets.token_urlsafe(32))"). Claude.ai va a enviarlo como headerAuthorization: Bearer <token>en cada request (ver paso 4).El resto de las variables tienen defaults razonables — ver comentarios en
.env.example.
3. Correr el servidor
Local (sin Docker)
python -m venv .venv && source .venv/bin/activate
pip install -e .
python -m discord_mcp # o: discord-mcpPor defecto escucha en http://0.0.0.0:8000/mcp.
Con Docker
docker compose up --buildo manualmente:
docker build -t discord-mcp .
docker run --env-file .env -p 8000:8000 discord-mcpDesplegar (Render / Railway / Fly.io / cualquier VPS)
La imagen es un contenedor genérico HTTP sin estado persistente propio (el estado del bot vive en memoria y en Discord), así que corre en cualquier proveedor que soporte Docker:
Configurá las variables de entorno del paso 2 en el panel del proveedor.
Exponé el puerto
8000(o el que definas enPORT) por HTTPS — Claude.ai requiere que el servidor MCP sea accesible porhttps://.Una vez desplegado, la URL del conector va a ser
https://<tu-dominio>/mcp.
Para reforzar la protección contra DNS rebinding en producción, seteá
ALLOWED_HOSTS (el hostname público del servidor) y ALLOWED_ORIGINS
(por ejemplo https://claude.ai).
4. Conectarlo en claude.ai como conector custom
Entrá a
https://claude.ai/ask-your-org/setup(o Configuración → Conectores) y elegí Add custom connector / Custom.Name:
Discord(o el que prefieras).URL:
https://<tu-dominio>/mcp.En Request headers / Advanced settings, agregá:
Header:
AuthorizationValor:
Bearer <el mismo valor que pusiste en MCP_AUTH_TOKEN>
Guardá y probá pidiéndole a Claude algo como "Listá los servidores de Discord disponibles" — debería llamar a
list_guilds.
Si preferís no usar autenticación (sólo para pruebas rápidas, nunca en
producción), dejá MCP_AUTH_TOKEN vacío y omití el header.
Desarrollo
pip install -e ".[dev]"
pytestLos tests cubren configuración, el middleware de autenticación y la lógica
de DiscordService que no requiere una conexión real a Discord (no hay
tests de integración contra la API real de Discord).
Notas de arquitectura
El bot de
discord.pycorre como una tarea de background dentro del mismo event loop que el servidor ASGI (Starlette/uvicorn); arranca y se apaga junto con el lifespan de la app (src/discord_mcp/server.py).El servidor MCP usa transporte Streamable HTTP (
mcp.server.MCPServerdel SDK oficialmcp), el transporte remoto soportado por los conectores custom de Claude.La autenticación es un bearer token estático validado por un middleware ASGI propio (
auth_middleware.py), pensado para el mecanismo de "Request headers" de los conectores custom — no implementa el flujo OAuth completo.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server for Discord that enables AI assistants to interact with Discord servers, channels, and messages via the Discord API.7MIT
- Alicense-qualityDmaintenanceA Dockerized MCP server that enables Discord integration, offering tools for role management, messaging, moderation, and server administration via natural language.1MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables LLMs to control Discord servers via a bot token, providing comprehensive management tools for messages, members, roles, channels, permissions, and more.67124MIT
- FlicenseCqualityCmaintenanceAn MCP server that exposes Discord bot actions as tools for LLM clients.4291
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP server for AI dialogue using various LLM models via AceDataCloud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/fboiero/DiscordMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server