vencord-mcp
vencord-mcp
Un servidor MCP que permite a un agente de codificación leer un cliente de Discord en ejecución de la misma manera que lo haría un autor de plugins: stores, módulos webpack, parches, props de React y el propio tráfico de gateway.
Se comunica con cualquier Chromium iniciado con --remote-debugging-port, por lo que funciona en Discord con Vencord o Equicord inyectados, y la mayor parte funciona en cualquier aplicación Electron con un bundle webpack minificado.
Por qué existe esto
Dos mitades de esto ya existían por separado, y ninguna era útil por sí sola.
Existen varios servidores MCP genéricos para Electron y Chrome DevTools. Toman capturas de pantalla, leen la consola y evalúan JavaScript, pero no saben nada sobre webpack, Flux stores o parches de Vencord, por lo que un agente que los utiliza gasta su presupuesto redescubriendo el mismo boilerplate en cada sesión.
Por otro lado, Vencord Companion sabe exactamente lo correcto: si una búsqueda webpack es única, si la coincidencia de un parche compila. Pero es una extensión de VSCode, diseñada para que un humano la lea en un editor.
Nada conectaba ambas cosas. Esto lo hace.
Related MCP server: instagit
Lo que cambia
El bucle normal para escribir un plugin es: abrir devtools, buscar en un bundle minificado, escribir una regex y esperar, compilar, reiniciar Discord, descubrir. Cada error cuesta un reinicio.
Con estas herramientas, el bucle se cierra en segundos y, lo que es más importante, el agente deja de adivinar. test_patch responde si este parche realmente se ejecutaría antes de construir nada. capture_websocket muestra lo que el servidor realmente envió en lugar de lo que la interfaz implicaba. react_props recupera el nombre de un fallo cuya interfaz de usuario solo muestra un número.
Instalar
npm installRegístralo con tu cliente MCP. La mayoría acepta un bloque de configuración como este:
{
"mcpServers": {
"vencord": {
"command": "node",
"args": ["/absolute/path/to/vencord-mcp/src/index.js"]
}
}
}Los clientes que incluyen una CLI suelen tener un comando único para lo mismo, del estilo de mcp add vencord -- node /absolute/path/to/vencord-mcp/src/index.js.
Luego inicia Discord con el depurador abierto:
Discord.exe --remote-debugging-port=9223El puerto solo escucha en localhost, pero es un depurador: cualquier cosa que pueda alcanzarlo puede leer tu sesión. Cierra y vuelve a abrir Discord normalmente cuando hayas terminado.
Herramientas
Solo lectura a menos que se indique lo contrario.
Herramienta | Qué responde |
| Si el cliente es accesible y a qué página debo conectarme |
| Qué plugins están habilitados, iniciados, parcheados y cuáles tienen un lado nativo |
| Qué parches nunca encontraron su módulo y no están haciendo nada |
| Si la búsqueda es única, si la coincidencia acierta, cuántas veces, qué produce el reemplazo |
| Qué estado existe en absoluto |
| Qué sabe este store y qué devuelven sus getters ahora mismo |
| Llamar a un método con argumentos |
| Encontrar un módulo por props exportadas o por el código que contiene |
| Buscar en cada fuente de módulo, con los ids de módulo y el código circundante |
| Subir desde un nodo DOM y leer las props que contienen un error o estado |
| Qué asignó el servidor a esta cuenta para un experimento |
| Grabar tramas de gateway y voz, decodificadas, latidos omitidos |
| Grabar salida de consola, opcionalmente recargando primero para capturar el inicio |
| Configuración del plugin tal como la ve el cliente en ejecución |
| Escribe. Cambiar una configuración a través del propio proxy de Vencord |
| Escribe. Enviar una acción Flux, para comportamientos sin método exportado |
| Escribe. Recargar el renderizador, igual que Ctrl+R |
| Vía de escape para cualquier cosa anterior no cubierta |
Cada herramienta acepta port (por defecto 9223) y un urlHint opcional para cuando hay más de un destino de página abierto.
Las tres que merecen la instalación
test_patch ejecuta la misma comprobación que Vencord ejecuta al inicio, contra la compilación que realmente se está ejecutando. Una búsqueda que no coincide con ningún módulo significa que el parche nunca se ejecuta silenciosamente, y una búsqueda que coincide con varios significa que Vencord los parchea todos. Ambos son invisibles hasta que el plugin se comporta mal de una manera que parece otra cosa.
test_patch(find: '"2026-08-video-guard"', match: 'variations:\\{.{0,120}?\\}\\}', replace: 'variations:{}')
-> "find is unique and match hits exactly once"patch_status responde a la pregunta que test_patch no puede: si realmente se ejecutó. Vencord elimina un parche de su lista pendiente una vez que su módulo se carga, por lo que cualquier cosa que aún esté listada nunca coincidió. Ese es el fallo que más tiempo cuesta, porque el plugin se carga, no reporta ningún error y no hace nada silenciosamente. Los parches declarados como all permanecen listados para siempre por diseño y se reportan por separado para que no parezcan rotos.
capture_websocket decodifica los opcodes de voz de Discord por nombre: IDENTIFY, READY, SESSION_DESCRIPTION, VIDEO, MEDIA_SINK_WANTS. Leerlos es la diferencia entre "el video no apareció" y "el servidor ofreció ssrc 267, el cliente lo solicitó a máxima calidad y no llegaron paquetes", que son errores diferentes con soluciones diferentes.
Una advertencia: el dominio Network solo registra los sockets que vio crearse. Una conexión que ya estaba abierta cuando comenzó la captura se reporta como
(socket opened before capture) — las tramas aún se decodifican, porque su contenido identifica el protocolo, pero la URL es desconocida. Haz que el cliente se reconecte durante la ventana para obtenerla.
Notas
Discord incluye una CSP estricta que bloquea eval. Cada evaluación aquí establece allowUnsafeEvalBlockedByCSP, que es la forma documentada para que un depurador se ejecute de todos modos; sin ella, cada llamada falla con un EvalError poco útil.
Cada llamada de herramienta abre su propia sesión de depurador y se desconecta. Mantener una abierta entre llamadas solo crearía estado que podría desincronizarse.
Tests
node test/smoke.jsHabla el protocolo real con el servidor real a través de stdio: inicializar, listar las herramientas y luego ejercitar la ruta en vivo contra un Discord en el puerto 9223 si hay uno en ejecución. Un servidor que se inicia no es lo mismo que un servidor que responde.
Licencia
GPL-3.0-or-later, en concordancia con Vencord.
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
- AlicenseNot gradedqualityDmaintenanceA Vencord plugin that provides MCP server capabilities for inspecting Discord's internal state, executing JavaScript code, accessing Flux stores, discovering webpack modules, and inspecting DOM elements within Discord's context.1,270MIT
- AlicenseAqualityDmaintenanceAn MCP server that gives coding agents instant insight into any Git repository — no guessing, no hallucination.14618MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides native Discord tools for Claude Code, enabling bidirectional communication with remote agents or humans via the Discord REST API. It allows users to send messages, read channel history, and manage reactions directly from their local environment.6223MIT
- AlicenseAqualityAmaintenanceAn MCP server that empowers AI coding agents to work effectively with Minecraft mod development, providing static analysis of decompiled source code and runtime interaction with a running Minecraft instance.313913MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
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/mazxxy/vencord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server