mcp_server_ros_2 — MCP-сервер для Claude Code: функции и установка
Сервер даёт ИИ-агенту доступ к графу ROS 2: он может просматривать топики, читать сообщения и вызывать сервисы и действия. Пригодится для работы с роботом через MCP-клиент.
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Что делает mcp_server_ros_2
Сервер подключается к ROS 2 через rclpy. Агент может находить узлы, топики, сервисы и действия, подписываться на топики, публиковать сообщения и отправлять запросы. Отдельные инструменты преобразуют карту и облако точек в изображения; также есть просмотрщик для клиентов с поддержкой Apps.
Для запуска через Docker нужен установленный Docker и MCP-клиент; ROS 2 на хосте ставить не требуется. Поддерживаются ROS 2 Humble и Jazzy, а ROS 1 не поддерживается. Это важно для проекта на ROS 1: сервер с ним не заработает. Есть режим только для чтения, в котором изменяющие состояние робота инструменты отключены.
Какие задачи решает
- найти доступные топики и сервисы ROS 2
- прочитать сообщения из топика
- опубликовать сообщение в топик
- вызвать сервис или отправить цель действию
- показать карту или облако точек как изображение
Примеры запросов агенту
- Покажи доступные топики ROS 2 и прочитай сообщения из нужного.
- Опубликуй сообщение в топик и объясни, какой сервис нужно вызвать.
- Преобразуй карту ROS 2 в изображение и покажи результат.
Как установить mcp_server_ros_2
Командой платформы
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 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Вместо <…> подставьте свои значения
Файл настроек
{
"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>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"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 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Вместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о mcp_server_ros_2
Как установить mcp_server_ros_2 в Claude Code?
Добавьте сервер командой `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`. Для запуска нужен Docker.
Что делает mcp_server_ros_2?
Он связывает MCP-клиент с графом ROS 2: агент может просматривать топики и вызывать сервисы или действия. Также доступны инструменты для отображения карт и облаков точек.
Какие версии ROS 2 поддерживает mcp_server_ros_2?
Поддерживаются ROS 2 Humble и Jazzy. ROS 1 сервер не поддерживает.