卸载MCP服务器
一 LLM优化 模型上下文协议(MCP)服务器,旨在帮助大型语言模型进行逆向工程、导航和理解压缩和捆绑的JavaScript代码。
为什么是这个服务器?
标准的“美化者”只格式化代码,使LLM难以处理溢出上下文窗口的大量线性文本文件。此服务器将压缩代码视为 检索数据库,允许LLM:
- 去混淆和解开:用途
webcrack将Webpack/Browserify捆绑包拆分为单独的模块。 - 查看架构:在读取代码之前,返回文件结构(导出、函数)的JSON摘要。
- 随机导航:按需阅读特定模块(
get_module)而不是整个文件。 - 语义搜索:查找数千个非捆绑模块中存在特定字符串或模式的位置。
特性
deobfuscate:入口点。打开包并将其缓存在内存中。
- returnCode (默认值 false):默认情况下返回摘要以保存上下文。设置为 true 查看完整代码。 - skipVendor:过滤掉 node_modules 以及webpack样板,专注于应用程序代码。 - mangle:缩短变量名以保存令牌。 - jsx:恢复react JSX语法。
analyze_structure:返回高级AST摘要(函数、类、导出)以保存令牌。list_modules:列出解包包中找到的所有模块。list_functions:扫描缓存的模块,列出具有签名和参数的已定义函数/类。get_call_graph:为特定函数生成调用图,标识它调用的内容和调用它的内容。get_module:获取单个模块的格式化源代码。get_symbol_source:仅提取特定函数、类或变量以保存标记。search_modules:在所有模块中搜索正则表达式/字符串。format_code:JS/HTML/CSS的标准预处理格式。get_help:返回任何工具的详细文档。
安装和设置
从npm安装(推荐)
npm install -g deobfuscate-mcp-server从源代码构建
git clone https://github.com/ricardodeazambuja/deobfuscate-mcp-server.git
cd deobfuscate-mcp-server
npm install
npm run build打包并安装(可选)
要创建一个可分发的tarball并全局安装,请执行以下操作:
npm pack
npm install -g ./deobfuscate-mcp-server-1.0.0.tgz客户端配置
要将此服务器与您最喜欢的LLM客户端一起使用,请添加以下配置。
克劳德代码
在终端中运行以下命令:
claude mcp add deobfuscate-mcp-server -- npx -y deobfuscate-mcp-server或者,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"deobfuscate-mcp-server": {
"command": "npx",
"args": ["-y", "deobfuscate-mcp-server"]
}
}
}Gemini CLI
在终端中运行以下命令:
gemini mcp add deobfuscate-mcp-server npx -y deobfuscate-mcp-server或者,编辑 ~/.gemini/settings.json:
{
"mcpServers": {
"deobfuscate-mcp-server": {
"command": "npx",
"args": ["-y", "deobfuscate-mcp-server"]
}
}
}反重力
在终端中运行以下命令:
antigravity --add-mcp '{"deobfuscate-mcp-server": {"command": "npx", "args": ["-y", "deobfuscate-mcp-server"]}}'或者,编辑 ~/.antigravity/settings.json:
{
"mcpServers": {
"deobfuscate-mcp-server": {
"command": "npx",
"args": ["-y", "deobfuscate-mcp-server"]
}
}
}开发/本地使用
如果从源代码运行服务器,请将该命令替换为:
"command": "node",
"args": ["ABSOLUTE_PATH_TO_DIST/index.js"]*(替换 ABSOLUTE_PATH_TO_DIST 实际绝对路径为 dist 您计算机上的文件夹)*
用法
启动服务器:
node dist/index.jsLLM工作流示例
- 用户:“分析此压缩文件:
bundle.min.js..." - LLM:通话
deobfuscate(code="...", skipVendor=true).
- *服务器*:“脱毒完成。未绑定15个模块。跳过45个供应商模块…”
- LLM:“好的,我看到入口点需要模块42。那是什么?"
- LLM:通话
get_module(id="42").
- *服务器*:返回模块42的代码。
- LLM“‘登录’功能在哪里定义?”
- LLM:通话
search_modules(query="function login").
- *服务器*:“在模块88中找到。”
- LLM:“我只是想看看登录功能逻辑。”
- LLM:通话
get_symbol_source(symbolName="login", moduleId="88").
- *服务器*:仅返回'login'函数的源代码。
发展
- 构建:
npm run build - 测试:
npm test
限制
- 文件大小:服务器最多接受输入文件(捆绑包) 50MB.
- 记忆:未捆绑的模块缓存在RAM中。根据您的环境,非常大的捆绑包(未捆绑的数百MB)可能会耗尽服务器的可用内存。
