The Unitree Go2 MCP Server is a server built on the Model Context Protocol (MCP) that enables users to control the Unitree Go2 robot using natural language commands interpreted by a Large Language Model (LLM). These commands are translated into ROS2 instructions, allowing the robot to perform corresponding actions. - Unitree Go2 robot - Ubuntu 20.04 or 22.04 - ROS2 environment : Humble(recommended
Add this skill
npx mdskills install lpigeon/unitree-go2-mcp-serverBridges natural language to ROS2 robot control with clear setup and impressive demo capabilities
1# Unitree Go2 MCP Server2345<center><img src="https://github.com/lpigeon/unitree-go2-mcp-server/blob/main/img/thumbnail.png" width="800"/></center>67The **Unitree Go2 MCP Server** is a server built on the Model Context Protocol (MCP) that enables users to control the Unitree Go2 robot using natural language commands interpreted by a Large Language Model (LLM). These commands are translated into ROS2 instructions, allowing the robot to perform corresponding actions.89<a href="https://glama.ai/mcp/servers/@lpigeon/unitree-go2-mcp-server">10 <img width="380" height="200" src="https://glama.ai/mcp/servers/@lpigeon/unitree-go2-mcp-server/badge" alt="Unitree Go2 Server MCP server" />11</a>1213## Requirements1415- **Unitree Go2 robot**16- **Ubuntu 20.04 or 22.04**17- **ROS2 environment** : [Humble](https://docs.ros.org/en/humble/Installation.html)(recommended) or [Foxy](https://docs.ros.org/en/foxy/Installation.html)1819## MCP Functions2021You can find the list of functions in the [MCPFUNCTIONS.md](MCPFUNCTIONS.md).2223## Installation2425### 1. Setup `unitree_ros2` environment2627https://github.com/unitreerobotics/unitree_ros22829- **You need to complete the setup up to `Step 2: Connect and test` in the repository linked above.**3031### 2. Clone this repository3233```bash34git clone https://github.com/lpigeon/unitree-go2-mcp-server.git35cd unitree-go2-mcp-server36```3738### 3. `uv` Installation39- To install `uv`, you can use the following command:40```bash41curl -LsSf https://astral.sh/uv/install.sh | sh42```43or44```bash45pip install uv46```4748- Create virtual environment and activate it (Optional)49```bash50uv venv51source .venv/bin/activate52```5354### 4. MCP Server Configuration55Set MCP setting to mcp.json.5657**Please keep in mind that the configuration must be done on the PC connected to the Go2.**5859```bash60{61 "mcpServers": {62 "unitree-go2-mcp-server": {63 "command": "uv",64 "args": [65 "--directory",66 "/ABSOLUTE/PATH/TO/PARENT/FOLDER/unitree-go2-mcp-server",67 "run",68 "server.py"69 ]70 }71 }72}73```7475If you use Claude Desktop, you can find mcp.json using the following command:7677- MacOS78```bash79code ~/Library/Application\ Support/Claude/claude_desktop_config.json80```8182- Linux(Ubuntu)8384You can install Claude Desktop to use [claude-desktop-debian](https://github.com/aaddrick/claude-desktop-debian).8586```bash87code ~/.config/Claude/claude_desktop_config.json88```8990- Windows91```bash92code $env:AppData\Claude\claude_desktop_config.json93```9495## How To Use96### 1. Set `UNITREE_ROS2_SETUP_SH_PATH`.97- Open `server.py` and change your `UNITREE_ROS2_SETUP_SH_PATH` (eg. `/home/lpigeon/unitree_ros2/setup.sh`)9899#### If you use `rosbridge`, you need Set IP and Port to connect rosbridge (Optional).100- Open `server.py` and change your `LOCAL_IP`, `ROSBRIDGE_IP` and `ROSBRIDGE_PORT`. (`ROSBRIDGE_PORT`'s default value is `9090`)101102### 2. Check the Go2 robot is connected to the network.103Type the following command in the terminal.104```bash105ros2 topic list106```107You should see the following topic:108```bash109/wirelesscontroller110```111**If you don't see the topic, check the connection between the Go2 robot and the network.**112113### 3. Run any AI system that has imported `unitree-go2-mcp-server`.114115### 4. Type "Make the Go2 robot move forward at a velocity of 0.5 m/s for 3 seconds.".116117<center><img src="https://github.com/lpigeon/unitree-go2-mcp-server/blob/main/img/how_to_use_1.png" width="500"/></center>118119### 5. Check the Go2 robot's movement.120121<center><img src="https://github.com/lpigeon/unitree-go2-mcp-server/blob/main/img/how_to_use_2.gif" width="500"/></center>122123### 6. Type what you want to do and Enjoy!124125## Contextual Understanding126When you type a command like "It looks like the Go2 is getting tired," the LLM interprets this contextually — understanding that the robot might need a break or some form of stretching!127128<center><img src="https://github.com/lpigeon/unitree-go2-mcp-server/blob/main/img/contextual_understanding.gif" width="800"/></center>129130## Simple Task131This task is a comprehensive demo task showcasing the Unitree Go2 robot's obstacle avoidance, direction changing, and user interaction capabilities.132133<center><img src="https://github.com/lpigeon/unitree-go2-mcp-server/blob/main/img/task_test.gif" width="800"/></center>134135## Contributing136Contributions are welcome!137Whether you're fixing a typo, adding a new function, or suggesting improvements, your help is appreciated.138Please follow the [contributing guidelines](CONTRIBUTING.md) for more details on how to contribute to this project.139
Full transparency — inspect the skill content before installing.