UniRoboSim MCP
UniRoboSim MCP
unirobosim-mcp expone la evidencia de UniRoboSim, el estado de simulación, las imágenes de cámara del backend y el control de simulación explícitamente habilitado a clientes compatibles con MCP. El servidor tiene dos perfiles de implementación:
Perfil de evidencia (predeterminado): acceso acotado y de solo lectura a una raíz de evidencia seleccionada por el operador.
Perfil de control (explícito): herramientas de evidencia más herramientas de lectura y control para sesiones de simulador creadas y propiedad de este servidor.
El servidor no se adjunta a sesiones creadas por otras aplicaciones.
Instalación
Se admite Python >=3.11,<3.13. Instale Core, este paquete y el adaptador requerido por el backend seleccionado en el mismo entorno.
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-mujocoLas implementaciones generales usan el runtime MCP 2.x actual. Los entornos Isaac Lab 3.0 conservan sus pines verificados de Pydantic y Uvicorn, por lo que instale el extra de compatibilidad allí:
python -m pip install './UniRoboSim-mcp[isaaclab]'El extra selecciona MCP 1.10.1; expone el mismo catálogo de herramientas de UniRoboSim y se verificó mediante el protocolo stdio real con Isaac Sim 6.0.1.
Related MCP server: gazebo-mcp
Perfil de evidencia
unirobosim-mcp --root /absolute/path/to/approved/evidenceUNIROBOSIM_EVIDENCE_ROOT puede usarse en lugar de --root:
export UNIROBOSIM_EVIDENCE_ROOT=/absolute/path/to/approved/evidence
unirobosim-mcpHerramienta | Contrato |
| Devuelve la raíz activa, los límites de consulta estrictos y el estado de control. |
| Lista la evidencia permitida con un glob POSIX acotado. |
| Lee un artefacto UTF-8 o JSON acotado. |
| Valida un rastro cerrado y devuelve su manifiesto compacto. |
| Consulta eventos de publicación, borrado y reinicio sin geometría completa. |
| Consulta decisiones de publicación aceptadas, filtradas y descartadas. |
| Reconstruye primitivas de depuración activas seleccionadas en una secuencia. |
Se rechazan rutas absolutas, traversal, enlaces simbólicos que escapan, extensiones no aprobadas, archivos sobredimensionados, escaneos excesivos y recuentos de resultados excesivos.
Perfil de control
El control debe habilitarse explícitamente. Los archivos de activos locales se deniegan a menos que su árbol padre esté en la lista permitida con --asset-root.
unirobosim-mcp \
--root /absolute/path/to/approved/evidence \
--enable-control \
--asset-root /absolute/path/to/approved/assets \
--max-sessions 2 \
--lease-timeout-seconds 300API de lectura
Las herramientas de lectura requieren un ID de sesión pero no el lease de escritura.
Herramienta | Contrato |
| Descubre y prueba los puntos de entrada de backend instalados. |
| Lista las sesiones propiedad de este servidor; los valores de lease nunca se devuelven. |
| Devuelve el grafo de escena portátil para el descubrimiento de entidades y cámaras. |
| Lee el estado tipado de un cuerpo rígido, articulación, deformable, fluido de partículas o cámara. |
| Devuelve una imagen MCP que contiene datos PNG codificados desde el búfer de cámara RGB del backend. |
simulation_get_entity informa la ruta canónica, el tipo de entidad, la configuración MCP original, el tick de simulación, las formas y tipos de datos de los arreglos, y los datos específicos del tipo. include_values=true incluye valores acotados; include_contact=true agrega el estado de contacto del cuerpo rígido.
simulation_capture_camera no es una captura de pantalla de escritorio o navegador. Llama al backend seleccionado a través de Camera.read("rgb"), valida el búfer uint8 canónico [environment,height,width,3] y lo codifica como PNG. save_to_evidence=true también escribe la imagen bajo <root>/screenshots/ y devuelve su digest SHA-256 y dimensiones.
API de control
Todas las mutaciones requieren el lease_id opaco devuelto por simulation_create y un command_id único.
Herramienta | Contrato |
| Devuelve la política de propiedad, las raíces permitidas y los límites de recursos estrictos. |
| Crea una sesión EasyAPI propiedad de un backend explícito. |
| Agrega una caja, activo rígido, articulación, cámara, deformable o fluido de partículas antes del inicio. |
| Compila la escena y devuelve su huella de compilación del backend. |
| Extiende el lease de escritura sin cambiar su valor. |
| Avanza la simulación un número acotado de pasos. |
| Reinicia todas o las entornos seleccionados. |
| Aplica comandos de articulación, par de torsión rígido, deformable, fluido, escena o borrado de depuración. |
| Cierra la sesión propiedad y libera los recursos del backend. |
El uso repetido de un command_id con entrada idéntica devuelve el resultado en caché con idempotent_replay=true. Reutilizar ese identificador con entrada diferente se rechaza. Las sesiones expiradas se cierran automáticamente. Cada mutación aplicada o rechazada se escribe en mcp-control-audit.jsonl; los valores de lease se excluyen del registro de auditoría.
Regla operativa del agente
Un agente que use el perfil de control debe seguir esta secuencia:
Llame a
simulation_list_backendsy seleccione un backend disponible explícitamente.Llame a
simulation_create; conserve el lease devuelto solo para operaciones de escritura.Agregue todas las entidades con identificadores de comando únicos y luego llame a
simulation_start.Use
simulation_scene_snapshotpara descubrir rutas canónicas de entidades y cámaras.Use
simulation_get_entitypara el estado dirigido ysimulation_capture_camerapara la verificación visual.Reutilice un identificador de comando solo para reintentar la misma solicitud de escritura.
Llame a
simulation_closepara cada sesión creada, incluidos los flujos de trabajo fallidos.
El agente no debe inferir el soporte del backend a partir de la disponibilidad de herramientas. Las capacidades no compatibles del simulador se informan mediante la negociación de capacidades o mediante el adaptador seleccionado.
HTTP de bucle local
unirobosim-mcp \
--root /absolute/path/to/approved/evidence \
--transport streamable-http \
--host 127.0.0.1 \
--port 8766El HTTP no autenticado está restringido a 127.0.0.1, localhost o ::1. La implementación remota requiere una puerta de enlace autenticada y autorizada. El modo de control no debe exponerse directamente en una red no confiable.
Incrustación programática
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")Verificación
python -m pip install -e '.[dev]'
ruff format --check src tests
ruff check src tests
mypy src
coverage run -m pytest
coverage reportLa aceptación de la versión llama a cada herramienta MCP publicada a través de un cliente MCP real en proceso. Pruebas de contrato adicionales cubren todos los tipos de entidad y familias de comandos admitidos, leases, idempotencia, expiración, activos permitidos, límites de recursos, registros de auditoría, codificación PNG y evidencia de capturas guardadas. La aceptación nativa se ejecuta por separado para cada adaptador de simulador instalado; una característica no se informa como aprobada para un backend a menos que esa ejecución nativa tenga éxito.
Los contratos centrales y la instalación del adaptador se documentan en UniRoboSim Core.
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