MCP (Model Context Protocol) wrapper for JPEXS Free Flash Decompiler (FFDec) - expose SWF decompilation and analysis tools to AI assistants like Claude.
Decompile all ActionScript code from a SWF file to organized directory structure.
Parameters:
swf_path(required): Absolute path to SWF fileoutput_dir(required): Directory for decompiled scriptstimeout(optional): Timeout in seconds (default: 60)
Extract specific ActionScript classes by name (AS3 only). Faster than full decompilation when you only need specific classes.
Parameters:
swf_path(required): Absolute path to SWF fileclass_names(required): List of class names (e.g.,['com.example.Main'])output_dir(required): Directory for extracted classestimeout(optional): Timeout in seconds (default: 60)
List all ActionScript classes and symbols in a SWF file. Great for exploring a SWF before full decompilation.
Parameters:
swf_path(required): Absolute path to SWF file
Returns: Structured JSON with packages, classes, and total count
Extract images, sounds, fonts, shapes, movie clips, and binary data from SWF.
Parameters:
swf_path(required): Absolute path to SWF fileoutput_dir(required): Directory for extracted assetsasset_types(optional): Types to extract -image,sound,font,shape,movie,binaryData,all(default:["all"])timeout(optional): Timeout in seconds (default: 60)
Extract SWF header information (dimensions, frame rate, compression, etc.). Fast and doesn't require decompilation.
Parameters:
swf_path(required): Absolute path to SWF file
Returns: JSON with version, width, height, frame_rate, frame_count, compression
Run FFDec's deobfuscation algorithms to remove obfuscation and anti-decompilation tricks.
Parameters:
swf_path(required): Absolute path to obfuscated SWFoutput_path(required): Path for deobfuscated SWFlevel(optional): Deobfuscation level -traps,deadcode,max(default:max)timeout(optional): Timeout in seconds (default: 60)
Prerequisites: Python 3.10+ and Java (for running the FFDec JAR).
claude mcp add ffdecmcp -- uvx ffdecmcpThat's it. On first run, FFDec will be auto-downloaded if not already installed.
Add to your config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"ffdecmcp": {
"command": "uvx",
"args": ["ffdecmcp"]
}
}
}# Just run it - FFDec will be auto-downloaded to ~/.ffdecmcp/ if needed
uvx ffdecmcp
# Or point to an existing FFDec installation
uvx ffdecmcp --ffdec-path /path/to/ffdec.jarNo installation is required when using uvx. For a permanent install:
uv pip install ffdecmcp
# or
pip install ffdecmcpFFDec is automatically downloaded on first run if not found. You can also install it manually.
The server finds FFDec in this order:
--ffdec-pathCLI arg /FFDEC_PATHenv var- Previously auto-downloaded JAR (
~/.ffdecmcp/ffdec.jar) - Common install locations and PATH
- Auto-download from GitHub
ffdecmcp [--ffdec-path PATH] [--timeout SECONDS]
| Option | Env Var | Description |
|---|---|---|
--ffdec-path |
FFDEC_PATH |
Path to FFDec (JAR, native binary, or WSL path) |
--timeout |
FFDEC_TIMEOUT |
Default timeout in seconds (default: 60) |
CLI arguments take precedence over environment variables.
git clone https://github.com/sublimnl/ffdecmcp.git
cd ffdecmcp
uv pip install -e ".[dev]"You: Can you analyze this SWF file for me?
Path: C:\Users\foo\game.swf
Claude will:
1. Use get_swf_metadata to check dimensions, version, etc.
2. Use list_symbols to see what classes are present
3. Use decompile_swf to extract all ActionScript code
4. Analyze the decompiled code and provide insights
- FFDec: https://github.com/jindrapetrik/jpexs-decompiler
- FFDec CLI Docs: https://github.com/jindrapetrik/jpexs-decompiler/wiki/Commandline-arguments
- Model Context Protocol: https://modelcontextprotocol.io
- FastMCP: https://github.com/jlowin/fastmcp
MIT License - see LICENSE file for details
Contributions welcome! Please open an issue or PR on GitHub.