Token导航 LogoToken导航TokenDH.com
Ultrasharp Tools MCP logo
开发工具stdio官方级别未说明来源级核验

Ultrasharp Tools MCP

MCP Server

基于Roslyn的C#代码智能分析与自动化修改工具,提供语义级代码理解、精准重构和AI辅助开发功能,适用于企业级代码库维护与团队协作开发。

工具数

57

提示词数

0

GitHub Stars

13

资源数

0
代码分析搜索C#ClaudeClaude DesktopClaudeCursorVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

faxenoff

提供方

faxenoff

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -d \

详细介绍

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

![.NET 10](https://dotnet.microsoft.com/) ![License: MIT](https://opensource.org/licenses/MIT) ![Roslyn](https://github.com/dotnet/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. Скачайте релиз на и распакуйте.
  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
Индексация с кешем ⚠️ 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 символов): 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 ( # Trace|Debug|Information|Warning|Error|Critical

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

Overlord (HTTP/SSE)

--port # 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](Dev.Docs/CLAUDE.md)

---

## 📄 **License**

MIT License - см. [LICENSE](LICENSE)

**Основан на**: [sharp-tools](https://github.com/tluyben/sharp-tools) by tluyben.
([Отличия от оригинального проекта](Dev.Docs/ULTRA-SHARPED.md))

目录标签

目录标签

代码分析搜索C#Claude本地部署自动化重构语义搜索AI辅助编程Roslyn集成

支持客户端

Claude DesktopClaudeCursorVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

57

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP