- Home
- MCP servers
- Unitree Go2
Unitree Go2
- python
75
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"lpigeon-unitree-go2-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/unitree-go2-mcp-server",
"run",
"server.py"
]
}
}
}The Unitree Go2 MCP Server lets you control a Unitree Go2 robot through natural language commands processed by an LLM. These commands are translated into ROS2 actions, enabling intuitive, conversational control of the robot from any MCP-compatible client.
How to use
Set up your MCP client to talk to the Unitree Go2 MCP Server, then issue natural language commands that the system translates into ROS2 instructions for the robot. Common usage patterns include asking the robot to move in specific directions, adjust velocity, or perform timed actions. The server is designed to respond to your requests and execute corresponding robot behaviors through ROS2 topics and services.
How to install
Prerequisites: you need a Unitree Go2 robot, Ubuntu 20.04 or 22.04, and a ROS2 environment (Humble is recommended, Foxy also works). Follow these steps to install and run the MCP server.
# 1. Setup unitree_ros2 environment
# Follow the setup up to Step 2: Connect and test in the unitree_ros2 repository
# (This repository is: https://github.com/unitreerobotics/unitree_ros2)
# 2. Clone this MCP server repository
git clone https://github.com/lpigeon/unitree-go2-mcp-server.git
cd unitree-go2-mcp-server
# 3. Install uv (MCP runtime)
curl -LsSf https://astral.sh/uv/install.sh | sh
# or
pip install uv
# Optional: create and activate a virtual environment
uv venv
source .venv/bin/activate
# 4. MCP Server Configuration
# The MCP setting should point to the local server script as shown below
Configuration and run details
Configure the MCP server to use the local Python script by placing the following JSON on the PC connected to the Go2 robot. This defines a stdio MCP server that runs via uv and executes server.py.
{
"mcpServers": {
"unitree-go2-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/unitree-go2-mcp-server",
"run",
"server.py"
]
}
}
}
Operational notes
If you are using Claude Desktop, locate the MCP configuration file and ensure it points to the correct local MCP setup. The exact path to the config varies by OS, but the key idea is to keep the MCP server settings on the PC that connects to the Go2.
Tips for use
- Set UNITREE_ROS2_SETUP_SH_PATH in server.py to the ROS2 setup script for your environment. For example: /home/youruser/unitree_ros2/setup.sh. 2) If you use rosbridge, you may need to configure LOCAL_IP, ROSBRIDGE_IP, and ROSBRIDGE_PORT in server.py. The default ROSBRIDGE_PORT is 9090. 3) Confirm the robot is on the same network by listing ROS2 topics; you should see /wirelesscontroller when the robot is connected.
Example interaction
Type a natural language command such as: Make the Go2 robot move forward at a velocity of 0.5 m/s for 3 seconds. The MCP server translates this into ROS2 commands to carry out the action.
Troubleshooting
If the Go2 robot does not appear on the network, verify the network connection and ROS2 setup. Ensure the MQTT/ROS2 topics relevant to the robot are available and that the unitree_ros2 environment is properly sourced. If the topic /wirelesscontroller is not visible, recheck the robot's network connection.
Notes
The server is intended to be executed on the PC connected to the Go2. All configuration and runtime commands shown here are designed to be actionable and repeatable for straightforward usage.
Contributing
Contributions are welcome. If you have improvements, new features, or fixes, share them following standard collaboration practices for the project.