RhinoMCP — интеграция протокола контекста модели Rhino
Этот проект разработан REER, INC. и опубликован для использования и тестирования сообществом. Мы приветствуем участников, которые помогут улучшить и расширить функциональность RhinoMCP. RhinoMCP соединяет Rhino, Grasshopper и другие с Claude AI через Model Context Protocol (MCP), позволяя Claude напрямую взаимодействовать с Rhino и управлять им. Эта интеграция позволяет выполнять 3D-моделирование с подсказками, создавать сцены и манипулировать ими. (вдохновлено blender_mcp )
Проект предусматривает две реализации сервера:
- Стандартный протокол Stdio MCP-сервер для интеграции Claude Desktop
- Сервер протокола SSE (Server-Side Events) для интеграции пользовательского веб-клиента
Функции
Носорог
- Двусторонняя связь : подключение Claude AI к Rhino через сервер на основе сокетов.
- Манипулирование объектами и управление ими : создание и изменение 3D-объектов в Rhino, включая метаданные.
- Управление слоями : просмотр и взаимодействие со слоями Rhino.
- Осмотр сцены : получите подробную информацию о текущей сцене Rhino (включая снимок экрана)
- Выполнение кода : запуск произвольного кода Python в Rhino от Клода
- Выбор объекта : получение информации о выбранных в данный момент объектах в Rhino.
- Документация RhinoScriptSyntax : поиск документации по RhinoScriptSyntax
Кузнечик (в разработке)
Важное примечание : Хотя инструменты интеграции Grasshopper могут появиться в Claude, они все еще находятся в стадии активной разработки и пока не полностью пригодны для использования. Мы работаем над реализацией полной функциональности Grasshopper в будущих выпусках.
Компоненты
Система состоит из двух основных компонентов:
- Скрипт на стороне Rhino (
rhino_script.py
) : скрипт Python, который запускается внутри Rhino для создания сокет-сервера, который получает и выполняет команды. - Сервер MCP (
rhino_mcp/server.py
) : сервер Python, реализующий протокол контекста модели и подключающийся к скрипту Rhino.
Установка
Предпосылки
- Rhino 7 или новее
- Python 3.10 или новее
- менеджер пакетов uv
- Conda (для управления средой) или существующая установка Python
Варианты установки
Установить УФ
Если вы используете Mac, откройте терминал и выполните:
В Windows откройте Powershell и запустите
В противном случае инструкции по установке можно найти на их сайте: Установить УФ
⚠️ Не продолжайте работу до установки УФ-излучения.
Вариант 1: Быстрая установка с помощью uvx/pip (рекомендуется)
Для начала вам необходимо выполнить интеграцию с Claude Desktop:
- Перейдите в Claude Desktop > Настройки > Разработчик > Изменить конфигурацию.
- Откройте файл
claude_desktop_config.json
и добавьте следующую конфигурацию:
- Сохраните файл
Или, если вы хотите использовать курсор: для пользователей Mac, перейдите в «Настройки» > MCP и вставьте следующее
- Чтобы использовать его в качестве глобального сервера, нажмите кнопку «добавить новый глобальный сервер MCP» и вставьте
- Чтобы использовать его в качестве сервера для конкретного проекта, создайте
.cursor/mcp.json
в корне проекта и вставьте
Для пользователей Windows перейдите в Настройки > MCP > Добавить сервер и добавьте новый сервер со следующими настройками:
Затем установите скрипт Rhino:
- Загрузите файл
rhino_script.py
из репозитория - Открытый носорог
- Для Рино 7:
- Откройте редактор Python:
- Нажмите на меню «Инструменты».
- Выберите «Редактор Python» (или нажмите Ctrl+Alt+P / Cmd+Alt+P)
- В редакторе Python:
- Нажмите «Файл» > «Открыть».
- Перейдите и выберите
rhino_script.py
- Нажмите «Выполнить» (или нажмите F5)
- Откройте редактор Python:
- Для Рино 8:
- Нажмите на меню «Инструменты».
- Выберите «RhinoScript» > «Выполнить».
- Перейдите и выберите
rhino_script.py
- Скрипт запустится автоматически, и вы должны увидеть следующие сообщения в редакторе Python:Copy
Наконец, перезапустите Claude Desktop, он автоматически запустит сервер MCP и подключится к Rhino.
Этот метод рекомендуется большинству пользователей, которые хотят просто использовать RhinoMCP, не изменяя его исходный код.
Вы также можете посмотреть видеоурок по этому методу:
Вариант 2: Установка локальной разработки
Если вы хотите изменить исходный код или внести свой вклад в проект, вы можете установить его в режиме разработки:
Клонировать репозиторий
Использование Конда
- Создайте новую среду conda с помощью Python 3.10:Copy
- Установите менеджер пакетов
uv
:Copy - Установите пакет в режиме разработки:Copy
Использование существующей установки Python
Если у вас уже установлен Python, вы можете установить сервер MCP непосредственно в базовую среду:
- Установите пакет в режиме разработки:Copy
- Обратите внимание, что для конфигурации Claude Desktop вам нужно будет найти правильный системный путь к вашей установке Python. Вы можете найти его, запустив:Copy
Интеграция рабочего стола Клода
То же, что и вариант 1, но необходимо указать полный путь к интерпретатору Python в файле claude_desktop_config.json
:
Примеры путей Python:
- Windows:
C:\\Users\\username\\anaconda3\\envs\\rhino_mcp\\python.exe
- macOS:
/Users/username/anaconda3/envs/rhino_mcp/bin/python
Обязательно:
- Замените путь Python на путь к Python в вашей среде conda или системном Python, если используете второй метод.
- Сохраните файл и перезапустите Claude Desktop.
Важное примечание: если вы используете среду conda, необходимо указать полный путь к интерпретатору Python, как показано выше.
Протокол SSE (серверные события) Rhino MCP Server
Сервер SSE — это альтернативная реализация сервера Rhino MCP, которая использует Server-Side Events для связи в реальном времени. Этот сервер работает на 127.0.0.1:8080
и предназначен для работы с пользовательскими веб-клиентами. Он предоставляет ту же функциональность, что и стандартный сервер MCP, но использует другой транспортный протокол, который больше подходит для веб-приложений.
Чтобы использовать сервер SSE:
- Запустите сервер с помощью:
python -m rhino_mcp.server_sse
- Подключите веб-клиента к
ws://127.0.0.1:8080/sse
- Отправляйте сообщения на
http://127.0.0.1:8080/messages/
Сервер SSE поддерживает все те же операции Rhino, что и стандартный сервер MCP, что делает его идеальным для создания пользовательских веб-интерфейсов для управления Rhino.
Использование
Использование с Клодом
После подключения Клод или другой магистр права может использовать следующие инструменты MCP:
get_rhino_scene_info()
: получение упрощенной информации о сцене с упором на слои и примеры объектовget_rhino_layers()
: Получить информацию обо всех слоях в сцене Rhinoexecute_code(code)
: выполнение произвольного кода Python в Rhinoget_rhino_objects_with_metadata(filters, metadata_fields)
: получение подробной информации об объектах на сцене с их метаданными, с дополнительной фильтрациейcapture_rhino_viewport(layer, show_annotations, max_size)
: захват области просмотра с дополнительными аннотациями и фильтрацией слоевget_rhino_selected_objects(include_lights, include_grips)
: получение информации об объектах, выбранных в данный момент в области просмотра Rhino.look_up_RhinoScriptSyntax(function_name)
: поиск документации по функции RhinoScriptSyntax непосредственно на сайте разработчика Rhino3D
Примеры команд
Вот несколько примеров того, о чем вы можете попросить Клода:
- «Получить информацию о текущей сцене Rhino»
- «Создай куб в начале координат»
- «Получить все слои в документе Rhino»
- «Выполнить этот код Python в Rhino: ...»
- «Можете ли вы назвать мне размеры стены, которую я выбрал в Rhino?»
- «Помогите мне рассчитать площадь поверхности выбранного пола в Rhino»
- «Покажите мне документацию по функции SelectedObjects»
- «Как использовать функцию AddCylinder в Rhino Script?»
- ...
Внося вклад
Мы приветствуем вклады в проект RhinoMCP! Если вы заинтересованы в помощи, вот несколько способов внести свой вклад:
- Отчеты об ошибках : Если вы обнаружили ошибку, пожалуйста, создайте сообщение об ошибке с подробным описанием проблемы и шагами по ее воспроизведению.
- Запросы функций : Есть идея для новой функции? Откройте тему, чтобы обсудить ее.
- Внесение изменений в код : Хотите добавить функцию или исправить ошибку?
- Форк репозитория
- Создайте новую ветку для ваших изменений
- Отправьте запрос на извлечение с четким описанием ваших изменений.
Убедитесь, что ваш код соответствует существующему стилю и включает соответствующую документацию.
Отказ от ответственности
Данное программное обеспечение предоставляется «как есть», без каких-либо гарантий, явных или подразумеваемых. REER, INC. не дает никаких гарантий, заявлений или заверений в отношении программного обеспечения, включая, помимо прочего, качество, надежность, совместимость или пригодность для определенной цели.
Используя данное программное обеспечение, вы признаете и соглашаетесь с тем, что REER, INC. не несет ответственности за какие-либо прямые, косвенные, случайные, особые или косвенные убытки, возникшие в результате использования или невозможности использования данного программного обеспечения.
Этот проект находится в активной разработке и может содержать ошибки или неполные функции. Хотя мы стремимся к качеству и надежности, пожалуйста, будьте осторожны при внедрении в производственные среды.
Соответствующая документация и ресурсы
- Официальная документация MCP:
- Разработчик клиента: https://modelcontextprotocol.io/quickstart/client
- Разработчик сервера: https://modelcontextprotocol.io/quickstart/server
- Документация MCP с открытым исходным кодом: https://github.com/cyanheads/model-context-protocol-resources
- Открытый веб-интерфейс для создания интерфейса агента ИИ: https://github.com/open-webui/open-webui
- Переключение между сервером Stdio и сервером SSE: https://github.com/supercorp-ai/supergateway
This server cannot be installed
Сервер протокола контекста модели, который соединяет Rhino и Grasshopper с Claude AI, обеспечивая 3D-моделирование с подсказками, создание сцен и манипуляции посредством прямого взаимодействия ИИ со средой Rhino.