SketchupMCP — интеграция SketchUp с Claude AI через MCP
SketchupMCP — это связка расширения для SketchUp и MCP-сервера, которая позволяет Claude AI напрямую управлять 3D-моделированием в SketchUp. Проект вдохновлён Blender MCP (спасибо за идею и структуру).
Возможности
- Двусторонняя связь между Claude AI и SketchUp через TCP-сокет.
- Управление компонентами: создание, изменение, удаление, трансформация.
- Работа с материалами: назначение и изменение цветов и текстур.
- Инспекция сцены: получение подробной информации о текущей сцене.
- Работа с выделением: получение и управление выбранными компонентами.
- Выполнение Ruby-кода: запуск произвольных Ruby-скриптов внутри SketchUp для продвинутых операций.
Компоненты системы
- Расширение SketchUp — Ruby-плагин, который запускает TCP-сервер внутри SketchUp и принимает команды.
- MCP-сервер (
sketchup_mcp/server.py) — Python-сервер, реализующий протокол Model Context Protocol и подключающийся к расширению SketchUp.
Установка
Python-пакет (MCP-сервер)
Проект использует uv. Установите его:
brew install uv
Расширение SketchUp
- Скачайте последний
.rbz-файл из релизов.
- В SketchUp: Окно (Window) → Extension Manager.
- Нажмите «Install Extension» и выберите скачанный
.rbz.
- Перезапустите SketchUp.
Использование
Запуск соединения
- В SketchUp: Расширения (Extensions) → SketchupMCP → Start Server.
- Сервер запустится на порту по умолчанию (
9876).
- Убедитесь, что MCP-сервер работает в терминале.
Настройка Claude
Добавьте в конфигурацию Claude (claude_desktop_config.json):
{
"mcpServers": {
"sketchup": {
"command": "uvx",
"args": ["sketchup-mcp"]
}
}
}
Пакет sketchup-mcp будет автоматически загружен с PyPI.
После подключения Claude сможет выполнять следующие действия с помощью MCP-инструментов:
Доступные инструменты
| Инструмент |
Описание |
get_scene_info |
Получить информацию о текущей сцене |
get_selected_components |
Получить данные о выбранных компонентах |
create_component |
Создать новый компонент с заданными параметрами |
delete_component |
Удалить компонент из сцены |
transform_component |
Переместить, повернуть или масштабировать компонент |
set_material |
Назначить материал компоненту |
export_scene |
Экспортировать сцену в различные форматы |
eval_ruby |
Выполнить произвольный Ruby-код в SketchUp |
Примеры запросов к Claude
- «Создай простую модель дома с крышей и окнами».
- «Выбери все компоненты и покажи их информацию».
- «Сделай выбранный компонент красным».
- «Перемести выбранный компонент на 10 единиц вверх».
- «Экспортируй текущую сцену как 3D-модель».
- «Создай сложный шкаф в стиле arts and crafts с помощью Ruby-кода».
Устранение неполадок
- Проблемы с подключением: убедитесь, что и расширение SketchUp, и MCP-сервер запущены.
- Ошибки команд: проверьте Ruby Console в SketchUp (меню Окно → Ruby Console) для сообщений об ошибках.
- Тайм-ауты: упростите запросы или разбейте их на более мелкие шаги.
Технические детали
Протокол обмена
Используется простой JSON-протокол поверх TCP-сокета:
- Команды отправляются как JSON-объекты с полями
type и опциональными params.
- Ответы — JSON-объекты с полем
status и result/message.
Лицензия
MIT
Комментарии
Комментариев пока нет. Будьте первым.