Skip to main content
Glama
CuteCar384

GO2 Sport MCP Server

by CuteCar384
README.md
# GO2 运动控制脚本与 MCP 服务

当前目录现在同时提供:

- [go2_motion_control.py](/home/huang/xxx_go2sport/go2_motion_control.py):命令行脚本
- [server.py](/home/huang/xxx_go2sport/server.py):FastMCP 服务
- [mcp_server.json](/home/huang/xxx_go2sport/mcp_server.json):MCP 配置示例

底层都通过 ROS2 向 `/api/sport/request` 发布 `unitree_api/msg/Request` 控制 GO2。

## 命令行用法

```bash
cd /home/huang/xxx_go2sport

python3 go2_motion_control.py forward --duration 2
python3 go2_motion_control.py backward --duration 2
python3 go2_motion_control.py left --duration 2
python3 go2_motion_control.py right --duration 2
python3 go2_motion_control.py stop
python3 go2_motion_control.py move --vx 0.2 --vy 0.0 --vyaw 0.3 --duration 3
```

## MCP 启动

stdio 模式:

```bash
cd /home/huang/xxx_go2sport
python3 server.py
```

或:

```bash
cd /home/huang/xxx_go2sport
./run_mcp_server.sh
```

HTTP 模式:

```bash
cd /home/huang/xxx_go2sport
python3 server.py --transport streamable-http --host 127.0.0.1 --port 8000
```

## MCP 工具

- `go2_drive_direction`
- `go2_move`
- `go2_stand_up`
- `go2_stop`
- `go2_motion_defaults`

## MCP 配置

示例文件见 [mcp_server.json](/home/huang/xxx_go2sport/mcp_server.json)。

如果你要把它放进 Claude Code / Cursor 的 MCP 配置,可直接用:

```json
{
  "mcpServers": {
    "go2-sport-control": {
      "command": "python3",
      "args": [
        "/home/huang/xxx_go2sport/server.py"
      ],
      "env": {
        "PYTHONPATH": "/home/huang/xxx_go2sport",
        "GO2_REQUEST_TOPIC": "/api/sport/request",
        "GO2_DEFAULT_LINEAR_SPEED": "0.3",
        "GO2_DEFAULT_ANGULAR_SPEED": "0.8",
        "GO2_DEFAULT_DURATION": "2.0",
        "GO2_DEFAULT_RATE": "10.0",
        "GO2_STAND_UP_WAIT": "1.5"
      }
    }
  }
}
```

## 控制协议说明

- `MOVE` 请求 `api_id = 1008`
- `STOP_MOVE` 请求 `api_id = 1003`
- `STAND_UP` 请求 `api_id = 1004`
- `MOVE` 参数格式:`{"x": vx, "y": vy, "z": vyaw}`

`go2_drive_direction` 在未显式传 `speed` 时,前进/后退默认使用 `0.3 m/s`,左转/右转默认使用 `0.8 rad/s`。