Skip to main content
Glama

Reachy Mini MCP

Give your AI a body.

This MCP server lets AI systems control Pollen Robotics' Reachy Mini robot—speak, listen, see, and express emotions through physical movement. Works with Claude, GPT, Grok, or any MCP-compatible AI.

7 tools. 30 minutes to first demo. Zero robotics expertise required.


For AI Systems

Token-efficient tool reference for programmatic use:

Tool

Args

Purpose

speak

text, listen_after=0

Voice + gesture, optionally listen after

listen

duration=3

STT via Deepgram Nova-2

snap

-

Camera capture (base64 JPEG)

show

emotion, move=""

Express emotion or play recorded move

look

roll, pitch, yaw, z, duration

Head positioning (degrees)

rest

mode="neutral"

neutral / sleep / wake

discover

library="emotions"

Find available recorded moves

speak()

Supports embedded move markers for choreographed speech:

speak("[move:curious1] What's this? [move:surprised1] Oh wow!")

Moves fire right before their speech chunk. Use listen_after=5 to hear response.

show()

Built-in emotions (fast, local): neutral, curious, uncertain, recognition, joy, thinking, listening, agreeing, disagreeing, sleepy, surprised, focused

Recorded moves (81 from Pollen):

show(move="loving1") show(move="fear1") show(move="serenity1")

Use discover() to see all available moves.


Quick Start

# Install cd reachy-mini-mcp poetry install # Set API key (required for speak/listen) export DEEPGRAM_API_KEY=your_key_here # Start simulator daemon mjpython -m reachy_mini.daemon.app.main --sim --scene minimal # Run MCP server poetry run python src/server.py

Architecture

AI (Claude/GPT/Grok) → MCP Server → SDK → Daemon → Robot/Simulator

7 tools following Miller's Law—fits in working memory.

Voice Providers

Provider

Status

Use Case

Grok Voice

✅ Supported

xAI's expressive voice (Eve, Ara, Leo, Rex, Sal)

Deepgram

✅ Supported

TTS (Aura 2) + STT (Nova 2)

Grok Voice is used automatically when XAI_API_KEY is set. Falls back to Deepgram otherwise.

MCP Config

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json:

{ "mcpServers": { "reachy-mini": { "command": "poetry", "args": ["-C", "/path/to/reachy-mini-mcp", "run", "python", "src/server.py"], "env": { "DEEPGRAM_API_KEY": "your_key_here" } } } }

Claude Code

~/.claude.json:

{ "mcpServers": { "reachy-mini": { "command": "poetry", "args": ["-C", "/path/to/reachy-mini-mcp", "run", "python", "src/server.py"], "env": { "DEEPGRAM_API_KEY": "your_key_here" } } } }

Environment Variables

Variable

Required

Default

Purpose

XAI_API_KEY

No

-

Grok Voice TTS (preferred)

GROK_VOICE

No

eve

Grok voice: ara, eve, leo, rex, sal

DEEPGRAM_API_KEY

Yes*

-

STT (always required for listen) + TTS fallback

REACHY_DAEMON_URL

No

http://localhost:8321/api

Daemon API endpoint

*Required for listen(). Also required for speak() if XAI_API_KEY not set

Requirements

  • Python 3.10+

  • reachy-mini SDK (installed via poetry)

  • MuJoCo (for simulation)

  • Deepgram API key (for speak/listen)

Hardware Notes

  • Simulator: mjpython required on macOS for MuJoCo visualization

  • Real hardware: Same MCP server, daemon auto-connects

  • Port conflicts: Zenoh uses 7447, daemon uses 8321 by default

License

MIT License - see LICENSE

Acknowledgments

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jackccrawford/reachy-mini-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server