The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.
Add to Claude Desktop config.json
{
"mcpServers": {
"lpigeon-unitree-go2-mcp-server": {
"command": "python",
"args": [
"-m",
"unitree_go2_mcp_server"
]
}
}
} Get the source and run locally
git clone https://github.com/lpigeon/unitree-go2-mcp-server.git ~/.mcp/unitree-go2-mcp-server
cd ~/.mcp/unitree-go2-mcp-server
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.
You can find the list of functions in the MCPFUNCTIONS.md.
unitree_ros2 environmenthttps://github.com/unitreerobotics/unitree_ros2
Step 2: Connect and test in the repository linked above.git clone https://github.com/lpigeon/unitree-go2-mcp-server.git
cd unitree-go2-mcp-server
uv Installationuv, you can use the following command:curl -LsSf https://astral.sh/uv/install.sh | sh
or
pip install uv
uv venv
source .venv/bin/activate
Set MCP setting to mcp.json.
Please keep in mind that the configuration must be done on the PC connected to the Go2.
{
"mcpServers": {
"unitree-go2-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/unitree-go2-mcp-server",
"run",
"server.py"
]
}
}
}
If you use Claude Desktop, you can find mcp.json using the following command:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
You can install Claude Desktop to use claude-desktop-debian.
code ~/.config/Claude/claude_desktop_config.json
code $env:AppData\Claude\claude_desktop_config.json
UNITREE_ROS2_SETUP_SH_PATH.server.py and change your UNITREE_ROS2_SETUP_SH_PATH (eg. /home/lpigeon/unitree_ros2/setup.sh)rosbridge, you need Set IP and Port to connect rosbridge (Optional).server.py and change your LOCAL_IP, ROSBRIDGE_IP and ROSBRIDGE_PORT. (ROSBRIDGE_PORT’s default value is 9090)Type the following command in the terminal.
ros2 topic list
You should see the following topic:
/wirelesscontroller
If you don’t see the topic, check the connection between the Go2 robot and the network.
unitree-go2-mcp-server.When 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!
This task is a comprehensive demo task showcasing the Unitree Go2 robot’s obstacle avoidance, direction changing, and user interaction capabilities.
Contributions are welcome!
Whether you’re fixing a typo, adding a new function, or suggesting improvements, your help is appreciated.
Please follow the contributing guidelines for more details on how to contribute to this project.
AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loading for optimized context usage.
Provide coding agents direct access to Figma data to help them one-shot design implementation.
High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 66 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
gitmcp.io is a generic remote MCP server to connect to ANY GitHub repository or project for documentation
MCP Server for Android/iOS application and device automation, development and app scraping. Simulator/Emulator/Physical devices like iPhone, Google Pixel, Samsung supported.
Create crafted UI components inspired by the best 21st.dev design engineers.