VOOZH about

URL: https://glama.ai/mcp/servers/beekamai/mcp-dotnet?locale=ko-KR

⇱ mcp-dotnet by beekamai | Glama


mcp-dotnet

러시아어 버전은 아래에 있습니다 / Russian version below

LLM이 .NET 어셈블리를 C#으로 읽을 수 있게 해주는 소규모 MCP(Model Context Protocol) 서버입니다. 공식 ILSpy CLI(ilspycmd)를 stdio를 통해 노출하는 얇은 래퍼로, MCP 호환 클라이언트가 타입을 나열하거나, 단일 클래스를 디컴파일하거나, 전체 어셈블리를 프로젝트 트리로 디컴파일하거나, 디컴파일된 소스 전체에서 grep 검색을 수행할 수 있게 합니다.

왜 필요한가요?

LLM은 원시 IL 바이트코드가 아닌 소스 코드를 읽는 데 능숙합니다. ILSpy는 이미 CIL을 충실한 C#으로 변환하지만, 채팅 에이전트에서 이를 호출하는 것은 번거롭습니다. 매번 수동으로 ilspycmd를 실행하고 결과를 대화창에 붙여넣어야 하기 때문입니다. 이 서버는 해당 루프를 다음과 같이 공식화합니다:

  • list-types: 모델이 컨텍스트에 수 메가바이트의 디컴파일 결과를 덤프하지 않고도 어떤 타입을 살펴봐야 할지 알 수 있도록 먼저 타입을 나열합니다.

  • decompile-type: 정규화된 클래스 하나씩을 대상으로 읽기 위한 용도입니다.

  • decompile-assembly: 모델이 프로젝트 전체 grep을 실행하기 전처럼 전체 프로젝트 트리가 필요할 때 사용합니다.

  • search-source: 한 번 디컴파일하고 결과를 캐싱한 뒤, 생성된 모든 .cs 파일에 대해 grep을 수행합니다. 이후 검색은 캐시된 트리를 재사용합니다.

대상 어셈블리는 절대 실행되지 않습니다. 모든 것은 정적입니다.

또한 현대적인 .NET 6/7/8 단일 파일 배포(single-file deployment) 사례도 처리합니다. path를 게시된 .exe로 지정하면 ILSpy 10+가 자동으로 포함된 코어 어셈블리를 확인합니다.

Related MCP server: sharplens-mcp

도구

도구

기능

list-types

어셈블리에 선언된 타입을 나열합니다. 선택적 kinds 필터(c/i/s/d/e)를 지원합니다.

decompile-type

정규화된 타입 하나를 C#으로 디컴파일합니다. includeIl을 통해 IL을 추가할 수 있습니다.

decompile-assembly

.cs 파일 폴더(컴파일 가능한 프로젝트)로 디컴파일합니다.

search-source

(한 번 캐싱된) 디컴파일 결과를 바탕으로 정규식(regex)을 사용하여 C# 트리를 grep합니다. 파일/라인/스니펫을 반환합니다.

설치

# 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

ilspycmd가 PATH에 없다면 ILSPYCMD 환경 변수를 절대 경로로 설정하세요. 서버는 Windows의 경우 %USERPROFILE%\.dotnet\tools\ilspycmd.exe, POSIX의 경우 ~/.dotnet/tools/ilspycmd 기본 위치를 자동으로 감지합니다.

stdio를 통해 MCP 호환 클라이언트에 연결하세요:

your-mcp-client mcp add dotnet --scope user -- node /absolute/path/to/mcp-dotnet/dist/index.js

참고 사항

  • 모든 도구는 절대 경로를 사용합니다. MCP 클라이언트와 이 서버 간의 작업 디렉터리 차이가 흔하므로, 서버는 경로를 추측하지 않습니다.

  • decompile-assembly와 새로운 어셈블리에 대한 첫 번째 search-source는 크기에 따라 수십 초에서 수 분이 걸릴 수 있습니다. 타임아웃은 10분입니다.

  • search-source는 기본적으로 <assemblyDir>/.mcp-dotnet-<assemblyName>/ 아래에 디컴파일된 트리를 캐시합니다. 위치를 제어하려면 명시적인 outDir을 전달하거나, 캐시를 삭제하여 재디컴파일을 강제할 수 있습니다.

  • 서버는 ilspycmd를 자식 프로세스로 실행하며 stdin을 노출하지 않습니다. 대상 어셈블리의 코드는 어떤 시점에서도 실행되지 않습니다.

라이선스

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