机器人控制服务器

用于控制Reachy Mini机器人的MCP服务器,支持通过自然语言交互实现舞蹈、情感表达、头部运动等功能。

  • by PixelML
  • Python
  • 本地部署
  • 21 星标
  • 更新于
在 GitHub 查看 PixelML/reachy-mini-mcp

使用说明

Reachy迷你MCP服务器

用于控制Reachy Mini机器人的MCP(模型上下文协议)服务器。这允许Claude Desktop和其他MCP客户端通过自然语言与Reachy Mini机器人进行交互。

特性

  • 舞蹈:表演精心编排的舞蹈动作
  • 情感:表达预先录制的情绪
  • 头部运动:向不同方向移动头部
  • 相机:从机器人的摄像头捕捉图像
  • 头部跟踪:启用面部跟踪模式
  • 🎤 实时本地TTS:文本到速度完全在带有流音频的设备上运行-无云API,无延迟,无API成本
  • 运动控制:停止动作并查询机器人状态

安装

# Clone the repository
cd reachy-mini-mcp

# Create virtual environment
uv venv --python 3.10
source .venv/bin/activate

# Install dependencies
uv pip install -e .

# Optional: Install camera support
uv pip install -e ".[camera]"

# Optional: Install speech support (text-to-speech)
uv pip install -e ".[speech]"

配置

复制 .env.example 到 .env 并配置:

cp .env.example .env

可用环境变量:

变量 描述 默认值
REACHY_MINI_ROBOT_NAME Zenoh发现的机器人名称 reachy-mini
REACHY_MINI_ENABLE_CAMERA 启用相机捕捉 false
REACHY_MINI_HEAD_TRACKING_ENABLED 从启用头部跟踪开始 false

用法

直接运行服务器

reachy-mini-mcp

克劳德代码CLI

使用添加MCP服务器 claude mcp add 命令:

# Build from source (after cloning the repo)
claude mcp add --transport stdio reachy-mini -- bash -c "cd /path/to/reachy-mini-mcp && uv run reachy-mini-mcp"

# With camera support enabled
claude mcp add --transport stdio reachy-mini --env REACHY_MINI_ENABLE_CAMERA=true -- bash -c "cd /path/to/reachy-mini-mcp && uv run reachy-mini-mcp"

# With custom robot name
claude mcp add --transport stdio reachy-mini --env REACHY_MINI_ROBOT_NAME=my-robot -- bash -c "cd /path/to/reachy-mini-mcp && uv run reachy-mini-mcp"

Claude桌面集成

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "reachy-mini": {
      "command": "reachy-mini-mcp",
      "env": {
        "REACHY_MINI_ENABLE_CAMERA": "true"
      }
    }
  }
}

如果使用虚拟环境:

{
  "mcpServers": {
    "reachy-mini": {
      "command": "/path/to/reachy-mini-mcp/.venv/bin/reachy-mini-mcp",
      "env": {
        "REACHY_MINI_ENABLE_CAMERA": "true"
      }
    }
  }
}

可用工具

dance

在机器人上表演舞蹈动作。

参数:

  • move (字符串,可选):舞蹈名称或“随机”。默认值:“随机”
  • repeat (整数,可选):重复的次数。默认值:1

可用移动: simple_nod、head_tilt_roll、side_to_side_sway、dizzy_spin、stumble-and-recover、interwoven_spirals、sharp_side_tilt、side_pekaboo、yeah_nod、uh_huh-tilt、neck _recoil、chin_lead、groovy_sway_and-roll、chicken_peck、side_glance_lick、polyrhythm-combo、grid_snap、钟摆_swing、jackson_square

play_emotion

播放预先录制的情绪。

参数:

  • emotion (字符串,必填):要演奏的情感名称

move_head

向某个方向移动机器人的头部。

参数:

  • direction (string,必填):“左”、“右”、“上”、“下”、“前”中的一个
  • duration (浮动,可选):移动持续时间(秒)。默认值:1.0

camera

从机器人的摄像头中捕捉图像。

退货: Base64编码的JPEG图像

注: 需要 REACHY_MINI_ENABLE_CAMERA=true

head_tracking

切换头部跟踪模式。

参数:

  • enabled (boolean,必填):True表示启用,False表示禁用

stop_motion

立即停止所有当前和排队的动作。

speak

使机器人使用实时本地文本到语音进行说话,并具有自然的头部运动动画。

参数:

  • text (string,必填):要说话的文本
  • voice (字符串,可选):要使用的语音。默认值:“alba”

可用语音: 阿尔巴、马吕斯、沙威、琼、芳汀、珂赛特、依潘妮、阿塞玛

注: 需要 pocket-tts 包裹。安装时使用 uv pip install -e ".[speech]"

主要亮点:

  • 100%本地:完全在您的计算机上运行-安装后不需要互联网连接
  • 实时流媒体:实时生成并流式传输音频,以实现即时响应
  • API成本为零:没有云TTS服务,没有每个字符的费用,无限制使用
  • 低延迟:直接本地处理意味着文本输入和语音输出之间的延迟最小
  • 隐私:您的文本永远不会离开您的设备

机器人的头部在说话时会自然地摆动和移动,从而产生更逼真的互动。

get_status

获取当前机器人状态,包括连接状态、队列大小和当前姿势。

需求

  • Python 3.10+
  • Reachy Mini SDK(reachy_mini>=1.2.7)
  • 跑步 reachy-mini-daemon 或模拟
  • Zenoh与机器人的网络连接

发展

# Install dev dependencies
uv pip install -e ".[dev]"

# Run linter
ruff check .

# Run type checker
mypy src/

许可证

麻省理工学院