Skip to main content
Glama
mazxxy

vencord-mcp

by mazxxy

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。

工具

除非特别注明,均为只读。

工具

解决的问题

targets

客户端是否可达,以及我应该附加到哪个页面

plugins

哪些插件已启用、已启动、已打补丁,哪些有原生端

patch_status

哪些补丁从未找到其模块,因此没有任何效果

test_patch

查找是否唯一,匹配项是否命中,命中次数,替换产生什么结果

list_stores

当前存在哪些状态

describe_store

该存储知道什么,以及当前其getter返回什么

read_store

使用参数调用一个方法

find_module

按导出的props或包含的代码查找模块

search_modules

搜索每个模块的源代码,显示模块ID和周围代码

react_props

从DOM节点向上遍历,读取包含错误或状态的props

experiment

服务器为此账户分配了什么实验

capture_websocket

记录网关和语音帧,已解码,心跳帧已过滤

capture_console

记录控制台输出,可选择性地先重新加载以捕获启动信息

read_settings

插件设置,以运行中客户端实际看到的方式

write_setting

写入操作。通过Vencord自身的代理修改一个设置

dispatch

写入操作。发送一个Flux动作,用于没有导出方法的行为

reload

写入操作。重新加载渲染器,等同于Ctrl+R

evaluate

当以上所有工具都无法满足需求时的备用方案

每个工具都接受 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的语音操作码:IDENTIFYREADYSESSION_DESCRIPTIONVIDEOMEDIA_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保持一致。

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