simintech-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIMINTECH_OUTPUT_DIR | No | Directory for simulation output files. Defaults to <temporary directory>/simintech-output. | <temp>/simintech-output |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_blockC | Добавить блок на главную страницу проекта. |
| connectA | Соединить выход блока src с входом блока dst линией связи. Созданная линия запоминается, но не трассируется здесь: трассировка
( |
| list_blocksA | Вывести список блоков текущей страницы проекта. |
| get_block_paramsA | Прочитать параметры блока. COM API не умеет перечислять свойства блока, поэтому читаются имена из
каталога блоков ( |
| set_block_paramA | Установить параметр блока и переинициализировать блок. Блок переинициализируется ( Имя параметра сверяется с каталогом блоков до записи. Раньше здесь
было предупреждение уже после записи, а сам Отдельно отвергается |
| read_output_fileA | Прочитать текстовый файл с результатами расчёта. Основной способ получить результаты: Порядок работы: Читается только каталог результатов. По умолчанию это
|
| summarize_output_fileA | Свести результат расчёта к числам: диапазон, min/max, среднее, наклон. Дополняет Колонки файла блока «В файл»: |
| inspect_project_fileA | Разобрать сохранённый проект (.xprt) без COM — годится и для Linux. SimInTech работает только на Windows, но XML-экспорт проекта (его пишет
Что даёт разбор: классы блоков с именами их параметров (включая
вычисляемые — запись в них ничего не меняет) и имена блоков, по которым
адресуются Чего не даёт: связей и координат — по XML они не восстанавливаются надёжно, — и расчёта: без Windows он не идёт. Значения параметров показаны не будут: в файле они у каждого экземпляра свои. |
| help_textA | Справка: порядок работы и где взять список инструментов. Перечня команд здесь намеренно нет: он дублировал бы |
| layout_placeA | Расставить блоки по слоям без наложений — с применением координат. Координаты считает Размеры блоков не задаются: Здесь же трассируются линии, созданные |
| statusA | Проверить доступность COM-сервера SimInTech (Windows). |
| disconnectA | Завершить сессию: закрыть проект и отсоединиться от COM-сервера. Сбрасывается всё состояние сессии. Раньше обнулялся только клиент, а
текущий проект оставался в глобальной переменной: следующие вызовы шли с
мёртвым |
| create_projectA | Создать новый проект SimInTech из шаблона «пустой модели». Проект создаётся из шаблона поставки ( Предыдущий открытый проект закрывается: иначе они копились бы внутри
|
| set_calc_timeB | Задать конечное время расчёта проекта ( Расчёт идёт до этого момента; |
| open_projectA | Открыть существующий проект SimInTech (.prt/.xprt). Предыдущий открытый проект закрывается (см. |
| save_projectA | Сохранить текущий проект в файл. Два формата, и назначение у них разное:
Перед записью показывается форма проекта ( |
| close_projectB | Закрыть текущий проект. |
| runA | Запустить расчёт проекта (опционально до момента времени). Проверяется фактическое модельное время, а не код возврата: на проекте
без расчётного слоя или с неподключённым входом Расчёт идёт до |
| stepA | Выполнить указанное число шагов расчёта. Проверяется фактический рост модельного времени, а не только код
возврата: |
| stopA | Остановить расчёт. Вызов неблокирующий и не подтверждает, что расчёт шёл: |
| get_timeA | Вернуть текущее модельное время проекта. |
| list_signalsA | Вывести читаемые сигналы проекта и имена блоков отдельно. Сигналы (source='com') имеют дескриптор и читаются через |
| get_signalA | Прочитать значение сигнала — он адресуется именем блока. Работает только у проекта с подключённой базой сигналов. У модели,
созданной через |
| set_signalB | Записать значение в сигнал (адресуется именем блока). Записывать можно только сигналы проекта с подключённой базой сигналов —
как и |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create_pid_model | Шаблон создания ПИД-регулятора в SimInTech. Возвращает последовательность команд для сборки ПИД-контура с обратной связью через инструменты MCP-сервера. |
| create_rc_chain | Шаблон создания RC-цепи (ступенька → усилитель → интегратор). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_status | Статус COM-сервера SimInTech (аналог инструмента status). Инструмент при недоступном COM отказывает (это и есть отказ), а ресурс — только читаемое представление, поэтому причину возвращает текстом: исключение при чтении ресурса клиенту ничего не объясняет. |
| resource_project_blocks | Список блоков текущего проекта (read-only представление). |
| resource_blocks_catalog | Каталог блоков: классы, их параметры и вычисляемые имена. Источник — `simintech_api/data/block_catalog.json` из `simintech-code`. Агенту он нужен, чтобы не угадывать имена параметров: имена короткие и различаются по классам (у «Константы» — `a`, а не `y0`), а запись в неизвестное имя COM принимает молча. |
| resource_skills | Список скиллов: что агент может подгрузить про SimInTech. Скиллы живут в отдельном репозитории `simintech-skill`; сервер их только читает (искать в этом репозитории нечего). |
TDQS
Scored across 24 tools
Each tool addresses a distinct resource or action: signals are separated from block parameters, reading files is separated from reading signals, and run/step/stop are clearly differentiated. Even adjacent tools like get_signal, read_output_file, and summarize_output_file have explicit usage boundaries, so an agent is unlikely to select the wrong one.
The dominant pattern is snake_case verb_noun (get_signal, create_project, set_block_param, list_blocks), which is readable and predictable. A few tools break the pattern with bare verbs (connect, run, step, stop) or noun-style names (status, help_text), but these deviations are minor and do not obscure meaning.
24 tools sits in the heavy borderline range; the set is organized into project, model, simulation, and results subdomains, but several utility/introspection tools (help_text, status, inspect_project_file, summarize_output_file) inflate the count. Each tool is individually useful, but the overall surface is more than a typical well-scoped MCP server needs.
The core workflow—create/open/save/close projects, add and configure blocks, run/step/stop, and fetch results—is covered. However, there is no way to delete a block or remove a wire, which is a notable gap when composing models iteratively, and signal-DB setup is also outside the tool surface. These gaps are workable but prevent full lifecycle coverage.