MCP server by Mindalin
MSLX Tools: MCP-сервер для конфигураций Mobile SMARTS
MSLX Tools — это специализированный сервер протокола Model Context Protocol (MCP), предназначенный для анализа, реверс-инжиниринга и безопасного редактирования бизнес-процессов платформы Mobile SMARTS (файлы .mslx).
Запуск сервера .\venv\Scripts\python server.py --transport stdio или .\venv\Scripts\python server.py --transport sse --host 127.0.0.1 --port 8000
Системные требования
- Python 3.10 или выше.
- Установленные зависимости (создайте файл
requirements.txtи выполните командуpip install -r requirements.txt)
Поскольку Mobile SMARTS использует проприетарный синтаксис C#, ИИ-агенту необходимы эталонные примеры, чтобы избежать ошибок компиляции. Перед запуском сервера необходимо подготовить два типа индексов.
Шаг А: Генерация статического словаря (generate_ms_dictionary.py) Этот скрипт сканирует вашу типовую конфигурацию и собирает все доступные вызовы global::, session, Document и методы в один Markdown-файл.
Команда для запуска:
python generate_ms_dictionary.py --folder "C:\Путь\К\Вашей\Базе\Document" --output "C:\Путь\К\Вашей\Базе\Document\Docs_Syntax_Dictionary.md"
--folder: Путь к папке Document (или Documents) вашей конфигурации.
--output: Путь, куда сохранить итоговый словарь. Рекомендуется сохранять в папку Docs внутри проекта.
Шаг Б: Индексация векторной базы RAG (build_vector_index.py) Скрипт создает векторное пространство (ChromaDB) из фрагментов кода вашей базы. Это позволяет серверу выполнять семантический поиск (искать примеры кода по смыслу запроса).
Команда для запуска:
python build_vector_index.py --folder "C:\Путь\К\Вашей\Базе\Document" --db "./mslx_vector_db"
--folder: Путь к папке для анализа.
--db: Путь к папке, где будет создана векторная БД (должна находиться в одной директории с server.py).
📖 Обзор: Инструменты анализа и чтения
Эта группа инструментов используется для безопасного извлечения данных, понимания логики переходов, сбора зависимостей и контекста выполнения без изменения исходных файлов.
1. extract_mslx_flow
Парсит .mslx файл и возвращает плоский граф переходов внутри блока <Actions>. Позволяет быстро понять логику процесса.
- Параметры:
file_path(string) — Абсолютный путь к.mslxфайлу. - Возвращает: JSON-массив узлов (тип, имя, направления переходов, переменные сессии, выражения и параметры вызова
InValues).
2. get_operation_summary
Резолвер зависимостей. Читает файл и возвращает сигнатуру операции.
- Параметры:
file_path(string) — Абсолютный путь к файлу операции. - Возвращает: JSON-объект с массивами
parameters(входные параметры) иreturns(возвращаемые значения).
3. get_deep_operation_context
Глубокий анализатор. Извлекает граф основной операции и автоматически подтягивает сводки по всем вложенным операциям. Рекомендуется вызывать перед любым редактированием.
- Параметры:
folder_path(string) — Директория проекта,main_file_name(string) — Имя анализируемого файла. - Возвращает: JSON с ключами
MainOperationFlowиCalledOperationsSummary.
4. find_usages
Глобальный поиск зависимостей. Находит все .mslx файлы, внутри которых происходит вызов указанной операции.
- Параметры:
folder_path(string),operation_name(string) — Имя искомой операции. - Возвращает: JSON-список файлов, использующих операцию.
5. get_action_code
Точечное извлечение исполняемого кода для конкретного узла действия.
- Параметры:
file_path(string),action_name(string) — Точное имя узла. - Возвращает: Содержимое атрибута
expressionили текстовое представление блока<InValues>.
6. list_variables
Трекер состояния и переменных. Извлекает все объявленные локальные и сессионные переменные.
- Параметры:
file_path(string). - Возвращает: JSON-список переменных из узлов Parameter, DeclareAction, SelectDocumentLineAction.
7. index_configuration
Индексатор структуры. Собирает массив всех существующих операций и их входных параметров в папке.
- Параметры:
folder_path(string). - Возвращает: JSON-список операций и их аргументов.
8. read_global_fields
Анализатор глобальных конфигураций. Извлекает информацию о полях из глобальных файлов (CommonFields.xml и др.).
- Параметры:
folder_path(string). - Возвращает: JSON-список полей и их типов.
9. semantic_search_syntax
Умный RAG-поиск по базе знаний типовой конфигурации. Позволяет искать примеры реализации на естественном языке (требует предварительной генерации векторной базы ChromaDB).
- Параметры:
query(string) — Текстовый запрос (например, "перебор коллекции"),n_results(int) — Количество примеров. - Возвращает: JSON со списком релевантных фрагментов кода из конфигурации.
🛠 Обзор: Инструменты редактирования и проектирования
Эта группа используется для внесения изменений в файлы .mslx и управления проектной документацией. Все инструменты сохраняют валидную структуру XML.
1. update_action_code
Перезаписывает логику выполнения в узле (атрибут expression).
- Параметры:
file_path(string),action_name(string),new_code(string). - Возвращает: Статус выполнения (Успех/Ошибка).
2. update_in_values
Обновляет или добавляет параметры вызова в блоке <InValues>. Автоматически создает структуру тегов при их отсутствии.
- Параметры:
file_path(string),action_name(string),updates_json(string) — JSON-словарь параметров. - Возвращает: Статус выполнения (Успех/Ошибка).
3. update_node_attributes
Универсальный инструмент для изменения любых атрибутов узла (переходы nextDirection, noDirection, комментарии и т.д.). Выполняет форматирование XML (pretty_print) при сохранении.
- Параметры:
file_path(string),action_name(string),attributes_json(string) — JSON-словарь новых атрибутов. - Возвращает: Статус выполнения (Успех/Ошибка).
4. add_action_node
Добавляет новый узел в конец блока <Actions>. Маршрутизация настраивается через указание nextDirection.
- Параметры:
file_path(string),action_type(string),action_name(string),next_direction(string),additional_attributes_json(string). - Возвращает: Статус выполнения (Успех/Ошибка).
5. delete_action_node
Безвозвратно удаляет указанный узел из дерева <Actions>.
- Параметры:
file_path(string),action_name(string). - Возвращает: Статус выполнения (Успех/Ошибка).
6. save_sdd_doc
Инструмент для паттерна Docs-as-Code. Сохраняет техническую спецификацию (SDD) в формате Markdown. Автоматически создает директорию Docs в указанном корневом пути.
- Параметры:
folder_path(string) — Корневой путь конфигурации,document_name(string) — Имя файла (с расширением .md),content(string) — Текст спецификации. - Возвращает: Абсолютный путь к сохраненному файлу или ошибку.