Два .NET 8 сервери, які реалізують протокол для взаємодії з SQL Server через AI-асистентів:
-
PureSqlsMcp - динамічний сервер для отримання метаданих БД:
- Список баз даних, таблиць, представлень, процедур, функцій
- Детальна інформація про структуру таблиць (колонки, індекси, партиції)
- DDL історія змін об'єктів з фільтрацією за часом/користувачем/типом події
- Генерація скриптів об'єктів з усіма залежностями
-
PlanSqlsMcp - сервер для аналізу планів виконання:
- Отримання estimated execution plans у форматі XML
- Автоматичне очищення запитів від службових команд SHOWPLAN
- Підтримка батчів та складних запитів
Управління метаданими:
- Функції для роботи з розширеними властивостями (MS_Description)
- Автоматичне витягування описів з коментарів у коді
- Універсальні функції для отримання ID/назв будь-яких об'єктів БД
- Процедури встановлення описів для всіх типів об'єктів
Аналіз та оптимізація індексів:
indexesGetConventionNames
- генерація стандартизованих назв (PK_, CI_, IX_ з суфіксами _INC, _FLT, _UQ)indexesGetMissing
- пошук відсутніх індексів з розрахунком переваги створенняindexesGetUnused
- виявлення невикористовуваних індексівindexesGetSpaceUsed
- детальна статистика використання дискового простору- Автоматичне перейменування індексів за конвенціями
Робота з SQL кодом:
- Парсинг та аналіз модулів (процедур, функцій, тригерів)
- Рекурсивний пошук входжень у визначеннях об'єктів
- Виділення коментарів (однорядкових/багаторядкових)
- Розбиття коду на рядки з нумерацією
- Пошук схожих модулів через токенізацію та хешування
Extended Events моніторинг:
- Готові XE сесії для відстеження помилок, debug подій, активності користувачів
- Функції читання даних з XE файлів (
xeGetErrors
,xeGetDebug
,xeGetModules
) - Таблиці для довготривалого зберігання подій з оптимізованими індексами
- Відстеження позицій читання для інкрементального завантаження
Генерація DDL скриптів:
tablesGetScript
- повний DDL таблиць з усіма обмеженнямиobjesctsScriptWithDependencies
- рекурсивна генерація з урахуванням залежностей- Підтримка cross-database залежностей та синонімів
- Правильний порядок створення об'єктів (topological sort)
Процедури-обгортки, які формують JSON відповіді для MCP протоколу:
GetDatabases
,GetTables
,GetViews
,GetProcedures
,GetFunctions
- списки об'єктівGetTableInfo
- детальна структура таблиці з колонками та індексамиGetDdlHistory
- історія DDL операцій з можливістю фільтраціїScriptObjectAndReferences
- генерація DDL з усіма залежностямиFindLastModulePlan
- пошук останнього execution plan для об'єкта
PowerShell скрипти:
deployUtil.ps1
- розгортання об'єктів з автоматичним вирішенням залежностей- Build скрипти для компіляції MCP серверів у self-contained executables (
PureSqlsMcp/build.ps1
,PlanSqlsMcp/build.ps1
)
Таблиці для аудиту та моніторингу:
eventsNotifications
- журнал DDL подійerrorLog
- централізоване логування помилокexecutionModulesUsers
,executionModulesSSIS
- історія виконання модулів по користувачах/SSISexecutionSqlText
- дедуплікований склад SQL текстів
Утилітарні функції:
stringGetCreateTempScript
- генерація CREATE TABLE з аналізу SELECT запитуstringSplitMultiLineComment
- розбір структурованих коментарів документаціїjobsGetNameByAppName
- визначення SQL Agent job за ApplicationNamepartitionFunctionsGetScript
- генерація DDL для partition functions/schemes
Проект дотримується чітких конвенцій найменування, має детальну документацію в коментарях кожного об'єкта та орієнтований на автоматизацію рутинних задач адміністрування великих DWH з можливістю інтеграції з AI-асистентами для інтелектуального аналізу та оптимізації.