Skip to main content
Glama
joeynyc

microduck-mcp

by joeynyc

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DUCK_HOSTNoHost for the SSH transport (e.g., duck@microduck.local). Required when DUCK_TRANSPORT is 'ssh'.
DUCK_TRANSPORTNoTransport mode for the Microduck server: 'mock', 'sim', 'unix', or 'ssh'. Defaults to 'mock'.mock

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
duck_healthA

Full hardware+software health report: battery (volts and percent), control-loop rate, servo/board temperatures, loaded policy, and whether the robot considers itself healthy. Read-only and always safe to call. Call this FIRST in any session, and again before any sequence of motion commands.

duck_versionA

The robot's name, serial and uptime (configd system.info). Read-only.

duck_updatesA

Installed daemon releases and which one is active/golden. Read-only. (Installing/rolling back is deliberately NOT exposed as a tool yet — see CLAUDE.md 'Deliberately excluded'.)

duck_monitorA

One robot.state frame: which policy is driving, the velocity requested vs applied (and what limited it), joints, gravity in the body frame (≈[0,0,-1] when upright — a large X or Y component means it has fallen), odometry, and the safety flags (fallen, limp, busy). Read-only and always safe to call. Use it to confirm a walk actually moved the robot, or to check posture before/after a behavior. For battery and temps use duck_health.

duck_cameraA

A still frame of what the duck sees or looks like right now, returned as a PNG image. view='head' is the robot's own head camera; 'follow' (default), 'front', 'side' and 'top' are third-person views around the robot. Read-only, never moves the robot. Available on the sim transport today; on hardware it will come from mediad's WebRTC stream (not wired yet) and the mock transport returns a placeholder.

duck_walkA

Send a velocity intent: vx forward m/s, vy sideways m/s, wz yaw rad/s. Values are clamped to ±0.25 m/s linear and ±1 rad/s yaw. Walks for duration_s (default 2 s, max 10 s) then stops; the call returns when the walk is over. duck_stop interrupts it at any time, and robotd's own deadman stops the duck if this server dies mid-walk — it does not run away. Call duck_monitor afterwards to see how far it got. Refused below 15% battery or when fallen.

duck_behaviorA

Trigger a named built-in behavior: sit, stand, getup (power the joints and rise to the home pose after a fall — on hardware a human rights the duck first; in sim it is set upright in place), pickup (beak to floor, grab), kick, roulade (forward roll), quack. sit/stand are no-ops if already in that posture. Scripted moves take 0.5–3 s; call duck_monitor to see when 'busy' clears. Battery- and health-gated like walking (quack is free).

duck_stopA

Immediately zero all motion intents. NEVER gated, never rate-limited — always available. Call this if anything looks wrong, if a human asks you to stop, or if you are unsure what the robot is doing.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/joeynyc/microduck-mcp'

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