Changelog
All notable changes to mcilspy are documented here. This project follows Keep a Changelog conventions.
0.5.0 2026-02-11
Section titled “0.5.0 ”- Output truncation guard — new
max_output_charsparameter ondecompile_assembly(default 100,000 characters). When decompiled output exceeds the limit, the full text is saved to a temp file and the tool returns a truncated preview with the file path. Set to0to disable truncation. - Method-level decompilation — new
decompile_methodtool extracts a single method from a type by name. Supports both C# and IL output, handles overloads, and works via post-processing of ilspycmd’s type-level output. - Tool count increased from 15 to 16.
0.4.0 2026-02-11
Section titled “0.4.0 ”- PDB generation —
generate_pdbflag ondecompile_assemblyproduces a portable PDB file alongside the decompiled source. - PDB variable names —
use_pdb_variable_namesflag recovers original variable names from an existing PDB when decompiling. - dump_package tool — extract all assemblies from a NuGet package folder into a target directory for bulk analysis.
- Achieved 100% coverage of ilspycmd CLI flags.
- Tool count increased from 14 to 15.
0.3.0 2026-02-10
Section titled “0.3.0 ”- Type parsing regex now correctly handles generic types with nested angle brackets.
- UserStringHeap reading fixed for assemblies with large string tables.
- Decompile-to-stdout path no longer creates unnecessary temp directories.
Changed
Section titled “Changed”- Merged review fixes from taskmaster audit.
- Test suite expanded to 165 tests passing.
0.2.0 2026-02-07
Section titled “0.2.0 ”Security
Section titled “Security”- Fixed shell injection vulnerability — switched from
asyncio.create_subprocess_shelltoasyncio.create_subprocess_exec. Assembly paths are no longer passed through a shell interpreter.
- 5-minute subprocess timeout prevents runaway decompilation on corrupted or adversarial assemblies.
- pytest test suite with 35 tests covering all tools and error paths.
- PATH auto-discovery for ilspycmd (checks
~/.dotnet/toolswhen not in PATH). importlib.metadataversioning — version is derived from the installed package metadata.- Standardized error message format across all tools.
- FastMCP lifespan pattern for clean startup/shutdown.
0.1.1 2026-02-06
Section titled “0.1.1 ”- dnfile-based metadata tools — 6 new tools (
search_methods,search_fields,search_properties,list_events,list_resources,get_metadata_summary) that parse PE metadata directly without ilspycmd. - Platform-aware installation detection and instructions.
- Improved README with tool matrix and usage examples.
0.1.0 2026-02-05
Section titled “0.1.0 ”- Initial release with 4 core tools:
decompile_assembly,list_types,generate_diagrammer,get_assembly_info. - ILSpyWrapper async subprocess management.
- Pydantic request/response models.
- MCP prompts for guided analysis workflows.