# ros-mcp-server

Связывает языковые модели с роботами на ROS и ROS 2 через rosbridge. Пригодится, когда нужно управлять роботом или читать его темы прямо из чата.

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

## Что делает

Сервер поднимает двусторонний канал между моделью и роботом. Модель публикует и читает топики, вызывает сервисы и действия, задаёт параметры, смотрит данные сенсоров и состояние робота в реальном времени. Исходный код робота менять не нужно: достаточно добавить в существующую установку узел `rosbridge`.

Отдельная часть работы — разведка. Сервер помогает модели самой находить доступные топики, сервисы, действия и их типы, включая пользовательские, чтобы дальше обращаться к ним с верным синтаксисом. Ручная настройка под каждый тип сообщения не требуется.

Совместимость широкая: ROS 2 (Jazzy, Humble и другие дистрибутивы) и ROS 1. Работает с Claude, Codex CLI, Gemini CLI, Claude Desktop, ChatGPT, Cursor и другими MCP-клиентами. Без запущенного `rosbridge` на стороне робота серверу не с чем соединяться, поэтому начинать стоит с него.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

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

**Командой платформы**
```bash
claude mcp add ros-mcp-server -- uvx ros-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from ros-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add ros-mcp-server -- uvx ros-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from ros-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ros-mcp-server": {
            "command": "uvx",
            "args": [
                "ros-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from ros-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "ros-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "ros-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from ros-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add ros-mcp-server uvx ros-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from ros-mcp <команда>

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

## Примеры запросов агенту
- Покажи все топики и сервисы на роботе и их типы
- Опубликуй в топик скорости команду на движение вперёд и проверь одометрию
- Вызови сервис захвата и скажи, что вернулось

## Похожие
- [MCP Toolbox for Databases](https://affpapa.org/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP-сервер · ★ 16717
- [labelhead-artist-momentum](https://affpapa.org/nevibecode/mcp/labelhead-artist-momentum.md) — MCP-сервер · ★ 107423
- [Agent Skills Search Server](https://affpapa.org/nevibecode/mcp/agent-skills-search-server.md) — MCP-сервер · ★ 26559
- [Skyvern](https://affpapa.org/nevibecode/mcp/skyvern.md) — MCP-сервер · ★ 23263
- [Nhost](https://affpapa.org/nevibecode/mcp/nhost.md) — MCP-сервер · ★ 9366
- [PraisonAI](https://affpapa.org/nevibecode/mcp/praisonai.md) — MCP-сервер · ★ 9289

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