MCP и AI-клиенты

Claude Code и MCP для Revit: как подключить агент к модели

Claude Code умеет не только писать файлы, но и вызывать инструменты внешнего сервера по протоколу MCP. Если такой сервер поднят внутри Revit, агент получает доступ к модели: прочитать состав, проверить параметры, выполнить действие в транзакции. Ниже — как это подключить и где проходят границы безопасности.

Олег Сахаров·

Что даёт связка

Обычный AI-агент в редакторе кода видит файлы проекта, но не видит модель Revit. Он может написать команду, однако проверить её на реальных стенах, помещениях и воздуховодах не может. MCP закрывает этот разрыв: плагин поднимает локальный сервер и публикует инструменты, а Claude Code вызывает их так же, как вызывает файловые операции.

Практический результат — цикл без переключения окон. Вы формулируете задачу словами, агент выбирает инструмент, получает фактический ответ из модели и на его основе делает следующий шаг. Если инструмент вернул «помещений без имени: 12», это не догадка модели, а результат запроса к документу.

Как устроено соединение

MCP — протокол между клиентом и сервером инструментов. В нашем случае сервер живёт внутри процесса Revit: плагин слушает локальный HTTP-порт и отвечает по Streamable HTTP. Никакого облака посередине нет — запрос идёт с вашей машины на вашу машину.

  • Revit запущен, плагин загружен, MCP-сервер стартовал вместе с плагином.
  • Порт задаётся переменной окружения REVIBE_MCP_HTTP_PORT; фактический адрес показывает плагин.
  • Claude Code подключается как MCP-клиент и получает список инструментов при handshake.
  • Каждый вызов инструмента исполняется на UI-потоке Revit — API не любит чужие потоки.

Важное следствие: сервер живёт ровно столько, сколько живёт Revit. Закрыли Revit — соединение пропало, и это нормально. Агент должен уметь сказать «инструмент недоступен», а не выдумывать ответ.

Подключение Claude Code

Claude Code поддерживает MCP-серверы с HTTP-транспортом. Добавьте сервер командой (порт подставьте тот, который показывает плагин):

claude mcp add --transport http revit http://127.0.0.1:8080/mcp

Команда создаёт запись в конфигурации выбранной области. Для проекта удобнее хранить её в репозитории, чтобы вся команда подключалась одинаково:

{
  "mcpServers": {
    "revit": {
      "type": "http",
      "url": "http://127.0.0.1:8080/mcp"
    }
  }
}

После добавления проверьте соединение командой /mcp: клиент покажет статус и список инструментов. Если список пуст, проблема на стороне сервера, а не промпта.

Первые запросы: от чтения к записи

Начинайте с инструментов, которые ничего не меняют. Так вы проверяете связку, не рискуя моделью.

  1. Разведка. «Покажи уровни в документе и количество помещений на каждом». Агент вызывает read-only инструменты.
  2. Диагностика. «Найди помещения без имени и без номера, верни список Id». Проверьте ответ в Revit вручную.
  3. План. «Предложи, как заполнить номера по правилу, но пока не меняй модель». Полезно увидеть, какие инструменты агент собирается вызвать.
  4. Запись. Только после проверки плана: «выполни для помещений уровня 2, транзакцией, с отчётом об изменениях».

Формулировка «с отчётом» важна: она заставляет агента вернуть, что именно изменилось. Хороший отчёт — это список Id, старое и новое значение, а не «готово».

Границы безопасности

Локальный сервер — не значит «безопасно по умолчанию». Модель может выполнить destructive действие, если инструмент это позволяет. Поэтому границы задаются на трёх уровнях.

  • Сеть. Слушайте только loopback-адрес. Порт не должен быть доступен из локальной сети или интернета.
  • Инструменты. Держите read-only набор отдельно от пишущего. Агент по умолчанию должен получать первый, а второй — по явной задаче.
  • Данные. В запрос уходит то, что вы написали, и ответ инструмента. Если в ответе имена помещений и параметры — это данные проекта; решайте, допустимо ли отправлять их выбранному провайдеру модели.

Для рабочей модели действует то же правило, что и для людей: сначала копия, потом эксперимент. Транзакция с откатом спасает от части ошибок, но не от неверной логики, которая «успешно» записала неправильное значение.

Если не работает

  • Claude Code не видит сервер. Проверьте, что Revit запущен, плагин загружен и порт в конфигурации совпадает с фактическим.
  • Соединение есть, инструментов нет. Сервер поднялся, но каталог инструментов не отдался. Перезапустите Revit и посмотрите диагностику плагина.
  • Инструмент падает на конкретной модели. Смотрите журнал Revit: чаще всего это элемент, которого уже нет, или запрет на изменение в данном контексте.
  • Ответы не соответствуют модели. Проверьте, что агент обращается к активному документу, а не к тому, который вы закрыли.

Подробнее о том, что именно выполняет сервер и как устроен протокол, — в материале «MCP для Revit». Готовый сервер и инструменты входят в приватный репозиторий RevitAiTools; версии Revit и .NET — в матрице совместимости.

Чек-лист подключения

  • Revit и плагин запущены, порт MCP известен.
  • Сервер слушает loopback, а не все интерфейсы.
  • Claude Code видит список инструментов в /mcp.
  • Первый запрос — read-only, ответ сверен с моделью вручную.
  • Пишущие операции выполняются только после плана и на копии модели.
  • В проекте есть конфигурация MCP, чтобы подключение повторялось одной командой.

Перейти к практике

Первоначальный платёж открывает приватный GitHub-репозиторий RevitAiTools, обучающий курс и сообщество. Условия, состав доступа и актуальная цена — на главной странице.

Посмотреть условия доступа
Claude Code и MCP для Revit: как подключить агент к модели