Ilspy
БесплатноНе проверенPython-based MCP server wrapping ILSpy CLI, exposing all decompilation features as JSON-RPC tools. Fully automates .NET assembly decompilation, IL extraction, p
Описание
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.
Установка Ilspy
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/BROKENISTXD/ilspy-mcp-serverFAQ
Ilspy MCP бесплатный?
Да, Ilspy MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Ilspy?
Нет, Ilspy работает без API-ключей и переменных окружения.
Ilspy — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Ilspy в Claude Desktop, Claude Code или Cursor?
Открой Ilspy на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: 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
автор: xuzexin-hzCompare Ilspy with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
