# memorylens-mcp

Снимает снимки кучи .NET-процесса через EventPipe и ищет утечки. Пригодится, когда приложение ест память, а профилировщик ставить не хочется.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 11
- Автор: MarcelRoozekrans
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/MarcelRoozekrans/memorylens-mcp
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/memorylens-mcp

## Что делает

Сервер подключается к работающему .NET-процессу по pid, вызывает сборку мусора и раскладывает кучу по типам: сколько объектов и сколько байт. Снимки ложатся небольшими JSON-файлами во временный каталог, на них ссылается короткий id. Внутри — движок правил: он прогоняет снимок и возвращает находки с указанием, что чинить в коде.

Правил десять, от ML001 до ML010. Среди них утечки обработчиков событий, безгранично растущие статические коллекции, невызванный `Dispose`, фрагментация Large Object Heap, лишние аллокации в горячем пути. Поведение настраивается файлом `.memorylens.json` в корне проекта: правило можно выключить или поменять ему важность.

Перед запуском нужен .NET 10 SDK на `PATH` — npm-пакет кода сервера не содержит, он ставит глобальный инструмент `MemoryLens.Mcp` и запускает его. На Linux и в контейнерах подключение к диагностической точке процесса требует совпадающего UID или `SYS_PTRACE`, иначе снимок не снять.

## Требования
- Нужно: Node.js (команды через npx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add memorylens-mcp -- npx -y memorylens-mcp
```

### Codex

**Командой платформы**
```bash
codex mcp add memorylens-mcp -- npx -y memorylens-mcp
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "memorylens-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "memorylens-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "memorylens-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "memorylens-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add memorylens-mcp npx -y memorylens-mcp
```

## Когда брать
- найти, какой тип держит память после долгой работы сервиса
- сравнить два снимка кучи до и после нагрузки
- поймать утечку обработчиков событий
- проверить, растёт ли статическая коллекция без границ
- получить список процессов .NET, доступных для профилирования

## Примеры запросов агенту
- Сними снимок памяти с процесса API, pid 12345
- Сделай два снимка с задержкой и сравни их
- Прогони правила по последнему снимку и покажи находки

## Похожие
- [ASP.NET Core Debugger — MCP Server for AI Agents](https://affpapa.org/nevibecode/mcp/aspnet-core-debugger-mcp-server-for-ai-agents.md) — MCP-сервер · ★ 15
- [binlog-failure-analysis](https://affpapa.org/nevibecode/skills/binlog-failure-analysis.md) — скилл · 3600 установок
- [optimize-memory-usage](https://affpapa.org/nevibecode/commands/optimize-memory-usage.md) — команда · 476 установок
- [mcp-mat](https://affpapa.org/nevibecode/mcp/mcp-mat.md) — MCP-сервер · ★ 27
- [clr-activation-debugging](https://affpapa.org/nevibecode/skills/clr-activation-debugging.md) — скилл · 3400 установок
- [heaptrack](https://affpapa.org/nevibecode/skills/heaptrack.md) — скилл · 623 установки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
