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: клиент покажет статус и список инструментов. Если список пуст, проблема на стороне сервера, а не промпта.
Первые запросы: от чтения к записи
Начинайте с инструментов, которые ничего не меняют. Так вы проверяете связку, не рискуя моделью.
- Разведка. «Покажи уровни в документе и количество помещений на каждом». Агент вызывает read-only инструменты.
- Диагностика. «Найди помещения без имени и без номера, верни список Id». Проверьте ответ в Revit вручную.
- План. «Предложи, как заполнить номера по правилу, но пока не меняй модель». Полезно увидеть, какие инструменты агент собирается вызвать.
- Запись. Только после проверки плана: «выполни для помещений уровня 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, обучающий курс и сообщество. Условия, состав доступа и актуальная цена — на главной странице.
Посмотреть условия доступа