coppeliasim-mcp
This MCP server lets an LLM drive a running CoppeliaSim 4.10 scene through safe, non-Lua tools: build and modify scenes, run the simulation, and read object and sensor state.
Simulation control: start, stop, pause, query state, get elapsed time, and step the simulation a precise number of steps.
Scene and model management: load/save/close
.tttscenes within a restricted directory, list and load.ttmmodels from the local CoppeliaSim library.Object inspection and editing: list objects, get/set positions and orientations, create primitive shapes, delete objects, and reparent objects.
Physics and appearance: mark objects as detectable, configure dynamic/respondable/friction/mass properties (using the correct Bullet friction setting), and change colors.
Joints and rigid links: create rotary/linear joints with motor modes, set joint targets/velocities, read joint positions/forces, and create rigid attachments via force sensors.
Proximity sensors: create cone sensors, read the last detection result, and perform on-demand detection checks without running the simulation.
Safety by design: no arbitrary Lua execution, read-only mode via
COPPELIA_MODO_LECTURA=1, and restricted file paths to reduce injection and filesystem risk.
Click on "Deploy 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., "@coppeliasim-mcpCreate a cube and a proximity sensor, then run the simulation."
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.
coppeliasim-mcp
An MCP server that lets Claude Code (or any MCP client) drive a running CoppeliaSim 4.10 simulation: build scenes, move objects, create joints and proximity sensors, run the simulation and read sensors back.
It deliberately does not expose arbitrary Lua execution. That is the main difference from other CoppeliaSim MCP servers. See Security.
Tool names are Spanish by default, with optional English and Portuguese aliases — see Tool name languages.
Not affiliated with, endorsed by, or maintained by Coppelia Robotics AG. CoppeliaSim is a trademark of Coppelia Robotics AG. This is an independent third-party integration; for the simulator itself, go to coppeliarobotics.com.
Requirements
CoppeliaSim 4.10 running, with the ZMQ remote API add-on active. It ships enabled by default and listens on port 23000.
Python 3.10 or newer.
Related MCP server: Robonine MCP Server
Install
# Recommended: no clone, no virtualenv to manage
uvx coppeliasim-mcp
# Or install it
pip install coppeliasim-mcpRegister it with Claude Code:
claude mcp add coppelia -- uvx coppeliasim-mcpOr, for any MCP client that reads a JSON config:
{
"mcpServers": {
"coppelia": {
"command": "uvx",
"args": ["coppeliasim-mcp"]
}
}
}Install as a Claude Code plugin (server + skills)
Installing the plugin brings the MCP server and a set of skills that teach how to lay a CoppeliaSim project out so it stays reproducible:
/plugin marketplace add KevinInoCol/coppeliasim-mcp
/plugin install coppeliasim@coppeliasimThe plugin's .mcp.json runs uvx coppeliasim-mcp, so the server still comes
from PyPI — the repository only adds the guidance on top.
Skill | What it covers |
Project structure | one script per artifact, the connect/clean/create/build/verify order, and what belongs in the Python API rather than in these tools |
Building a scene | walls with doorways, the three independent properties (dynamic / respondable / detectable), and verifying in code that the robot fits and every area is reachable |
Differential robot and sensors | joint axis and control mode, the friction Bullet actually obeys, collision groups, sensor blind zones and the cone that sees the floor |
Each exists in Spanish, English and Portuguese; Claude picks one from context, and only the one-line descriptions stay in context permanently.
The skills are distilled from working projects, and every figure in them was measured rather than assumed.
Configuration
All settings are optional environment variables. They can also live in a .env
file in the working directory — see .env.example.
Variable | Default | What it does |
|
| Host of the ZMQ remote API add-on. |
|
| Its port. |
| current working directory | Only scenes under this folder can be loaded or saved. |
| the local CoppeliaSim library | Only |
|
| Set to |
|
| Tool-name aliases. |
|
| Seconds to wait for a reply before giving up. |
Tools
Simulation control — iniciar_simulacion, detener_simulacion,
pausar_simulacion, estado_simulacion, tiempo_simulacion,
paso_simulacion
Scenes and models — cargar_escena, guardar_escena, cerrar_escena,
listar_modelos, cargar_modelo
Objects — listar_objetos, obtener_posicion, fijar_posicion,
obtener_orientacion, fijar_orientacion, crear_primitiva,
eliminar_objeto, emparentar_objeto, fijar_detectable
Physics and appearance — fijar_dinamica, fijar_color
Joints — crear_junta, crear_union_rigida, obtener_posicion_junta,
fijar_objetivo_junta, fijar_velocidad_junta, obtener_fuerza_junta
Proximity sensors — crear_sensor_proximidad, leer_sensor_proximidad,
comprobar_sensor_proximidad
Together these build a working robot without leaving the tool catalog: shapes,
motorized joints, a rigid link, mass and friction, a sensor, then step the
simulation and measure. The differential drive robot in examples/ was
rebuilt call by call this way and travelled 98% of its theoretical distance.
What the server tells the model
At handshake the server sends the client model a short set of instructions, on
top of the tool catalog. It is deliberately about judgment rather than
mechanics: that these tools are for inspecting and verifying a scene, that a
control loop cannot run through them, and that anything reproducible belongs in
a Python script against coppeliasim_zmqremoteapi_client — the same API these
tools use — with the tools employed to check the result.
It costs ~440 tokens per request. The mechanics stay in this README, which the model reads only if you point it there.
Tool name languages
Tools are defined in Spanish (crear_primitiva, leer_sensor_proximidad, …).
Setting COPPELIA_IDIOMAS registers aliases in English and Portuguese that
point at the same functions — no duplicated logic, just more names in the
catalog.
| Tools | Catalog size | Cost per request |
| 31 | 22.7 KB | — |
| 62 | 38.4 KB | ~4,000 tokens |
| 93 | 54.2 KB | ~8,000 tokens |
The catalog is sent to the model on every request, so aliases are off by
default. Worth knowing before you turn them on: the model does not need
translated names to understand you in another language. Tool names are
identifiers, not user-facing text — ask for "move the cube forward" or "mova o
cubo para frente" and it will reach for fijar_posicion either way. Aliases help
when you want to read the catalog at a glance, or name a tool explicitly in a
prompt.
Examples
Two complete projects, built against a real simulator and measured rather than assumed — every figure quoted in this README came from them.
examples/Proyecto-01-Carrito-Diferencial/— a differential drive robot with obstacle avoidance, and where thebullet.frictionOldtrap was found.examples/Proyecto-02-Casa/— a house that verifies by BFS that every room is reachable, a robot built from dimensioned plans, and keyboard teleop.
They are plain Python against coppeliasim_zmqremoteapi_client, not tool calls:
that is what a project looks like. See examples/README.md.
Security
CoppeliaSim's Lua environment has access to os and io. A tool that runs
arbitrary Lua therefore turns any prompt injection — for example text embedded
in a third-party .ttt scene the model is asked to inspect — into command
execution on your machine. This server has no such tool, by design.
The rest of the surface is narrow on purpose:
cargar_escenaresolves the path (Path.resolve(strict=True)) before comparing it againstCOPPELIA_DIRECTORIO_ESCENAS, so../..and symlinks cannot escape it, and it only accepts scene extensions.guardar_escenawrites only under the same folder, and refuses to overwrite an existing file unless asked explicitly.cargar_modeloloads.ttmfiles only from the library that ships with your CoppeliaSim install. A.ttmcan carry Lua child scripts inside — the officialkinect.ttmcarries two — and they run on Play, so loading a model someone sent you is running their code. The tool reports how many scripts came with the model.COPPELIA_MODO_LECTURA=1disables every mutating tool at once.The scene directory defaults to the working directory, not to your home.
Notes that save debugging time
Things about the CoppeliaSim API that are easy to get wrong, and that the tools surface directly:
leer_sensor_proximidaddoes not detect. It returns the result of the simulator's last sensor pass, so with the simulation stopped it always reports nothing. Usecomprobar_sensor_proximidadto detect on demand.An object must be marked detectable to be seen by a proximity sensor. That is what
fijar_detectableis for, and it is the usual reason a sensor "doesn't work".A wide cone pointing horizontally sees the floor before it sees your obstacle. With half-aperture a and the sensor at height h, the floor enters the cone at h / tan(a). If that is under the sensor range, the sensor reports the ground.
Re-parenting renumbers sibling paths. After hanging
/Cylinder[1]off a chassis,/Cylinder[3]may become/Cylinder[1]. List objects again between successiveemparentar_objetocalls, or resolve handles up front.Parenting does not rigidly attach two dynamic shapes. Non-static shapes fall unless constrained by a joint or a force sensor — that is what
crear_union_rigidais for.Bullet reads
bullet.frictionOld, notbullet.friction. CoppeliaSim exposes both, and which one the engine obeys depends on the Bullet version selected in the scene. With the default Bullet 2.7 it is the old one, so setting onlybullet.frictiondoes nothing at all. Measured on a differential drive robot: a caster left at old-friction 1 dragged the robot down to 87% of its straight-line distance and 51% of its turn rate, skid-steering instead of pivoting on its drive axle.fijar_dinamicawrites both.A joint moves along its own +Z, and does nothing without a control mode. For a wheel driving toward +X the axis must lie along Y, and the motor stays deaf until
dynCtrlModeis set — a property, not an argument of the creation call.crear_juntahandles both.
Releasing
Publishing runs on a tag push, through
.github/workflows/publicar.yml:
# bump version in pyproject.toml first, then
git tag v0.1.0 && git push --tagsThe workflow refuses to publish when the tag and the version in
pyproject.toml disagree, installs the built wheel on Python 3.10 and 3.13, and
runs scripts/prueba_humo.py — an MCP handshake plus a
check that a call with no simulator present answers instead of hanging — before
it uploads anything. A PyPI version can never be overwritten or reused, so
failing in CI is much cheaper than burning a version number.
It authenticates with PyPI through Trusted Publishing (OIDC), so there is no token stored in the repository secrets.
License
MIT — see LICENSE.
The MIT license covers this server only. CoppeliaSim itself is licensed separately by Coppelia Robotics AG, and this package neither includes nor redistributes any part of it — it talks to a simulator you install and license yourself.
coppeliasim-mcp (español)
Un servidor MCP para manejar una simulación de CoppeliaSim 4.10 desde Claude Code o cualquier cliente MCP: construir escenas, mover objetos, crear juntas y sensores de proximidad, correr la simulación y leer los sensores.
No expone ejecución de Lua arbitrario, a propósito. Es la diferencia
principal con los otros MCP de CoppeliaSim que circulan. El Lua de CoppeliaSim
tiene acceso a os e io, así que una tool de ese tipo convierte cualquier
prompt injection —por ejemplo, texto dentro de una escena .ttt de terceros—
en ejecución de comandos sobre tu máquina.
Sin afiliación, respaldo ni mantenimiento por parte de Coppelia Robotics AG. CoppeliaSim es una marca de Coppelia Robotics AG. Esto es una integración independiente de terceros; para el simulador, ve a coppeliarobotics.com.
Requisitos
CoppeliaSim 4.10 abierto, con el add-on ZMQ remote API activo. Viene habilitado por defecto, escuchando en el puerto 23000.
Python 3.10 o superior.
Instalación
uvx coppeliasim-mcp # recomendado
pip install coppeliasim-mcp # o instalado
claude mcp add coppelia -- uvx coppeliasim-mcp # registrar en Claude CodeConfiguración
Variables de entorno, todas opcionales. También se pueden poner en un .env
en el directorio de trabajo — mira .env.example.
Variable | Por defecto | Para qué |
|
| Host del add-on ZMQ remote API. |
|
| Su puerto. |
| directorio de trabajo | Solo se pueden cargar y guardar escenas por debajo de esta carpeta. |
| la librería local de CoppeliaSim | Solo se pueden cargar modelos |
|
| A |
|
| Alias de nombres de tools. |
|
| Segundos de espera antes de dar una respuesta por perdida. |
Idiomas de los nombres de tools
Las tools se definen en español. COPPELIA_IDIOMAS registra alias en inglés y
portugués sobre las mismas funciones: no duplica lógica, solo añade nombres.
| Tools | Catálogo | Coste por petición |
| 31 | 22.7 KB | — |
| 62 | 38.4 KB | ~4.000 tokens |
| 93 | 54.2 KB | ~8.000 tokens |
El catálogo viaja en cada petición al modelo, así que los alias vienen
apagados. Y conviene saber esto antes de encenderlos: el modelo no necesita los
nombres traducidos para entenderte en otro idioma. Los nombres de tools son
identificadores, no texto de cara al usuario — pídele "move the cube forward" o
"mova o cubo para frente" y usará fijar_posicion igual. Los alias sirven para
leer el catálogo de un vistazo, o para nombrar una tool explícitamente.
Ejemplos
Dos proyectos completos, construidos contra un simulador real y medidos en vez de supuestos: todas las cifras que se citan en este README salieron de ahí.
examples/Proyecto-01-Carrito-Diferencial/— un carrito diferencial con evasión de obstáculos, y donde apareció la trampa debullet.frictionOld.examples/Proyecto-02-Casa/— una casa que verifica por BFS que se llega a todas las habitaciones, un robot construido a partir de planos acotados, y teleoperación por teclado.
Son Python contra coppeliasim_zmqremoteapi_client, no llamadas a tools: así es
como se ve un proyecto. Mira examples/README.md.
Cosas que ahorran horas de depuración
leer_sensor_proximidadno detecta. Devuelve el resultado del último barrido del simulador, así que con la simulación detenida siempre dice que no hay nada. Para detectar en el momento,comprobar_sensor_proximidad.Un objeto tiene que estar marcado como detectable para que un sensor de proximidad lo vea. Para eso está
fijar_detectable, y es la causa habitual de un sensor que "no funciona".Un cono ancho en horizontal ve el suelo antes que el obstáculo. Con media apertura a y el sensor a altura h, el suelo entra en el cono a h / tan(a). Si eso queda por debajo del alcance, el sensor reporta el piso.
Emparentar renumera las rutas de los hermanos. Al colgar
/Cylinder[1]de un chasis,/Cylinder[3]puede pasar a ser/Cylinder[1]. Vuelve a listar los objetos entre llamadas, o resuelve los handles antes de tocar la jerarquía.Emparentar no une rígidamente dos cuerpos dinámicos. Las formas no estáticas se caen si no las sujeta una junta o un force sensor — para eso está
crear_union_rigida.Bullet lee
bullet.frictionOld, nobullet.friction. CoppeliaSim expone las dos, y cuál obedece el motor depende de la versión de Bullet elegida en la escena. Con el Bullet 2.7 por defecto manda la vieja, así que escribir solobullet.frictionno hace nada. Medido sobre un robot de tracción diferencial: con la rueda loca en fricción vieja 1, recorría el 87% de lo que le tocaba en recta y el 51% en giro, derrapando en vez de pivotar sobre su eje motriz.fijar_dinamicaescribe las dos.Una junta se mueve sobre su propio +Z, y no hace nada sin modo de control. Para una rueda que avance hacia +X el eje tiene que estar sobre Y, y el motor sigue sordo hasta que se le pone
dynCtrlMode, que es una propiedad y no un argumento de la llamada de creación.crear_juntase ocupa de las dos cosas.
Licencia
MIT — mira LICENSE.
La licencia MIT cubre solo este servidor. CoppeliaSim se licencia por separado con Coppelia Robotics AG, y este paquete no incluye ni redistribuye ninguna parte de él: habla con un simulador que instalas y licencias tú.
Available Tools
31 toolscargar_escenaA
Carga una escena .ttt o .xml desde disco.
Solo se permiten rutas por debajo del directorio configurado en COPPELIA_DIRECTORIO_ESCENAS.
| Name | Required | Description | Default |
|---|---|---|---|
| ruta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the path restriction, a meaningful behavioral constraint. But it does not mention potential side effects like replacing the current scene or whether the simulation must be stopped before loading, which could be important for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. The first states the action and object, the second adds a crucial constraint, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the essential purpose and constraint. The output schema presumably documents return values, so that is not a gap. It could be more complete by noting whether loading replaces the current scene or requires a stopped simulation, but these are minor omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only a bare 'ruta' string parameter with 0% description coverage, so the description must compensate. It does by specifying that the path must point to a .ttt or .xml file and must be located beneath the configured COPPELIA_DIRECTORIO_ESCENAS directory, giving the parameter clear semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Carga' (loads) and clearly identifies the resource: a scene file with .ttt or .xml extension from disk. This distinguishes it from sibling tools like cerrar_escena (close scene) and simulation control tools, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the verb and resource: use this to load a scene file. The description adds a clear constraint that only paths under COPPELIA_DIRECTORIO_ESCENAS are allowed, which guides when and how to call it. However, it does not explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cargar_modeloA
Carga un modelo .ttm de la librería de CoppeliaSim en la escena.
modelo: ruta relativa dentro de la librería, tal como la devuelve
listar_modelos (por ejemplo 'components/sensors/kinect.ttm').
Solo carga de esa librería, y no de una ruta cualquiera, a propósito: un .ttm puede llevar child scripts en Lua dentro —el kinect.ttm oficial lleva dos— y esos scripts se ejecutan al darle Play. Cargar un modelo que llegó de fuera es, en la práctica, ejecutar el código que traiga.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| modelo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals a critical non-obvious security risk: external .ttm files can contain Lua child scripts that execute on Play, so loading an arbitrary path is equivalent to running untrusted code. This is exactly the kind of behavior an agent needs to know before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then explains the key parameter, then gives a concise security rationale. Every sentence earns its place, and the structure guides the reader from purpose to constraints to risk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The security context, path restriction, and link to listar_modelos make the tool safe and usable. The main gap is that x, y, and z are not described at all, even though they likely control placement; an agent might still infer their meaning from names and defaults, but explicit documentation would make the tool fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It richly explains the required 'modelo' parameter, including its origin, format, and an example, but it says nothing about the x, y, and z parameters, which remain only minimally indicated by their names and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Carga') and resource ('un modelo .ttm de la librería de CoppeliaSim en la escena'), clearly distinguishing it from loading a whole scene (cargar_escena). It even provides an example path to remove ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs the agent to obtain the model path from listar_modelos, and explains why only library paths are allowed. It does not directly contrast with cargar_escena, but the scope is clear enough for an agent to decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cerrar_escenaA
Cierra la escena actual.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose side effects (e.g., whether closing the scene affects simulation state, objects, or unsaved data). This leaves behavioral impact ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no unnecessary words or repetition, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no annotations), the description is adequately complete for the tool's purpose. However, it lacks nuance about when this action is appropriate, so it is not a perfect 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params), so the schema coverage is complete. The baseline for 0 params is 4; the description does not need to add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cierra la escena actual' clearly states the action (close) and the resource (current scene), making it distinct from sibling commands like 'iniciar_simulacion' or 'cargar_escena'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide context on when to close the scene (e.g., after completing tasks) or contrast with alternative commands. It is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comprobar_sensor_proximidadA
Detecta ahora mismo con un sensor de proximidad, sin necesidad de simulación.
Diferencia con leer_sensor_proximidad: esa tool NO detecta, solo devuelve
el resultado del último barrido que hizo el simulador, así que con la
simulación detenida siempre dice que no hay nada. Esta hace la detección en
el momento, y sirve para verificar una escena en reposo.
| Name | Required | Description | Default |
|---|---|---|---|
| sensor | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses the key behavioral trait that this tool performs an immediate physical detection rather than reading cached simulation state. It does not mention possible errors, permissions, or side effects, but for a simple probe tool these are less critical and are partly covered by the presence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the core action, followed by a useful contrast and an intended-use statement. Every sentence adds information and no redundant filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, the description is largely complete: it communicates purpose, timing, simulation independence, and differentiates the sibling tool. The main gap is the lack of parameter semantics, and the absence of annotations leaves the safety/permission profile unstated; nevertheless, the overall context is sufficient for selection in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0% and the description does not explain the 'sensor' parameter beyond its name. The parameter name suggests it identifies a proximity sensor, but no guidance about valid values, object naming, or how missing/invalid sensors behave is given, so the description does not compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Detecta ahora mismo con un sensor de proximidad, sin necesidad de simulación.' It clearly identifies the real-time detection action and explicitly distinguishes this tool from 'leer_sensor_proximidad', making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling alternative 'leer_sensor_proximidad' and explains why it is not the right choice for live detection: that tool only returns the last simulator sweep and reports nothing when simulation is stopped. It then states for this tool 'sirve para verificar una escena en reposo', giving a clear when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crear_juntaA
Crea una articulación motorizada y la deja lista para recibir órdenes.
tipo: 'rotativa' (gira) o 'lineal' (desliza). eje: 'x', 'y' o 'z' — en qué dirección gira o desliza, respecto al padre. modo: 'velocidad' para un motor de rueda, 'posicion' para un brazo, 'libre' para que la junta gire suelta sin motor. par_maximo: par o fuerza que el motor puede dar (N·m o N). Si se queda corto, la junta no llega a la velocidad pedida y no hay ningún error que lo diga: simplemente va lenta. padre: ruta del objeto del que cuelga, por ejemplo el chasis de un robot.
Dos cosas que cuesta descubrir a solas:
Una junta se mueve a lo largo de su propio +Z. Para una rueda que avance hacia +X, su eje tiene que quedar sobre Y: eje='y'. Esta tool aplica el giro por ti.
El motor no obedece hasta que se le pone el modo de control dinámico. Es una propiedad de la junta, no un argumento de la llamada de creación, y una junta sin ella se queda quieta pase lo que pase.
Después de crearla: cuelga la rueda de la junta con emparentar_objeto,
dale masa con fijar_dinamica, y muévela con fijar_velocidad_junta.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| eje | No | z | |
| modo | No | velocidad | |
| tipo | No | rotativa | |
| alias | No | Junta | |
| padre | No | mundo | |
| par_maximo | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral burden. It discloses non-obvious facts: the joint moves along its own +Z, the tool applies the axis rotation automatically, the motor stays inert until dynamic control mode is set, and insufficient par_maximo causes silent slow behavior with no error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose, parameter legend, two hard-to-discover notes, and follow-up steps. Every section adds non-obvious value, and the most important behavioral caveats are explicitly highlighted rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter creation tool with no annotations and a 0% schema description coverage, the description covers the essential creation semantics, hidden behavior, and required follow-up actions. The output schema handles return values. The main gap is the undocumented x/y/z and alias parameters, which prevents full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only documentation for parameters. It thoroughly explains tipo, eje, modo, par_maximo, and padre with concrete examples and units. However, it omits x, y, z, and alias entirely, leaving those parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Crea una articulación motorizada y la deja lista para recibir órdenes.' It clearly distinguishes this from rigid-union and simulation tools, and the detailed type/mode explanations reinforce what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it explains when to use each mode, warns about axis orientation, and explicitly lists the post-creation workflow with emparentar_objeto, fijar_dinamica, and fijar_velocidad_junta. However, it does not state when to prefer an alternative like crear_union_rigida or explicitly list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crear_primitivaA
Crea una forma primitiva en la escena y devuelve su ruta.
forma: 'cubo', 'esfera', 'cilindro', 'cono', 'capsula', 'disco', 'toroide'. Tamaños y posición en metros. alias: nombre con el que quedará en la escena. Sin él CoppeliaSim las llama 'Cuboid', 'Cuboid[0]', 'Cuboid[1]'..., y como emparentar renumera a los hermanos, la ruta que te devolvió una llamada puede referirse a otra pieza tres llamadas después. Con nombres propios eso no pasa.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| alias | No | ||
| forma | Yes | ||
| tamano_x | No | ||
| tamano_y | No | ||
| tamano_z | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does a good job by revealing that the tool returns a path, that unnamed objects receive default CoppeliaSim names, and that parenting can rename siblings and invalidate previously returned paths. This is a critical side-effect warning. It does not discuss error cases or whether simulation must be running, but the core behavioral risk is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The primary purpose appears in the first sentence, followed by a concise parameter legend and a necessary warning about alias behavior. Every sentence adds value; there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is an output schema and 8 parameters with no annotations, the description covers the essential operational context: what is created, what values are accepted, units of measurement, and a subtle path-stability caveat. It does not cover duplicate-alias behavior or whether the scene must be in a particular state, but these are secondary gaps rather than fundamental omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It does so by listing valid values for 'forma', stating that sizes and position are in meters, and explaining the 'alias' parameter's role and its impact on path stability. This adds meaning beyond the bare schema names, though it does not explicitly map each coordinate or size parameter to its intended semantic beyond 'position' and 'sizes'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Crea una forma primitiva en la escena y devuelve su ruta.' It clearly identifies the action, the object being created, and the return value. It also enumerates the supported primitive types, making the tool's scope unambiguous and distinguishing it from sibling creation tools like crear_junta or cargar_modelo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: use this tool when you need to create a primitive shape such as a cube, sphere, or cylinder. However, it does not explicitly state when not to use it or mention alternatives like cargar_modelo for importing models or crear_junta for joints. The guidance is enough to infer intent but not explicit about trade-offs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crear_sensor_proximidadA
Crea un sensor de proximidad cónico y lo orienta hacia el frente (+X).
x, y, z: posición en metros, relativa al padre (o al mundo si padre='mundo'). alcance: hasta dónde ve, en metros. apertura_grados: apertura total del cono. Cuanto más ancho, más 've' de lado. padre: ruta del objeto del que debe colgar, por ejemplo el chasis de un robot.
Dos trampas de geometría, por si el sensor 'no detecta lo que debería':
El sensor mira a lo largo de su eje +Z. Esta tool lo rota 90° sobre Y para que mire al frente (+X), que es la convención de avance habitual.
Un cono ancho en horizontal ve el SUELO antes que el obstáculo: con media apertura a y el sensor a altura h, el suelo entra en el cono a h/tan(a) metros. Si eso queda por debajo del alcance, el sensor reportará el piso. Estrecha la apertura o sube el sensor.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| alias | No | SensorProximidad | |
| padre | No | mundo | |
| alcance | No | ||
| apertura_grados | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the sensor's orientation and warns about ground interference, offering transparency about spatial behavior. However, it does not disclose expected return values, side effects (e.g., scene modifications), or potential errors, leaving some behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise overall, but the 'two geometry pitfalls' section adds length. It is structured logically and every sentence provides value, though the pitfall explanation could be trimmed without losing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers creation, orientation, and one practical trap, but lacks details on return values, error handling, and the alias parameter. Given the tool's moderate complexity, these omissions leave gaps for a complete understanding of its usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains x, y, z as position in meters relative to parent, alcance as range, apertura_grados as cone angle, and padre as parent path. However, it omits the 'alias' parameter entirely, which is present in the schema, leaving its purpose undocumented and reducing semantic completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a conical proximity sensor and orients it forward (+X). It distinguishes itself from sibling tools like 'leer_sensor_proximidad' (read sensor) and 'comprobar_sensor_proximidad' (check sensor), which are for reading or verifying existence, making the creation purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical guidance on common geometry pitfalls (sensor orientation and ground detection) that affect usage, but it does not explicitly state when to prefer this tool over alternatives. The intended use case (creating a sensor) is implicit given the tool's name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crear_union_rigidaA
Crea un sensor de fuerza, que es como se sueldan dos cuerpos dinámicos.
Suena raro usar un sensor para unir cosas, pero es lo que documenta CoppeliaSim: emparentar dos formas dinámicas NO las une —siguen siendo cuerpos separados y se caen cada uno por su lado—, y la única forma de fijarlas es una junta o un sensor de fuerza.
Y hay un caso donde el sensor de fuerza es la única opción: cuando las dos piezas necesitan rozamientos distintos. Fusionar las formas las obliga a compartir el coeficiente, así que un chasis con agarre y una rueda loca que resbale no se pueden fusionar; hay que unirlos por aquí.
Uso: se crea colgando del chasis, y la pieza a unir se cuelga de él con
emparentar_objeto. De paso mide la fuerza que pasa por la unión, que se
lee con obtener_fuerza_junta.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| alias | No | UnionRigida | |
| padre | No | mundo |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It explains that this tool creates a force sensor, not an actual weld, and that it also measures the force through the union. It clearly states that simply parenting dynamic shapes does not unite them and that this sensor is the actual joining mechanism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than minimal, but every paragraph contributes meaningful conceptual or usage information. It is front-loaded with the main purpose and then builds to a concrete use case. The friction example is illustrative rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives strong high-level guidance and even points to the related tool for reading force, and an output schema exists. However, the five parameters are undocumented in both schema and description, leaving a significant gap for an agent that must construct valid arguments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain x, y, z, alias, or padre. The parent-child relationship is hinted at by 'se crea colgando del chasis,' but parameter names, units, coordinate frame, and default behavior are left entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Crea un sensor de fuerza', a specific verb and resource, and immediately clarifies that this is how two dynamic bodies are rigidly joined. It distinguishes itself from alternatives like crear_junta and fusing shapes by explaining exactly when the force-sensor approach is required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use this tool versus parent-child dynamic linking or fusing shapes, including the friction-coefficient edge case where the force sensor is the only option. It also provides a clear usage pattern: create attached to the chassis, then parent the target piece with emparentar_objeto.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detener_simulacionA
Detiene la simulación en CoppeliaSim.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It simply says 'stops the simulation' without detailing side effects (e.g., does it reset the scene, clear object states, or just halt execution?). No mention of prerequisites, reversibility, or impact on related tools. This is minimal disclosure for a state-changing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is concise and front-loaded with the action verb. No extraneous wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no params, no side effects stated), and there is an output schema (though not shown). However, given the lack of annotations, the description could benefit from mentioning any relevant behavioral details such as whether the simulation state resets or if it returns a status. Since it's a straightforward stop command, this is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage (since it's empty). Baseline for 0 params is 4. The description adds no parameter info, but none is needed. It correctly reflects a parameterless operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Detiene la simulación en CoppeliaSim' (stops the simulation in CoppeliaSim). It uses a specific verb ('Detiene') and resource ('la simulación'), distinguishing it from sibling tools like 'pausar_simulacion' (pause) and 'iniciar_simulacion' (start). No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like pausar_simulacion or estado_simulacion. The description only states what it does, not whether it should be used for stopping vs pausing, or any prerequisites. Without explicit usage context, the agent may mis-select.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eliminar_objetoC
Elimina un objeto de la escena por su ruta.
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only restates the action already implied by the tool name, without mentioning that deletion is irreversible, what happens to child objects, permission requirements, or error behavior. This is insufficient for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action, and contains no redundant wording. Every word contributes meaning, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool, it is destructive and lacks annotations. The description omits important context such as effects on the scene hierarchy, error handling, and required preconditions. An output schema exists but is not shown; still, the description alone is insufficient for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. The phrase 'por su ruta' adds meaning by suggesting the 'nombre' parameter is a path, but it doesn't clarify the path format or behavior on invalid input. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (elimina/deletes) and the resource (objeto de la escena/object from the scene). It distinguishes from siblings like crear_primitiva. However, there is a slight ambiguity: it says 'por su ruta' (by its path) while the schema parameter is 'nombre' (name), which could confuse the identifier type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, nor about prerequisites such as the object being loaded or the need to use listar_objetos first. The description only states what the tool does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emparentar_objetoA
Cuelga un objeto de otro, para que se muevan como un solo cuerpo.
padre: ruta del nuevo padre, o 'mundo' para devolver el objeto a la raíz. mantener_pose: True deja el objeto donde está; False lo lleva al origen del padre.
Ojo: emparentar renumera las rutas de los hermanos ('/Cylinder[3]' puede pasar a ser '/Cylinder[1]'). Si vas a emparentar varias piezas seguidas, vuelve a listar los objetos entre una llamada y la siguiente.
| Name | Required | Description | Default |
|---|---|---|---|
| padre | Yes | ||
| objeto | Yes | ||
| mantener_pose | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavior. It explicitly warns that parenting renumbers sibling paths ('emparentar renumera las rutas de los hermanos'), a significant side effect. However, it does not mention potential permissions, error conditions, or what happens to the object's pose beyond the parameter explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. It uses two short paragraphs, clearly separates parameter explanations from the warning. The warning is slightly verbose but necessary. Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not provided) and is a mutation with side effects. The description covers the essential behavior, parameter meanings, and a critical caution about path renumbering. It is sufficiently complete for an agent to use correctly, though it could include more about return values or failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), so the description must compensate. It explains 'padre' and 'mantener_pose' in detail, but does not explicitly define 'objeto', which is required. While it can be inferred from context, the lack of explicit clarification for the core parameter is a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Cuelga un objeto de otro, para que se muevan como un solo cuerpo' (hangs an object from another so they move as one). It uses a specific verb and resource, distinguishing it from sibling tools like fijar_orientacion or obtener_posicion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a practical usage warning: 'Si vas a emparentar varias piezas seguidas, vuelve a listar los objetos entre una llamada y la siguiente' (re-list objects between consecutive parenting calls). This guides the user on how to handle a common scenario, though it does not explicitly mention alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estado_simulacionB
Consulta si la simulación está detenida, corriendo o pausada.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully carry the behavioral transparency burden. It states only that it queries simulation state, but does not disclose whether this is a safe, non-mutating operation, what the output format is, or potential side effects. The available output schema might add some structure, but the description itself is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence: 'Consulta si la simulación está detenida, corriendo o pausada.' It contains no filler and immediately states the tool's purpose. For a simple tool with no parameters, this is appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema present), the description is minimally adequate. However, it could benefit from mentioning the three possible states explicitly in a structured way, and possibly referencing the output schema to clarify return values. It does not address potential error conditions or when the simulation might be unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%, so there are no parameters to explain. The description correctly focuses on the tool's function rather than parameters, warranting a baseline score of 4 as specified in the rubric for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to query the simulation status (stopped, running, or paused). While it doesn't explicitly differentiate from siblings like iniciar/detener/pausar, the verb 'consulta' and the resource 'simulación' make the function clear enough. Lacks mention of alternatives, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other simulation control tools. It doesn't mention that this is a read-only alternative to tools like iniciar_simulacion or detener_simulacion, nor does it suggest appropriate context. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_colorB
Pinta una forma. Componentes de 0 a 1.
Sirve para algo más que la estética: en una escena de veinte cubos grises, el color es lo que permite decir cuál es cuál en una captura.
| Name | Required | Description | Default |
|---|---|---|---|
| b | Yes | ||
| g | Yes | ||
| r | Yes | ||
| nombre | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It adds useful non-obvious context: RGB components are normalized to 0–1 and the color affects captures/identification. However, it does not disclose whether the change is persistent, whether the named shape must already exist, or whether it overrides previous colors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the main action front-loaded and no filler. The second sentence adds a useful example but is slightly more elaborate than strictly necessary, so it is concise but not maximally lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple set-color operation, the description is close to sufficient: action, parameter range, and purpose are present. Missing are explicit target resolution (what 'nombre' refers to), preconditions such as the object existing, and side-effect/return behavior; the output schema reduces the need for return documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The phrase 'Componentes de 0 a 1' adds a critical constraint to r/g/b that the schema does not provide (schema description coverage is 0%). It leaves the 'nombre' parameter unexplained and does not explicitly map components to r/g/b, though the schema titles partially cover that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Pinta una forma') and the resource ('forma'), and the tool name 'fijar_color' plus the sibling set of fijar_* tools make it distinguishable as the color-setter among position/orientation setters. It does not explicitly say 'sets the color of the object/shape named by nombre', so the resource is slightly vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage context: color is functional for distinguishing objects in a capture, not merely aesthetic. This implies when to use the tool, but it does not explicitly state when not to use it or point to an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_detectableA
Marca o desmarca un objeto como detectable por los sensores de proximidad.
Un objeto no detectable es invisible para leer_sensor_proximidad, aunque
esté justo delante del sensor. Es la causa habitual de un sensor que 'no
funciona'.
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes | ||
| detectable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool changes an object's detectability, explains the consequence (invisibility to 'leer_sensor_proximidad'), and offers a troubleshooting tip. This adds behavioral context beyond the schema, though it does not mention reversibility or permissions, but the toggle nature is implied by 'marca o desmarca'. No contradiction with annotations (none present).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and every sentence adds value. The second sentence provides meaningful operational insight (cause of sensor malfunction) without fluff. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only 2 parameters, and an output schema exists, so the description needn't explain return values. It covers the purpose, the effect on sensors, and a practical use case. However, it lacks parameter explanations, which are partially covered in the parameter semantics score. Overall, given the simple nature of the tool and existing schema, the description is fairly complete, but not perfect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It explains the concept of 'detectable' implicitly but never explicitly describes the 'nombre' parameter or how to use the 'detectable' boolean (e.g., what values map to marking/unmarking). It does not add any parameter-level detail beyond what the schema's titles already imply. This is a significant gap given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is explicitly stated: 'Marca o desmarca un objeto como detectable por los sensores de proximidad.' The verb 'marca/desmarca' and resource 'objeto' are specific, and it distinguishes itself from siblings like 'fijar_orientacion' or 'obtener_posicion' by focusing on detectability for proximity sensors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when this tool is relevant: it explains how non-detectable objects affect 'leer_sensor_proximidad' and that it is a common cause of sensor malfunction. This implies when to use it (when sensors appear broken), but it does not explicitly contrast with alternatives like 'crear_sensor_proximidad' or give a formal when-not-to-use. This is clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_dinamicaA
Deja una forma lista para el motor de física: masa, contacto y rozamiento.
Sin esto una forma recién creada es decorado: ni cae, ni empuja, ni la empujan. Es el paso que falta entre 'crear_primitiva' y tener un robot.
dinamico: False la clava en el sitio (suelo, paredes, obstáculos). respondable: si choca con las demás. Un cuerpo dinámico no respondable atraviesa el suelo y se cae de la escena. densidad: kg/m³ para calcular masa e inercia a partir del volumen real de la forma. 0 significa 'no tocar la masa'. Para una masa concreta, divide esa masa entre el volumen. Solo funciona en formas convexas. friccion: 0 resbala, 1 agarra. Negativo significa 'no tocar el rozamiento'. chocar_con_hermanos: False evita que las piezas de un mismo robot choquen entre ellas (ruedas contra chasis), que es de donde salen los temblores, sin dejar de chocar con el suelo y el resto del mundo.
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes | ||
| densidad | No | ||
| dinamico | No | ||
| friccion | No | ||
| respondable | No | ||
| chocar_con_hermanos | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does so well: it explains that non-respondable dynamic bodies fall through the floor, that dinamico=False anchors the shape, that negative friction means 'do not touch', and that density mass calculation only works on convex shapes. It does not cover side effects like reversibility or errors, but the provided failure modes and sentinel-value semantics are substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then uses line-separated parameter definitions without filler. Each sentence adds useful information, especially the warnings about non-respondable bodies and density constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations, the description covers the main behaviors, parameter semantics, edge cases, and the workflow context after crear_primitiva. Since an output schema exists, the lack of return-value explanation is acceptable; nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by explaining five of six parameters with units (kg/m³), sentinel meanings (0 = don't touch mass, negative = don't touch friction), and physical consequences. Only 'nombre' is left to its self-evident title, which is a minor gap for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action—'Deja una forma lista para el motor de física'—with a clear resource ('forma') and scope (mass, contact, friction). It positions the tool relative to the sibling flow by calling it 'el paso que falta entre crear_primitiva y tener un robot,' which distinguishes it from creation/placement siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to call it: after creating a primitive, before the object behaves physically; without it a shape is 'decorado' and neither falls nor pushes. It gives clear context but does not name exclusions or alternative tools such as fijar_posicion, so it stops short of a full when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_objetivo_juntaB
Fija la posición objetivo de una articulación (radianes o metros).
| Name | Required | Description | Default |
|---|---|---|---|
| junta | Yes | ||
| posicion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It adds the nuance that the position is a 'target' (objetivo) rather than a direct instantaneous set, and mentions units, but it does not disclose whether the command triggers motion, requires a running simulation, or has any side effects. This is insufficient transparency for a mutation tool in a robotics context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately states the purpose and includes a useful parenthetical about units. There is no redundant phrasing or filler, and every word contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich set of sibling tools (fijar_posicion, fijar_velocidad_junta, etc.) and the presence of an output schema, the description is too sparse to be contextually complete. It lacks guidance on how to select this tool, what the 'junta' parameter refers to, and the behavior when commands are issued. While the output schema reduces the need to describe return values, the description still misses critical selection and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'posicion' is measured in radians or meters, but provides no explanation of the 'junta' parameter (e.g., name, ID, or index) and does not specify which joint types use which units. This is minimal added meaning beyond the raw schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Fija la posición objetivo de una articulación' (sets the target position of a joint). It uses a specific verb and resource, and the phrase 'articulación' differentiates it from sibling tools like 'fijar_posicion' which likely sets object positions. The parenthetical '(radianes o metros)' further clarifies the semantic scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the exact operation (setting a joint's target position) but offers no explicit guidance on when to choose this tool over alternatives like 'fijar_posicion' or 'fijar_velocidad_junta'. There are no exclusions or alternative references, leaving the agent to infer the appropriate context from the tool name and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_orientacionB
Fija la orientación de un objeto con ángulos de Euler en radianes.
| Name | Required | Description | Default |
|---|---|---|---|
| alfa | Yes | ||
| beta | Yes | ||
| gamma | Yes | ||
| nombre | Yes | ||
| relativo_a | No | mundo |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it sets orientation with Euler angles but not its effect on the simulation state, possible errors (e.g., object not found), or return values. Since no annotations are provided, the description carries the full burden, yet it remains minimal and does not cover side effects or preconditions beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the key purpose. No redundant words or filler; it stays to the point and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no schema coverage, the description is insufficient. It misses usage context, parameter details for 'relativo_a', and does not explain what happens on success or failure. Even though an output schema exists, the description alone is too thin for an agent to understand the full scope of the tool, especially with no annotations to assist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains that alfa, beta, and gamma are Euler angles in radians, adding value beyond the schema that only lists them as numbers. However, it fails to explain the 'nombre' parameter (object identifier) and completely omits 'relativo_a' (reference frame), despite the schema having a default and possible implications. With 0% schema coverage, the description should explain all parameters, but it covers only part of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets an object's orientation using Euler angles in radians. It uses a specific verb (fija) and resource (orientación de un objeto), distinguishing it from siblings like obtener_orientacion (get) and fijar_posicion (set position).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives (e.g., obtener_orientacion for reading, fijar_posicion for position). No context or exclusions are mentioned, leaving the agent to infer usage from the function name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_posicionB
Mueve un objeto a la posición (x, y, z), en metros.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| z | Yes | ||
| nombre | Yes | ||
| relativo_a | No | mundo |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without revealing side effects, error conditions, or whether the position is absolute or relative. The existence of the parameter 'relativo_a' suggests a reference frame, but this is not explained. There is no mention of what happens if the object is already at that position or if coordinates are out of range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It communicates the core function efficiently, making it easy for an agent to parse and act upon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers the main action and units, but it omits critical context about the 'relativo_a' parameter and the coordinate frame. While the output schema is indicated to exist, the description does not mention expected return values or side effects, leaving some gaps for an agent to trust the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only explains the meaning of x, y, z as coordinates in meters, but it does not clarify the role of 'nombre' (object name) or 'relativo_a' (relative to). Since the schema provides no descriptions, the description fails to add value for these parameters, leaving significant ambiguity about the reference frame and object identification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: moving an object to a specified position (x, y, z). It is specific with a verb (mover) and resource (objeto), and it distinguishes itself from sibling tools like fijar_orientacion (set orientation). The inclusion of units (metros) adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention scenarios where setting position is appropriate, nor does it contrast with sibling functions like obtener_posicion or fijar_orientacion. Users are left to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fijar_velocidad_juntaC
Fija la velocidad objetivo de una articulación.
| Name | Required | Description | Default |
|---|---|---|---|
| junta | Yes | ||
| velocidad | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('Fija la velocidad objetivo') without mentioning side effects, whether it is a write operation, required permissions, units, or interaction with the simulation lifecycle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the core purpose efficiently and is appropriately concise for a simple two-parameter setter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers the basic action and object, but it lacks important context such as units for velocity, whether the joint must exist, or when the tool should be used relative to simulation state. The presence of an output schema reduces the need to describe return values, but the description is only minimally sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage; the parameter descriptions are just titles 'Junta' and 'Velocidad'. The tool description adds only that the velocity is an 'objetivo' (target), but does not explain the format of 'junta', units of 'velocidad', valid ranges, or any other semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fija' and a specific resource 'la velocidad objetivo de una articulación', clearly indicating the tool sets a joint's target velocity. It is clear but does not explicitly distinguish itself from sibling tools such as 'fijar_objetivo_junta', so it does not fully earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no context about simulation state or prerequisites. The only implied usage comes from the tool name and general purpose, which is not enough guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guardar_escenaA
Guarda la escena actual en un .ttt.
Solo escribe por debajo de COPPELIA_DIRECTORIO_ESCENAS, y se niega a pisar un archivo que ya exista salvo que le pases sobrescribir=True. Escribir encima de la escena de otro es de las pocas cosas que aquí no tienen deshacer, así que hay que pedirlo a propósito.
| Name | Required | Description | Default |
|---|---|---|---|
| ruta | Yes | ||
| sobrescribir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the directory constraint, the overwrite refusal, and the irreversible nature of overwriting another scene, which is critical for a mutation tool. This goes well beyond a generic save statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose followed by necessary safety details. It contains no filler and does not redundantly repeat schema defaults beyond what adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with an output schema, the description is complete: it covers purpose, path scope, overwrite semantics, and undo risk. It does not need to explain return values because an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining 'sobrescribir=True' as the explicit overwrite opt-in and the ruta constraint as being under COPPELIA_DIRECTORIO_ESCENAS. The meaning of ruta as the target file path is implied by 'Guarda la escena actual en un .ttt'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Guarda la escena actual en un .ttt', naming a specific verb, resource, and output format. It is clearly distinguishable from siblings like cargar_escena and cerrar_escena, which are load/close operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for use (saving the current scene to a .ttt) and explicit operational guidance: it writes only under COPPELIA_DIRECTORIO_ESCENAS and refuses to overwrite unless sobrescribir=True. However, it does not explicitly name alternatives or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iniciar_simulacionB
Inicia la simulación en CoppeliaSim.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It only states 'starts the simulation' but does not explain potential side effects (e.g., resets simulation time, throws error if already running, requires an active scene), nor does it mention return values or errors. This minimal disclosure falls short for an action tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It is front-loaded and directly communicates the action. Perfect conciseness for a parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is extremely minimal. It does not mention any side effects, error conditions, or interaction with other tools (e.g., must load a scene first). With no annotations and no output schema details provided in context, the description lacks sufficient information for an agent to fully understand the behavior and prerequisites. Given the simple action, a bit more context (e.g., 'starts or resumes simulation from current state') would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is effectively 100%. There is nothing for the description to add about parameters. The baseline for 0-parameter tools is 4, and the description doesn't need to elaborate on parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Inicia la simulación en CoppeliaSim' (starts the simulation in CoppeliaSim). It specifies a specific verb ('inicia') and resource ('simulación'), and the purpose is distinct from sibling tools like detener_simulacion (stop), pausar_simulacion (pause), and estado_simulacion (state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There's no mention of prerequisites (e.g., a scene must be loaded), conditions (e.g., simulation must be stopped or paused), or any indication that this should be called before others. The description simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leer_sensor_proximidadB
Lee un sensor de proximidad: si detecta algo, a qué distancia y en qué punto.
| Name | Required | Description | Default |
|---|---|---|---|
| sensor | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries some burden. It indicates a read operation (implying no side effects) and lists the output fields, but does not mention potential errors, permission requirements, or whether the sensor must exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the tool's function and expected output. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is too minimal. It does not clarify how to interpret the parameter, what the output looks like in detail, or any error conditions. The tool is simple, but the description leaves gaps for successful usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'sensor' has no description in the schema, and the tool description does not explain what it represents (e.g., name, ID, or how to specify it). With 0% schema coverage and no compensation in the description, parameter semantics are inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a proximity sensor and specifies the output: detection status, distance, and point. It distinguishes from sibling 'comprobar_sensor_proximidad' by using 'lee' (reads) and detailing what data is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives like 'comprobar_sensor_proximidad'. The description does not mention conditions, prerequisites, or context for using this read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar_modelosA
Lista los modelos .ttm de la librería que trae CoppeliaSim instalado.
filtro: texto que debe aparecer en la ruta, sin distinguir mayúsculas ('kinect', 'robots/mobile', 'sensor'). Sin filtro devuelve los primeros que encuentre, que son cientos: conviene filtrar.
| Name | Required | Description | Default |
|---|---|---|---|
| filtro | No | ||
| limite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It usefully explains that matching is case-insensitive, that the filter applies to the path, and that unfiltered results are numerous. This goes beyond the schema, though the interaction with the 'limite' parameter is not fully clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one sentence establishes purpose, and the next gives filter semantics and a practical warning. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, so that is not a gap. The core listing behavior and filter are well described, but the 'limite' parameter is undocumented and its default appears inconsistent with the 'hundreds' claim, leaving a material gap for an agent trying to control result size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It explains 'filtro' well with examples and case-insensitivity, but 'limite' is never mentioned or described. Additionally, saying unfiltered results are 'hundreds' sits awkwardly with the schema default of 40 for 'limite', leaving result-size behavior unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: it lists .ttm models from the CoppeliaSim-installed library. This distinguishes it from sibling tools like listar_objetos, which presumably operate on the current scene rather than the model library.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit practical guidance: use a filter to narrow results by path substring and avoid overly large result sets without one. It does not explicitly contrast with alternatives such as listar_objetos, but the context of use is clear and no misleading exclusions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar_objetosA
Lista los objetos de la escena actual con su ruta y su handle.
tipo: 'todos', 'shape', 'joint', 'dummy', 'sensor', 'camara', 'luz', 'path'.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | todos |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Lista' implicitly indicates a read-only operation, and the 'tipo' enumeration adds filtering behavior. However, it does not disclose prerequisites (e.g., an open scene) or possible error conditions, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose, the second enumerates parameter options. Both are concise and front-loaded, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one optional filter and an output schema, the description is adequate. It covers purpose and parameter values. It could optionally mention that a scene must be loaded before use, but this is a minor gap given the low complexity and existing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so by listing all allowed values for 'tipo' ('todos', 'shape', 'joint', 'dummy', 'sensor', 'camara', 'luz', 'path'), giving agents the necessary vocabulary. It does not explain each value's exact meaning, but the labels are mostly self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Lista los objetos de la escena actual con su ruta y su handle.' It uses a specific verb ('Lista'), a resource ('objetos de la escena actual'), and specifies the output details ('ruta y handle'), distinguishing it from sibling tools like eliminar_objeto or fijar_posicion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for listing objects and gives filtering context through the 'tipo' values ('todos', 'shape', 'joint', etc.). It does not explicitly mention alternatives, but none of the sibling tools serve the same listing purpose, so the context is clear. No exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obtener_fuerza_juntaC
Lee la fuerza o par medido en una articulación.
| Name | Required | Description | Default |
|---|---|---|---|
| junta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It indicates a read operation but does not disclose return format, units, error conditions, or prerequisites such as a running simulation. The description adds minimal value beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple getter, though it lacks semantic depth covered in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still fails to provide necessary context for a tool with no annotations and zero parameter schema coverage. It does not explain usage prerequisites or any additional operational details, making it incomplete for smooth agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'junta' has no schema description (0% coverage). The phrase 'en una articulación' merely restates the parameter name/title and does not clarify identifier format, accepted values, or how the joint should be referenced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lee' - reads) and the resource ('fuerza o par medido en una articulación'). This distinguishes it from sibling tools like obtener_posicion_junta and fijar_velocidad_junta.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The use case is implied by the name and description, but no exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obtener_orientacionC
Devuelve la orientación de un objeto como ángulos de Euler en radianes.
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes | ||
| relativo_a | No | mundo |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions the return format (Euler angles in radians) but does not indicate whether the operation is read-only, whether it can fail, or how the 'relativo_a' parameter affects the result. The absence of any mention of side effects or error conditions leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that delivers the core purpose without unnecessary words. It is front-loaded with the action and output, making it quickly scannable. However, given its brevity, it omits critical details, slightly reducing the score for structural completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple function, but the description is incomplete given the presence of two parameters and an output schema. It does not explain parameter semantics or usage context, and while the output schema covers return values, the description offers no behavioral or usage guidance. For a tool with no annotations, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to explain either parameter. It does not clarify that 'nombre' is the object name or that 'relativo_a' denotes the reference frame (with default 'mundo'). The description does not compensate for the schema's lack of parameter descriptions, leaving semantic meaning entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Devuelve' (returns) and the resource 'orientación de un objeto' (object orientation), specifying the output format as Euler angles in radians. This differentiates it from sibling tools like 'fijar_orientacion' (set orientation) and 'obtener_posicion' (get position), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when to prefer 'obtener_orientacion' over other getters or the setter 'fijar_orientacion'. The usage is implied but not explicitly stated, and there is no mention of exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obtener_posicionA
Devuelve la posición [x, y, z] de un objeto, en metros.
relativo_a: 'mundo' o la ruta de otro objeto (por ejemplo '/Cuboid').
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes | ||
| relativo_a | No | mundo |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It discloses the return format (coordinate array), units (meters), and the meaning of relativo_a. However, it does not describe behavior for nonexistent objects, invalid paths, or other error conditions, and it does not explicitly state that the operation is read-only beyond the verb 'devuelve'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The main purpose is front-loaded, and the second sentence provides essential parameter detail about relativo_a. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with an output schema, the description covers the core behavior, return format, and relative-to semantics. It is adequate, though it could be more complete by specifying error behavior and the exact path syntax for 'nombre'. Overall, it provides enough context for an agent to invoke the tool correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains relativo_a values ('mundo' or an object path like '/Cuboid') and adds units. However, 'nombre' is only implicitly described as an object name via 'de un objeto'; no path syntax or format for 'nombre' is provided beyond the schema field title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Devuelve la posición [x, y, z] de un objeto, en metros.' It uses a specific verb (devuelve), identifies the resource (posición de un objeto), and specifies the output format. This distinguishes it from siblings like fijar_posicion (setter) and obtener_posicion_junta (joint-specific position).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool is a getter for object positions, so the agent can infer when to use it. However, there is no explicit guidance about when to prefer this over obtener_posicion_junta or fijar_posicion, and no mention of alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obtener_posicion_juntaA
Lee la posición de una articulación: radianes si es rotativa, metros si es prismática.
| Name | Required | Description | Default |
|---|---|---|---|
| junta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but the description clearly indicates a read operation without side effects. Units are specified, but potential error conditions or return format are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no redundant text, effectively communicating the purpose and units.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides unit information indicating return type, but lacks explicit output schema or detailed behavior. Sufficient for a simple getter but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'junta' is not described in the schema or tool description beyond the name, leaving the expected format (e.g., joint name) implicit. Minimal guidance for the value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it reads a joint's position and specifies units (radians for revolute, meters for prismatic), distinguishing it from sibling tools like orientation and object position.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for querying joint positions, but does not explicitly contrast with alternatives like obtaining orientation or setting position. The units and purpose make the context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paso_simulacionA
Avanza la simulación un número exacto de pasos y devuelve el tiempo.
Para qué sirve: con la simulación en marcha libre no se puede medir nada de forma repetible, porque entre una lectura y la siguiente pasa el tiempo que quiera el reloj. Avanzando por pasos, cada lectura cae siempre en el mismo instante simulado, y dos ejecuciones dan el mismo número.
Deja la simulación en modo por pasos: a partir de aquí solo avanza cuando se
lo pidas. detener_simulacion la devuelve a marcha libre, y conviene
llamarla al terminar: una simulación esperando un paso que nadie manda
parece congelada.
| Name | Required | Description | Default |
|---|---|---|---|
| pasos | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses the side effect of leaving the simulation in step mode, states that the simulation will only advance when requested afterward, and warns that a waiting step-mode simulation may appear frozen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: the core action and return value come first, followed by a concise rationale, then side-effect and cleanup guidance. Every sentence serves a distinct purpose, and there is no redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no annotations and an existing output schema, the description is complete. It explains what the tool does, why to use it, how it changes simulation mode, and what to do afterward. The return format is covered by the output schema, so its absence in the description is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only the parameter name 'pasos', type integer, and default 1, with no property description. The description adds meaningful semantics by explaining that 'pasos' is the exact number of simulation steps to advance. It does not discuss constraints like positivity, but for a single simple parameter this is a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Avanza la simulación un número exacto de pasos y devuelve el tiempo.' It clearly communicates that this tool advances a simulation by a fixed number of steps and returns the time, and it is easy to distinguish from related simulation-control tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use the tool: when repeatable, deterministic measurements are needed because free-running simulation timing is not reproducible. It also names 'detener_simulacion' as the cleanup call and explains the consequence of not calling it, which is strong practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pausar_simulacionB
Pausa la simulación en CoppeliaSim.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No side effects or behavioral details are disclosed, such as whether the simulation state is preserved, if it can be resumed via another tool, or if it triggers any events. This lack of transparency may lead to incorrect expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the action. It is appropriately sized and front-loaded, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, low complexity), the description is minimal but adequate. However, it lacks context about potential error states or interaction with other tools (e.g., must be running), making it incomplete for robust agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), and schema coverage is 100%. According to rubric, baseline is 3. The description adds no parameter information, but none is needed since there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Pausa la simulación' (Pause the simulation). This is unambiguous and distinguishes it from sibling tools like iniciar_simulacion (start) and detener_simulacion (stop).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool, such as prerequisites (e.g., simulation must be running) or conditions for failure. Without annotations, this information is absent, making usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiempo_simulacionA
Devuelve el tiempo de simulación transcurrido, en segundos.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only operation (returns a value) but does not mention potential side effects, error conditions, or dependencies like simulation state. However, for a simple getter, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that immediately states the tool's purpose and unit of measurement. No filler, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no params, clear return value in seconds) and the presence of an output schema, the description is sufficiently complete. It doesn't explain potential failure modes, but for a trivial getter this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description needs to explain none. Per the rubric, 0 params gives a baseline of 4. The description correctly omits parameter details, and there is no ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns the elapsed simulation time in seconds. The verb 'Devuelve' and resource 'tiempo de simulación transcurrido' are specific, and it distinguishes itself from siblings like 'estado_simulacion' by focusing specifically on time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or any prerequisites such as requiring a running simulation. The description is purely functional with no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.4.0- Added
cargar_modelo - Added
crear_junta - Changed
crear_primitiva1 field changed- added
Input schema / properties / aliasAdded value: +{ + "default": "", + "title": "Alias", + "type": "string" +}
- Added
crear_union_rigida - Added
fijar_color - Added
fijar_dinamica - Added
guardar_escena - Added
listar_modelos - Added
paso_simulacion
23 tool updates
v0.1.1- First observed
cargar_escena - First observed
cerrar_escena - First observed
comprobar_sensor_proximidad - First observed
crear_primitiva - First observed
crear_sensor_proximidad - First observed
detener_simulacion - First observed
eliminar_objeto - First observed
emparentar_objeto - First observed
estado_simulacion - First observed
fijar_detectable - First observed
fijar_objetivo_junta - First observed
fijar_orientacion - First observed
fijar_posicion - First observed
fijar_velocidad_junta - First observed
iniciar_simulacion - First observed
leer_sensor_proximidad - First observed
listar_objetos - First observed
obtener_fuerza_junta - First observed
obtener_orientacion - First observed
obtener_posicion - First observed
obtener_posicion_junta - First observed
pausar_simulacion - First observed
tiempo_simulacion
TDQS
Scored across 31 tools
Most tools map cleanly to a distinct resource-plus-action pair, such as position, orientation, joint target, or simulation state. The only near-overlaps are leer_sensor_proximidad vs comprobar_sensor_proximidad and emparentar_objeto vs crear_union_rigida, but the descriptions explicitly separate those use cases.
The set overwhelmingly follows a Spanish verb_noun pattern using verbs like crear_, fijar_, obtener_, cargar_, and listar_. A few query tools are noun-first instead of verb-first (tiempo_simulacion, estado_simulacion, paso_simulacion), which keeps it from being perfectly uniform.
31 tools is above the 25+ threshold and creates a large selection surface for an agent, even though each tool has a clear niche. The count could be reduced by grouping pose queries, simulation queries, or proximity-sensor variants.
Core workflows are covered well: scene management, object creation and posing, physics setup, joint control, and proximity sensing. Obvious gaps remain for a robotics simulator, such as camera/vision reading, object velocity, collision queries, and script execution, so agents may hit dead ends outside the basic robot-building path.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server that lets Claude drive a running TouchDesigner instance to create operators, wire them, set parameters, run arbitrary Python, and introspect the td API.MIT

Robonine MCP Serverofficial
AlicenseAqualityDmaintenanceA local MCP server that connects Claude Code or any MCP-compatible AI assistant to a Robonine robot arm.1MIT- AlicenseAqualityBmaintenanceA self-hosted MCP server that lets Claude (or any MCP client) drive Autodesk Fusion 360 on your own machine.982MIT
- FlicenseNot gradedqualityCmaintenanceFull-access MCP server for the Webots robot simulator that enables AI assistants to see, understand, and modify a running simulation, including scene-tree inspection/editing, robot control, viewport screenshots, and arbitrary code execution.-