Skip to main content
Glama
aj-dev-smith

duck-mcp

by aj-dev-smith

microduck-mcp 🦆

Steuern Sie die Pollen Robotics Microduck von jedem MCP-Client aus — Claude Code, Claude Desktop oder Ihrem eigenen Agenten. Eine KI erhält Werkzeuge, um die Ente herumlaufen zu lassen, Tricks auszulösen, sie zu stoßen und sie durch gerenderte Kamerabilder zu sehen.

Heute steuert es die simulierte Ente (CPU-MuJoCo mit den offiziellen vortrainierten ONNX-Policies aus pollen-robotics/microduck). Die Steuerungsebene ist rein absichtsbasiert — Geschwindigkeiten, Tricks, Blickrichtung — und spiegelt den robotd-Vertrag des echten Roboters wider, sodass ein Hardware-Backend hinter denselben Werkzeugen eingesetzt werden kann, wenn Ihre Ente eintrifft.

Spaziergang

Mitten in der Roulade

Warten auf Befehle

Ente läuft, Kamera folgt

Ente mitten in der Roulade

Ente steht neben dem Ball

Alle Frames werden vom duck_camera-Werkzeug gerendert — das ist buchstäblich das, was die KI beim Steuern sieht.

Architektur

MCP client (Claude, ...)   duck CLI (humans / scripts)   browser: AX debug page
        │ stdio                          │                        │ http :8400
        ▼                                ▼                        ▼
   duck-mcp  ────────────►  Unix socket, JSON lines  ◄────  built-in web UI
                                    │
                                    ▼
                          duck-sim (50 Hz MuJoCo loop,
                          ONNX policy hot-swapping via
                          microduck_rl's PolicyInference)

Die Design-Grundsätze (Werkzeuge vs. Ressourcen, strukturierte Ausgabe, Fehlersemantik) sind in docs/mcp-design-notes.md dokumentiert.

Related MCP server: MuJoCo MCP Server

Einrichtung

Benötigt Klone der beiden offiziellen Repos (für Szenen/Policy-Runner und die mitgelieferten ONNX-Policies) sowie uv:

git clone https://github.com/pollen-robotics/microduck
git clone https://github.com/pollen-robotics/microduck_rl
git clone https://github.com/aj-dev-smith/microduck-mcp
cd microduck-mcp && uv sync

Ausführen

Starten Sie den Simulationsserver (die Standardeinstellungen gehen davon aus, dass die drei Repos nebeneinander liegen):

uv run duck-sim --rl-repo ../microduck_rl --policies ../microduck/policies

Standardmäßig headless. Um im MuJoCo-Viewer zu beobachten (macOS benötigt mjpython):

uv run mjpython -m microduck_mcp.sim_server --viewer \
    --rl-repo ../microduck_rl --policies ../microduck/policies

Probieren Sie es von einer Shell aus:

uv run duck state
uv run duck drive 0.2          # walk forward at 0.2 m/s
uv run duck trick roulade      # forward roll
uv run duck cam follow         # render a frame, prints the PNG path
uv run duck push               # shove it, watch it recover

Registrieren Sie den MCP-Server bei Claude Code:

claude mcp add duck -- uv --directory /path/to/microduck-mcp run duck-mcp

MCP-Werkzeuge

Alle Werkzeuge, die Zustand zurückgeben, erzeugen typisierte strukturierte Ausgaben (DuckState-Schema, Einheiten pro Feld dokumentiert); jedes mutierende Werkzeug gibt den Zustand nach der Aktion zurück, sodass der Agent selten eine Folgeabfrage benötigt.

Werkzeug

Was es tut

duck_state

Position, Orientierung, Geschwindigkeit im Körperrahmen, aktive Policy, aufrecht?

duck_drive(vx, vy, wz, duration_s?)

Geschwindigkeitsabsicht; mit duration_s fährt es, stoppt dann und meldet — ein Aufruf statt Fahren/Abrufen/Stoppen

duck_stop

Null-Befehle → Steh-Policy

duck_trick(name)

sit, stand, ground_pick, kick_left, kick_right, roulade

duck_look(...)

Kopf ausrichten (es ist ein Befehl an die Policy, kein Servo-Schreiben)

duck_camera(view, distance)

Gerendertes Bild: follow, front, side, top

duck_push(magnitude, angle_deg)

Rumpf stoßen; testet Stoß-Erholung

duck_reset

Zurück zum Ursprung, Standardhaltung (destructive_hint — es beendet die Episode)

AX-Debug-Seite

duck-sim bietet auch eine Agent Experience Debug-Seite unter http://127.0.0.1:8400 (--web PORT, --web 0 zum Deaktivieren): einen Live-Feed jedes Befehls, der den Steuerungs-Socket erreicht — gekennzeichnet nach Client (mcp, cli, web) — neben einer automatisch aktualisierenden Kameraansicht und einem Zustands-Dashboard. Öffnen Sie sie neben dem MuJoCo-Viewer, um in Echtzeit zu sehen, was der Agent tut und was er sehen kann. Einfaches Stdlib-HTTP + eine HTML-Datei; das gesamte Rendering erfolgt weiterhin im Sim-Thread über dieselbe Absichts-Warteschlange wie bei jedem anderen Client.

Hinweise

  • Der Simulationsserver führt alle MuJoCo-Aufrufe in einem Thread aus; Socket-Clients stellen nur Absichten in die Warteschlange. Mehrere Clients sind in Ordnung (MCP + CLI gleichzeitig).

  • Policies werden hinter dem gemeinsamen 61-dimensionalen Beobachtungsvertrag genau wie auf dem Roboter heiß getauscht: Fahren aktiviert Gehen, Null-Befehl kehrt zum Stehen zurück, episodische Tricks laufen in den Stand zurück.

  • Das Kamera-Rendering erfolgt außerhalb des Bildschirms (kein Fenster erforderlich); im --viewer-Modus unter macOS ist Offscreen-Rendering möglicherweise nicht verfügbar — führen Sie es headless aus, wenn Sie Frames benötigen.

  • Der mitgelieferte Policy-Satz enthält keine StandUp-Policy, sodass eine Ente, die auf der Seite landet (z. B. nach einer rauen Roulade-Landung), dort bleibt — duck_reset ist die Notluke. Eine zu trainieren (Mjlab-StandUp-* in microduck_rl) ist die Lösung.

Roadmap

  • Echtes Roboter-Backend, das die WebSocket-API des Daemons spricht (siehe microduck-Dokumentation design/architecture.md §5.3) hinter denselben Werkzeugen

  • Körperhaltungs-Absichten (Hocken/Lehnen im Stand)

  • Optionaler StandUp-Policy-Slot, damit Stürze ohne duck_reset behebbar sind

Lizenz

Apache-2.0. Basierend auf microduck und microduck_rl von Pollen Robotics, beide Apache-2.0.

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes MuJoCo physics simulation to AI assistants via 65 MCP tools, enabling natural language control of robotics simulation, trajectory optimization, contact analysis, and video export.
    8
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides physics simulation capabilities using PyBullet, enabling 3D physics world creation, object loading, force application, and state monitoring through MCP protocol.
  • -
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that gives AI agents full control and observability of the Webots robot simulator, enabling launch and monitoring of simulations, reinforcement learning training, model evaluation, and interactive scene manipulation.

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.

View all MCP Connectors

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/aj-dev-smith/microduck-mcp'

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