Skip to main content
Glama
mazxxy

vencord-mcp

by mazxxy

vencord-mcp

Ein MCP-Server, der es einem Coding-Agenten ermöglicht, einen laufenden Discord-Client so zu lesen, wie ein Plugin-Autor ihn liest: Stores, Webpack-Module, Patches, React-Props und den Gateway-Datenverkehr selbst.

Er kommuniziert mit jedem Chromium, das mit --remote-debugging-port gestartet wurde, funktioniert also mit Discord, in das Vencord oder Equicord injiziert wurde, und das meiste funktioniert mit jeder Electron-App mit einem minimierten Webpack-Bundle.

Warum es das gibt

Zwei Hälften davon existierten bereits getrennt, und keine war für sich allein nützlich.

Es gibt mehrere generische Electron- und Chrome-DevTools-MCP-Server. Sie machen Screenshots, lesen die Konsole und führen JavaScript aus, kennen aber nichts von Webpack, Flux-Stores oder Vencord-Patches, sodass ein Agent, der sie verwendet, sein Budget damit verschwendet, jedes Mal dieselben Boilerplates neu zu entdecken.

Auf der anderen Seite weiß Vencord Companion genau die richtigen Dinge: ob ein Webpack-Find eindeutig ist, ob ein Match eines Patches kompiliert. Aber es ist eine VSCode-Erweiterung, die für einen Menschen gebaut wurde, der sie in einem Editor liest.

Nichts verband die beiden. Dies tut es.

Related MCP server: instagit

Was es ändert

Die normale Schleife zum Schreiben eines Plugins ist: Devtools öffnen, durch ein minimiertes Bundle jagen, einen Regex schreiben und hoffen, kompilieren, Discord neu starten, herausfinden. Jeder Fehler kostet einen Neustart.

Mit diesen Werkzeugen schließt sich die Schleife in Sekunden, und was noch wichtiger ist: Der Agent hört auf zu raten. test_patch beantwortet "Würde dieser Patch tatsächlich ausgeführt werden?" bevor etwas gebaut wird. capture_websocket zeigt, was der Server wirklich gesendet hat, statt was die Schnittstelle implizierte. react_props findet den Namen eines Fehlers, dessen UI nur eine Zahl anzeigt.

Installieren

npm install

Registrieren Sie es bei Ihrem MCP-Client. Die meisten akzeptieren einen Konfigurationsblock wie diesen:

{
  "mcpServers": {
    "vencord": {
      "command": "node",
      "args": ["/absolute/path/to/vencord-mcp/src/index.js"]
    }
  }
}

Clients, die eine CLI mitbringen, haben normalerweise einen Einzeiler für dasselbe, etwa mcp add vencord -- node /absolute/path/to/vencord-mcp/src/index.js.

Starten Sie dann Discord mit geöffnetem Debugger:

Discord.exe --remote-debugging-port=9223

Der Port hört nur auf localhost, aber es ist ein Debugger: Alles, was ihn erreichen kann, kann Ihre Sitzung lesen. Schließen und öffnen Sie Discord normal, wenn Sie fertig sind.

Werkzeuge

Nur lesend, sofern nicht anders gekennzeichnet.

Werkzeug

Was es beantwortet

targets

Ist der Client erreichbar, und an welche Seite soll ich mich anhängen?

plugins

Welche Plugins sind aktiviert, gestartet, gepatcht, und welche haben eine native Seite?

patch_status

Welche Patches haben ihr Modul nie gefunden und tun nichts?

test_patch

Ist der Find eindeutig, trifft der Match, wie oft, was produziert der Ersatz?

list_stores

Welcher Zustand existiert überhaupt?

describe_store

Was weiß dieser Store, und was geben seine Getter gerade zurück?

read_store

Rufe eine Methode mit Argumenten auf.

find_module

Finde ein Modul anhand exportierter Props oder des enthaltenen Codes.

search_modules

Durchsuche jeden Modulquelltext, mit Modul-IDs und umgebendem Code.

react_props

Gehe von einem DOM-Knoten nach oben und lese die Props, die einen Fehler oder Zustand halten.

experiment

Was hat der Server diesem Konto für ein Experiment zugewiesen?

capture_websocket

Zeichne Gateway- und Voice-Frames auf, dekodiert, Heartbeats entfernt.

capture_console

Zeichne Konsolenausgabe auf, optional mit Neuladen zuerst, um Startmeldungen zu erfassen.

read_settings

Plugin-Einstellungen, wie der laufende Client sie sieht.

write_setting

Schreibend. Ändere eine Einstellung über Vencords eigenen Proxy.

dispatch

Schreibend. Sende eine Flux-Aktion, für Verhalten ohne exportierte Methode.

reload

Schreibend. Lade den Renderer neu, wie Strg+R.

evaluate

Notausstieg für alles oben nicht Abgedeckte.

Jedes Werkzeug akzeptiert port (Standard 9223) und ein optionales urlHint für den Fall, dass mehr als ein Seitenziel geöffnet ist.

Die drei, die die Installation lohnen

test_patch führt dieselbe Prüfung aus, die Vencord beim Start ausführt, gegen den tatsächlich laufenden Build. Ein Find, der kein Modul trifft, bedeutet, dass der Patch stillschweigend nie ausgeführt wird, und ein Find, der mehrere trifft, bedeutet, dass Vencord sie alle patcht. Beides ist unsichtbar, bis sich das Plugin auf eine Weise falsch verhält, die wie etwas anderes aussieht.

test_patch(find: '"2026-08-video-guard"', match: 'variations:\\{.{0,120}?\\}\\}', replace: 'variations:{}')
-> "find is unique and match hits exactly once"

patch_status beantwortet die Frage, die test_patch nicht beantworten kann: Wurde es tatsächlich ausgeführt? Vencord entfernt einen Patch aus seiner Liste der ausstehenden Patches, sobald sein Modul geladen wird. Alles, was noch gelistet ist, hat also nie getroffen. Das ist der Fehler, der die meiste Zeit kostet, weil das Plugin lädt, keinen Fehler meldet und leise nichts tut. Patches, die als all deklariert sind, bleiben aus Designgründen für immer gelistet und werden separat gemeldet, damit sie nicht als defekt gelesen werden.

capture_websocket dekodiert Discords Sprach-Opcodes namentlich: IDENTIFY, READY, SESSION_DESCRIPTION, VIDEO, MEDIA_SINK_WANTS. Sie zu lesen ist der Unterschied zwischen "Das Video ist nicht erschienen" und "Der Server hat ssrc 267 angeboten, der Client hat es in voller Qualität angefordert, und es folgten keine Pakete", was unterschiedliche Fehler mit unterschiedlichen Korrekturen sind.

Ein Hinweis: Die Network-Domain zeichnet nur Sockets auf, deren Erstellung sie gesehen hat. Eine Verbindung, die bereits offen war, als die Aufnahme begann, wird als (socket opened before capture) gemeldet – die Frames werden trotzdem dekodiert, weil ihr Inhalt das Protokoll identifiziert, aber die URL ist unbekannt. Lassen Sie den Client während des Fensters neu verbinden, um sie zu erhalten.

Hinweise

Discord liefert eine strenge CSP aus, die eval blockiert. Jede Auswertung hier setzt allowUnsafeEvalBlockedByCSP, was der dokumentierte Weg ist, damit ein Debugger trotzdem läuft; ohne dies schlägt jeder Aufruf mit einem nicht hilfreichen EvalError fehl.

Jeder Werkzeugaufruf öffnet eine eigene Debugger-Sitzung und beendet sie. Eine zwischen den Aufrufen offen zu halten, würde nur Zustand schaffen, der aus dem Takt geraten kann.

Tests

node test/smoke.js

Es spricht das echte Protokoll mit dem echten Server über stdio: initialisieren, die Werkzeuge auflisten, dann den Live-Pfad gegen einen Discord auf Port 9223 ausführen, falls einer läuft. Ein Server, der startet, ist nicht dasselbe wie ein Server, der antwortet.

Lizenz

GPL-3.0-or-later, entsprechend Vencord.

A
license - permissive license
Not graded
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
    Not graded
    quality
    D
    maintenance
    A 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,270
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that gives coding agents instant insight into any Git repository — no guessing, no hallucination.
    1
    46
    18
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An 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.
    6
    22
    3
    MIT

View all related MCP servers

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

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/mazxxy/vencord-mcp'

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