← Discover MCPs and Agents
u
MCPAI & MLGitHub

ultrasharp-tools-mcp

Ultra-fast MCP server enabling AI agents to comprehensively work with C# solutions: instant structural search, code modification with automatic linting/formatting/fixes, static debugging and backwards crash analysis, integrated Git automation. Your AI's survival kit for massive codebases!

Links

README

From the repo.

        ██  ██
        ██  ██  ██    ██████ █████▄  ▄████▄
        ██  ██  ██      ██   ██▄▄██▄ ██▄▄██
        ██  ██  ██      ██   ██   ██ ██  ██
        ██  ██  ██████  ██   ██   ██ ██  ██
        ▀████▀           ▄▄▄▄ ▄▄ ▄▄  ▄▄▄  ▄▄▄▄  ▄▄▄▄
                        ███▄▄ ██▄██ ██▀██ ██▄█▄ ██▄█▀
                        ▄▄██▀ ██ ██ ██▀██ ██ ██ ██
     ╔═════════════════════════════════════════════════════╗
     ║            ULTRASHARP-TOOLS MCP SERVER              ║
     ╚═════════════════════════════════════════════════════╝

.NET 10 License: MIT Roslyn

Умный инструмент работы с C# кодом для вас и вашего ИИ

Если вы активно используете ИИ для написания кода, то наверняка сталкивались с проблемами: ИИ тратит много времени и токенов на полнотекстовый поиск. Для массовых изменений пишет одноразовые скрипты, которые работают после десятой правки — и хорошо, если ничего не ломают.

Ultrasharp Tools решает эти проблемы.

Как это работает

Умный парсинг:

  • Весь код парсится в связанную структуру. Все инструменты работают с ней, а не с текстом.
  • Скорость: 500К строк за 10 сек, 6М строк за 50 сек. Повторный доступ — 0.02 сек из кеша.

Кеширование:

  • Структура кешируется и инкрементно обновляется.
  • Для каждой git-ветки — свой слой. Переключил ветку — всё сразу готово.
  • Аналогично работает векторная база для embed-моделей (Ollama/TEI).

Точечная работа:

  • Поиск, анализ, модификация — сразу на нужных участках кода. Без перебора файлов.
  • После изменений автоматически запускается линтинг и форматирование. Результат приходит сразу.

Естественные команды:

  • "Добавь метод в этот класс"
  • "Найди где используется этот сервис"
  • "Покажи что сломается если изменить интерфейс"

Семантическая модель сама разберёт запрос и запустит нужные инструменты.

Умные замены:

  • semantic_replace меняет код с пониманием контекста.
  • Можно за секунды обновить 500+ точек логирования на новый формат.
  • Если модель не уверена — честно скажет, а не выдумает.

Статическая трассировка:

  • Задаёте точку старта и конца — получаете последовательность выполнения.
  • Или наоборот: есть точка падения — инструмент "отмотает назад" и покажет причины.

Умный merge:

  • semantic_merge разбирается со сложными конфликтами на трёх уровнях автоматически.

Архитектура

Три процесса с lazy-запуском:

  • Comm — лёгкий Named Pipe bridge (~700 KB, один бинарник для всех ОС), запускается у каждого агента
  • Droid — основной Roslyn-сервер (singleton, multi-client через Named Pipe)
  • VectorDB — семантический движок (lazy start, shared между всеми)
Claude₁ ←stdio→ Comm₁ ──┐
Claude₂ ←stdio→ Comm₂ ──┼── Named Pipe ──→ Droid (singleton) ──→ VectorDB
Claude₃ ←stdio→ Comm₃ ──┘

Сколько бы агентов ни работало — Droid и VectorDB всегда одни. Экономия до 10 GB RAM.


Данный проект работает только с C#. Для проектов с JS/TS/Python - используйте аналогичный ultrascript-tools-mcp


📦 Установка

  1. Скачайте релиз на GitHub Releases и распакуйте.
  2. Настройте ИИ (Claude Code / Claude Desktop) - .claude.json:

Windows:

{
  "mcpServers": {
    "ultrasharp-tools": {
      "command": "C:\\Tools\\UltrasharpTools\\UltraSharp-tools.com"
    }
  }
}

macOS/Linux:

{
  "mcpServers": {
    "ultrasharp-tools": {
      "command": "/path/to/ultrasharp-tools"
    }
  }
}

Примечание: Запускается UltraSharp-tools.com (Windows) или ultrasharp-tools wrapper (macOS/Linux). Первый Comm автоматически запустит Droid в daemon-режиме. Последующие Comm подключатся к существующему Droid.

⚠️ macOS: Используйте ultrasharp-tools wrapper, а не .com напрямую (решает ENOEXEC). Альтернатива: обновите zsh до 5.9+ (brew install zsh) — тогда .com работает напрямую.

  1. Добавить в CLAUDE.md описание работы с инструментами
  2. Настройте семантический поиск - запустите мастер настройки и следуйте его инструкциям:

Windows:

C:\Tools\UltrasharpTools\Scripts\setup-semantic-embedding.cmd

Linux/macOS:

PATH/Tools/UltrasharpTools/Scripts/setup-semantic-embedding.sh

В зависимости от опредёленного GPU - будет предложено выбрать систему Ollama/TEI-в-docker. Потом выбрать наиболее подходящую вам embedding модель.

Специально для GTX50xx (Blackwood) используется неофициальная TEI, которая поддерживает такую архитектуру.


💡 Что это даёт вам?

Работайте с C# кодом как человек-разработчик

Вместо простых текстовых операций, AI получает те же инструменты что и вы:

Примеры команд:

  • "Добавь метод ValidateEmail в класс UserService"
  • "Покажи все места где используется PaymentProcessor"
  • "Переименуй метод GetUser → FetchUserAsync и обнови все вызовы"
  • "Что сломается если я изменю интерфейс IAuthService?"
  • "Найди дубликаты этого метода в проекте"

Результат: точные изменения + автоформатирование + проверка ошибок + git commit.

Экономьте время на рутине

ЗадачаОбычный AI (текст)С UltrasharpTools (Roslyn)
Добавить метод в классЧасто ломает синтаксис, не видит using'иТочное добавление в нужное место с корректными using'ами
Переименовать символНаходит только текст, пропускает вызовы100% замена всех ссылок в solution через SymbolFinder
Найти использованиеgrep по коду, много false positivesSemantic Find References - только реальные вызовы
Проверить на ошибки"Запусти dotnet build"Мгновенная компиляция в памяти после каждого изменения

Умный анализ через Roslyn, а не текст

Текстовые операции AI:

AI: "Добавляю метод в конец файла..."
Результат: ❌ Метод внутри другого метода
           ❌ Отсутствуют using'и
           ❌ Не скомпилируется

UltrasharpTools с Roslyn:

AI использует add_member:
✅ Метод добавлен в правильное место класса
✅ Автоматически добавлены нужные using System.Linq
✅ Код отформатирован через CSharpier
✅ 0 ошибок компиляции
✅ Git commit создан автоматически

Потому что понимает структуру кода, а не просто текст.


🚀 Реальные примеры использования

1. Добавление нового функционала

Проблема: Нужно добавить валидацию email во все user-сервисы.

Решение:

Вы: "Добавь метод ValidateEmail в класс UserService с проверкой на regex"

UltrasharpTools:
✅ Метод добавлен в Services/UserService.cs
✅ Автоматически добавлен using System.Text.RegularExpressions
✅ Код отформатирован через CSharpier
✅ Компиляция успешна (0 ошибок)
✅ Git commit: "feat: Add email validation to UserService"

Время: 2 секунды вместо 5 минут ручного редактирования

2. Масштабный рефакторинг

Проблема: Нужно переименовать IUserRepository → IUserDataAccess во всём solution (120 файлов).

Решение:

Вы: "Переименуй IUserRepository в IUserDataAccess везде в solution"

UltrasharpTools:
✅ Найдено 347 использований в 23 файлах
✅ Обновлены:
  - Определение интерфейса
  - Все реализации (UserRepository, TestUserRepository)
  - Все DI регистрации
  - Все параметры конструкторов
  - Все XML документации
✅ Компиляция успешна
✅ Git commit: "refactor: Rename IUserRepository to IUserDataAccess"

Без ошибок, без пропущенных мест. Время: 8 секунд.

3. Анализ влияния изменений

Проблема: Нужно изменить сигнатуру метода ProcessPayment, но не понятно что сломается.

Решение:

Вы: "Покажи где используется PaymentService.ProcessPayment"

UltrasharpTools:
✅ Найдены все вызовы:
  1. OrderController.Checkout() - прямой вызов
     File: Controllers/OrderController.cs:45
     Code: await _paymentService.ProcessPayment(order.Total)

  2. SubscriptionService.RenewSubscription() - через DI
     File: Services/SubscriptionService.cs:78

  3. PaymentQueueWorker.ProcessAsync() - background job
     File: Workers/PaymentQueueWorker.cs:112

Затронуто: 3 компонента, 3 файла
Рекомендация: добавить перегрузку метода для обратной совместимости

Насколько это быстро?

Производительность на реальных проектах:

ОперацияРезультатДетали
Индексация 500К символов10 секундCold start с Type Dictionary Cache
Индексация с кешем< 9 секундCache hit (5.4x быстрее)
Поиск символа< 100 миллисекундBloom filter + FastSymbolIndex
Переключение Git ветки< 20 мсLayered index (base + deltas)
Компиляция solutionВ памятиМгновенная проверка ошибок

Ожидаемое время загрузки по размеру проекта

Размер проектаПроектовВремя загрузкиПримечание
~100K LOC10-205 секТипичный микросервис
~500K LOC50-10010 секСредний enterprise проект
~1M LOC100-20020 секКрупный монолит
~2-3M LOC400-60040 секASP.NET Core (1504 проекта*)
~4-5M LOC250-40060 секRoslyn compiler (663 проекта*)

🎯 Главные возможности

Точные модификации через Roslyn

"Добавь метод Calculate в класс MathService" → добавляется в правильное место с using'ами

Semantic Find & Replace

Находит все реальные использования символа через SymbolFinder, не просто текст

Автоматический Git workflow

Каждое изменение → автоматический commit с описанием изменений

Quality Tools из коробки

CSharpier форматирование + Roslyn analyzers + автофиксы прямо в процессе

Advanced Tracing (статическая отладка)

  • TraceExecution: путь выполнения через Control Flow Graph
  • TraceBackwards: обратная трассировка от точки краша
  • SymbolicExecution: Z3 SMT solver для проверки path feasibility

Semantic Merge (умное слияние)

3-way merge с пониманием структуры кода, обнаружением движения и переименований

Поддержка любых .NET проектов

.NET Framework, Core, 5+, legacy csproj, SDK-style, respects .editorconfig


🔌 Режимы работы

UltrasharpTools предоставляет два режима работы под разные сценарии.

📍 Droid - Локальный режим (stdio)

Основной режим для разработчиков

Архитектура (три процесса):

┌─────────────────────────────────────────────────────────────────────────┐
│  Claude Desktop    Claude Code    Cursor    VS Code + Continue.dev     │
│       ↓                ↓            ↓                ↓                  │
│  UltraSharp-tools.com  .com        .com           .com                  │
│  (stdio bridge)   (stdio bridge)   ...            ...                  │
└────────┬───────────────┬────────────┬──────────────┬────────────────────┘
         │               │            │              │
         └───────────────┴─────┬──────┴──────────────┘
                               │ Named Pipes (IPC)
                               ↓
┌─────────────────────────────────────────────────────────────┐
│  UltrasharpTools.Droid.exe  (singleton, auto-start)         │
│  ├─ MCP Server (многоклиентный)                             │
│  ├─ Roslyn Workspace (анализ и модификация кода)            │
│  ├─ Git Integration (автокоммиты)                           │
│  └─ VectorDB Client ──────┐                                 │
└───────────────────────────│─────────────────────────────────┘
                            │ Named Pipes (IPC)
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  UltrasharpTools.VectorDB.exe  (singleton, lazy start)      │
│  ├─ Semantic Index (sqlite-vec / vectorlite)                │
│  ├─ Embedding Generator (TEI/Ollama)                        │
│  └─ Power Management (Efficiency Mode в idle)               │
└─────────────────────────────────────────────────────────────┘
    ↓
Ваши C# проекты на диске

Почему три процесса?

ПроцессРольLifecycle
CommУниверсальный stdio-bridge (~700 KB)Один на каждый AI-агент/редактор
DroidRoslyn workspace, Git, MCP toolsSingleton — один на все Comm
VectorDBSemantic index, embeddingsSingleton — lazy start по требованию
ПреимуществоОписание
Общие ресурсы5 редакторов используют ОДИН Droid+VectorDB вместо 5 копий (экономия 2-3 GB RAM на процесс)
Общий кешRoslyn compilation cache, symbol index — загружаются один раз
Изоляция памятиVectorDB 500MB+ не влияет на Droid, Comm минималистичен
Независимый перезапускVectorDB перезапускается без потери Droid сессии
ЭнергосбережениеVectorDB → Efficiency Mode после 3 минут простоя
Ленивый запускVectorDB стартует только при первом semantic запросе

Конфигурация (~/.claude.json):

Windows:

{
  "mcpServers": {
    "ultrasharp-tools": {
      "command": "D:\\path\\to\\UltraSharp-tools.com"
    }
  }
}

macOS/Linux:

{
  "mcpServers": {
    "ultrasharp-tools": {
      "command": "/path/to/ultrasharp-tools"
    }
  }
}

⚠️ macOS/Linux: Используйте ultrasharp-tools wrapper (решает ENOEXEC). Или обновите zsh до 5.9+.

Возможности:

  • Много агентов — один сервер — Claude Desktop + Claude Code + Cursor одновременно
  • Общий Roslyn workspace — все редакторы видят одни и те же изменения
  • Локальный Git — автоматические коммиты в sharptools/* ветки
  • Максимальная скорость — нет сетевых задержек
  • NuGet packages из локального кэша (~/.nuget/packages/)
  • Локальная семантика — semantic search через Ollama/TEI (VectorDB)
  • Auto-recovery — Droid и VectorDB перезапускаются при сбоях

Use case: Индивидуальная разработка с несколькими AI-агентами/редакторами одновременно


🌐 Overlord - Semantic Hub для команды (в тестировании)

⚠️ Статус: В активном тестировании. API может меняться.

Централизованный сервер для semantic обработки кода

Архитектура:

Droid (на машине разработчика)
    ↓ работает с локальными файлами
    ↓ создаёт code embeddings
    ↓ отправляет векторы через HTTP
        ↓
    Overlord (Docker/Kubernetes)
        ↓ принимает векторы от всех Droid клиентов
        ↓ хранит в едином MultiProjectVectorStore
        ↓ использует мощную embedding модель (Ollama/TEI)
        ↓ выполняет cross-project semantic search
        ↓ возвращает результаты с рекомендациями

Ключевая особенность: Overlord НЕ работает с файлами напрямую! Каждый Droid работает со своими локальными проектами, а Overlord:

  • Агрегирует векторы от всех разработчиков
  • Предоставляет единую точку доступа к мощной embedding модели
  • Выполняет поиск по всем проектам команды одновременно

Deployment через Docker:

docker run -d \
  --name ultrasharp-overlord \
  -p 3001:3001 \
  -v ultrasharp-vectors:/app/data \
  -e EMBEDDING_URL=http://ollama:11434 \
  -e EMBEDDING_MODEL=granite-embedding \
  ghcr.io/faxenoff/ultrasharp-tools-overlord:latest

Подключение Droid к Overlord:

# Ваш Droid работает с локальными файлами
# + использует Overlord для semantic операций
UltrasharpTools.Droid.exe \
  --overlord-url http://overlord:3001 \
  --load-solution D:/MyProject/MyApp.sln

Что получаете:

  • 🧠 Shared semantic brain - единая база знаний о коде всей команды
  • 🔍 Cross-project search - "найди дубликаты во ВСЕХ проектах команды"
  • 💪 Powerful embedding - дорогая модель на GPU доступна всем
  • 📊 Smart recommendations - "в проекте TeamA уже есть такая реализация!"
  • No local GPU needed - embedding выполняется на сервере
  • 🔄 Auto-enrichment - все инструменты автоматически обогащаются semantic данными

Use case:

  • Команды разработчиков с несколькими проектами
  • Поиск дубликатов кода между микросервисами
  • Централизованный доступ к мощной embedding модели
  • Knowledge sharing через semantic recommendations

📖 Подробнее: Run.Docs/OVERLORD_README.md | Deployment Guide


🎨 Полный список инструментов (52 tools)

🔷 Solution Management (2)

ИнструментЧто делает
load_solutionЗагружает .sln и инициализирует Roslyn workspace
load_projectДетальный обзор структуры проекта (namespaces, types)

🔍 Analysis Tools (15)

ИнструментЧто делаетSemantic
get_membersСписок членов типа с сигнатурами и XML docs-
view_definitionПоказывает source code символа с контекстом-
list_implementationsНаходит реализации интерфейса/производные классы-
find_referencesВсе использования символа в solution-
search_definitionsRegex поиск по декларациям в коде и assemblies-
view_call_graphIncoming/outgoing вызовы метода-
view_inheritance_chainЦепочка наследования типа-
get_all_subtypesРекурсивный список вложенных членов-
manage_usingsЧтение/запись using директив-
manage_attributesЧтение/запись атрибутов на декларациях-
analyze_complexityМетрики сложности (cyclomatic, cognitive, coupling)-
pattern_search4 режима поиска: entity, content, semantic, hybrid*
find_duplicatesСемантический поиск похожего кода
detect_technology_stackОпределяет frameworks, languages, dependencies-
list_file_entitiesСписок types и members в файле-

* pattern_search работает без semantic в режимах entity и content

✏️ Modification Tools (8)

ИнструментЧто делает
add_memberДобавляет member (method/property/field/class) в тип
modify_codeЗаменяет или удаляет member definition
rename_symbolПереименовывает символ + все references в solution
replace_all_referencesЗаменяет все ссылки на символ указанным кодом
replace_references_by_patternBatch переименование по паттерну (wildcards/regex)
find_and_replaceRegex find & replace в коде/файлах
move_memberПеремещает member между типами/namespaces
undoОткатывает последнее изменение через Git

✨ Quality Tools (4)

ИнструментЧто делает
format_codeФорматирование через CSharpier (.cs, .csproj, .xml)
analyze_code_styleАнализ через Roslyn analyzers (presets, filters, 5-min cache)
apply_code_fixesАвтоприменение code fixes (unused usings и др.)
cleanup_usingsУдаляет usings дублирующие GlobalUsings.cs

✅ Validation Tools (3)

ИнструментЧто делает
validate_fileВалидация C# файла с Roslyn analyzers
validate_directoryBatch валидация директории (параллельно)
compare_validationСравнение результатов до/после изменений

🐛 Debugging & Tracing (5)

ИнструментЧто делает
trace_executionСтатическая трассировка через Control Flow Graph
trace_backwardsОбратная трассировка от точки краша (с кешем 5-10x)
analyze_path_feasibilitySymbolic execution с Z3 solver (null checks, div by zero)
export_call_graphЭкспорт графа (DOT/Mermaid/GraphML)
analyze_logsАнализ логов (ECS/JSON, PlainText, Logcat, XML)

📄 Document Tools (3)

ИнструментЧто делает
read_fileЧитает файл (без indentation для экономии токенов)
create_fileСоздаёт новый файл с контентом
overwrite_fileПерезаписывает существующий файл

📁 File Operations (2)

ИнструментЧто делает
split_fileРазбивает файл по top-level типам (класс → файл)
synthesize_filesОбъединяет несколько файлов в один

🧠 Semantic Tools (8) — требуют Semantic Mode

ИнструментЧто делает
semantic_searchПоиск кода по смыслу (natural language)
semantic_diffСравнение semantic изменений (поведение vs текст)
detect_code_clonesОбнаружение дубликатов через ML
semantic_replaceBatch find & replace с контекстом (preview + apply)
get_semantic_replace_infoСправка по возможностям semantic_replace
reindex_changed_filesИнкрементальная переиндексация
semantic_merge3-way merge с пониманием структуры кода
get_semantic_merge_infoСправка по возможностям semantic_merge

💾 Snapshot Tools (4)

ИнструментЧто делает
create_snapshotСоздаёт точку восстановления (backup)
list_snapshotsСписок доступных снимков
rollback_snapshotОткат к предыдущему состоянию ⚠️
cleanup_snapshotsУдаление старых снимков ⚠️

📦 Package & Misc (2)

ИнструментЧто делает
add_packageДобавляет/обновляет NuGet пакет в проект
request_new_toolЗапрос новых инструментов (логируется для review)

⚙️ System (1)

ИнструментЧто делает
get_capabilitiesПроверка возможностей сервера (semantic mode, версия, features)

📊 Semantic vs Instrumental

Работают всегда (без Semantic Mode):

  • Все Solution, Modification, Quality, Validation, Tracing, Document, File Ops, Snapshot, Package, System инструменты
  • pattern_search в режимах entity и content

Требуют Semantic Mode (проверка через get_capabilities()):

  • semantic_search, semantic_diff, detect_code_clones
  • semantic_replace, get_semantic_replace_info
  • find_duplicates, reindex_changed_files
  • semantic_merge, get_semantic_merge_info
  • pattern_search в режимах semantic и hybrid

📖 Подробная документация: Run.Docs/Claude/ - примеры, best practices, workflows для каждого инструмента.


🔧 Дополнительные возможности

Semantic Code Search

Для поиска похожего кода по смыслу (не по тексту) можно включить векторные embeddings.

Что получите:

  • ✅ Поиск дубликатов даже с разными названиями переменных
  • ✅ "Найди код похожий на этот метод" → семантический поиск
  • ✅ Автоматическая группировка похожих методов/классов

Два варианта setup:

1. Локальная семантика (Droid)

Быстрая настройка через setup-semantic-embedding.cmd:

# Windows
Dev.Scripts\setup-semantic-embedding.cmd

# Linux/Mac
pwsh Dev.Scripts/setup-semantic-embedding.ps1

Выберите embedding provider:

  • Ollama - простая установка, работает на CPU/GPU
  • TEI - максимальная производительность, требует Docker + NVIDIA GPU
  • Memory - для тестирования без внешних зависимостей

Ollama quick start:

# 1. Установите Ollama (https://ollama.ai)
ollama pull granite-embedding

# 2. Запустите setup
setup-semantic-embedding.cmd
# Выберите "Ollama"

# 3. Готово! Droid автоматически использует Ollama

2. Централизованная семантика (Overlord)

Для командной работы - shared semantic index на Overlord сервере. Все разработчики используют единую базу векторов и embedding service.

Адаптивные векторные бэкенды (автоматическое переключение):

  • SqliteVec (< 10K символов): Brute-force SIMD, 100% accuracy, fast indexing
  • Vectorlite HNSW (> 10K символов): 3-100x быстрее поиск, 99.9%+ recall, масштабируется до 100K+ векторов
  • Auto-switching: автоматический выбор оптимального backend по размеру базы

📖 Подробнее: Run.Docs/Deployment/SEMANTIC_SETUP_GUIDE.md

Layered Indexing для Git workflow (включено по умолчанию)

Автоматическое управление индексами при работе с Git ветками:

Что происходит автоматически:

  • ✅ При git checkout feature → индекс переключается на feature
  • ✅ При изменении файла → обновляется Working Delta (< 1ms)
  • ✅ При git commit → Working Delta → Branch Delta
  • ✅ Cleanup orphaned branches автоматически

Производительность:

  • Переключение ветки: 16.6ms вместо полной переиндексации
  • Background compaction: 2.2s для 112 веток
  • SQLite persistence: 5.4x быстрее холодного старта

Подробнее: Dev.Docs/Development/LAYERED_INDEXING_DESIGN.md


Конфигурация

Command line options:

# Droid (stdio)
--log-level <level>              # Trace|Debug|Information|Warning|Error|Critical
--load-solution <path>           # Автозагрузка .sln при старте
--build-configuration <config>   # Debug|Release
--disable-git                    # Отключить Git integration
--symbol-cache                   # Включить persistent cache (по умолчанию: true)
--symbol-cache-clear             # Очистить cache при старте
--low-memory                     # Режим экономии памяти (SQLite для reflection types)

# Overlord (HTTP/SSE)
--port <number>                  # HTTP порт (по умолчанию: 3001)
# + все опции Droid

Layered Indexing (настраивается в DI):

services.WithLayeredIndexing(
    maxBranchDeltas: 50,              // Max веток в кеше (LRU eviction)
    enablePersistence: true,          // SQLite persistence
    deltaCompactionThreshold: 500     // Порог для compaction
);

Symbol Cache (10x faster startup):

services.WithUltrasharpToolsServices(
    symbolCacheOptions: new SymbolCacheOptions {
        Enabled = true,               // Включить persistent cache
        ClearOnStartup = false,       // Очистка при старте
        CacheDirectory = null         // null = %TEMP%/UltrasharpTools/SymbolCache
    }
);

Low Memory Mode (экономия ~50-100MB):

services.WithUltrasharpToolsServices(
    lowMemoryMode: true  // Использует SQLite для reflection types вместо FrozenDictionary
);

Или через CLI:

UltrasharpTools.Droid.exe --low-memory

Оптимизации в режиме --low-memory:

  • SQLite FTS5 для reflection type search вместо in-memory FrozenDictionary
  • LRU cache (500 типов) для горячих данных
  • Lazy loading Type объектов через MetadataLoadContext
  • Уменьшенные лимиты MemoryCache (150MB + 250MB вместо 500MB + 1GB)

🛠️ Для разработчиков

Инструкции по сборке из исходников, запуску тестов и разработке см. Dev.Docs/CLAUDE.md


📄 License

MIT License - см. LICENSE

Основан на: sharp-tools by tluyben. (Отличия от оригинального проекта)

Links: GitHubDocumentationMCP Protocol

Collected info

  • 15 stars
  • 1 forks
  • Language: C#
  • Source updated: 7/23/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.