# mcp_server_ros_2

Сервер даёт ИИ-агенту доступ к графу ROS 2: он может просматривать топики, читать сообщения и вызывать сервисы и действия. Пригодится для работы с роботом через MCP-клиент.

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

## Что делает

Сервер подключается к ROS 2 через `rclpy`. Агент может находить узлы, топики, сервисы и действия, подписываться на топики, публиковать сообщения и отправлять запросы. Отдельные инструменты преобразуют карту и облако точек в изображения; также есть просмотрщик для клиентов с поддержкой Apps.

Для запуска через Docker нужен установленный Docker и MCP-клиент; ROS 2 на хосте ставить не требуется. Поддерживаются ROS 2 Humble и Jazzy, а ROS 1 не поддерживается. Это важно для проекта на ROS 1: сервер с ним не заработает. Есть режим только для чтения, в котором изменяющие состояние робота инструменты отключены.

## Требования
- Нужно: Docker
- Переменные окружения: `MCP_CUSTOM_PROMPTS`, `MCP_PROMPTS_LOCAL`, `MCP_PROMPTS_PATH`, `MCP_PROMPTS_MODULE` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

**Командой платформы**
```bash
claude mcp add --env MCP_CUSTOM_PROMPTS=<MCP_CUSTOM_PROMPTS> --env MCP_PROMPTS_LOCAL=<MCP_PROMPTS_LOCAL> --env MCP_PROMPTS_PATH=<MCP_PROMPTS_PATH> --env MCP_PROMPTS_MODULE=<MCP_PROMPTS_MODULE> --transport stdio mcp-server-ros-2 -- docker run -i --rm -e MCP_CUSTOM_PROMPTS -e MCP_PROMPTS_LOCAL -e MCP_PROMPTS_PATH -e MCP_PROMPTS_MODULE docker.io/mcp/ros2:latest
```
Вместо <…> подставьте свои значения

### Codex

**Командой платформы**
```bash
codex mcp add mcp-server-ros-2 --env MCP_CUSTOM_PROMPTS=<MCP_CUSTOM_PROMPTS> --env MCP_PROMPTS_LOCAL=<MCP_PROMPTS_LOCAL> --env MCP_PROMPTS_PATH=<MCP_PROMPTS_PATH> --env MCP_PROMPTS_MODULE=<MCP_PROMPTS_MODULE> -- docker run -i --rm -e MCP_CUSTOM_PROMPTS -e MCP_PROMPTS_LOCAL -e MCP_PROMPTS_PATH -e MCP_PROMPTS_MODULE docker.io/mcp/ros2:latest
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-server-ros-2": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "MCP_CUSTOM_PROMPTS",
                "-e",
                "MCP_PROMPTS_LOCAL",
                "-e",
                "MCP_PROMPTS_PATH",
                "-e",
                "MCP_PROMPTS_MODULE",
                "docker.io/mcp/ros2:latest"
            ],
            "env": {
                "MCP_CUSTOM_PROMPTS": "<MCP_CUSTOM_PROMPTS>",
                "MCP_PROMPTS_LOCAL": "<MCP_PROMPTS_LOCAL>",
                "MCP_PROMPTS_PATH": "<MCP_PROMPTS_PATH>",
                "MCP_PROMPTS_MODULE": "<MCP_PROMPTS_MODULE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-server-ros-2": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "MCP_CUSTOM_PROMPTS",
                "-e",
                "MCP_PROMPTS_LOCAL",
                "-e",
                "MCP_PROMPTS_PATH",
                "-e",
                "MCP_PROMPTS_MODULE",
                "docker.io/mcp/ros2:latest"
            ],
            "env": {
                "MCP_CUSTOM_PROMPTS": "<MCP_CUSTOM_PROMPTS>",
                "MCP_PROMPTS_LOCAL": "<MCP_PROMPTS_LOCAL>",
                "MCP_PROMPTS_PATH": "<MCP_PROMPTS_PATH>",
                "MCP_PROMPTS_MODULE": "<MCP_PROMPTS_MODULE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e MCP_CUSTOM_PROMPTS=<MCP_CUSTOM_PROMPTS> -e MCP_PROMPTS_LOCAL=<MCP_PROMPTS_LOCAL> -e MCP_PROMPTS_PATH=<MCP_PROMPTS_PATH> -e MCP_PROMPTS_MODULE=<MCP_PROMPTS_MODULE> mcp-server-ros-2 docker run -i --rm -e MCP_CUSTOM_PROMPTS -e MCP_PROMPTS_LOCAL -e MCP_PROMPTS_PATH -e MCP_PROMPTS_MODULE docker.io/mcp/ros2:latest
```
Вместо <…> подставьте свои значения

## Когда брать
- найти доступные топики и сервисы ROS 2
- прочитать сообщения из топика
- опубликовать сообщение в топик
- вызвать сервис или отправить цель действию
- показать карту или облако точек как изображение

## Примеры запросов агенту
- Покажи доступные топики ROS 2 и прочитай сообщения из нужного.
- Опубликуй сообщение в топик и объясни, какой сервис нужно вызвать.
- Преобразуй карту ROS 2 в изображение и покажи результат.

## Похожие
- [ros-mcp-server](https://affpapa.org/nevibecode/mcp/ros-mcp-server.md) — MCP-сервер · ★ 1507
- [srdf](https://affpapa.org/nevibecode/skills/srdf.md) — скилл · 10400 установок
- [kimodo-motion-diffusion](https://affpapa.org/nevibecode/skills/kimodo-motion-diffusion.md) — скилл · 1300 установок
- [fine-tuning-serving-openpi](https://affpapa.org/nevibecode/skills/fine-tuning-serving-openpi.md) — скилл · 861 установка
- [fine-tuning-openvla-oft](https://affpapa.org/nevibecode/skills/fine-tuning-openvla-oft.md) — скилл · 861 установка
- [Flyto Core](https://affpapa.org/nevibecode/mcp/flyto-core.md) — MCP-сервер · ★ 484

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