discord-mcp
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 buildDiscord 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 readdoctor 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 |
| lectura | Servidores a los que pertenece esta cuenta |
| lectura | Canales de un servidor |
| lectura | Roles definidos en un servidor |
| lectura | Describe un canal o hilo |
| lectura | Una página de mensajes, paginando en ambas direcciones |
| lectura | Mensajes fijados |
| lectura | Un mensaje por id |
| lectura | Conversaciones directas y de grupo |
| lectura | Hilos abiertos de un canal, que es como se leen las publicaciones del foro |
| lectura | Hilos archivados, donde acaban las publicaciones del foro sin actividad |
| lectura | Buscar en un servidor |
| lectura | Buscar en un canal o conversación |
| escritura | Enviar un mensaje o respuesta |
| escritura | Editar un mensaje enviado por esta cuenta |
| escritura | Añadir una reacción |
| escritura | Marcar un canal como leído hasta un mensaje |
| escritura | Crear un hilo, opcionalmente a partir de un mensaje existente |
| 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 |
|
|
|
|
|
|
|
|
|
|
|
|
Habilita solo lo que necesites:
{ "destructive": ["messages", "threads"] }node dist/cli/main.js serve --config /path/to/policy.jsonEste 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.jsonEjecuta 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, serveLas 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 typecheckEl documento de diseño, incluidos los hallazgos del Spike 0 que dieron forma al puente, está en docs/superpowers/specs/.
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
- AlicenseBqualityFmaintenanceEnables interaction with Discord channels through a bot, allowing users to send messages and files, retrieve messages with advanced filtering, and download attachments of any type.5264MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.6MIT
- FlicenseNot gradedqualityBmaintenanceEnables interaction with Discord through natural language, including reading and sending messages, managing servers, and user actions.
- AlicenseNot gradedqualityDmaintenanceEnables reading Discord messages and server information using your own account via OAuth2, no bot required.MIT
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.
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/fmarcac/discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server