VOOZH about

URL: https://glama.ai/mcp/servers/beekamai/mcp-dotnet?locale=es-ES

⇱ mcp-dotnet by beekamai | Glama


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-types primero, para que el modelo sepa qué tipo mirar sin volcar un megabyte de descompilación en el contexto.

  • decompile-type para lecturas dirigidas: una clase totalmente cualificada a la vez.

  • decompile-assembly cuando el modelo realmente quiere todo el árbol del proyecto, por ejemplo, antes de ejecutar una búsqueda en todo el proyecto.

  • search-source descompila una vez, almacena la salida en caché y realiza una búsqueda (grep) en todos los archivos .cs resultantes. 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

list-types

Lista los tipos declarados en un ensamblado. Filtro kinds opcional (c/i/s/d/e).

decompile-type

Descompila un tipo totalmente cualificado a C#. IL opcional añadido mediante includeIl.

decompile-assembly

Descompila a una carpeta de archivos .cs (un proyecto compilable).

search-source

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 build

Si 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.js

Notas

  • 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-assembly y la primera ejecución de search-source en 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-source almacena en caché el árbol descompilado en <assemblyDir>/.mcp-dotnet-<assemblyName>/ por defecto. Pasa un outDir explícito para controlar la ubicación, o elimina la caché para forzar una nueva descompilación.

  • El servidor ejecuta ilspycmd como 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.

Тулы

Тул

Что делает

list-types

Список типов сборки. Опциональный фильтр kinds (c/i/s/d/e).

decompile-type

Декомпиляция одного типа в C#. С опциональным IL через includeIl.

decompile-assembly

Развёртывает сборку в папку .cs-файлов (компилируемый проект).

search-source

Один раз декомпилирует (с кэшем), потом regex-grep по .cs — возвращает file/line/snippet.

Установка

# 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.

A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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