About Ilspy MCP Server
Ilspy MCP Server is an MCP server published by Borealin in the Developer Tools category: 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.
The repository has 4 stars and 2 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/Borealin/ilspy-mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Ilspy MCP Server
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
ILSpy MCP Server
A Model Context Protocol (MCP) server that provides .NET assembly decompilation capabilities using ILSpy.
Features
- Decompile Assemblies: Convert .NET assemblies back to readable C# source code
- List Types: Enumerate classes, interfaces, structs, delegates, and enums in assemblies
- Generate Diagrammer: Create interactive HTML visualizations of assembly structure
- Assembly Information: Get metadata about .NET assemblies
Prerequisites
-
ILSpy Command Line Tool: Install the global dotnet tool:
dotnet tool install --global ilspycmd -
Python 3.8+: Required for running the MCP server
Installation
Install from PyPI:
pip install ilspy-mcp-server
Or for development:
git clone https://github.com/Borealin/ilspy-mcp-server.git
cd ilspy-mcp-server
pip install -e .
Usage
MCP Client Configuration
Configure your MCP client (e.g., Claude Desktop) to use the server:
{
"mcpServers": {
"ilspy": {
"command": "python",
"args": ["-m", "ilspy_mcp_server.server"]
}
}
}
Available Tools
1. decompile_assembly
Decompile a .NET assembly to C# source code.
Parameters:
assembly_path(required): Path to the .NET assembly fileoutput_dir(optional): Output directory for decompiled filestype_name(optional): Specific type to decompilelanguage_version(optional): C# language version (default: "Latest")create_project(optional): Create a compilable project structureshow_il_code(optional): Show IL code instead of C#remove_dead_code(optional): Remove dead code during decompilationnested_directories(optional): Use nested directories for namespaces
Example:
{
"name": "decompile_assembly",
"arguments": {
"assembly_path": "/path/to/MyAssembly.dll",
"type_name": "MyNamespace.MyClass",
"language_version": "CSharp10_0"
}
}
2. list_types
List types in a .NET assembly.
Parameters:
assembly_path(required): Path to the .NET assembly fileentity_types(optional): Array of entity types to list ("c", "i", "s", "d", "e")
Example:
{
"name": "list_types",
"arguments": {
"assembly_path": "/path/to/MyAssembly.dll",
"entity_types": ["c", "i"]
}
}
3. generate_diagrammer
Generate an interactive HTML diagrammer.
Parameters:
assembly_path(required): Path to the .NET assembly fileoutput_dir(optional): Output directory for the diagrammerinclude_pattern(optional): Regex pattern for types to includeexclude_pattern(optional): Regex pattern for types to exclude
4. get_assembly_info
Get basic information about an assembly.
Parameters:
assembly_path(required): Path to the .NET assembly file
Available Prompts
1. analyze_assembly
Analyze a .NET assembly and provide insights about its structure.
2. decompile_and_explain
Decompile a specific type and provide explanation of its functionality.
Supported Assembly Types
- .NET Framework assemblies (.dll, .exe)
- .NET Core/.NET 5+ assemblies
- Portable Executable (PE) files with .NET metadata
Supported C# Language Versions
- CSharp1 through CSharp12_0
- Preview
- Latest (default)
Quick Start
-
Install the package:
pip install ilspy-mcp-server -
Configure your MCP client (Claude Desktop example):
{ "mcpServers": { "ilspy": { "command": "python", "args": ["-m", "ilspy_mcp_server.server"] } } } -
Use the tools in your MCP client:
- Ask to decompile a .NET assembly
- List types in an assembly
- Generate interactive diagrams
- Get assembly information
Error Handling
The server provides detailed error messages for common issues:
- Assembly file not found
- Invalid assembly format
- ILSpyCmd not installed or not in PATH
- Permission issues
- Decompilation failures
Configuration
Environment Variables
LOGLEVEL: Set logging level (DEBUG, INFO, WARNING, ERROR). Default: INFO
MCP Client Examples
Claude Desktop (config.json):
{
"mcpServers": {
"ilspy": {
"command": "python",
"args": ["-m", "ilspy_mcp_server.server"],
"env": {
"LOGLEVEL": "INFO"
}
}
}
}
Development/Testing:
{
"mcpServers": {
"ilspy": {
"command": "python",
"args": ["-m", "ilspy_mcp_server.server"],
"env": {
"LOGLEVEL": "DEBUG"
}
}
}
}
Troubleshooting
Common Issues
-
"ILSpyCmd not found":
dotnet tool install --global ilspycmd -
"Assembly file not found":
- Check the file path is correct
- Ensure the file has .dll or .exe extension
-
Permission errors:
- Ensure read access to assembly files
- Check output directory permissions
Debug Mode
Enable debug logging to see detailed operation info:
{
"env": {
"LOGLEVEL": "DEBUG"
}
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built on top of the excellent ILSpy decompiler
- Uses the Model Context Protocol for integration
README fetched from the repository 7 days ago. The original is authoritative.