Об этом проекте
Это сервер Model Context Protocol (MCP) для Microsoft SQL Server, ориентированный на чтение по умолчанию, распространяемый в виде пакета NuGet для .NET (Alyio.McpMssql) и предназначенный для .NET 8.0 и 10.0. Он разработан, чтобы позволить AI-агентам и разработчикам безопасно взаимодействовать с экземплярами SQL Server с минимальными операционными накладными расходами.
Основные возможности включают обнаружение метаданных каталога (перечисление баз данных, схем, таблиц, представлений, хранимых процедур и функций), выполнение безопасных параметризованных запросов SELECT с настраиваемыми ограничениями на количество строк и тайм-аутами, а также анализ планов выполнения для диагностики медленных запросов. Инструмент analyze_query возвращает компактные JSON-сводки планов выполнения, включая стоимость, детали операторов, оценки кардинальности, предупреждения, предложения по индексам и статистику ожиданий, при этом полные XML-планы доступны через специальный URI ресурса, который истекает через 7 дней.
Конфигурация поддерживает как одноподключение через переменные окружения с префиксом MCPMSSQL_, так и многопрофильную настройку через файлы appsettings.json в области пользователя (расположенные в ~/.config/mcp-mssql/appsettings.json на Unix-подобных системах и %USERPROFILE%\.config\mcp-mssql\appsettings.json в Windows). Настройки профиля включают строки подключения, лимиты строк запросов, значения тайм-аутов и опциональный доступ на запись. Сервер нативно поддерживает Azure SQL с аутентификацией Microsoft Entra через Microsoft.Data.SqlClient.
Сервер предоставляет набор инструментов MCP: list_profiles для перечисления настроенных подключений, get_server_properties для получения свойств и лимитов сервера, list_objects и get_object для обнаружения метаданных, run_query для выполнения запросов SELECT (с поддержкой встроенных результатов до 1000 строк или снимков CSV до 50000 строк, снимки истекают через 1 день), analyze_query для анализа планов выполнения и run_command для выполнения операций записи DDL/DML. Инструмент run_command отключен по умолчанию, включается только в профилях с явно установленным AllowWrite=true и помечен как разрушительный для подтверждения на стороне хоста.
Безопасность ориентирована на чтение: доступ на запись включается явно для каждого профиля, а запросы используют параметризованную привязку @paramName для предотвращения инъекций. Флаг AllowWrite является прикладным ограничением, а не границей безопасности базы данных; для гарантии строгого режима «только чтение» документация рекомендует использовать вход, ограниченный ролью db_datareader.
Сервер можно развернуть тремя способами: запускать напрямую из пакета NuGet, установить как глобальный инструмент .NET или запускать из исходного кода. Предоставлены фрагменты конфигурации для популярных хостов MCP, включая Cursor, Gemini, Codex, Open Code, Claude Code и GitHub Copilot.
Интеграционные тесты требуют реального экземпляра SQL Server с базой данных McpMssqlTest, с рекомендацией запускать тестовые фреймворки последовательно во избежание гонок между процессами. Дорожная карта проекта включает планируемую поддержку расширения MCP Tasks (SEP-2663) для обработки длительных запросов через надежные дескрипторы задач вместо блокировки, в ожидании внедрения расширения клиентами. Проект лицензирован под MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.