vencord-mcp
vencord-mcp
実行中のDiscordクライアントを、プラグイン作成者が読むのと同じ方法で読み取れるMCPサーバーです。ストア、webpackモジュール、パッチ、Reactのprops、そしてゲートウェイトラフィックそのものを対象とします。
--remote-debugging-port 付きで起動した任意のChromiumと通信できるため、VencordやEquicordが注入されたDiscordで動作し、その大部分はminifiedなwebpackバンドルを持つ任意のElectronアプリでも機能します。
なぜこれが存在するのか
この2つの要素は以前から別々に存在していましたが、どちらも単体では役に立ちませんでした。
汎用的なElectronおよびChrome DevToolsのMCPサーバーはいくつか存在します。スクリーンショットを撮り、コンソールを読み、JavaScriptを評価しますが、webpack、Fluxストア、Vencordのパッチについては何も知らないため、これらを使うエージェントは毎回同じボイラープレートを再発見することに時間を費やします。
一方、Vencord Companion はまさに適切なことを熟知しています。webpack findが一意かどうか、パッチのマッチがコンパイルされるかどうかなどです。しかし、これはVSCode拡張機能であり、人間がエディタで読むために作られています。
この2つを結びつけるものは何もありませんでした。これがそれを行います。
Related MCP server: instagit
何が変わるのか
プラグインを作成する通常のループは、devtoolsを開き、minifiedなバンドルを探し回り、正規表現を書いて祈り、コンパイルし、Discordを再起動し、結果を確認するというものです。間違えるたびに再起動が必要です。
これらのツールを使えば、ループは数秒で完結し、さらに重要なのは、エージェントが推測をやめることです。test_patch は「このパッチは実際に実行されるのか」を、何かをビルドする前に答えます。capture_websocket は、インターフェースが示唆するものではなく、サーバーが実際に送信したものを表示します。react_props は、UIが数字しか表示しないエラーの名前を回復します。
インストール
npm installMCPクライアントに登録します。ほとんどのクライアントは次のような設定ブロックを受け付けます。
{
"mcpServers": {
"vencord": {
"command": "node",
"args": ["/absolute/path/to/vencord-mcp/src/index.js"]
}
}
}CLIを提供するクライアントでは、通常 mcp add vencord -- node /absolute/path/to/vencord-mcp/src/index.js のようなワンライナーで同じことができます。
次に、Discordをデバッガーを開いた状態で起動します。
Discord.exe --remote-debugging-port=9223ポートはlocalhostでのみリッスンしますが、これはデバッガーです。到達可能なものは誰でもあなたのセッションを読み取ることができます。終わったら、通常通りDiscordを閉じて再度開いてください。
ツール
特に記載がない限り読み取り専用です。
ツール | 答えを出す質問 |
| クライアントに到達可能か、およびどのページにアタッチするか |
| どのプラグインが有効、開始、パッチ済みか、およびネイティブ側を持つもの |
| どのパッチがモジュールを見つけられず何もしていないか |
| findは一意か、マッチはヒットするか、何回ヒットするか、置換によって何が生成されるか |
| どのような状態が存在するか |
| このストアは何を知っていて、そのゲッターは現在何を返すか |
| 引数を指定して1つのメソッドを呼び出す |
| エクスポートされたpropsまたは含まれるコードによってモジュールを検索 |
| すべてのモジュールソースを、モジュールIDと周辺コードとともに検索 |
| DOMノードから遡り、エラーや状態を保持するpropsを読み取る |
| サーバーがこのアカウントに対して実験に割り当てたもの |
| ゲートウェイおよびボイスフレームを記録、デコード、ハートビートは除外 |
| コンソール出力を記録。オプションで最初にリロードして起動時をキャッチ |
| 実行中のクライアントが見ているプラグイン設定 |
| 書き込みあり。 Vencord自身のプロキシを通じて1つの設定を変更 |
| 書き込みあり。 Fluxアクションを送信。エクスポートされたメソッドがない動作に対して |
| 書き込みあり。 レンダラーをリロード(Ctrl+Rと同じ) |
| 上記でカバーされていないものに対する脱出用ハッチ |
すべてのツールは port(デフォルト9223)と、複数のページターゲットが開いている場合に使用するオプションの urlHint を受け付けます。
インストールする価値がある3つのツール
test_patch は、Vencordが起動時に実行するのと同じチェックを、実際に実行されているビルドに対して実行します。モジュールにマッチしないfindは、パッチが静かに決して実行されないことを意味し、複数のモジュールにマッチするfindは、Vencordがそれらすべてにパッチを適用することを意味します。どちらも、プラグインが他の原因のように見える誤動作をするまで見えません。
test_patch(find: '"2026-08-video-guard"', match: 'variations:\\{.{0,120}?\\}\\}', replace: 'variations:{}')
-> "find is unique and match hits exactly once"patch_status は test_patch が答えられない質問に答えます:それは実際に実行されたかどうかです。Vencordは、モジュールがロードされると保留リストからパッチを削除するため、リストに残っているものは決してマッチしなかったものです。これが最も時間を浪費する失敗です。プラグインはロードされ、エラーを報告せず、静かに何もしないからです。all と宣言されたパッチは設計上永遠にリストに残り、壊れていると誤解されないように別途報告されます。
capture_websocket は、Discordのボイスオペコードを名前でデコードします:IDENTIFY、READY、SESSION_DESCRIPTION、VIDEO、MEDIA_SINK_WANTS。これらを読むことは、「動画が表示されなかった」と「サーバーがssrc 267を提供し、クライアントが最高品質でそれを要求したが、パケットが後続しなかった」の違いを意味し、これらは異なるバグであり、異なる修正が必要です。
注意点:Networkドメインは、作成されたのを確認したソケットのみを記録します。キャプチャ開始時にすでに開いていた接続は (socket opened before capture) として報告されます。フレームはその内容がプロトコルを識別するため依然としてデコードされますが、URLは不明です。ウィンドウ中にクライアントを再接続させてURLを取得してください。
注意点
Discordは eval をブロックする厳格なCSPを配布しています。ここでのすべての評価は allowUnsafeEvalBlockedByCSP を設定しており、これはデバッガーがとにかく実行するための文書化された方法です。これがないと、すべての呼び出しが役に立たない EvalError で失敗します。
各ツール呼び出しは独自のデバッガーセッションを開き、切断します。呼び出し間でセッションを開いたままにすることは、同期が取れなくなる状態を作り出すだけです。
テスト
node test/smoke.js標準入出力を介して実際のサーバーと実際のプロトコルで通信します:初期化、ツールの一覧表示、そして実行中のDiscordがポート9223にあれば、ライブパスを実行します。起動するサーバーは、応答するサーバーと同じではありません。
ライセンス
GPL-3.0-or-later、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