关于 ModWrench
ModWrench 是面向玩家和模组制作者的本地 MCP 服务,用于查找模组和诊断问题。它将多个模组平台的搜索与本地配置、崩溃日志的只读检查结合,并把已配置的组件组合为一个 MCP 入口。
主要功能
- 01搜索 Nexus Mods、mod.io 和 Thunderstore
- 02检查本地加载顺序和模组配置
- 03解析崩溃日志并排列可能原因
- 04执行只读配置检查
- 05比较 Thunderstore 模组列表
适用场景
- 01跨已连接平台查找模组
- 02根据日志排查游戏崩溃
- 03故障排查前检查模组配置
- 04与合作游戏成员比较模组列表
MCP 相关
CLI 将所选平台组件和本地 Workbench 组合为一个 MCP 服务入口。它提供工具和斜杠命令;支持 MCP Apps 的客户端还可显示可选页面。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
17收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
ModWrench
一个 MCP 服务,可将 AI 助手连接到模组平台和你自己的模组制作环境,让你可以在 AI 客户端中提问,而不必在网页界面中逐项点击。
它运行在你的机器上。无需账号、服务,也无需任何人运营服务器。
网站 modwrench.171county.workers.dev 是一个静态页面。其中的 Try 部分 会在浏览器中使用 ModWrench 自身的代码读取崩溃日志或比较成员列表,不会发送任何数据(了解详情)。
粘贴崩溃日志,找出导致崩溃的模组。

SomeArmorMod.esp 被列为嫌疑对象,而 SomeArmorMod.dll 出现在调用堆栈的第 2 帧。ModWrench 解析了日志并整理出其中的内容。它不会判定原因——那是模型的工作,页面也明确说明了这一点。
搜索你已连接的所有平台,每行都显示作者。

这些不是网站截图。每个都是一个 MCP Apps 页面:一个独立的 HTML 文档,不含外部脚本、样式表、网络请求或图片。每个工具都会以文本作答,任何客户端都能显示,模型也能读取。崩溃日志、模组列表、依赖项和加载顺序、已知冲突、deck、Patch Day、Crash Whisperer 和 Doctors 也都有页面,但仅会在支持 MCP Apps 的客户端中绘制:工具指向其页面,客户端获取并绘制页面,而页面绘制的数据会随答案以结构化数据的形式提供。无法绘制页面的客户端不会获取页面,也不会收到这些数据,因此只会获得文本答案,完全不会收到 HTML。上面的图片是在一个 MCP Apps 宿主模拟环境中绘制的。此后,在 Windows 11 上,Crash Whisperer 页面已在 Claude Desktop(由 Claude 自行调用)和 MCP Inspector 中运行,deck 页面也已在 MCP Inspector 中运行;其他页面尚未在真实客户端中测试。
Patch Day、Crash Whisperer 和 Doctors(mw_patch_day、mw_crash_whisperer、mw_doctor)的文本内容只有几行,完整报告会显示在各自页面中。结构化数据只会发送给声明支持绘制页面的客户端,因为有些客户端会把结构化数据交给模型,而不是文本,这会让一个十行的答案变得很长。如果你仍想获取这些数据,以供脚本或读取数据的 Agent 使用,请设置 MODWRENCH_STRUCTURED=always;MODWRENCH_STRUCTURED=never 则不会向任何客户端发送数据,此时没有工具会指向页面,因为缺少数据的页面只能重复文本答案。MODWRENCH_UI=off 会关闭所有页面及其结构化数据,除非通过 MODWRENCH_STRUCTURED=always 请求数据。页面不会发出网络请求,也不会保存任何内容;TRUST.md 和其他页面说明了它们能做和不能做的事情。
可选的 HTTP 服务 @modwrench/remote 也会以同样的方式做出判断。它会为每个客户端保留一个会话(仅存于内存中;不会写入任何内容,闲置 24 小时的会话会关闭),因此,响应工具调用的服务会知道客户端是否会绘制分页;它的 Thunderstore 模组列表和依赖工具只会向支持分页的客户端发送页面数据。会话已关闭的客户端会收到“Session not found”,直到重新连接。
The Doctors(mw_doctor 或 /mw-doctor)负责回答“我的设置准备好了吗?”,它们是模组支持中枯燥但重要的部分:许多“我的模组总是出问题”的讨论串,最终发现问题根源并非模组。Setup Doctor 会检查游戏、Mod Organizer 2 和 Vortex 暂存文件夹的位置(是否位于 Program Files、OneDrive 等受 Windows 保护或同步的文件夹中),Vortex 暂存文件夹是否与游戏位于同一驱动器(硬链接需要如此),驱动器剩余空间,以及 Skyrim Special Edition 和 Fallout 4 的插件列表:主插件缺失、已禁用或加载过晚的插件;254 个完整插件和 4,096 个轻量插件的上限(没有启用轻量插件的 Fallout 4 列表上限为 255 个完整插件);已不存在插件的条目;Mod Organizer 2 与游戏自身列表不一致的情况;MO2 Overwrite 文件夹中的杂项;以及崩溃日志记录器(未安装,或有两个互相冲突)。Deck Doctor 在 Linux 和 Steam Deck 上运行,会检查游戏由哪个 Steam 版本管理(常规版还是 Flatpak)、Proton 是否已创建游戏前缀、BepInEx 的 winhttp 启动覆盖项、哪个应用会打开 nxm:// 链接、库是否位于 NTFS、FAT32 或 exFAT 驱动器上,以及是否存在仅大小写不同的文件夹名称。每项检查结果都会注明依据(你的文件、注明来源的文档规则,或 ModWrench 自身的推测),报告还会列出它无法查看的内容:杀毒软件、页面文件,以及 MO2 的虚拟文件系统在游戏运行时向游戏显示的内容。游戏为何崩溃,是 Crash Whisperer 要回答的问题;报告也会明确说明这一点。它只在本地以只读方式运行:不联网、不启动任何程序、不写入任何内容,回答中也不会包含文件夹路径。报告显示一切正常,表示能够通过文件执行的检查均已通过。这并不意味着游戏一定能启动,报告也会明确说明这一点。它依据各工具自身的文档构建,并在模拟安装环境中进行了测试;尚未在真实环境中运行过。TRUST.md 列出了它会打开的内容,以及它无法确定的部分。
Crash Whisperer(mw_crash_whisperer,或 /mw-crash)会回答“我的游戏为什么崩溃了?”。无需提供其他内容,只要提问,它就会读取日志记录器写入的最新崩溃日志(或你指定路径下的日志,或粘贴的日志),用通俗的语言说明发生了什么,并按日志中指出的名称排序,逐一说明原因,以及原因所依据的内容:日志、你的文件、已发布的规则,或 ModWrench 自己的推测。它会检查你的配置是否存在常见问题,比较你近期其他 Crash Logger SSE 和 Buffout 4 崩溃日志,查看是否反复出现同一个名称,并生成一份可发布到论坛、GitHub 或 Discord,或发送给模组作者的帖子,同时移除它识别出的个人信息(你的姓名、计算机名称、文件夹、地址、密钥)。这是模式匹配,因此可能会遗漏某些内容:发送前请先阅读帖子。帖子除了调用栈,还会包含日志中列出的内容:日志记录器列出的对象及修改这些对象的插件、游戏文件、寄存器和调用栈中提及的 Papyrus 函数与对象类型、NetScriptFramework 日志中的 DLL 列表,以及 BepInEx、Unity 和各插件的版本。如果日志没有插件列表,或日志记录器无法写入插件列表,帖子会说明这一点;如果日志记录器无法写入,帖子会为你的加载顺序留空。排序结果只是线索,绝非定论;它绝不会说任何东西是安全的。它会说明日志显示游戏当时正在使用什么(列出的对象、游戏文件、寄存器中的对象类型、Papyrus 函数);如果游戏在 RaceMenu 或 JContainers 等其他模组所需的库中停止运行,它会说明不要移除该库,并在日志中有相关信息时指出可能调用它的模组。如果没有哪个名称特别突出,它会建议使用 Doctors 来检查崩溃日志可能无法指出的配置问题。它可以读取 Crash Logger SSE、Buffout 4、NetScriptFramework 和 BepInEx 日志;目前,配置检查仅涵盖 Skyrim Special Edition。从磁盘读取日志是私密使用它的方式:在任何内容发送给你的 AI 之前,它就会先处理识别出的信息。你粘贴到聊天中的日志,或输入的路径,在你输入时就已经发送给它;而且日志文件本身绝不会被清理,因此请分享求助帖子,不要分享日志文件。
TRUST.md 中有其余信息,包括一份通俗易懂的清单,列出它无法捕获的内容。
功能介绍
四个附件。安装一个、几个或全部——@modwrench/cli 会将你配置的附件组合成一个 MCP 条目。
Nexus Mods — 搜索模组、阅读更新日志和文件列表、查看版本、浏览热门和最近更新的内容、下载前预览压缩包内的内容、通过 MD5 反向查找文件,并在你提出要求时为模组点赞。(15 个工具)
mod.io — 搜索和浏览 mod.io 托管的各款游戏中的模组;获取模组详情、文件、标签、统计数据、依赖项和评论。(17 个工具)
Thunderstore — 浏览社区、搜索模组、查看完整版本历史,并解析依赖树。无需凭据;读取 API 为公开接口。(9 个工具)
Workbench — 在本地,也就是你的机器上运行。查找已安装的游戏、模组管理器和加载器;读取 MO2、r2modman 或 Vortex 的加载顺序;解析来自 Crash Logger SSE、Buffout 4、NetScriptFramework 或 BepInEx 的崩溃日志,或让它解释日志:发生了什么、日志指向了哪些名称以及判断有多确定,并生成可直接复制的求助帖;跨平台查找模组;检查已知冲突;在游戏补丁安装前后,检查你的脚本扩展插件能否正常工作(Skyrim Special Edition 和 Anniversary Edition 使用 SKSE,Fallout 4 使用 F4SE);运行 Doctors,对崩溃背后的配置进行只读健康检查(插件主文件和限制、文件位置、MO2 的 Overwrite 文件夹,以及 Linux 和 Steam Deck 上的 Steam、Proton 和 nxm:// 相关情况);查看 LOOT 主列表对当前启用的插件所需内容的说明,适用于 Skyrim Special Edition 和 Fallout 4,只检查这些文件是否存在;运行 Pulse,在告知你将发送的请求确切数量并等待你确认后,检查 r2modman 配置中的 Thunderstore 模组是否有更新、是否已弃用,以及 Thunderstore 上是否已无此模组;运行 Crew Check,生成一份包含 Thunderstore 模组及其版本的简短列表,供你分享给合作队友,并对比他们粘贴回来的列表,全程不联网;还可为单个模组生成 Trust Card,列出制作者和上传者、所在位置、日期以及平台自身提供的数据,所有信息均来自平台记录,不包含 ModWrench 自行生成的评分。(13 个工具)
冲突检查会读取两个来源:实时获取的 LOOT 主列表(适用于 Bethesda 游戏),以及随包附带的一份小型冲突列表(适用于 LOOT 不覆盖的游戏)。随包附带的列表为空——三个文件都只包含 [],因此目前不会提出任何判断。这里提到它,是因为未来版本可能会通过这个渠道发布关于某人模组的声明;而 npx 会自动拉取最新版本,除非你固定版本。
此外还有三个元工具:一个可在会话中途启用某个平台;一个可打开面板,其中会显示已连接的平台(在支持 MCP Apps 的客户端中显示为页面,在其他客户端中则以文本形式显示连接器列表);还有一个可为 ModWrench 维护者起草反馈,并将其写成 GitHub issue,供你自行阅读和发布(不会发送任何内容)。
57 个工具。56 个只读。1 个会写入内容——参见唯一会写入内容的功能。
它还会注册 八个斜杠命令,供你的 MCP 客户端调用:/modwrench 打开面板,/mw-find 同时搜索所有已连接的平台,/mw-crash 查询游戏崩溃原因(会自行读取最新的崩溃日志),/mw-conflicts 检查游戏的加载顺序,/mw-order 读取加载顺序,/mw-patch 查询游戏更新是否安全,/mw-doctor 查询你的配置是否已就绪,/mw-critique 为维护者起草反馈。这些都是调用上述工具的快捷方式——不会增加工具原本不具备的功能。
使用方法
需要 Node.js 20 或更高版本。
Claude Code
claude mcp add --scope user modwrench -- npx -y @modwrench/cli
VS Code — 打开命令面板(Ctrl+Shift+P),运行 MCP: Add Server,选择
Command (stdio),并输入 npx -y @modwrench/cli。让 VS Code 写入配置是
最可靠的方式,因为它使用的键是 servers,而不是其他客户端使用的 mcpServers。
如果你更愿意手动编辑 mcp.json:
{
"servers": {
"modwrench": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modwrench/cli"]
}
}
}
MCP 工具仅在 Agent 模式下加载,Ask 模式下不会加载——在聊天框中切换模式下拉菜单即可。
Claude Desktop、Cursor、Cline、Continue、Roo Code — 将其添加到客户端的 MCP 配置中。
注意,这里使用的键是 mcpServers,与 VS Code 使用的不同:
{
"mcpServers": {
"modwrench": {
"command": "npx",
"args": ["-y", "@modwrench/cli"]
}
}
}
重启客户端。Thunderstore 和本地 Workbench 工具会立即生效——无需账户或密钥。
不同客户端可用的工具。 上述每种设置都会让你的 AI 客户端在你自己的计算机上启动 ModWrench
程序。这样 Crash Whisperer、Doctors、Patch Day 和加载顺序工具才能读取你的游戏文件夹。
只能通过互联网连接 MCP 服务的客户端(例如在 Web 应用中通过 URL 添加的连接器)无法在你的
计算机上启动程序,因此无法使用这些工具。可选的 HTTP 服务 @modwrench/remote 就是为这种情况
准备的,它仅提供公开的 Thunderstore 工具:不持有任何凭据,也不读取任何文件(TRUST.md
说明了原因)。它必须运行在 Web 应用能够访问的位置:默认监听 127.0.0.1 的 3000 端口,除非
MODWRENCH_REMOTE_HOST 和 MODWRENCH_REMOTE_PORT(或 PORT)另有指定;若运行在隧道或代理
之后,MODWRENCH_ALLOWED_HOSTS 必须列出公开主机名(以逗号分隔),否则所有请求都会被拒绝并返回
"Invalid Host"。浏览器从网页发送的请求会被拒绝并返回 "Invalid Origin",除非网页与服务器位于
同一台计算机,且服务器监听 127.0.0.1、localhost 或 ::1,或者 MODWRENCH_ALLOWED_ORIGINS
准确列出网页的来源(以逗号分隔,例如 https://app.example.com;设置后会替代默认值)。不带来源
的请求(即浏览器以外的程序发送的请求)不受影响。Web 应用的连接器即使是从应用的服务器连接,
也可能会发送应用的来源;据报告,Claude 的自定义连接器会发送 https://claude.ai,有时也会发送
https://claude.ai/,因此对这些连接器,请设置
MODWRENCH_ALLOWED_ORIGINS=https://claude.ai,https://claude.ai/。在其他人也能访问的服务器上,
100 个会话的上限由所有连接者共享(TRUST.md)。
连接 Nexus 和 mod.io
这两项需要凭据:
npx -y @modwrench/cli auth key nexus
npx -y @modwrench/cli auth key modio
每条命令都会提示输入密钥,向平台验证密钥,并将其存储在你的操作系统凭据管理器中。可从 Nexus API 访问 和 mod.io/me/access 获取密钥。
使用 auth status nexus 检查密钥,使用 auth logout nexus 删除密钥。
连接 Nexus 前须知。 Nexus 的API 可接受使用政策允许个人将 API 密钥用于个人用途,但要求公开应用注册自己的客户端 ID。ModWrench 目前还不是已注册的 Nexus 应用,因此连接 Nexus 意味着在第三方工具中使用你的个人密钥——Nexus 可能会限制以这种方式使用的个人密钥。这影响的是你的密钥,而不是 ModWrench。如果你不愿意,可以跳过 Nexus;其他功能都不依赖它。
你的凭据
你的密钥存储在操作系统的凭据管理器中:Windows Credential Manager、macOS Keychain 或 Linux 上的 libsecret。服务只会从那里读取密钥,不会从其他地方读取:凭据加载器中没有 .env 路径、配置文件路径或环境变量路径。如果凭据管理器为空或无法访问,ModWrench 会停止运行并说明原因,而不会尝试从其他地方查找。
密钥会在对应平台激活时读取——启动时读取,或者你在会话中途激活某个平台时读取——并保存在内存中,直到进程退出。跨平台查询 mw_query_mod_metadata 每次调用时都会重新从凭据管理器读取密钥。
只有 auth key 和 auth login 会写入凭据,并将其存入同一个凭据管理器;auth logout 会将其删除。不会有任何操作将其写入文件。
你可以随时在 Nexus 或 mod.io 上撤销或轮换密钥。你无需在本地清理任何内容。
它会连接到什么
ModWrench 会连接到以下所有对象,除此之外不会连接到其他任何对象:
| 主机 | 连接时机 |
|---|---|
api.nexusmods.com | 获取 Nexus 模组数据;在你选择启用时,用于崩溃嫌疑归因——仅当你已连接 Nexus 时 |
users.nexusmods.com | 仅在 auth login nexus 完成 OAuth 登录时 |
api.mod.io | 获取 mod.io 模组数据——仅当你已连接 mod.io 时 |
thunderstore.io | Thunderstore 的公开读取 API;查询 Thunderstore 模组时使用 mw_query_mod_metadata 和 mw_trust_card;以及在你同意后调用 mw_pulse:每个模组发起一次请求,并携带该模组的名称 |
raw.githubusercontent.com | LOOT 的公开主列表,用于冲突和依赖项检查 |
127.0.0.1 | 本地监听器,用于接收 OAuth 重定向;仅在 auth login 期间使用 |
Nexus 在文件 content_preview_link 中指定的任何 CDN 主机 | 仅供 nexus_file_preview 使用——Nexus 通过 API 以外的方式提供存档列表,因此此调用会跟随 Nexus 返回的 URL,而非固定主机。不会随请求发送凭据 |
ModWrench 的输出中可能会出现其他域名——指向模组页面的 www.nexusmods.com 和 mod.io 链接——但它不会访问这些域名。如果你打开链接,访问它们的是你的浏览器。在 Mods 页面上,Open 会要求你的 AI 客户端打开模组页面,具体行为由你的客户端决定。
没有遥测,没有分析,没有账户。我们不会收到任何数据,因为根本没有接收数据的一方——本项目没有运行任何服务。
唯一会写入内容的操作
nexus_endorse_mod 会以你的身份,在你的账户上为 Nexus 模组背书。这是 ModWrench 中唯一会更改任何平台内容的工具。
它不会意外触发。你请求背书后,首先会收到预览——包含模组、版本,以及一条说明:背书会公开显示,并展示你的用户名。**除非你确认,否则不会发起任何网络调用。**只有再次明确确认后,第二次调用才会提交背书。有一项测试会断言,未经确认时不会触及网络。
其他所有操作都只读取数据。
在本地,Workbench 工具以只读方式打开文件。整个软件包中没有任何文件系统写入调用。
面向 Mod 作者
每个基于平台数据生成的输出都会注明你的名字、来源平台,以及指向你的 Mod 页面链接。这涵盖 Nexus、mod.io 和 Thunderstore 上所有搜索、浏览和查询工具。
有一处例外,而这恰恰是对你最重要的地方,所以我们会明确说明,而不是让你自己去发现。崩溃和冲突工具依据文件名工作,而非平台记录。 mw_diagnose_crash 会读取用户本地磁盘上的崩溃日志,并报告其中找到的插件文件名;mw_check_known_conflicts 会报告 LOOT 主列表中的冲突对。ModWrench 本身并不知道某个 .esp 来自哪个平台——要查明这一点,就得在原本不接触网络的诊断流程中进行网络查询。
现在,这个缺口已部分弥补,而且只会在你明确请求时弥补:mw_diagnose_crash 接受一个默认关闭的可选 attributeSuspects 标志,可将最多 五个已命名的疑似 Mod 解析到其 Nexus Mod 页面——包括作者、链接,以及搜索匹配到的名称,以便在将链接作为你的页面展示之前发现名称不匹配。这是按名称搜索,结果可能有误,并且每条返回的归属信息都会注明这一点(matchedBy: "name-search")。此功能需要 gameId 和已存储的 Nexus 凭据;如果缺少其中任何一项,它会说明已跳过归属识别,然后继续执行。mw_check_known_conflicts 仍不会识别作者归属——LOOT 主列表不包含作者页面。
在归属识别关闭(默认状态)、不可用或匹配失败时,崩溃诊断仍可能对你的作品作出负面判断——“这个 Mod 很可能是原因”——却没有指向你的链接。每条发现都附带免责声明,说明这只是根据日志作出的怀疑,并非定论。归属识别缩小了这个缺口,但并未消除它——冲突工具完全没有可用的作者数据,这仍是一个缺口,并已列明。
如果平台提供了作者权限信息,ModWrench 会原样传递,让你能够看到。它不会也无法强制执行这些权限——它是元数据桥梁,而非门禁。它绝不会帮助你删除署名。
点赞工具的存在也出于同样的原因:这是像这样的桥梁回馈创作者的唯一方式,而不是只带走一次页面访问。
状态
早期阶段——尚未达到 1.0 版。它会有 Bug,也并不完美。
源代码是开放的,因此你可以核查此页面上的任何内容,而不必盲目信任。TRUST.md 列出了每项声明,以及供你自行验证的命令。如果你发现有哪项不属实,那就是一个 Bug——提交问题。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。