Ilspy
FreeNot checkedPython-based MCP server wrapping ILSpy CLI, exposing all decompilation features as JSON-RPC tools. Fully automates .NET assembly decompilation, IL extraction, p
About
Python-based MCP server wrapping ILSpy CLI, exposing all decompilation features as JSON-RPC tools. Fully automates .NET assembly decompilation, IL extraction, project export, type/method analysis, and reference resolution — designed for AI integration, automation pipelines, and advanced reverse engineering.
README
A production-grade MCP server that exposes all major ILSpy CLI features as separate tools for decompiling .NET assemblies.
Features
- 10 MCP Tools: Decompile, export projects, extract IL, list types/methods, resolve references, and more
- Workflow Orchestration: Automated end-to-end processing of .NET assemblies
- Structured Output: JSON reports with metadata, types, methods, and logs
- Forward Compatible: Raw ilspycmd tool for unsupported features
- Cross-Platform: Works on Windows, Linux, and macOS
Prerequisites
- Python 3.10+
- ILSpy CLI (ilspycmd) installed and available in PATH
- Download from: https://github.com/icsharpcode/ILSpy/releases
- Or install via:
dotnet tool install -g ilspycmd
Installation
pip install -r requirements.txt
Usage
Option 1: MCP Server Mode
Start the MCP server and use it with any MCP-compatible client:
python server.py
The server communicates via stdio using JSON-RPC. Configure it in your MCP client using config.json.
Option 2: Direct Orchestrator Usage
Process assemblies directly using the orchestrator:
# Single assembly
python orchestrator.py assembly.dll
# Multiple assemblies
python orchestrator.py assembly1.dll assembly2.dll assembly3.exe
# With options
python orchestrator.py assembly.dll --langver:11 --nullable --no-records
Option 3: Python API
Use the orchestrator programmatically:
from orchestrator import process_assemblies, save_report
from pathlib import Path
report = process_assemblies(
["assembly.dll"],
language_version="11",
nullable_enabled=True,
handle_records=True,
)
save_report(report, Path("work/report.json"))
Tools
decompile_file - Decompile assembly to C# files
- Supports:
--langver,--nullable,--with-records, etc.
- Supports:
export_project - Export compilable C# project
- Includes: References, metadata, project files
get_il - Extract IL code
- View intermediate language instead of decompiled C#
list_types - List all types in assembly
- Returns: Namespace-qualified type names
list_methods - List methods for a type
- Input: Full type name (e.g.,
Namespace.ClassName)
- Input: Full type name (e.g.,
resolve_references - Analyze external references
- Extracts: Package references, assembly references
set_language_version - Control C# language version
- Versions: 9, 10, 11, 12, etc.
enable_nullable_context - Enable/disable nullable reference types
- Options:
trueorfalse
- Options:
handle_records_init_only - Handle record types properly
- Ensures: Records and init-only setters decompile correctly
raw_ilspycmd - Run arbitrary ilspycmd commands
- Forward-compatible with all future ILSpy features
Output Structure
work/
input/ # Input assemblies (optional)
output/
decompile/ # Decompiled C# files
<assembly>/
*.cs files
project/ # Exported projects
<assembly>/
*.csproj
*.cs files
il/ # IL code output
<assembly>/
*.il files
report.json # Final structured JSON report
JSON Report Format
The orchestrator generates a structured JSON report:
{
"assemblies": [
{
"assembly": "example.dll",
"status": "success",
"paths": {
"decompiled": "work/output/decompile/example/",
"project": "work/output/project/example/",
"il": "work/output/il/example/"
},
"types": [
{
"name": "Namespace.MyClass",
"methods": ["Main", "DoSomething"],
"il_size": {"Main": 123, "DoSomething": 42}
}
],
"references": ["System", "System.Linq"],
"flags_used": ["--langver:11", "--nullable"],
"logs": {
"stdout": "...",
"stderr": "..."
}
}
]
}
Workflow
The orchestrator follows this workflow for each assembly:
- Decompile → Generate C# source files
- Export Project → Create compilable project with references
- Extract IL → Get intermediate language code
- List Types → Discover all types in assembly
- List Methods → For each type, extract methods
- Resolve References → Analyze dependencies
- Apply Settings → Language version, nullable context, records
- Generate Report → Collect all metadata into JSON
Error Handling
- All tools return structured JSON with
returncode,stdout, andstderr - Failed operations are marked with
status: "error"in the report - Full error logs are included in the report for debugging
- Tools are idempotent - safe to run multiple times
Examples
See example_usage.py for complete examples of:
- Processing single assemblies
- Processing multiple assemblies
- Using different language versions
- Enabling/disabling nullable context
- Custom flags and options
License
This project wraps ILSpy CLI. Please refer to ILSpy's license for usage terms.
Installing Ilspy
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/BROKENISTXD/ilspy-mcp-serverFAQ
Is Ilspy MCP free?
Yes, Ilspy MCP is free — one-click install via Unyly at no cost.
Does Ilspy need an API key?
No, Ilspy runs without API keys or environment variables.
Is Ilspy hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Ilspy in Claude Desktop, Claude Code or Cursor?
Open Ilspy on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Ilspy with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
