mcp-dotnet
Versión en ruso abajo / Russian version below
Un pequeño servidor de Model Context Protocol (MCP) que permite a un LLM leer ensamblados de .NET como C#. Es un envoltorio ligero sobre la CLI oficial de ILSpy (ilspycmd), expuesto a través de stdio para que cualquier cliente compatible con MCP pueda listar tipos, descompilar una clase individual, descompilar todo el ensamblado en un árbol de proyecto o realizar búsquedas (grep) en el código fuente descompilado.
Por qué existe esto
Los LLM son buenos leyendo código fuente, no bytecode IL sin procesar. ILSpy ya convierte CIL en C# fiel, pero invocarlo desde un agente de chat es incómodo: terminas ejecutando ilspycmd manualmente y pegando la salida de vuelta en la conversación. Este servidor formaliza ese ciclo:
list-typesprimero, para que el modelo sepa qué tipo mirar sin volcar un megabyte de descompilación en el contexto.decompile-typepara lecturas dirigidas: una clase totalmente cualificada a la vez.decompile-assemblycuando el modelo realmente quiere todo el árbol del proyecto, por ejemplo, antes de ejecutar una búsqueda en todo el proyecto.search-sourcedescompila una vez, almacena la salida en caché y realiza una búsqueda (grep) en todos los archivos.csresultantes. Las búsquedas posteriores reutilizan el árbol en caché.
El ensamblado de destino nunca se ejecuta. Todo es estático.
También maneja el caso moderno común de despliegues de archivo único de .NET 6/7/8: apunta path al .exe publicado y ILSpy 10+ resuelve el ensamblado central incrustado automáticamente.
Related MCP server: sharplens-mcp
Herramientas
Herramienta | Qué hace |
| Lista los tipos declarados en un ensamblado. Filtro |
| Descompila un tipo totalmente cualificado a C#. IL opcional añadido mediante |
| Descompila a una carpeta de archivos |
| Descompila (una vez, en caché) y busca mediante regex en el árbol C#; devuelve archivo/línea/fragmento. |
Instalación
# 1. ILSpy CLI (one-time, requires .NET SDK 6+)
dotnet tool install --global ilspycmd
# 2. This server
git clone https://github.com/beekamai/mcp-dotnet.git
cd mcp-dotnet
npm install
npm run buildSi ilspycmd no está en el PATH, establece la variable de entorno ILSPYCMD con su ruta absoluta. El servidor también detecta automáticamente la ubicación predeterminada %USERPROFILE%\.dotnet\tools\ilspycmd.exe en Windows y ~/.dotnet/tools/ilspycmd en POSIX.
Conéctalo a cualquier cliente compatible con MCP a través de stdio:
your-mcp-client mcp add dotnet --scope user -- node /absolute/path/to/mcp-dotnet/dist/index.jsNotas
Todas las herramientas aceptan rutas absolutas. Las diferencias en el directorio de trabajo entre el cliente MCP y este servidor son comunes, por lo que el servidor se niega a adivinar.
decompile-assemblyy la primera ejecución desearch-sourceen un ensamblado nuevo pueden tardar desde decenas de segundos hasta varios minutos dependiendo del tamaño; el tiempo de espera es de 10 minutos.search-sourcealmacena en caché el árbol descompilado en<assemblyDir>/.mcp-dotnet-<assemblyName>/por defecto. Pasa unoutDirexplícito para controlar la ubicación, o elimina la caché para forzar una nueva descompilación.El servidor ejecuta
ilspycmdcomo un proceso hijo y nunca expone su stdin. Ningún código del ensamblado de destino se ejecuta en ningún momento.
Licencia
MIT.
mcp-dotnet (RU)
Небольшой MCP-сервер, который даёт языковой модели возможность читать
.NET-сборки как C#-исходники. Это тонкая обёртка над официальной
консольной утилитой ILSpy (ilspycmd) поверх stdio: модель может получить
список типов, декомпилировать один класс, развернуть всю сборку в дерево
.cs-файлов или прогнать regex по исходнику.
Зачем это нужно
LLM хорошо читают исходный код и плохо — IL. ILSpy и так умеет превращать
CIL в адекватный C#, но дёргать ilspycmd руками из чата неудобно — каждый
раз shell-out и копипаст в контекст. Этот сервер формализует цикл:
Сначала
list-types, чтобы модель не тащила мегабайты декомпила в контекст ради того, чтобы выяснить какой класс ей нужен.decompile-type— точечно один полностью-квалифицированный тип.decompile-assembly— когда нужен весь проектный tree (например, чтобы потом сделать project-wide grep).search-source— декомпилирует один раз, кэширует результат и ищет regex по всем.cs. Повторные поиски используют кэш.
Целевую сборку никто не запускает. Всё статично.
Сервер также корректно работает с single-file deployment .NET 6/7/8 —
указываешь path на опубликованный .exe, ILSpy 10+ сам находит
встроенный основной assembly.
Тулы
Тул | Что делает |
| Список типов сборки. Опциональный фильтр |
| Декомпиляция одного типа в C#. С опциональным IL через |
| Развёртывает сборку в папку |
| Один раз декомпилирует (с кэшем), потом regex-grep по |
Установка
# 1. ILSpy CLI (один раз, нужен .NET SDK 6+)
dotnet tool install --global ilspycmd
# 2. Сам сервер
git clone https://github.com/beekamai/mcp-dotnet.git
cd mcp-dotnet
npm install
npm run buildЕсли ilspycmd не попал в PATH — выставь переменную окружения ILSPYCMD
с абсолютным путём. Сервер также автоматически находит дефолтные пути:
%USERPROFILE%\.dotnet\tools\ilspycmd.exe на Windows и
~/.dotnet/tools/ilspycmd на POSIX.
Подключение к MCP-клиенту через stdio:
your-mcp-client mcp add dotnet --scope user -- node /абсолютный/путь/к/mcp-dotnet/dist/index.jsЗаметки
Все тулы принимают абсолютные пути. Рабочая директория MCP-клиента и сервера часто различаются, поэтому сервер ничего не угадывает.
decompile-assemblyи первыйsearch-sourceна свежей сборке могут занимать от десятков секунд до нескольких минут — таймаут 10 минут.search-sourceкэширует декомпилированное дерево в<dir-сборки>/.mcp-dotnet-<имя-сборки>/. Если хочется в другое место — передайoutDirявно. Удаление каталога заставит декомпилировать заново.ilspycmdзапускается дочерним процессом, его stdin не пробрасывается. Код целевой сборки нигде не исполняется.
Лицензия
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/beekamai/mcp-dotnet'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
