# ugs-mcp

Подключает ИИ-агента к станку ЧПУ через Universal GCode Sender: он может проверять G-код, читать состояние и запускать движения после вашего подтверждения.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Автор: zackpeters93
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/zackpeters93/ugs-mcp
- Обновлён: 2026-06-12
- HTML: https://affpapa.org/nevibecode/mcp/ugs-mcp

## Что делает

Сервер связывает агента с Universal GCode Sender через REST API Pendant. Он показывает состояние станка, координаты и параметры шпинделя, проверяет G-код, оценивает время цикла и управляет заданиями, макросами и движением осей.

Перед каждым движением нужен отдельный токен подтверждения: агент показывает предварительный просмотр и токен, а станок движется только после того, как вы передадите токен обратно. Токен одноразовый и действует 2 минуты. Это важный барьер, но он не заменяет чтение `SAFETY.md` и знание расположения аварийной остановки.

Нужны Universal GCode Sender 2.x с активным плагином Pendant и Python 3.11+. По умолчанию Pendant доступен на `localhost:8080`; адрес и другие параметры можно задать переменными окружения. В README описаны тесты с GRBL-станком SainSmart Genmitsu 3018 Pro.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `UGS_HOST`, `UGS_PORT`, `MACROS_DIR`, `RAPID_SPEED_MM_MIN` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env UGS_HOST=<UGS_HOST> --env UGS_PORT=<UGS_PORT> --env MACROS_DIR=<MACROS_DIR> --env RAPID_SPEED_MM_MIN=<RAPID_SPEED_MM_MIN> --transport stdio ugs-mcp -- uvx ugs-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from ugs-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add ugs-mcp --env UGS_HOST=<UGS_HOST> --env UGS_PORT=<UGS_PORT> --env MACROS_DIR=<MACROS_DIR> --env RAPID_SPEED_MM_MIN=<RAPID_SPEED_MM_MIN> -- uvx ugs-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from ugs-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ugs-mcp": {
            "command": "uvx",
            "args": [
                "ugs-mcp"
            ],
            "env": {
                "UGS_HOST": "<UGS_HOST>",
                "UGS_PORT": "<UGS_PORT>",
                "MACROS_DIR": "<MACROS_DIR>",
                "RAPID_SPEED_MM_MIN": "<RAPID_SPEED_MM_MIN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from ugs-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "ugs-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "ugs-mcp"
            ],
            "env": {
                "UGS_HOST": "<UGS_HOST>",
                "UGS_PORT": "<UGS_PORT>",
                "MACROS_DIR": "<MACROS_DIR>",
                "RAPID_SPEED_MM_MIN": "<RAPID_SPEED_MM_MIN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from ugs-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e UGS_HOST=<UGS_HOST> -e UGS_PORT=<UGS_PORT> -e MACROS_DIR=<MACROS_DIR> -e RAPID_SPEED_MM_MIN=<RAPID_SPEED_MM_MIN> ugs-mcp uvx ugs-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from ugs-mcp <команда>

## Когда брать
- проверить G-код на риски до запуска
- узнать координаты и состояние станка
- переместить оси после подтверждения токеном
- запустить файл или макрос через UGS

## Примеры запросов агенту
- Проверь этот G-код на риски и оцени время цикла.
- Покажи состояние станка и его текущие координаты.
- Подготовь перемещение оси X на 5 мм и покажи токен подтверждения.

## Похожие
- [Scrapling MCP Server](https://affpapa.org/nevibecode/mcp/scrapling-mcp-server.md) — MCP-сервер · ★ 89899
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119231
- [AIHawk](https://affpapa.org/nevibecode/mcp/aihawk.md) — MCP-сервер · ★ 32260
- [Skyvern](https://affpapa.org/nevibecode/mcp/skyvern.md) — MCP-сервер · ★ 23283
- [SeleniumBase MCP](https://affpapa.org/nevibecode/mcp/seleniumbase-mcp.md) — MCP-сервер · ★ 13181
- [Inbox Zero](https://affpapa.org/nevibecode/mcp/inbox-zero.md) — MCP-сервер · ★ 12826

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
