Skip to main content
Glama
fboiero

Discord MCP

by fboiero

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

  1. Entrá al Discord Developer Portal y creá una New Application.

  2. En Bot, creá el bot y copiá el Token (botón Reset Token). Es el valor de DISCORD_BOT_TOKEN.

  3. En la misma sección Bot → Privileged Gateway Intents, activá:

    • Server Members Intent (necesario para list_members y gestión de roles).

    • Message Content Intent (necesario para leer el contenido de los mensajes en read_messages).

  4. 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.

  5. 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 .env
  • DISCORD_BOT_TOKEN: el token del paso anterior.

  • MCP_AUTH_TOKEN: un secreto propio para proteger el servidor (generalo con python -c "import secrets; print(secrets.token_urlsafe(32))"). Claude.ai va a enviarlo como header Authorization: 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-mcp

Por defecto escucha en http://0.0.0.0:8000/mcp.

Con Docker

docker compose up --build

o manualmente:

docker build -t discord-mcp .
docker run --env-file .env -p 8000:8000 discord-mcp

Desplegar (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 en PORT) por HTTPS — Claude.ai requiere que el servidor MCP sea accesible por https://.

  • 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

  1. Entrá a https://claude.ai/ask-your-org/setup (o Configuración → Conectores) y elegí Add custom connector / Custom.

  2. Name: Discord (o el que prefieras).

  3. URL: https://<tu-dominio>/mcp.

  4. En Request headers / Advanced settings, agregá:

    • Header: Authorization

    • Valor: Bearer <el mismo valor que pusiste en MCP_AUTH_TOKEN>

  5. 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]"
pytest

Los 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.py corre 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.MCPServer del SDK oficial mcp), 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.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    D
    maintenance
    A Dockerized MCP server that enables Discord integration, offering tools for role management, messaging, moderation, and server administration via natural language.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An 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.
    67
    124
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    An MCP server that exposes Discord bot actions as tools for LLM clients.
    4
    29
    1

View all related MCP servers

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

View all MCP Connectors

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/fboiero/DiscordMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server