UniRoboSim MCP
UniRoboSim MCP
unirobosim-mcp stellt UniRoboSim-Evidenz, Simulationszustand, Backend-Kamerabilder und explizit aktivierte Simulationssteuerung für MCP-kompatible Clients bereit. Der Server hat zwei Bereitstellungsprofile:
Evidence-Profil (Standard): eingeschränkter, schreibgeschützter Zugriff auf einen vom Bediener ausgewählten Evidence-Root.
Control-Profil (explizit): Evidence-Tools sowie Lese- und Steuerungstools für Simulator-Sitzungen, die von diesem Server erstellt und verwaltet werden.
Der Server verbindet sich nicht mit Sitzungen, die von anderen Anwendungen erstellt wurden.
Installation
Python >=3.11,<3.13 wird unterstützt. Installieren Sie Core, dieses Paket und den Adapter, der für das ausgewählte Backend erforderlich ist, in derselben Umgebung.
conda create -n unirobosim-mcp python=3.12 pip -y
conda activate unirobosim-mcp
git clone https://github.com/GitHofee/UniRoboSim.git
git clone https://github.com/GitHofee/UniRoboSim-mcp.git
git clone https://github.com/GitHofee/UniRoboSim-mujoco.git # example backend
python -m pip install ./UniRoboSim ./UniRoboSim-mcp ./UniRoboSim-mujocoAllgemeine Bereitstellungen verwenden die aktuelle MCP-2.x-Laufzeit. Isaac-Lab-3.0-Umgebungen behalten ihre verifizierten Pydantic- und Uvicorn-Pins bei, installieren Sie dort also den Kompatibilitäts-Extra:
python -m pip install './UniRoboSim-mcp[isaaclab]'Der Extra wählt MCP 1.10.1; er stellt denselben UniRoboSim-Toolkatalog bereit und wurde
über das echte stdio-Protokoll mit Isaac Sim 6.0.1 verifiziert.
Related MCP server: gazebo-mcp
Evidence-Profil
unirobosim-mcp --root /absolute/path/to/approved/evidenceUNIROBOSIM_EVIDENCE_ROOT kann anstelle von --root verwendet werden:
export UNIROBOSIM_EVIDENCE_ROOT=/absolute/path/to/approved/evidence
unirobosim-mcpTool | Vertrag |
| Gibt den aktiven Root, harte Abfragegrenzen und den Steuerungsstatus zurück. |
| Listet zugelassene Evidence mit einem begrenzten POSIX-Glob auf. |
| Liest ein begrenztes UTF-8- oder JSON-Artefakt. |
| Validiert eine geschlossene Ablaufverfolgung und gibt ihr kompaktes Manifest zurück. |
| Fragt Veröffentlichungs-, Lösch- und Zurücksetzungsereignisse ohne vollständige Geometrie ab. |
| Fragt akzeptierte, gefilterte und verworfene Veröffentlichungsentscheidungen ab. |
| Rekonstruiert ausgewählte aktive Debug-Primitive an einer Sequenz. |
Absolute Pfade, Traversierung, das Umgehen von Symlinks, nicht genehmigte Erweiterungen, übermäßig große Dateien, übermäßige Scans und übermäßige Ergebnisanzahlen werden abgelehnt.
Control-Profil
Control muss explizit aktiviert werden. Lokale Asset-Dateien werden verweigert, es sei denn, ihr übergeordneter Baum ist mit --asset-root auf die Zulassungsliste gesetzt.
unirobosim-mcp \
--root /absolute/path/to/approved/evidence \
--enable-control \
--asset-root /absolute/path/to/approved/assets \
--max-sessions 2 \
--lease-timeout-seconds 300Read-API
Lese-Tools erfordern eine Sitzungs-ID, aber nicht den Schreib-Lease.
Tool | Vertrag |
| Entdeckt und testet installierte Backend-Einstiegspunkte. |
| Listet Sitzungen auf, die diesem Server gehören; Lease-Werte werden nie zurückgegeben. |
| Gibt den portablen Szenengraphen für die Entitäts- und Kameraerkennung zurück. |
| Liest typisierten Zustand für einen starren Körper, eine Artikulation, ein deformierbares Objekt, eine Partikelflüssigkeit oder eine Kamera. |
| Gibt ein MCP-Bild zurück, das PNG-Daten enthält, die aus dem RGB-Kamerapuffer des Backends codiert wurden. |
simulation_get_entity meldet den kanonischen Pfad, die Entitätsart, die ursprüngliche MCP-Konfiguration, den Simulationstakt, Array-Formen und -Datentypen sowie typspezifische Daten. include_values=true enthält begrenzte Werte; include_contact=true fügt Kontaktzustand für starre Körper hinzu.
simulation_capture_camera ist kein Desktop- oder Browser-Screenshot. Es ruft das ausgewählte Backend über Camera.read("rgb") auf, validiert den kanonischen [environment,height,width,3]-uint8-Puffer und codiert diesen Puffer als PNG. save_to_evidence=true schreibt das Bild auch unter <root>/screenshots/ und gibt seinen SHA-256-Digest und seine Abmessungen zurück.
Control-API
Alle Mutationen erfordern die undurchsichtige lease_id, die von simulation_create zurückgegeben wird, sowie eine eindeutige command_id.
Tool | Vertrag |
| Gibt Eigentumsrichtlinie, zugelassene Roots und harte Ressourcengrenzen zurück. |
| Erstellt eine eigene EasyAPI-Sitzung für ein explizites Backend. |
| Fügt vor dem Start eine Box, ein starres Asset, eine Artikulation, eine Kamera, ein deformierbares Objekt oder eine Partikelflüssigkeit hinzu. |
| Kompiliert die Szene und gibt ihren Backend-Build-Fingerabdruck zurück. |
| Verlängert den Schreib-Lease, ohne seinen Wert zu ändern. |
| Führt die Simulation um eine begrenzte Anzahl von Schritten fort. |
| Setzt alle oder ausgewählte Umgebungen zurück. |
| Wendet Artikulations-, Starrkörper-Moment-, Deformierbare-, Fluid-, Szenen- oder Debug-Löschbefehle an. |
| Schließt die eigene Sitzung und gibt Backend-Ressourcen frei. |
Die wiederholte Verwendung einer command_id mit identischer Eingabe gibt das zwischengespeicherte Ergebnis mit idempotent_replay=true zurück. Die Wiederverwendung dieser Kennung mit anderer Eingabe wird abgelehnt. Abgelaufene Sitzungen werden automatisch geschlossen. Jede angewendete oder abgelehnte Mutation wird in mcp-control-audit.jsonl geschrieben; Lease-Werte sind vom Prüfprotokoll ausgeschlossen.
Agenten-Betriebsregel
Ein Agent, der das Control-Profil verwendet, muss diese Reihenfolge einhalten:
Rufen Sie
simulation_list_backendsauf und wählen Sie explizit ein verfügbares Backend aus.Rufen Sie
simulation_createauf; behalten Sie den zurückgegebenen Lease nur für Schreiboperationen.Fügen Sie alle Entitäten mit eindeutigen Befehlsidentifikatoren hinzu und rufen Sie dann
simulation_startauf.Verwenden Sie
simulation_scene_snapshot, um kanonische Entitäts- und Kamerapfade zu entdecken.Verwenden Sie
simulation_get_entityfür gezielten Zustand undsimulation_capture_camerafür visuelle Überprüfung.Verwenden Sie einen Befehlsidentifikator nur erneut, um dieselbe Schreibanforderung zu wiederholen.
Rufen Sie
simulation_closefür jede erstellte Sitzung auf, einschließlich fehlgeschlagener Arbeitsabläufe.
Der Agent darf die Backend-Unterstützung nicht aus der Verfügbarkeit von Tools ableiten. Nicht unterstützte Simulatorfunktionen werden durch Fähigkeitsverhandlung oder durch den ausgewählten Adapter gemeldet.
Loopback-HTTP
unirobosim-mcp \
--root /absolute/path/to/approved/evidence \
--transport streamable-http \
--host 127.0.0.1 \
--port 8766Nicht authentifiziertes HTTP ist auf 127.0.0.1, localhost oder ::1 beschränkt. Remote-Bereitstellung erfordert ein authentifiziertes und autorisiertes Gateway. Der Steuerungsmodus darf nicht direkt in einem nicht vertrauenswürdigen Netzwerk bereitgestellt werden.
Programmatische Einbettung
from pathlib import Path
from unirobosim_mcp import ControlLimits, EvidenceLimits, SimulationControl, create_server
root = Path("/approved/evidence")
control = SimulationControl(
root,
asset_roots=(Path("/approved/assets"),),
limits=ControlLimits(max_sessions=1, lease_timeout_seconds=120),
)
server = create_server(
root,
limits=EvidenceLimits(max_results=50, max_query_items=100),
control=control,
)
server.run(transport="stdio")Verifizierung
python -m pip install -e '.[dev]'
ruff format --check src tests
ruff check src tests
mypy src
coverage run -m pytest
coverage reportDie Release-Abnahme ruft jedes veröffentlichte MCP-Tool über einen echten In-Process-MCP-Client auf. Zusätzliche Vertragstests decken alle unterstützten Entitätstypen und Befehlsfamilien, Leases, Idempotenz, Ablauf, zugelassene Assets, Ressourcengrenzen, Prüfprotokolle, PNG-Codierung und gespeicherte Screenshot-Evidenz ab. Die native Abnahme wird separat für jeden installierten Simulator-Adapter ausgeführt; ein Feature wird für ein Backend nicht als bestanden gemeldet, es sei denn, dieser native Lauf ist erfolgreich.
Kernverträge und Adapterinstallation sind in UniRoboSim Core dokumentiert.
This server cannot be installed
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 gradedqualityDmaintenanceMCP server for controlling Universal Robots arms and Robotiq grippers via RTDE protocol, enabling motion, force, I/O, and gripper operations.1MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for AI agents to drive Gazebo / gz-sim simulation, with offline mock mode for CI/demos.4MIT
- FlicenseAqualityAmaintenanceMCP server that exposes a deterministic force-on-force simulation of FPV sUAS vs counter-UAS RF direction finding as tools for AI agents to run engagements, sweep seeds, and compare configurations.5
- FlicenseNot gradedqualityCmaintenanceMCP server for controlling a simulated robot arm with vision-based pick-and-place, driven by LLM or manual control.1
Related MCP Connectors
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
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/GitHofee/UniRoboSim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server