About Rnpmcp
Rnpmcp is an MCP server published by proovcme in the Blockchain category: открытый MCP-сервер и навыки Codex для управления Renga BIM через COM API.
The repository has 6 stars and 0 forks, with the last commit a month ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/proovcme/rnpmcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Rnpmcp
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 5 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
1 check has not been run yet.
README
Неофициальный MCP-сервер для Renga
Локальный MCP-сервер для подключения ИИ-агента к открытому проекту в Renga BIM.
Неофициальный независимый проект. Он не разработан, не одобрен и не поддерживается ООО «Ренга Софтвэа» или АСКОН. Наименование Renga используется только для обозначения совместимости. Renga является товарным знаком соответствующего правообладателя.
Сервер находит уже запущенную Renga через Windows Running Object Table (ROT), читает модель и предоставляет ограниченный набор безопасных операций записи. Он не запускает Renga самостоятельно, не открывает и не сохраняет проекты и не закрывает приложение.
Проект находится на ранней стадии. Чтение модели и базовые операции записи уже работают, но полноценное управление геометрией и интерфейсом Renga ещё не реализовано.
Возможности
- поиск запущенных экземпляров Renga и подключение к выбранному процессу;
- получение сведений об открытом проекте;
- постраничный поиск объектов по типу и имени;
- чтение параметров и пользовательских свойств объекта;
- просмотр поддерживаемых типов создаваемых объектов и доступных стилей;
- создание одного объекта в транзакции Renga;
- изменение одного типизированного параметра объекта;
- чтение инженерных портов оборудования и сантехнических приборов: положение, направление потока, допустимые категории и занятость;
- создание настоящих трубных соединений через
IEngineeringObjectConnectorс проверкой портов, категории и стилей; - предварительное выполнение операций записи с автоматическим откатом;
- автономный mock-режим для разработки без установленной Renga;
- последовательное выполнение всех COM-вызовов в одном STA-потоке.
Сервер использует позднее связывание COM (IDispatch). Renga SDK и его бинарные файлы в репозиторий не входят и не распространяются.
Требования
- Windows x64;
- .NET 8 SDK для сборки или .NET 8 Runtime для запуска готовой сборки;
- установленная Renga — только для работы с реальной моделью;
- MCP-клиент с поддержкой stdio, например Codex.
Базовые операции проверены на Renga Standard 8.12 / API 2.46 и Renga Standard 9.3 / API 2.50. Инженерный коннектор требует Renga 9.0 / API 2.47 или новее; живая проверка выполнена на Renga 9.3 / API 2.50.
Быстрый старт
1. Клонирование и сборка
git clone https://github.com/proovcme/rnpmcp.git
cd .\rnpmcp
dotnet build .\src\RengaMcp.Server\RengaMcp.Server.csproj -c Release
После сборки сервер находится здесь:
src\RengaMcp.Server\bin\Release\net8.0-windows\RengaMcp.Server.dll
2. Подключение к Codex
Скопируйте пример .codex/config.example.toml в .codex/config.toml доверенного проекта и замените путь к DLL на абсолютный:
[mcp_servers.renga]
command = "dotnet"
args = ["C:\\Projects\\rnpmcp\\src\\RengaMcp.Server\\bin\\Release\\net8.0-windows\\RengaMcp.Server.dll"]
startup_timeout_sec = 15
tool_timeout_sec = 60
default_tools_approval_mode = "approve"
enabled = true
Рекомендуется оставить default_tools_approval_mode = "approve", чтобы операции записи были видны пользователю до выполнения.
3. Работа с моделью
- Запустите Renga и откройте нужный проект.
- Запустите или перезапустите MCP-клиент с указанной конфигурацией.
- Проверьте состояние инструментом
renga_status. - Получите список процессов через
renga_list_instances. - Подключитесь командой
renga_connect. - После подключения используйте инструменты чтения и записи.
Если запущена одна Renga, renga_connect можно вызвать без process_id. При нескольких экземплярах лучше передать PID из renga_list_instances.
Доступные инструменты
| Инструмент | Назначение | Изменяет модель |
|---|---|---|
renga_status |
Состояние Renga, подключения и открытого проекта | Нет |
renga_list_instances |
Список экземпляров Renga в ROT | Нет |
renga_connect |
Подключение к уже запущенной Renga | Нет |
renga_disconnect |
Освобождение COM-подключения без закрытия Renga | Нет |
renga_get_project_info |
Общие сведения об открытом проекте | Нет |
renga_query_objects |
Постраничный поиск объектов | Нет |
renga_get_object |
Данные, параметры и свойства одного объекта | Нет |
renga_creation_types |
Поддерживаемые типы создания и требования к хостам | Нет |
renga_system_categories |
Стабильные имена и значения категорий инженерных систем | Нет |
renga_list_styles |
Стили из разрешённых коллекций Renga | Нет |
renga_get_ports |
Порты объекта, допустимые категории, положение и текущее подключение | Нет |
renga_create_object |
Создание одного объекта | Да |
renga_set_parameter |
Изменение одного параметра | Да |
renga_create_pipe_connection |
Трубное соединение между портами через инженерный коннектор | Да |
Поддерживаемые типы создания
Текущий каталог включает уровни, стены, балки, колонны, перекрытия, пластины, кровли, помещения, элементы, оборудование, сантехнические приборы, светильники, электроустановочные изделия, двери, окна и проёмы.
Двери, окна и проёмы требуют локальный ID объекта-хоста. Для оборудования, сантехники и некоторых других категорий необходимо предварительно выбрать стиль через renga_list_styles.
Безопасная запись
Оба инструмента записи по умолчанию получают preview=true:
- операция реально выполняется в Renga;
- результат проверяется;
- транзакция откатывается;
- модель остаётся без изменений.
Чтобы сохранить изменение, вызывающая сторона должна явно передать preview=false.
{
"typeId": "{1CFBA99C-01E7-4078-AE1A-3E2FF0673599}",
"hostObjectId": 12345,
"styleId": 7,
"preview": true
}
После предварительного вызова проверьте возвращённые данные и только затем повторите операцию с preview=false.
Для трубной разводки сначала вызовите renga_get_ports для обоих объектов, затем получите pipe и pipe_fitting через renga_list_styles и выберите только совместимые стили. renga_create_pipe_connection принимает стабильные UniqueId конечных объектов, нулевые индексы портов, имя категории из renga_system_categories и параметры трассировки в миллиметрах. Порт существующей трассы задаётся индексом -1; соединение трасса–трасса не поддерживается Renga. После каждого вызова сервер сравнивает снимки модели до и после операции и возвращает фактически созданные трассы, трубы и фитинги.
Не перегружайте запрос списком фитингов «на всякий случай». В Renga 9.3 / API 2.50 несовместимый элемент списка может дать Invalid fitting components; если preview с проверенным стилем трубы падает именно так, один раз повторите его без предпочтений фитингов и обязательно проверьте фактически созданные объекты до commit.
Также проверяйте поле undoRecorded. Некоторые сборки Renga API не передают GUID модели через позднее связывание COM, поэтому сервер может выполнить обычную транзакцию без отдельного пункта в истории отмены.
Пример сценария агента
Пользователь может сформулировать задачу обычным языком, например:
Подключись к открытой Renga, найди все окна, покажи их типы и параметры высоты. Ничего не изменяй.
Для контролируемого изменения:
Найди выбранную стену, подбери стиль двери, сначала создай дверь в режиме preview и покажи результат. Не сохраняй изменение без моего подтверждения.
Успешный вызов API означает только то, что Renga приняла операцию. Он не подтверждает правильность размещения, отсутствие коллизий, эргономику или соответствие нормам.
Mock-режим без Renga
Mock-режим позволяет проверить MCP-интеграцию и все инструменты на тестовой модели:
$env:RENGA_MCP_MODE = 'mock'
dotnet run --project .\src\RengaMcp.Server\RengaMcp.Server.csproj
Стандартный вывод процесса занят транспортом MCP JSON-RPC. Не вводите в консоль сервера обычный текст; диагностические сообщения направляются в stderr.
Чтобы вернуться к реальной Renga в текущем PowerShell-сеансе:
Remove-Item Env:RENGA_MCP_MODE
Сборка и тесты
dotnet build .\src\RengaMcp.Server\RengaMcp.Server.csproj -c Release
dotnet test .\tests\RengaMcp.Tests\RengaMcp.Tests.csproj -c Release
Тесты и сборка также запускаются в GitHub Actions при каждом push и pull request.
Сервер дополнительно проверен на Renga Standard 9.3 / API 2.50 через настоящий stdio MCP-клиент: discovery возвращает все 14 инструментов, чтение и безопасные preview-вызовы проходят через JSON-RPC, а трубное соединение отдельно проверено в preview и commit с повторным чтением портов и созданных объектов.
Ограничения текущей версии
- сервер подключается только к уже запущенной Renga с открытым проектом;
- нет команд открытия, сохранения или закрытия проекта;
- создание выполняется с исходным размещением Renga; отдельный MCP-инструмент прямого редактирования геометрии пока отсутствует;
- нет управления выбором, камерой и видами интерфейса;
- нет экспорта, снимков экрана и IFC fallback;
- операции создания пока выполняются по одному объекту;
- инженерный MCP пока создаёт только трубные соединения; воздуховоды и электрические цепи будут добавляться отдельными инструментами после такой же живой проверки;
GlobalOriginпорта может бытьnull, если установленная COM-регистрация не маршалит структуруPlacement3Dдля позднего связывания; категория, занятость и индекс порта при этом остаются доступны;- в Renga 9.3 / API 2.50 запись
MepRouteSlopeчерез общий контейнер параметров может не изменить 3D-контур трассы; самотёчный уклон нужно проверять по координатам сегментов, а плоскую трассу исправлять редактированием маршрута в Renga; - локальные числовые ID подходят для текущего сеанса, но для долговременных ссылок следует использовать
UniqueIdобъекта; - имена объектов локализованы и не являются стабильными идентификаторами;
- числовые параметры используют базовые единицы Renga API — единицу необходимо выяснить до записи, а не угадывать по отображаемому имени;
- отсутствие предупреждений Renga не доказывает отсутствие коллизий и соответствие требованиям проектирования.
Навыки для агента
В каталоге skills находятся специализированные навыки для Codex:
operate-renga-via-api— подключение через COM/ROT, выбор процесса, жизненный цикл проекта, транзакции, undo и диагностика API;renga-model-architecture— создание и проверка уровней, стен, перекрытий, кровель, помещений, проёмов, мебели и сантехники;renga-inspect-model-data— параметры, количества, свойства, материалы, армирование, экспорт геометрии и пространственный аудит;renga-develop-api-plugin— разработка загружаемых в процесс Renga плагинов,.rndesc, UI-команды, события, установка и диагностика загрузки;renga-connect-mep-systems— создание и проверка соединений труб, воздуховодов и электрических цепей через инженерный коннектор Renga.
Архитектурный навык требует, чтобы:
- стены должны доходить до перекрытия или кровли;
- кровля не заменяет потолок;
- сантехнические приборы должны быть привязаны к реальным стенам и инженерным зонам;
- мебель, оборудование и траектории дверей проверяются на коллизии;
- оконные проёмы и зоны подхода к ним должны оставаться свободными.
- светильники размещаются на реальном потолочном хосте, а розетки — на выбранной стороне стены вне интервалов дверей, окон, мебели и мокрых приборов.
Навыки не содержат Renga SDK, локальных путей, идентификаторов пользовательских проектов или других машинно-зависимых данных.
Архитектура
MCP-клиент
│ stdio / JSON-RPC
▼
RengaMcp.Server (.NET 8, x64)
│ один STA-поток + late-bound COM
▼
Windows ROT
│
▼
Запущенная Renga и открытый проект
Участие в разработке
Issues и pull requests приветствуются. Перед отправкой изменений:
- не добавляйте в репозиторий Renga SDK, Interop DLL и другие закрытые бинарные файлы;
- не публикуйте пути пользователя, ID реальных проектов и содержимое моделей;
- сохраняйте безопасное поведение: запись должна выполняться через явный вызов и предварительный режим;
- запустите сборку и тесты в Release-конфигурации.
Правовой статус
Этот репозиторий содержит только самостоятельно разработанный MCP-сервер, тесты и авторские инструкции по его использованию. Он не содержит и не распространяет Renga, Renga SDK, библиотеки Renga, типовую библиотеку, сгенерированные Interop-сборки, средства лицензирования или иные компоненты правообладателя.
Для работы с реальной моделью пользователь должен самостоятельно установить Renga, правомерно получить подходящую лицензию и соблюдать её лицензионное соглашение. В частности:
- использование этого проекта не предоставляет лицензию на Renga, API или SDK;
- условия и ограничения конкретной лицензии Renga продолжают действовать;
- домашняя и иная некоммерческая лицензия Renga не должна использоваться в предпринимательской деятельности или для получения коммерческой выгоды;
- программное обеспечение из этого репозитория предоставляется независимо, без гарантий или технической поддержки со стороны правообладателя Renga;
- нельзя добавлять в форки и сборки компоненты Renga SDK,
Interop.Renga.dll,RengaCOMAPI.tlb,Renga.NET*.PluginUtility.dll, дистрибутив Renga, логотипы или другие охраняемые материалы без соответствующего разрешения.
Подробная атрибуция и границы лицензии проекта приведены в NOTICE.md. При планируемой коммерциализации или использовании обозначений Renga в рекламе следует заранее получить разъяснение или разрешение правообладателя.
Лицензия
MIT распространяется только на оригинальный код и документацию этого репозитория и не предоставляет никаких прав на Renga, её API, SDK или товарные знаки. См. LICENSE и NOTICE.md.
README fetched from the repository 5 hours ago. The original is authoritative.