Skip to main content
Glama
fmarcac

discord-mcp

by fmarcac

discord-mcp

Lee y actúa en Discord a través de tu propio cliente de escritorio en ejecución: mensajes de canal, mensajes directos, chats de grupo, hilos, publicaciones de foro y búsqueda.

Cómo funciona

La aplicación de escritorio de Discord es Electron. Iniciada con --remote-debugging-port, su renderizador es accesible a través del Protocolo Chrome DevTools. discord-mcp se conecta a ese renderizador, observa el conjunto de cabeceras que el cliente ya envía en sus propias llamadas a la API, y realiza peticiones desde dentro de la misma página.

Por lo tanto, cada petición proviene del proceso real del cliente, en la sesión real, con la huella digital real. No hay un segundo cliente que detectar, y el token nunca se lee del almacenamiento de Discord: solo se observa en una petición que el cliente ya estaba haciendo.

Related MCP server: discord-user-mcp

Léelo antes de usarlo

Esto viola los Términos del Servicio de Discord. Automatizar una cuenta de usuario está prohibido independientemente de cómo se haya obtenido la sesión, y la sección 11 prohíbe por separado modificar el cliente.

El riesgo práctico se sitúa en la misma categoría que los mods del cliente como Vencord, a los que Discord ha restado prioridad públicamente y que no tienen baneos confirmados a fecha de 2026. Ese es un patrón de no aplicación, no una promesa. El riesgo se concentra en escribir, no en leer.

Un token de bot sería totalmente conforme, pero un bot nunca puede leer tus mensajes directos. Esa limitación es la razón de ser de este proyecto.

Configuración

npm install
npm run build

Discord mantiene un bloqueo de instancia única, así que la marca de depuración solo tiene efecto al inicio. Cierra cualquier cliente en ejecución primero.

node dist/cli/main.js launch      # starts Discord on a random loopback port
node dist/cli/main.js doctor      # verifies attach, capture and a real read

doctor debería mostrar tu cuenta, el número de servidores y el número de mensajes directos.

La primera conexión recarga el renderizador una vez, porque un cliente inactivo no hace ninguna petición REST de la que observar cabeceras. La captura se recuerda después por puerto durante doce horas en ~/.local/state/discord-mcp/headers.json, así que las ejecuciones posteriores se conectan en aproximadamente un segundo y no tocan tu cliente.

Conectándolo a un cliente MCP

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["/path/to/discord-mcp/dist/cli/main.js", "serve"]
    }
  }
}

Herramientas

Dieciocho herramientas están expuestas por defecto: doce de lectura y seis de escritura.

Tool

Tier

Purpose

guild_list

lectura

Servidores a los que pertenece esta cuenta

guild_channels

lectura

Canales de un servidor

guild_roles

lectura

Roles definidos en un servidor

channel_get

lectura

Describe un canal o hilo

channel_history

lectura

Una página de mensajes, paginando en ambas direcciones

channel_pins

lectura

Mensajes fijados

message_get

lectura

Un mensaje por id

dm_list

lectura

Conversaciones directas y de grupo

thread_list

lectura

Hilos abiertos de un canal, que es como se leen las publicaciones del foro

thread_archived

lectura

Hilos archivados, donde acaban las publicaciones del foro sin actividad

search_guild

lectura

Buscar en un servidor

search_channel

lectura

Buscar en un canal o conversación

message_send

escritura

Enviar un mensaje o respuesta

message_edit

escritura

Editar un mensaje enviado por esta cuenta

message_react

escritura

Añadir una reacción

message_ack

escritura

Marcar un canal como leído hasta un mensaje

thread_create

escritura

Crear un hilo, opcionalmente a partir de un mensaje existente

forum_post

escritura

Crear una publicación de foro con su mensaje inicial

Leer un foro funciona listando los hilos del canal del foro. Cada publicación devuelve el mensaje que la abrió y sus etiquetas aplicadas, así que una publicación se puede leer sin una segunda llamada.

Herramientas destructivas

Existen siete operaciones más y no se registran en absoluto a menos que su categoría esté habilitada. No aparecen en la lista de herramientas, así que ningún host ni ningún modelo puede acceder a ellas.

Tool

Category

message_delete

messages

thread_delete

threads

channel_delete

channels

guild_leave

guilds

member_kick, member_ban

members

member_roles

roles

Habilita solo lo que necesites:

{ "destructive": ["messages", "threads"] }
node dist/cli/main.js serve --config /path/to/policy.json

Este es el control clave. Las solicitudes de aprobación del host son una segunda capa, porque el comportamiento del host varía y algunos hosts aprueban automáticamente. Cada herramienta destructiva resuelve y devuelve aquello sobre lo que actuó, de modo que el resultado nombra el canal en lugar de limitarse a repetir un snowflake.

Seguridad

Un puerto de DevTools abierto es una omisión de la autenticación local: cualquier proceso que se ejecute como tú puede manejar la sesión, incluida la verificación en dos pasos. discord-mcp se vincula solo a loopback y elige un puerto alto aleatorio en lugar del 9222 por defecto. No dejes el cliente en ejecución con el puerto abierto cuando no lo estés usando.

La caché de cabeceras contiene un token activo. Reutilizar una captura implica conservarlo, así que ~/.local/state/discord-mcp/headers.json contiene tu cabecera Authorization hasta que expire. Se escribe solo para el propietario, con modo 0600, y lo mismo ocurre con el estado de inicio que está a su lado. Elimina el archivo para forzar una captura nueva:

rm ~/.local/state/discord-mcp/headers.json

Ejecuta sin una ruta de caché si prefieres capturar cada vez y no almacenar nunca el token, a costa de recargar el renderizador en cada conexión.

Estructura

src/attach/     CDP connection, target selection, launch, state
src/bridge/     header capture, request execution, rate limiting
src/api/        typed wrappers over Discord REST v9
src/normalize/  reduce Discord's wire format to what a reader needs
src/policy/     operation tiers and the destructive gate
src/tools/      MCP tool registration
src/cli/        launch, doctor, serve

Las dependencias solo fluyen hacia abajo. normalize/ y policy/ son puros y no dependen de nada, y es donde vive la mayor parte del conjunto de pruebas.

npm test         # 152 tests, no Discord required
npm run typecheck

El documento de diseño, incluidos los hallazgos del Spike 0 que dieron forma al puente, está en docs/superpowers/specs/.

A
license - permissive license
Not graded
quality - not tested
B
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
    Not graded
    quality
    D
    maintenance
    Enables interaction with Discord using personal user tokens instead of bot applications, allowing for seamless message management and server exploration. It provides tools for reading history, sending messages, and searching across channels and DMs directly through MCP-compatible clients.
    6
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with Discord through natural language, including reading and sending messages, managing servers, and user actions.

View all related MCP servers

Related MCP Connectors

  • Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.

  • Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

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/fmarcac/discord-mcp'

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