vencord-mcp
vencord-mcp
一个MCP服务端,让编程代理能够像插件作者一样读取正在运行的Discord客户端:存储、webpack模块、补丁、React属性,以及Gateway流量本身。
它能与任何通过 --remote-debugging-port 启动的Chromium通信,因此适用于注入了Vencord或Equicord的Discord,且大部分功能也适用于任何包含压缩webpack包的Electron应用。
为什么需要这个
此前已有两个独立的半成品,但各自都无法独立发挥作用。
市面上有多个通用的Electron和Chrome DevTools MCP服务端。它们能截图、读取控制台、执行JavaScript,但对webpack、Flux存储或Vencord补丁一无所知。因此,使用这些工具的代理每次启动会话时都要花费预算重新发现相同的样板代码。
另一方面,Vencord Companion 深谙关键要点:webpack查找是否唯一、补丁的匹配项能否编译。但它是一个VSCode扩展,专为在编辑器中阅读的人类设计。
此前没有任何工具能连接这两者。这个项目做到了。
Related MCP server: instagit
它改变了什么
编写插件的常规流程是:打开开发者工具、在压缩包中搜索、编写正则表达式并祈祷成功、编译、重启Discord、验证结果。每次出错都需要重启。
有了这些工具,整个流程缩短到几秒钟,更重要的是代理不再需要猜测。test_patch 能在任何构建之前回答"这个补丁真的能运行吗"。capture_websocket 显示服务器实际发送的内容,而非界面暗示的内容。react_props 能恢复一个错误名称,而该错误的界面只显示了一个数字。
安装
npm install将其注册到你的MCP客户端。大多数客户端接受如下配置块:
{
"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该端口仅在本地监听,但它是一个调试器:任何能访问该端口的内容都能读取你的会话。完成后正常关闭并重新打开Discord。
工具
除非特别注明,均为只读。
工具 | 解决的问题 |
| 客户端是否可达,以及我应该附加到哪个页面 |
| 哪些插件已启用、已启动、已打补丁,哪些有原生端 |
| 哪些补丁从未找到其模块,因此没有任何效果 |
| 查找是否唯一,匹配项是否命中,命中次数,替换产生什么结果 |
| 当前存在哪些状态 |
| 该存储知道什么,以及当前其getter返回什么 |
| 使用参数调用一个方法 |
| 按导出的props或包含的代码查找模块 |
| 搜索每个模块的源代码,显示模块ID和周围代码 |
| 从DOM节点向上遍历,读取包含错误或状态的props |
| 服务器为此账户分配了什么实验 |
| 记录网关和语音帧,已解码,心跳帧已过滤 |
| 记录控制台输出,可选择性地先重新加载以捕获启动信息 |
| 插件设置,以运行中客户端实际看到的方式 |
| 写入操作。通过Vencord自身的代理修改一个设置 |
| 写入操作。发送一个Flux动作,用于没有导出方法的行为 |
| 写入操作。重新加载渲染器,等同于Ctrl+R |
| 当以上所有工具都无法满足需求时的备用方案 |
每个工具都接受 port(默认9223)和一个可选的 urlHint,用于当多个页面目标同时打开的情况。
三个最值得安装的工具
test_patch 执行Vencord启动时运行的相同检查,针对实际运行的构建版本。一个没有匹配到任何模块的查找意味着补丁默默失效,而匹配到多个模块的查找意味着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,客户端请求了全质量,但没有数据包跟上"这两种情况,而它们是完全不同的错误,需要不同的修复方法。
一个注意事项:网络域只记录它创建时看到的套接字。捕获开始时已经打开的连接会被报告为 (socket opened before capture) —— 这些帧仍然会被解码,因为其内容能识别协议,但URL是未知的。在捕获窗口期间让客户端重新连接即可获取URL。
注意事项
Discord带有严格的内容安全策略(CSP),禁止 eval。此处的所有评估都设置了 allowUnsafeEvalBlockedByCSP,这是调试器无论如何都能运行的标准方式;否则每次调用都会失败,并显示无用的 EvalError。
每个工具调用都会打开自己的调试器会话并在完成后关闭。如果在调用之间保持会话打开,只会造成状态不同步的问题。
测试
node test/smoke.js它通过标准输入输出与实际服务器通信真实协议:初始化、列出工具,然后如果端口9223上有运行的Discord,则针对实时路径进行测试。一个能启动的服务器并不等同于一个能响应的服务器。
许可证
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