1. Conduid
  2. Blockchain
  3. Rnpmcp
MCP server · Blockchain

Rnpmcp

Открытый MCP-сервер и навыки Codex для управления Renga BIM через COM API

34Low

Scored 18 days ago · breakdown

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

From source
git clone https://github.com/proovcme/rnpmcp

This 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

I know everything about Rnpmcp. Ask me about installation, configuration, usage, or troubleshooting.

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

CI

Локальный 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. Работа с моделью

  1. Запустите Renga и откройте нужный проект.
  2. Запустите или перезапустите MCP-клиент с указанной конфигурацией.
  3. Проверьте состояние инструментом renga_status.
  4. Получите список процессов через renga_list_instances.
  5. Подключитесь командой renga_connect.
  6. После подключения используйте инструменты чтения и записи.

Если запущена одна 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 приветствуются. Перед отправкой изменений:

  1. не добавляйте в репозиторий Renga SDK, Interop DLL и другие закрытые бинарные файлы;
  2. не публикуйте пути пользователя, ID реальных проектов и содержимое моделей;
  3. сохраняйте безопасное поведение: запись должна выполняться через явный вызов и предварительный режим;
  4. запустите сборку и тесты в 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.

Questions

About Rnpmcp

How do I install Rnpmcp?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Rnpmcp safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 4 of the 5 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Rnpmcp still maintained?

Yes — the last commit was a month ago. The repository has 6 stars and 0 forks.