mcpField
U
Unitree Go2 Mcp Server

Unitree Go2 Mcp Server

Local
github.comOther87Updated 20w ago

About Unitree Go2 Mcp Server

Unitree Go2 MCP Server is an MCP server that lets users control the Unitree Go2 robot with natural language commands interpreted by an LLM. Commands are translated into ROS2 instructions, aimed at developers working with Go2 robots.

Key features

  1. 01Natural language control of Go2 movement
  2. 02Translation of commands into ROS2 instructions
  3. 03Optional rosbridge connection settings
  4. 04Setup through uv and mcp.json

Use cases

  1. 01Moving a Go2 robot forward or turning with text commands
  2. 02Handling contextual instructions through an LLM
  3. 03Running obstacle avoidance and interaction demos

MCP support

This is an MCP server that exposes Go2 robot control to AI systems, which connect to it through an mcp.json configuration.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Unitree Go2 MCP Server

ROS 2 Static Badge

README image

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.

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.".
README image
5. Check the Go2 robot's movement.
README image
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!

README image

Simple Task

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

README image

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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.