Back to blog

Wednesday, July 8, 2026

MCP Just Crossed Into the Physical World — Reachy Mini Robots Can Now Run Remote MCP Tools

cover

Every time I read about MCP, it's the same story: connecting AI agents to code repositories, databases, web APIs, file systems. Useful stuff, sure. But it's all pixels and pipes — software reaching into more software.

The Hugging Face blog post from June 3 changed that. Adding MCP Tools to Reachy Mini is the first production-quality demonstration I've seen of MCP bridging into physical hardware — a desktop robot that can dynamically add new capabilities by subscribing to MCP servers hosted on Hugging Face Spaces. And it's not a hack. It's a designed feature of the platform.

This matters more than most MCP coverage you'll read this month, because it points at something bigger: MCP as a hardware abstraction layer for embodied AI.

What Reachy Mini Actually Is

If you haven't seen one, Reachy Mini is a $299-$399 open-source desktop humanoid from Pollen Robotics. Two arms, a head with expressive eyes, a camera in the chest, full SDK in Python. It's not a toy — NVIDIA demonstrated one running a full conversational AI stack on a DGX Spark at CES 2026 using Nemotron models, Pipecat for real-time voice, and a ReAct agent for tool calling.

The key thing about Reachy Mini is that it's developer-first by design. Every behavior is a Python function. Every capability is a tool you can call from an LLM. And now, every capability that doesn't live on the robot can be added as a remote MCP server.

The Architecture: Three Kinds of Tools

The Reachy Mini conversation app now supports three tool categories:

  1. Built-in tools — hardware-level primitives shipped with the robot: move_head, dance, play_emotion, head_tracking, camera, idle_do_nothing
  2. Custom local tools — your own Python functions dropped into external_tools/
  3. Remote MCP tools — tools hosted in Hugging Face Spaces, discovered and called over MCP

The remote MCP tools are the new piece. They run entirely in their own Hugging Face Space — no code downloads to the robot, no dependency conflicts, no sandboxing worries. The app communicates with them via the MCP protocol over HTTP.

Adding a tool is a single CLI command:

reachy-mini-conversation-app tool-spaces add pollen-robotics/reachy-mini-weather-tool

That's it. The app validates the Space on the Hub, probes the MCP endpoint, discovers the tools it exposes, and appends them to the active profile's tools.txt. You can have the robot checking the weather in Paris and searching the web in the same conversation:

reachy-mini-conversation-app tool-spaces add pollen-robotics/reachy-mini-search-tool
reachy-mini-conversation-app tool-spaces add pollen-robotics/reachy-mini-weather-tool

This creates a canary_web_search_weather profile that gives the robot both capabilities alongside its native expressive tools.

The Profile System Is the Real Innovation

Here's where it gets architecturally interesting. Tools aren't just globally available — they're gated by profiles. A profile is a folder containing exactly two files:

  • instructions.txt — the system prompt that tells the LLM how to use the available tools
  • tools.txt — the gatekeeper; the model can only call tools listed here

This is effectively per-profile capability-based security for a physical robot. A "guest mode" profile could expose only move_head and idle_do_nothing. A "full access" profile gives the model dance, emotion, camera, web search, and weather. The same physical hardware, with wildly different attack surfaces depending on which profile is active.

# profiles/canary_web_search_weather/tools.txt
play_emotion
stop_emotion
idle_do_nothing
move_head
pollen_robotics_reachy_mini_search_tool__search_web
pollen_robotics_reachy_mini_weather_tool__get_day_brief

The namespacing convention is worth noting: remote tools use a double underscore __ separator between the Space slug and the tool name. This prevents collisions between tools from different Spaces — a problem that's going to become very common as the MCP ecosystem grows.

Why Prompts Matter More Than Plumbing

The Reachy Mini team explicitly calls this out: the remote-tool plumbing gets tools into the model, but the prompt decides how they're used. Their example prompt for the mixed web+weather profile is revealing:

"Should I bring a jacket in Bordeaux today, and is there anything major happening downtown tonight?"

This is a genuinely multi-modal query — it requires the model to call weather tools for Bordeaux, search the web for local events, correlate the results with the robot's knowledge of what a "jacket" even is, and produce a coherent answer. The prompt needs to instruct the model on when to use each tool, what to do with conflicting information, and how to fall back gracefully when a tool fails.

The prompt engineering challenge for physical MCP tools is different from code agents. A code agent that fails to call the right tool returns a weird error message. A robot that fails to call the right tool might stay silent when it should speak, or move when it should stay still. The stakes are higher, and the prompt quality needs to match.

This Wasn't Inevitable

There have been MCP servers for robots before. OriNachum/reachy-mini-mcp and jackccrawford/reachy-mini-mcp both shipped third-party MCP servers that let you control a Reachy Mini from Claude, Cursor, Windsurf, or any MCP-compatible client. The Hugging Face blog even references community work on the robot's conversation app going back to December 2025.

What's different here is that the tool registration and discovery is built into the robot's official software stack, and the tool execution happens remotely in a Hugging Face Space. The community servers were reverse-engineered MCP adapters. This is a native integration, designed from the start, with production concerns (collision safety, profile gating, manifest tracking) already handled.

What This Means for Embodied AI

The standard argument against embodied AI has always been fragmentation. Every robot has its own SDK, its own API, its own way of expressing actions. If you want to build an agent that can control both a Reachy Mini and a Boston Dynamics Spot, you're writing two entirely different integration layers.

MCP changes this calculus. If every robot exposes its capabilities as MCP tools on a well-known server, then any MCP-compatible agent can control any robot — limited only by the physical capabilities of the hardware. The same protocol that connects your coding agent to GitHub connects your embodied agent to a robot arm. The same call_tool primitive that runs a web search also turns a robot's head.

And the Hugging Face Spaces approach solves the deployment problem: you don't need to compile code for the robot's architecture, manage dependencies, or worry about runtime isolation. The tool runs in its own Space, sandboxed by Hugging Face's infrastructure, and the robot consumes it as a remote MCP client. The tool author ships a Space, not a robot image.

The Catch

The latency story needs work. A local tool like move_head completes in milliseconds — it's a Python function call writing to a serial port. A remote MCP tool like search_web involves an HTTP round-trip to Hugging Face's servers, tool discovery, authentication, and execution. For the web search and weather use cases demonstrated in the blog post, this latency is fine. For anything requiring real-time physical feedback — "catch this ball" — it's a non-starter.

I expect the next iteration to include a hybrid model: local tools for time-critical hardware control, remote tools for knowledge and multi-step operations, and a router (similar to what NVIDIA's CES 2026 demo showed) that decides which to use based on latency requirements.

Bottom Line

The Hugging Face + Pollen Robotics integration is the first credible demonstration of MCP as a physical robot tool protocol. It's not going to replace industrial robotics controllers. What it will do is make desktop robotics as accessible to AI agents as a web search API is today. The profile system, the collision-safe namespacing, the remote tool discovery — these are production decisions from people who expect this pattern to scale.

If you've been waiting for a sign that MCP is more than a code-review gimmick, this is it. The protocol just grew arms.


Source: Hugging Face Blog — Adding MCP Tools to Reachy Mini. NVIDIA CES 2026 Reachy Mini demonstration documented here.