Package com.github._1c_syntax.bsl.languageserver.mcp
@NullMarked
package com.github._1c_syntax.bsl.languageserver.mcp
Реализация сервера Model Context Protocol (MCP) для движка анализа BSL.
MCP-сервер поднимает автоконфигурация Spring AI; инструменты объявлены аннотацией
@McpTool и переиспользуют движок анализа и провайдеры языкового сервера. Поверх единого
ядра, отвязанного от транспорта LSP, поддерживаются транспорты stdio, SSE (Server-Sent Events)
и Streamable HTTP; HTTP-транспорты работают на встроенном servlet-контейнере.
-
ClassesClassDescriptionДоступ MCP-инструментов к документам через общий
ServerContextProvider— тот же, что наполняет LSP-сессия (иanalyze/format).Проактивно запрашивает MCP-roots у клиента после первого tool-вызова.Синхронизирует рабочие пространства MCP с корнями (roots), объявленными клиентом — прямой аналог workspace folders в LSP (workspace/didChangeWorkspaceFolders).Заполняет имя и версию MCP-сервера из бинаServerInfo— единого источника идентичности сервера, вместо хардкода в properties.Сигнал завершения работы MCP-сервера.Конфигурация stdio-транспорта MCP-сервера для профиляmcp.Оборачивает каждыйMcpServerFeatures.SyncToolSpecification, собранный Spring AI MCP по@McpTool-методам, в обёртку, которая перед делегированием в исходный handler вызываетMcpRootsBootstrapper.Регистрация и удаление рабочих пространств MCP в общемServerContextProvider.Выбор workspace для MCP-инструментов, у которых нет явной привязки к конкретному файлу (например,type_info,global_member_info).