Deobfuscate MCP Server
An LLM-optimized server for reverse-engineering and navigating minified JavaScript bundles by splitting them into searchable, individual modules. It enables LLMs to analyze code architecture, extract specific symbols, and perform semantic searches while efficiently managing context window usage.
README
Deobfuscate MCP Server
An LLM-Optimized Model Context Protocol (MCP) server designed to help Large Language Models reverse-engineer, navigate, and understand minified and bundled JavaScript code.
Why this Server?
Standard "beautifiers" only format code, leaving LLMs to struggle with massive, linear text files that overflow context windows. This server treats minified code as a searchable database, allowing LLMs to:
- De-obfuscate & Unbundle: Uses
webcrackto split Webpack/Browserify bundles into individual modules. - See the Architecture: Returns a JSON summary of the file's structure (exports, functions) before reading the code.
- Navigate Randomly: Read specific modules on-demand (
get_module) instead of the whole file. - Search Semantically: Find where specific strings or patterns exist across thousands of unbundled modules.
Features
deobfuscate: The entry point. Unpacks bundles and caches them in memory.returnCode(defaultfalse): Returns a summary by default to save context. Set totrueto see the full code.skipVendor: Filter outnode_modulesand webpack boilerplate to focus on app code.mangle: Shorten variable names to save tokens.jsx: Restore React JSX syntax.
analyze_structure: Returns a high-level AST summary (functions, classes, exports) to save tokens.list_modules: Lists all modules found in the unpacked bundle.list_functions: Scans cached modules to list defined functions/classes with signatures and parameters.get_call_graph: Generates a call graph for a specific function, identifying what it calls and what calls it.get_module: Fetches the formatted source code of a single module.get_symbol_source: Extracts only a specific function, class, or variable to save tokens.search_modules: Regex/String search across all modules.format_code: Standard Prettier formatting for JS/HTML/CSS.get_help: Returns detailed documentation for any tool.
Installation & Setup
Install from npm (Recommended)
npm install -g deobfuscate-mcp-server
Build from source
git clone https://github.com/ricardodeazambuja/deobfuscate-mcp-server.git
cd deobfuscate-mcp-server
npm install
npm run build
Pack and Install (Optional)
To create a distributable tarball and install it globally:
npm pack
npm install -g ./deobfuscate-mcp-server-1.0.0.tgz
Client Configuration
To use this server with your favorite LLM client, add the following configuration.
Claude Code
Run the following command in your terminal:
claude mcp add deobfuscate-mcp-server -- npx -y deobfuscate-mcp-server
Alternatively, edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"deobfuscate-mcp-server": {
"command": "npx",
"args": ["-y", "deobfuscate-mcp-server"]
}
}
}
Gemini CLI
Run the following command in your terminal:
gemini mcp add deobfuscate-mcp-server npx -y deobfuscate-mcp-server
Alternatively, edit ~/.gemini/settings.json:
{
"mcpServers": {
"deobfuscate-mcp-server": {
"command": "npx",
"args": ["-y", "deobfuscate-mcp-server"]
}
}
}
Antigravity
Run the following command in your terminal:
antigravity --add-mcp '{"deobfuscate-mcp-server": {"command": "npx", "args": ["-y", "deobfuscate-mcp-server"]}}'
Alternatively, edit ~/.antigravity/settings.json:
{
"mcpServers": {
"deobfuscate-mcp-server": {
"command": "npx",
"args": ["-y", "deobfuscate-mcp-server"]
}
}
}
Development / Local Usage
If you are running the server from the source code, replace the command with:
"command": "node",
"args": ["ABSOLUTE_PATH_TO_DIST/index.js"]
(Replace ABSOLUTE_PATH_TO_DIST with the actual absolute path to the dist folder on your machine)
Usage
Start the server:
node dist/index.js
Example Workflow for an LLM
- User: "Analyze this minified file:
bundle.min.js..." - LLM: Calls
deobfuscate(code="...", skipVendor=true).- Server: "Deobfuscation complete. Unbundled 15 modules. Skipped 45 vendor modules..."
- LLM: "Okay, I see the entry point requires module 42. What is that?"
- LLM: Calls
get_module(id="42").- Server: Returns code for module 42.
- LLM: "Where is the 'login' function defined?"
- LLM: Calls
search_modules(query="function login").- Server: "Found in module 88."
- LLM: "I just want to see the login function logic."
- LLM: Calls
get_symbol_source(symbolName="login", moduleId="88").- Server: Returns only the source for the 'login' function.
Development
- Build:
npm run build - Test:
npm test
Limits
- File Size: The server accepts input files (bundles) up to 50MB.
- Memory: Unbundled modules are cached in RAM. Very large bundles (hundreds of MBs unpacked) may exhaust the server's available memory depending on your environment.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.