Back to Catalog

unitree-go2-mcp-server

lpigeon/unitree-go2-mcp-server
🔗 Latest commit:84c22ff
🕒 Updated:Sep 9, 2025, 01:05 PM
Python
AI Tools

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.

MCP Trust Score
Based on our comprehensive evaluation criteria
🤖 Evaluated by gemini-2.5-flashFix
Trust Score42/100
GitHub Metrics
Repository statistics and activity
⭐ GitHub Stars:42
👥 Contributors:2
📋 Total Issues:0
📦 Has Releases:No
🔧 Has CI/CD Pipeline:No
Configuration
Configuration example extracted from README.md for Claude Desktop and other clients.
🤖 Evaluated by gemini-2.5-flashFix
{
  "unitree-go2-mcp-server": {
    "command": "uv",
    "args": [
      "--directory",
      "/ABSOLUTE/PATH/TO/PARENT/FOLDER/unitree-go2-mcp-server",
      "run",
      "server.py"
    ],
    "env": {}
  }
}
MCP Protocol Support
Implemented MCP protocol features
🤖 Evaluated by gemini-2.5-flashFix
Tools:
Prompts:
Resources:
Sampling:
Roots:
Logging:
STDIO Transport:
HTTP Transport:
OAuth2 Auth:
Dependencies
2 dependencies
Libraries and frameworks used by this MCP server
🤖 Evaluated by gemini-2.5-flashFix
Add Quality Badge
Show your MCP trust score in your README
Trust Score Badge
[![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/lpigeon/unitree-go2-mcp-server)](https://archestra.ai/mcp-catalog/lpigeon__unitree-go2-mcp-server)
README.md

Unitree Go2 MCP Server

ROS 2
Static Badge

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 Server MCP server

Requirements

  • Unitree Go2 robot
  • Ubuntu 20.04 or 22.04
  • ROS2 environment : Humble(recommended) or Foxy

MCP Functions

You can find the list of functions in the MCPFUNCTIONS.md.

Installation

1. Setup unitree_ros2 environment

https://github.com/unitreerobotics/unitree_ros2

  • You need to complete the setup up to Step 2: Connect and test in the repository linked above.

2. Clone this repository

git clone https://github.com/lpigeon/unitree-go2-mcp-server.git
cd unitree-go2-mcp-server

3. uv Installation

  • To install uv, you can use the following command:
curl -LsSf https://astral.sh/uv/install.sh | sh

or

pip install uv
  • Create virtual environment and activate it (Optional)
uv venv
source .venv/bin/activate

4. MCP Server Configuration

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:

  • MacOS
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Linux(Ubuntu)

You can install Claude Desktop to use claude-desktop-debian.

code ~/.config/Claude/claude_desktop_config.json
  • Windows
code $env:AppData\Claude\claude_desktop_config.json

How To Use

1. Set UNITREE_ROS2_SETUP_SH_PATH.

  • Open server.py and change your UNITREE_ROS2_SETUP_SH_PATH (eg. /home/lpigeon/unitree_ros2/setup.sh)

If you use rosbridge, you need Set IP and Port to connect rosbridge (Optional).

  • Open server.py and change your LOCAL_IP, ROSBRIDGE_IP and ROSBRIDGE_PORT. (ROSBRIDGE_PORT's default value is 9090)

2. Check the Go2 robot is connected to the network.

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.

3. Run any AI system that has imported unitree-go2-mcp-server.

4. Type "Make the Go2 robot move forward at a velocity of 0.5 m/s for 3 seconds.".

5. Check the Go2 robot's movement.

6. Type what you want to do and Enjoy!

Contextual Understanding

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!

Simple Task

This task is a comprehensive demo task showcasing the Unitree Go2 robot's obstacle avoidance, direction changing, and user interaction capabilities.

Contributing

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.

unitree-go2-mcp-server MCP Server | Documentation & Integration | Archestra