Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Ilspy

FreeNot checked

Python-based MCP server wrapping ILSpy CLI, exposing all decompilation features as JSON-RPC tools. Fully automates .NET assembly decompilation, IL extraction, p

GitHubEmbed

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

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

  1. decompile_file - Decompile assembly to C# files

    • Supports: --langver, --nullable, --with-records, etc.
  2. export_project - Export compilable C# project

    • Includes: References, metadata, project files
  3. get_il - Extract IL code

    • View intermediate language instead of decompiled C#
  4. list_types - List all types in assembly

    • Returns: Namespace-qualified type names
  5. list_methods - List methods for a type

    • Input: Full type name (e.g., Namespace.ClassName)
  6. resolve_references - Analyze external references

    • Extracts: Package references, assembly references
  7. set_language_version - Control C# language version

    • Versions: 9, 10, 11, 12, etc.
  8. enable_nullable_context - Enable/disable nullable reference types

    • Options: true or false
  9. handle_records_init_only - Handle record types properly

    • Ensures: Records and init-only setters decompile correctly
  10. 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:

  1. Decompile → Generate C# source files
  2. Export Project → Create compilable project with references
  3. Extract IL → Get intermediate language code
  4. List Types → Discover all types in assembly
  5. List Methods → For each type, extract methods
  6. Resolve References → Analyze dependencies
  7. Apply Settings → Language version, nullable context, records
  8. Generate Report → Collect all metadata into JSON

Error Handling

  • All tools return structured JSON with returncode, stdout, and stderr
  • 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.

from github.com/BROKENISTXD/ilspy-mcp-server

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-server

FAQ

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

Compare Ilspy with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs