microduck-mcp
This server lets AI agents control and monitor a Microduck robot (mock, simulator, or real hardware via SSH/socket) through MCP tools, with a safety layer.
Read robot status: check health/battery/temps, identity/version, installed updates, and one-shot state (joints, sensors, safety flags) with
duck_health,duck_version,duck_updates, andduck_monitor.See the duck: capture PNG frames from the head camera or third-person views with
duck_camera(sim today, hardware later).Move the duck: command walking with clamped velocity intents (vx/vy/yaw) and auto-stop via
duck_walk.Trigger behaviors: run sit, stand, getup, pickup, kick, roulade, or quack with
duck_behavior.Emergency stop: immediately halt all motion at any time with
duck_stop.Safety built in: motion tools are battery-gated, rate-limited, and clamped; stop is never gated.
Multiple backends: works with mock transport (no hardware), a MuJoCo simulator, or a real duck over unix/ssh.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@microduck-mcpWalk the duck forward slowly for 3 seconds, then stop."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
microduck-mcp π¦ β by MicroduckHub
The universal agent interface for the Pollen Robotics Microduck.
An MCP (Model Context Protocol) server that lets any AI agent β Claude, ChatGPT, Cursor, Gemini CLI, smolagents β drive a Microduck: walk it, sit it, make it pick things up, read its health, and stop it.
Part of MicroduckHub.
Works today with no robot: a mock transport for instant canned state, and a simulator β CPU MuJoCo running Pollen's official pretrained ONNX policies β so agents can walk, sit, kick and look at a physically simulated duck before yours ships.
Quick start
npm install
npm run build
# Mock duck (default β no hardware needed)
npm start
# Simulated duck: CPU MuJoCo + official ONNX policies (one-time setup ~1 min)
sim/setup.sh # needs uv (https://docs.astral.sh/uv/); vendors ~30 MB of assets
DUCK_TRANSPORT=sim npm start
# Real duck over ssh
DUCK_TRANSPORT=ssh DUCK_HOST=duck@microduck.local npm start
# On the robot itself
DUCK_TRANSPORT=unix npm startTry it without a client
npm test # safety layer, mock, sim-transport contract tests
npm run demo # health β walk β monitor β camera β quack β stop (mock)
DUCK_TRANSPORT=sim npm run demo # same, in MuJoCo; frames land in demo-out/Claude Desktop / Claude Code config
{
"mcpServers": {
"microduck": {
"command": "node",
"args": ["/path/to/microduck-mcp/dist/index.js"],
"env": { "DUCK_TRANSPORT": "mock" }
}
}
}If Claude Desktop runs on Windows and this repo lives in WSL, use
"command": "wsl.exe", "args": ["-e", "/abs/path/to/node", "/home/you/microduck-mcp/dist/index.js"].
Or for Claude Code: claude mcp add microduck -e DUCK_TRANSPORT=mock -- node /path/to/dist/index.js.
Related MCP server: unitree-sdk2-mcp
Tools
Tool | What it does | Guarded? |
| Battery, temps, loop rate, loaded policy | read-only |
| Robot name, serial, uptime | read-only |
| Installed releases | read-only |
| One-shot state: joints, gravity, gyro, odometry, current intent | read-only |
| PNG frame: head camera or follow/front/side/top view (sim today) | read-only |
| Velocity intent (vx/vy/wz) for | clamped, battery-gated, rate-limited |
| sit / stand / getup / pickup / kick / roulade / quack | gated (quack is free; getup allowed while fallen) |
| Zero all motion, immediately | never gated |
Safety
robotd on the robot holds the only write handle to the motor bus and enforces
joint clamps, fallβlimp, and an intent deadman. This server adds its own layer
on top β velocity caps, a 15% battery floor for motion, rate limiting β because
an agent-agnostic tool can't assume the calling model is careful. duck_stop
is always available.
Transports
| What | Needs |
| Canned state, instant | nothing |
| Headless CPU MuJoCo running the official |
|
| The robot's own daemons over | running on the duck |
| The same sockets forwarded over | a duck on the network, ssh access |
All four sit behind one DuckTransport interface, so the tools β and the
safety layer β are identical whether the duck is simulated or real.
Sim fidelity note: the reference MuJoCo scene under-tracks small velocity
commands (verified identical to upstream's own infer_policy.py). Expect
~0.08 m/s at the 0.25 m/s cap and weak yaw. It walks, sits, stands, kicks
and rolls; it just isn't a speed benchmark.
Ecosystem
MicroduckHub β DuckHub, the community policy browser this server will back once upstream's M8 model channel ships.
awesome-microduck β the curated ecosystem list.
Not an official project
Community project β not affiliated with, endorsed by, or sponsored by Pollen Robotics or Hugging Face. Microduck is their product; this is an independent client for it, and product names and logos belong to their respective owners.
Status
Pre-hardware. Every transport speaks upstream's published wire protocol
(duck-ipc-proto, see src/transport/protocol.ts); the sim path is
validated end to end, the unix/ssh paths against a fake daemon only β
first contact with a real duck is ~Dec 2026.
Licensed under Apache-2.0 (see LICENSE); upstream robot software is Apache 2.0 too.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to monitor and control Kachaka robots via MCP, including navigation, shelf operations, and sensor data access.1Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for controlling Unitree robots via DDS protocol, supporting G1, Go2, H1, H2, B2, A2, R1 and more. Enables LLM agents to command robots with high-level actions and safety guards.2MIT
- AlicenseAqualityBmaintenanceEnables driving Omniverse Kit apps (Isaac Sim, Isaac Lab) over MCP, allowing agents to control simulations, run Python, and call namespace-scoped tools via a single bridge.11MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI systems to control the Reachy Mini robotβspeak, listen, see, and express emotions through physical movement. Compatible with Claude, GPT, Grok, and other MCP-compatible AIs.MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Phone, SMS & email for AI agents β one remote MCP endpoint, OAuth login, zero install.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/joeynyc/microduck-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server