<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>gazebo_mcp package — ROS2 Gazebo MCP Server 1.0.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="gazebo_mcp.bridge package" href="gazebo_mcp.bridge.html" />
<link rel="prev" title="gazebo_mcp" href="modules.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
ROS2 Gazebo MCP Server
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Modules:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">gazebo_mcp</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">gazebo_mcp package</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#subpackages">Subpackages</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html">gazebo_mcp.bridge package</a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html">gazebo_mcp.tools package</a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html">gazebo_mcp.utils package</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#submodules">Submodules</a></li>
<li class="toctree-l3"><a class="reference internal" href="#module-gazebo_mcp.server">gazebo_mcp.server module</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest"><code class="docutils literal notranslate"><span class="pre">MCPRequest</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse"><code class="docutils literal notranslate"><span class="pre">MCPResponse</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.start_stdio_server"><code class="docutils literal notranslate"><span class="pre">start_stdio_server()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.start_http_server"><code class="docutils literal notranslate"><span class="pre">start_http_server()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#module-gazebo_mcp">Module contents</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">gazebo_mcp package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#subpackages">Subpackages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html">gazebo_mcp.bridge package</a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html">gazebo_mcp.tools package</a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html">gazebo_mcp.utils package</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-gazebo_mcp.server">gazebo_mcp.server module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest"><code class="docutils literal notranslate"><span class="pre">MCPRequest</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest.code"><code class="docutils literal notranslate"><span class="pre">MCPRequest.code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest.context"><code class="docutils literal notranslate"><span class="pre">MCPRequest.context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest.timeout"><code class="docutils literal notranslate"><span class="pre">MCPRequest.timeout</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest.__init__"><code class="docutils literal notranslate"><span class="pre">MCPRequest.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse"><code class="docutils literal notranslate"><span class="pre">MCPResponse</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.success"><code class="docutils literal notranslate"><span class="pre">MCPResponse.success</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.result"><code class="docutils literal notranslate"><span class="pre">MCPResponse.result</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.error"><code class="docutils literal notranslate"><span class="pre">MCPResponse.error</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.stdout"><code class="docutils literal notranslate"><span class="pre">MCPResponse.stdout</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.stderr"><code class="docutils literal notranslate"><span class="pre">MCPResponse.stderr</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.duration"><code class="docutils literal notranslate"><span class="pre">MCPResponse.duration</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.tokens_saved"><code class="docutils literal notranslate"><span class="pre">MCPResponse.tokens_saved</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.ros2_status"><code class="docutils literal notranslate"><span class="pre">MCPResponse.ros2_status</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse.__init__"><code class="docutils literal notranslate"><span class="pre">MCPResponse.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer.execute"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer.execute()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer.execute_json"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer.execute_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer.get_available_tools"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer.get_available_tools()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer.get_stats"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer.get_stats()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#gazebo_mcp.server.GazeboMCPServer.shutdown"><code class="docutils literal notranslate"><span class="pre">GazeboMCPServer.shutdown()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#gazebo_mcp.server.start_stdio_server"><code class="docutils literal notranslate"><span class="pre">start_stdio_server()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#gazebo_mcp.server.start_http_server"><code class="docutils literal notranslate"><span class="pre">start_http_server()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#module-gazebo_mcp">Module contents</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">ROS2 Gazebo MCP Server</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="modules.html">gazebo_mcp</a></li>
<li class="breadcrumb-item active">gazebo_mcp package</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/gazebo_mcp.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="gazebo-mcp-package">
<h1>gazebo_mcp package<a class="headerlink" href="#gazebo-mcp-package" title="Link to this heading"></a></h1>
<section id="subpackages">
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this heading"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="gazebo_mcp.bridge.html">gazebo_mcp.bridge package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.bridge.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.bridge.html#module-gazebo_mcp.bridge.connection_manager">gazebo_mcp.bridge.connection_manager module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionState"><code class="docutils literal notranslate"><span class="pre">ConnectionState</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionState.DISCONNECTED"><code class="docutils literal notranslate"><span class="pre">ConnectionState.DISCONNECTED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionState.CONNECTING"><code class="docutils literal notranslate"><span class="pre">ConnectionState.CONNECTING</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionState.CONNECTED"><code class="docutils literal notranslate"><span class="pre">ConnectionState.CONNECTED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionState.ERROR"><code class="docutils literal notranslate"><span class="pre">ConnectionState.ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionState.RECONNECTING"><code class="docutils literal notranslate"><span class="pre">ConnectionState.RECONNECTING</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager"><code class="docutils literal notranslate"><span class="pre">ConnectionManager</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.__init__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.state"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.state</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.is_connected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.is_connected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.is_disconnected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.is_disconnected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.is_error"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.is_error()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.connect"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.connect()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.disconnect"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.disconnect()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.reconnect"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.reconnect()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.ensure_connected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.ensure_connected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.get_node"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.get_node()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.on_connected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.on_connected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.on_disconnected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.on_disconnected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.on_error"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.on_error()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.__enter__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__enter__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.__exit__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__exit__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.connection_manager.ConnectionManager.__del__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__del__()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.bridge.html#module-gazebo_mcp.bridge.gazebo_bridge_node">gazebo_mcp.bridge.gazebo_bridge_node module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.ModelState"><code class="docutils literal notranslate"><span class="pre">ModelState</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.name"><code class="docutils literal notranslate"><span class="pre">ModelState.name</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.pose"><code class="docutils literal notranslate"><span class="pre">ModelState.pose</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.twist"><code class="docutils literal notranslate"><span class="pre">ModelState.twist</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.state"><code class="docutils literal notranslate"><span class="pre">ModelState.state</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.__init__"><code class="docutils literal notranslate"><span class="pre">ModelState.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.spawn_entity"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.spawn_entity()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.delete_entity"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.delete_entity()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.set_entity_state"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.set_entity_state()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_model_list"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.get_model_list()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_model_state"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.get_model_state()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.pause_physics"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.pause_physics()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.unpause_physics"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.unpause_physics()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.reset_simulation"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.reset_simulation()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.reset_world"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.reset_world()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_transform"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.get_transform()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.subscribe_to_topic"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.subscribe_to_topic()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.destroy"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.destroy()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.bridge.html#module-gazebo_mcp.bridge">Module contents</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager"><code class="docutils literal notranslate"><span class="pre">ConnectionManager</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.__del__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__del__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.__enter__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__enter__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.__exit__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__exit__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.__init__"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.connect"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.connect()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.disconnect"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.disconnect()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.ensure_connected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.ensure_connected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.get_node"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.get_node()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.is_connected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.is_connected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.is_disconnected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.is_disconnected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.is_error"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.is_error()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.on_connected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.on_connected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.on_disconnected"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.on_disconnected()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.on_error"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.on_error()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.reconnect"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.reconnect()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionManager.state"><code class="docutils literal notranslate"><span class="pre">ConnectionManager.state</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionState"><code class="docutils literal notranslate"><span class="pre">ConnectionState</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionState.DISCONNECTED"><code class="docutils literal notranslate"><span class="pre">ConnectionState.DISCONNECTED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionState.CONNECTING"><code class="docutils literal notranslate"><span class="pre">ConnectionState.CONNECTING</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionState.CONNECTED"><code class="docutils literal notranslate"><span class="pre">ConnectionState.CONNECTED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionState.ERROR"><code class="docutils literal notranslate"><span class="pre">ConnectionState.ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ConnectionState.RECONNECTING"><code class="docutils literal notranslate"><span class="pre">ConnectionState.RECONNECTING</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.delete_entity"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.delete_entity()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.destroy"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.destroy()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.get_model_list"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.get_model_list()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.get_model_state"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.get_model_state()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.get_transform"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.get_transform()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.pause_physics"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.pause_physics()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.reset_simulation"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.reset_simulation()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.reset_world"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.reset_world()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.set_entity_state"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.set_entity_state()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.spawn_entity"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.spawn_entity()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.subscribe_to_topic"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.subscribe_to_topic()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.GazeboBridgeNode.unpause_physics"><code class="docutils literal notranslate"><span class="pre">GazeboBridgeNode.unpause_physics()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ModelState"><code class="docutils literal notranslate"><span class="pre">ModelState</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ModelState.__init__"><code class="docutils literal notranslate"><span class="pre">ModelState.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ModelState.state"><code class="docutils literal notranslate"><span class="pre">ModelState.state</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ModelState.twist"><code class="docutils literal notranslate"><span class="pre">ModelState.twist</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ModelState.name"><code class="docutils literal notranslate"><span class="pre">ModelState.name</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.bridge.html#gazebo_mcp.bridge.ModelState.pose"><code class="docutils literal notranslate"><span class="pre">ModelState.pose</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gazebo_mcp.tools.html">gazebo_mcp.tools package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#module-gazebo_mcp.tools.model_management">gazebo_mcp.tools.model_management module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.model_management.list_models"><code class="docutils literal notranslate"><span class="pre">list_models()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.model_management.spawn_model"><code class="docutils literal notranslate"><span class="pre">spawn_model()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.model_management.delete_model"><code class="docutils literal notranslate"><span class="pre">delete_model()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.model_management.get_model_state"><code class="docutils literal notranslate"><span class="pre">get_model_state()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.model_management.set_model_state"><code class="docutils literal notranslate"><span class="pre">set_model_state()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#module-gazebo_mcp.tools.sensor_tools">gazebo_mcp.tools.sensor_tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.sensor_tools.list_sensors"><code class="docutils literal notranslate"><span class="pre">list_sensors()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.sensor_tools.get_sensor_data"><code class="docutils literal notranslate"><span class="pre">get_sensor_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.sensor_tools.subscribe_sensor_stream"><code class="docutils literal notranslate"><span class="pre">subscribe_sensor_stream()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#module-gazebo_mcp.tools.simulation_tools">gazebo_mcp.tools.simulation_tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.simulation_tools.pause_simulation"><code class="docutils literal notranslate"><span class="pre">pause_simulation()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.simulation_tools.unpause_simulation"><code class="docutils literal notranslate"><span class="pre">unpause_simulation()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.simulation_tools.reset_simulation"><code class="docutils literal notranslate"><span class="pre">reset_simulation()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.simulation_tools.set_simulation_speed"><code class="docutils literal notranslate"><span class="pre">set_simulation_speed()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.simulation_tools.get_simulation_time"><code class="docutils literal notranslate"><span class="pre">get_simulation_time()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.simulation_tools.get_simulation_status"><code class="docutils literal notranslate"><span class="pre">get_simulation_status()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#module-gazebo_mcp.tools.world_generation">gazebo_mcp.tools.world_generation module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.create_obstacle_course"><code class="docutils literal notranslate"><span class="pre">create_obstacle_course()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.list_materials"><code class="docutils literal notranslate"><span class="pre">list_materials()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.create_lighting_preset"><code class="docutils literal notranslate"><span class="pre">create_lighting_preset()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.calculate_day_night_cycle"><code class="docutils literal notranslate"><span class="pre">calculate_day_night_cycle()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.generate_heightmap_terrain"><code class="docutils literal notranslate"><span class="pre">generate_heightmap_terrain()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.create_empty_world"><code class="docutils literal notranslate"><span class="pre">create_empty_world()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.save_world"><code class="docutils literal notranslate"><span class="pre">save_world()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.load_world"><code class="docutils literal notranslate"><span class="pre">load_world()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.list_world_templates"><code class="docutils literal notranslate"><span class="pre">list_world_templates()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.place_box"><code class="docutils literal notranslate"><span class="pre">place_box()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.place_sphere"><code class="docutils literal notranslate"><span class="pre">place_sphere()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.place_cylinder"><code class="docutils literal notranslate"><span class="pre">place_cylinder()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.spawn_box"><code class="docutils literal notranslate"><span class="pre">spawn_box()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.spawn_sphere"><code class="docutils literal notranslate"><span class="pre">spawn_sphere()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.spawn_cylinder"><code class="docutils literal notranslate"><span class="pre">spawn_cylinder()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.apply_force"><code class="docutils literal notranslate"><span class="pre">apply_force()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.apply_torque"><code class="docutils literal notranslate"><span class="pre">apply_torque()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.set_shadow_quality"><code class="docutils literal notranslate"><span class="pre">set_shadow_quality()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.set_wind"><code class="docutils literal notranslate"><span class="pre">set_wind()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.spawn_light"><code class="docutils literal notranslate"><span class="pre">spawn_light()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.create_animated_object"><code class="docutils literal notranslate"><span class="pre">create_animated_object()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.TriggerZone"><code class="docutils literal notranslate"><span class="pre">TriggerZone</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.TriggerZone.__init__"><code class="docutils literal notranslate"><span class="pre">TriggerZone.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.TriggerZone.contains"><code class="docutils literal notranslate"><span class="pre">TriggerZone.contains()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.TriggerZone.to_sdf"><code class="docutils literal notranslate"><span class="pre">TriggerZone.to_sdf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.BoxTriggerZone"><code class="docutils literal notranslate"><span class="pre">BoxTriggerZone</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.BoxTriggerZone.__init__"><code class="docutils literal notranslate"><span class="pre">BoxTriggerZone.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.BoxTriggerZone.contains"><code class="docutils literal notranslate"><span class="pre">BoxTriggerZone.contains()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.BoxTriggerZone.to_sdf"><code class="docutils literal notranslate"><span class="pre">BoxTriggerZone.to_sdf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.SphereTriggerZone"><code class="docutils literal notranslate"><span class="pre">SphereTriggerZone</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.SphereTriggerZone.__init__"><code class="docutils literal notranslate"><span class="pre">SphereTriggerZone.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.SphereTriggerZone.contains"><code class="docutils literal notranslate"><span class="pre">SphereTriggerZone.contains()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.SphereTriggerZone.to_sdf"><code class="docutils literal notranslate"><span class="pre">SphereTriggerZone.to_sdf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.CylinderTriggerZone"><code class="docutils literal notranslate"><span class="pre">CylinderTriggerZone</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.CylinderTriggerZone.__init__"><code class="docutils literal notranslate"><span class="pre">CylinderTriggerZone.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.CylinderTriggerZone.contains"><code class="docutils literal notranslate"><span class="pre">CylinderTriggerZone.contains()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.CylinderTriggerZone.to_sdf"><code class="docutils literal notranslate"><span class="pre">CylinderTriggerZone.to_sdf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.create_trigger_zone"><code class="docutils literal notranslate"><span class="pre">create_trigger_zone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.delete_light"><code class="docutils literal notranslate"><span class="pre">delete_light()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.place_mesh"><code class="docutils literal notranslate"><span class="pre">place_mesh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.spawn_mesh"><code class="docutils literal notranslate"><span class="pre">spawn_mesh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.place_grid"><code class="docutils literal notranslate"><span class="pre">place_grid()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.spawn_multiple"><code class="docutils literal notranslate"><span class="pre">spawn_multiple()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.create_benchmark_world"><code class="docutils literal notranslate"><span class="pre">create_benchmark_world()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.export_world_metadata"><code class="docutils literal notranslate"><span class="pre">export_world_metadata()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_generation.set_fog"><code class="docutils literal notranslate"><span class="pre">set_fog()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#module-gazebo_mcp.tools.world_tools">gazebo_mcp.tools.world_tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_tools.load_world"><code class="docutils literal notranslate"><span class="pre">load_world()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_tools.save_world"><code class="docutils literal notranslate"><span class="pre">save_world()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_tools.get_world_properties"><code class="docutils literal notranslate"><span class="pre">get_world_properties()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html#gazebo_mcp.tools.world_tools.set_world_property"><code class="docutils literal notranslate"><span class="pre">set_world_property()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.tools.html#module-gazebo_mcp.tools">Module contents</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gazebo_mcp.utils.html">gazebo_mcp.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.converters">gazebo_mcp.utils.converters module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.pose_to_dict"><code class="docutils literal notranslate"><span class="pre">pose_to_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.dict_to_pose"><code class="docutils literal notranslate"><span class="pre">dict_to_pose()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.twist_to_dict"><code class="docutils literal notranslate"><span class="pre">twist_to_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.dict_to_twist"><code class="docutils literal notranslate"><span class="pre">dict_to_twist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.transform_to_dict"><code class="docutils literal notranslate"><span class="pre">transform_to_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.dict_to_transform"><code class="docutils literal notranslate"><span class="pre">dict_to_transform()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.quaternion_to_euler"><code class="docutils literal notranslate"><span class="pre">quaternion_to_euler()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.euler_to_quaternion"><code class="docutils literal notranslate"><span class="pre">euler_to_quaternion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.ros_msg_to_json"><code class="docutils literal notranslate"><span class="pre">ros_msg_to_json()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.json_to_ros_msg"><code class="docutils literal notranslate"><span class="pre">json_to_ros_msg()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.poses_to_dict_list"><code class="docutils literal notranslate"><span class="pre">poses_to_dict_list()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.converters.dict_list_to_poses"><code class="docutils literal notranslate"><span class="pre">dict_list_to_poses()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.exceptions">gazebo_mcp.utils.exceptions module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError.message"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.message</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError.error_code"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.error_code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError.suggestions"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.suggestions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError.example_fix"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.example_fix</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboMCPError.to_dict"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.to_dict()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2Error"><code class="docutils literal notranslate"><span class="pre">ROS2Error</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NotConnectedError"><code class="docutils literal notranslate"><span class="pre">ROS2NotConnectedError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NotConnectedError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2NotConnectedError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2ConnectionLostError"><code class="docutils literal notranslate"><span class="pre">ROS2ConnectionLostError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2ConnectionLostError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2ConnectionLostError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NodeError"><code class="docutils literal notranslate"><span class="pre">ROS2NodeError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NodeError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2NodeError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2TopicError"><code class="docutils literal notranslate"><span class="pre">ROS2TopicError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2TopicError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2TopicError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2ServiceError"><code class="docutils literal notranslate"><span class="pre">ROS2ServiceError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2ServiceError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2ServiceError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboError"><code class="docutils literal notranslate"><span class="pre">GazeboError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError"><code class="docutils literal notranslate"><span class="pre">GazeboNotRunningError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboNotRunningError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError"><code class="docutils literal notranslate"><span class="pre">GazeboTimeoutError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboTimeoutError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SimulationError"><code class="docutils literal notranslate"><span class="pre">SimulationError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SimulationError.__init__"><code class="docutils literal notranslate"><span class="pre">SimulationError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelError"><code class="docutils literal notranslate"><span class="pre">ModelError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelNotFoundError"><code class="docutils literal notranslate"><span class="pre">ModelNotFoundError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelNotFoundError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelNotFoundError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelSpawnError"><code class="docutils literal notranslate"><span class="pre">ModelSpawnError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelSpawnError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelSpawnError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelDeleteError"><code class="docutils literal notranslate"><span class="pre">ModelDeleteError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelDeleteError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelDeleteError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelAlreadyExistsError"><code class="docutils literal notranslate"><span class="pre">ModelAlreadyExistsError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelAlreadyExistsError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelAlreadyExistsError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorError"><code class="docutils literal notranslate"><span class="pre">SensorError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorNotFoundError"><code class="docutils literal notranslate"><span class="pre">SensorNotFoundError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorNotFoundError.__init__"><code class="docutils literal notranslate"><span class="pre">SensorNotFoundError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorDataUnavailableError"><code class="docutils literal notranslate"><span class="pre">SensorDataUnavailableError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorDataUnavailableError.__init__"><code class="docutils literal notranslate"><span class="pre">SensorDataUnavailableError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorTypeInvalidError"><code class="docutils literal notranslate"><span class="pre">SensorTypeInvalidError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.SensorTypeInvalidError.__init__"><code class="docutils literal notranslate"><span class="pre">SensorTypeInvalidError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldError"><code class="docutils literal notranslate"><span class="pre">WorldError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldLoadError"><code class="docutils literal notranslate"><span class="pre">WorldLoadError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldLoadError.__init__"><code class="docutils literal notranslate"><span class="pre">WorldLoadError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldSaveError"><code class="docutils literal notranslate"><span class="pre">WorldSaveError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldSaveError.__init__"><code class="docutils literal notranslate"><span class="pre">WorldSaveError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldInvalidError"><code class="docutils literal notranslate"><span class="pre">WorldInvalidError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.WorldInvalidError.__init__"><code class="docutils literal notranslate"><span class="pre">WorldInvalidError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ParameterError"><code class="docutils literal notranslate"><span class="pre">ParameterError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.InvalidParameterError"><code class="docutils literal notranslate"><span class="pre">InvalidParameterError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.InvalidParameterError.__init__"><code class="docutils literal notranslate"><span class="pre">InvalidParameterError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.MissingParameterError"><code class="docutils literal notranslate"><span class="pre">MissingParameterError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.MissingParameterError.__init__"><code class="docutils literal notranslate"><span class="pre">MissingParameterError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.OperationTimeoutError"><code class="docutils literal notranslate"><span class="pre">OperationTimeoutError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.OperationTimeoutError.__init__"><code class="docutils literal notranslate"><span class="pre">OperationTimeoutError.__init__()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.geometry">gazebo_mcp.utils.geometry module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.quaternion_multiply"><code class="docutils literal notranslate"><span class="pre">quaternion_multiply()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.quaternion_conjugate"><code class="docutils literal notranslate"><span class="pre">quaternion_conjugate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.quaternion_inverse"><code class="docutils literal notranslate"><span class="pre">quaternion_inverse()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.quaternion_normalize"><code class="docutils literal notranslate"><span class="pre">quaternion_normalize()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.quaternion_slerp"><code class="docutils literal notranslate"><span class="pre">quaternion_slerp()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.transform_compose"><code class="docutils literal notranslate"><span class="pre">transform_compose()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.transform_inverse"><code class="docutils literal notranslate"><span class="pre">transform_inverse()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.rotate_vector"><code class="docutils literal notranslate"><span class="pre">rotate_vector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.distance_3d"><code class="docutils literal notranslate"><span class="pre">distance_3d()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.distance_2d"><code class="docutils literal notranslate"><span class="pre">distance_2d()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.angle_between_vectors"><code class="docutils literal notranslate"><span class="pre">angle_between_vectors()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.quaternion_angle_diff"><code class="docutils literal notranslate"><span class="pre">quaternion_angle_diff()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.normalize_angle"><code class="docutils literal notranslate"><span class="pre">normalize_angle()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.wrap_to_pi"><code class="docutils literal notranslate"><span class="pre">wrap_to_pi()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.degrees_to_radians"><code class="docutils literal notranslate"><span class="pre">degrees_to_radians()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.geometry.radians_to_degrees"><code class="docutils literal notranslate"><span class="pre">radians_to_degrees()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.logger">gazebo_mcp.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.debug"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.debug()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.info"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.info()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.warning"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.warning()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.error"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.error()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.critical"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.critical()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.exception"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.exception()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.operation"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.operation()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.log_ros2_connection"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.log_ros2_connection()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.log_model_event"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.log_model_event()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.log_sensor_event"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.log_sensor_event()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.GazeboMCPLogger.log_world_event"><code class="docutils literal notranslate"><span class="pre">GazeboMCPLogger.log_world_event()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.JSONFormatter"><code class="docutils literal notranslate"><span class="pre">JSONFormatter</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.JSONFormatter.format"><code class="docutils literal notranslate"><span class="pre">JSONFormatter.format()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.get_logger"><code class="docutils literal notranslate"><span class="pre">get_logger()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.set_global_log_level"><code class="docutils literal notranslate"><span class="pre">set_global_log_level()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.configure_file_logging"><code class="docutils literal notranslate"><span class="pre">configure_file_logging()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.logger.timed_operation"><code class="docutils literal notranslate"><span class="pre">timed_operation()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.metrics">gazebo_mcp.utils.metrics module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics"><code class="docutils literal notranslate"><span class="pre">ToolMetrics</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.name"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.name</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.call_count"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.call_count</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.total_duration"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.total_duration</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.min_duration"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.min_duration</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.max_duration"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.max_duration</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.error_count"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.error_count</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.total_tokens_sent"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.total_tokens_sent</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.total_tokens_saved"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.total_tokens_saved</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.last_called"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.last_called</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ToolMetrics.__init__"><code class="docutils literal notranslate"><span class="pre">ToolMetrics.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ErrorMetrics"><code class="docutils literal notranslate"><span class="pre">ErrorMetrics</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ErrorMetrics.error_type"><code class="docutils literal notranslate"><span class="pre">ErrorMetrics.error_type</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ErrorMetrics.count"><code class="docutils literal notranslate"><span class="pre">ErrorMetrics.count</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ErrorMetrics.last_occurred"><code class="docutils literal notranslate"><span class="pre">ErrorMetrics.last_occurred</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ErrorMetrics.last_message"><code class="docutils literal notranslate"><span class="pre">ErrorMetrics.last_message</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.ErrorMetrics.__init__"><code class="docutils literal notranslate"><span class="pre">ErrorMetrics.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector"><code class="docutils literal notranslate"><span class="pre">MetricsCollector</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.__init__"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.record_tool_call"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.record_tool_call()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.record_error"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.record_error()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.get_summary"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.get_summary()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.get_tool_metrics"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.get_tool_metrics()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.get_all_tool_metrics"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.get_all_tool_metrics()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.export_prometheus"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.export_prometheus()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.MetricsCollector.reset"><code class="docutils literal notranslate"><span class="pre">MetricsCollector.reset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.get_metrics_collector"><code class="docutils literal notranslate"><span class="pre">get_metrics_collector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.metrics.reset_metrics"><code class="docutils literal notranslate"><span class="pre">reset_metrics()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.operation_result">gazebo_mcp.utils.operation_result module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult"><code class="docutils literal notranslate"><span class="pre">OperationResult</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.success"><code class="docutils literal notranslate"><span class="pre">OperationResult.success</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.data"><code class="docutils literal notranslate"><span class="pre">OperationResult.data</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.error"><code class="docutils literal notranslate"><span class="pre">OperationResult.error</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.error_code"><code class="docutils literal notranslate"><span class="pre">OperationResult.error_code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.suggestions"><code class="docutils literal notranslate"><span class="pre">OperationResult.suggestions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.example_fix"><code class="docutils literal notranslate"><span class="pre">OperationResult.example_fix</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.metadata"><code class="docutils literal notranslate"><span class="pre">OperationResult.metadata</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id0"><code class="docutils literal notranslate"><span class="pre">OperationResult.success</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id5"><code class="docutils literal notranslate"><span class="pre">OperationResult.data</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id6"><code class="docutils literal notranslate"><span class="pre">OperationResult.error</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id7"><code class="docutils literal notranslate"><span class="pre">OperationResult.error_code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id8"><code class="docutils literal notranslate"><span class="pre">OperationResult.suggestions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id9"><code class="docutils literal notranslate"><span class="pre">OperationResult.example_fix</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id10"><code class="docutils literal notranslate"><span class="pre">OperationResult.metadata</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.to_dict"><code class="docutils literal notranslate"><span class="pre">OperationResult.to_dict()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.to_json"><code class="docutils literal notranslate"><span class="pre">OperationResult.to_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.from_dict"><code class="docutils literal notranslate"><span class="pre">OperationResult.from_dict()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.from_json"><code class="docutils literal notranslate"><span class="pre">OperationResult.from_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.__str__"><code class="docutils literal notranslate"><span class="pre">OperationResult.__str__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.OperationResult.__init__"><code class="docutils literal notranslate"><span class="pre">OperationResult.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes"><code class="docutils literal notranslate"><span class="pre">ErrorCodes</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.ROS2_NOT_CONNECTED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.ROS2_NOT_CONNECTED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.ROS2_CONNECTION_LOST"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.ROS2_CONNECTION_LOST</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.ROS2_NODE_ERROR"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.ROS2_NODE_ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.GAZEBO_NOT_RUNNING"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.GAZEBO_NOT_RUNNING</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.GAZEBO_TIMEOUT"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.GAZEBO_TIMEOUT</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.SIMULATION_ERROR"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SIMULATION_ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.MODEL_NOT_FOUND"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_NOT_FOUND</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.MODEL_SPAWN_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_SPAWN_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.MODEL_DELETE_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_DELETE_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.MODEL_ALREADY_EXISTS"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_ALREADY_EXISTS</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.SENSOR_NOT_FOUND"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SENSOR_NOT_FOUND</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.SENSOR_DATA_UNAVAILABLE"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SENSOR_DATA_UNAVAILABLE</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.SENSOR_TYPE_INVALID"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SENSOR_TYPE_INVALID</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.WORLD_LOAD_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.WORLD_LOAD_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.WORLD_SAVE_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.WORLD_SAVE_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.WORLD_INVALID"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.WORLD_INVALID</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.INVALID_PARAMETER"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.INVALID_PARAMETER</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.MISSING_PARAMETER"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MISSING_PARAMETER</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.OPERATION_TIMEOUT"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.OPERATION_TIMEOUT</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ErrorCodes.UNKNOWN_ERROR"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.UNKNOWN_ERROR</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.success_result"><code class="docutils literal notranslate"><span class="pre">success_result()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.error_result"><code class="docutils literal notranslate"><span class="pre">error_result()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.model_not_found_error"><code class="docutils literal notranslate"><span class="pre">model_not_found_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.ros2_not_connected_error"><code class="docutils literal notranslate"><span class="pre">ros2_not_connected_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.gazebo_not_running_error"><code class="docutils literal notranslate"><span class="pre">gazebo_not_running_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.invalid_parameter_error"><code class="docutils literal notranslate"><span class="pre">invalid_parameter_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_result.operation_timeout_error"><code class="docutils literal notranslate"><span class="pre">operation_timeout_error()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo-mcp-utils-profiler-module">gazebo_mcp.utils.profiler module</a></li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils.validators">gazebo_mcp.utils.validators module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_coordinate"><code class="docutils literal notranslate"><span class="pre">validate_coordinate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_position"><code class="docutils literal notranslate"><span class="pre">validate_position()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_angle"><code class="docutils literal notranslate"><span class="pre">validate_angle()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_orientation"><code class="docutils literal notranslate"><span class="pre">validate_orientation()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_quaternion"><code class="docutils literal notranslate"><span class="pre">validate_quaternion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_model_name"><code class="docutils literal notranslate"><span class="pre">validate_model_name()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_entity_name"><code class="docutils literal notranslate"><span class="pre">validate_entity_name()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_sensor_type"><code class="docutils literal notranslate"><span class="pre">validate_sensor_type()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_timeout"><code class="docutils literal notranslate"><span class="pre">validate_timeout()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_positive"><code class="docutils literal notranslate"><span class="pre">validate_positive()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_non_negative"><code class="docutils literal notranslate"><span class="pre">validate_non_negative()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_file_path"><code class="docutils literal notranslate"><span class="pre">validate_file_path()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_directory_path"><code class="docutils literal notranslate"><span class="pre">validate_directory_path()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_response_format"><code class="docutils literal notranslate"><span class="pre">validate_response_format()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.validators.validate_parameters"><code class="docutils literal notranslate"><span class="pre">validate_parameters()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.utils.html#module-gazebo_mcp.utils">Module contents</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult"><code class="docutils literal notranslate"><span class="pre">OperationResult</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.success"><code class="docutils literal notranslate"><span class="pre">OperationResult.success</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.data"><code class="docutils literal notranslate"><span class="pre">OperationResult.data</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.error"><code class="docutils literal notranslate"><span class="pre">OperationResult.error</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.error_code"><code class="docutils literal notranslate"><span class="pre">OperationResult.error_code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.suggestions"><code class="docutils literal notranslate"><span class="pre">OperationResult.suggestions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.example_fix"><code class="docutils literal notranslate"><span class="pre">OperationResult.example_fix</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.metadata"><code class="docutils literal notranslate"><span class="pre">OperationResult.metadata</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.__init__"><code class="docutils literal notranslate"><span class="pre">OperationResult.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.__str__"><code class="docutils literal notranslate"><span class="pre">OperationResult.__str__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id11"><code class="docutils literal notranslate"><span class="pre">OperationResult.data</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id12"><code class="docutils literal notranslate"><span class="pre">OperationResult.error</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id13"><code class="docutils literal notranslate"><span class="pre">OperationResult.error_code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id14"><code class="docutils literal notranslate"><span class="pre">OperationResult.example_fix</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.from_dict"><code class="docutils literal notranslate"><span class="pre">OperationResult.from_dict()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.from_json"><code class="docutils literal notranslate"><span class="pre">OperationResult.from_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id15"><code class="docutils literal notranslate"><span class="pre">OperationResult.metadata</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id16"><code class="docutils literal notranslate"><span class="pre">OperationResult.suggestions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.to_dict"><code class="docutils literal notranslate"><span class="pre">OperationResult.to_dict()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationResult.to_json"><code class="docutils literal notranslate"><span class="pre">OperationResult.to_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#id17"><code class="docutils literal notranslate"><span class="pre">OperationResult.success</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes"><code class="docutils literal notranslate"><span class="pre">ErrorCodes</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.GAZEBO_NOT_RUNNING"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.GAZEBO_NOT_RUNNING</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.GAZEBO_TIMEOUT"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.GAZEBO_TIMEOUT</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.INVALID_PARAMETER"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.INVALID_PARAMETER</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.MISSING_PARAMETER"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MISSING_PARAMETER</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.MODEL_ALREADY_EXISTS"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_ALREADY_EXISTS</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.MODEL_DELETE_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_DELETE_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.MODEL_NOT_FOUND"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_NOT_FOUND</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.MODEL_SPAWN_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.MODEL_SPAWN_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.OPERATION_TIMEOUT"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.OPERATION_TIMEOUT</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.ROS2_CONNECTION_LOST"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.ROS2_CONNECTION_LOST</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.ROS2_NODE_ERROR"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.ROS2_NODE_ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.ROS2_NOT_CONNECTED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.ROS2_NOT_CONNECTED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.SENSOR_DATA_UNAVAILABLE"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SENSOR_DATA_UNAVAILABLE</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.SENSOR_NOT_FOUND"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SENSOR_NOT_FOUND</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.SENSOR_TYPE_INVALID"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SENSOR_TYPE_INVALID</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.SIMULATION_ERROR"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.SIMULATION_ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.UNKNOWN_ERROR"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.UNKNOWN_ERROR</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.WORLD_INVALID"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.WORLD_INVALID</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.WORLD_LOAD_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.WORLD_LOAD_FAILED</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ErrorCodes.WORLD_SAVE_FAILED"><code class="docutils literal notranslate"><span class="pre">ErrorCodes.WORLD_SAVE_FAILED</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.success_result"><code class="docutils literal notranslate"><span class="pre">success_result()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.error_result"><code class="docutils literal notranslate"><span class="pre">error_result()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.model_not_found_error"><code class="docutils literal notranslate"><span class="pre">model_not_found_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ros2_not_connected_error"><code class="docutils literal notranslate"><span class="pre">ros2_not_connected_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.gazebo_not_running_error"><code class="docutils literal notranslate"><span class="pre">gazebo_not_running_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.invalid_parameter_error"><code class="docutils literal notranslate"><span class="pre">invalid_parameter_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.operation_timeout_error"><code class="docutils literal notranslate"><span class="pre">operation_timeout_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError.message"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.message</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError.error_code"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.error_code</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError.suggestions"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.suggestions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError.example_fix"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.example_fix</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.__init__()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboMCPError.to_dict"><code class="docutils literal notranslate"><span class="pre">GazeboMCPError.to_dict()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2Error"><code class="docutils literal notranslate"><span class="pre">ROS2Error</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2NotConnectedError"><code class="docutils literal notranslate"><span class="pre">ROS2NotConnectedError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2NotConnectedError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2NotConnectedError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2ConnectionLostError"><code class="docutils literal notranslate"><span class="pre">ROS2ConnectionLostError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2ConnectionLostError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2ConnectionLostError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2NodeError"><code class="docutils literal notranslate"><span class="pre">ROS2NodeError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2NodeError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2NodeError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2TopicError"><code class="docutils literal notranslate"><span class="pre">ROS2TopicError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2TopicError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2TopicError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2ServiceError"><code class="docutils literal notranslate"><span class="pre">ROS2ServiceError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ROS2ServiceError.__init__"><code class="docutils literal notranslate"><span class="pre">ROS2ServiceError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboError"><code class="docutils literal notranslate"><span class="pre">GazeboError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboNotRunningError"><code class="docutils literal notranslate"><span class="pre">GazeboNotRunningError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboNotRunningError.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboNotRunningError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboTimeoutError"><code class="docutils literal notranslate"><span class="pre">GazeboTimeoutError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.GazeboTimeoutError.__init__"><code class="docutils literal notranslate"><span class="pre">GazeboTimeoutError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SimulationError"><code class="docutils literal notranslate"><span class="pre">SimulationError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SimulationError.__init__"><code class="docutils literal notranslate"><span class="pre">SimulationError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelError"><code class="docutils literal notranslate"><span class="pre">ModelError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelNotFoundError"><code class="docutils literal notranslate"><span class="pre">ModelNotFoundError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelNotFoundError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelNotFoundError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelSpawnError"><code class="docutils literal notranslate"><span class="pre">ModelSpawnError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelSpawnError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelSpawnError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelDeleteError"><code class="docutils literal notranslate"><span class="pre">ModelDeleteError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelDeleteError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelDeleteError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelAlreadyExistsError"><code class="docutils literal notranslate"><span class="pre">ModelAlreadyExistsError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ModelAlreadyExistsError.__init__"><code class="docutils literal notranslate"><span class="pre">ModelAlreadyExistsError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorError"><code class="docutils literal notranslate"><span class="pre">SensorError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorNotFoundError"><code class="docutils literal notranslate"><span class="pre">SensorNotFoundError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorNotFoundError.__init__"><code class="docutils literal notranslate"><span class="pre">SensorNotFoundError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorDataUnavailableError"><code class="docutils literal notranslate"><span class="pre">SensorDataUnavailableError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorDataUnavailableError.__init__"><code class="docutils literal notranslate"><span class="pre">SensorDataUnavailableError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorTypeInvalidError"><code class="docutils literal notranslate"><span class="pre">SensorTypeInvalidError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.SensorTypeInvalidError.__init__"><code class="docutils literal notranslate"><span class="pre">SensorTypeInvalidError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldError"><code class="docutils literal notranslate"><span class="pre">WorldError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldLoadError"><code class="docutils literal notranslate"><span class="pre">WorldLoadError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldLoadError.__init__"><code class="docutils literal notranslate"><span class="pre">WorldLoadError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldSaveError"><code class="docutils literal notranslate"><span class="pre">WorldSaveError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldSaveError.__init__"><code class="docutils literal notranslate"><span class="pre">WorldSaveError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldInvalidError"><code class="docutils literal notranslate"><span class="pre">WorldInvalidError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.WorldInvalidError.__init__"><code class="docutils literal notranslate"><span class="pre">WorldInvalidError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.ParameterError"><code class="docutils literal notranslate"><span class="pre">ParameterError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.InvalidParameterError"><code class="docutils literal notranslate"><span class="pre">InvalidParameterError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.InvalidParameterError.__init__"><code class="docutils literal notranslate"><span class="pre">InvalidParameterError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.MissingParameterError"><code class="docutils literal notranslate"><span class="pre">MissingParameterError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.MissingParameterError.__init__"><code class="docutils literal notranslate"><span class="pre">MissingParameterError.__init__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationTimeoutError"><code class="docutils literal notranslate"><span class="pre">OperationTimeoutError</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.OperationTimeoutError.__init__"><code class="docutils literal notranslate"><span class="pre">OperationTimeoutError.__init__()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
</section>
<section id="module-gazebo_mcp.server">
<span id="gazebo-mcp-server-module"></span><h2>gazebo_mcp.server module<a class="headerlink" href="#module-gazebo_mcp.server" title="Link to this heading"></a></h2>
<p>ROS2 Gazebo MCP Server.</p>
<p>Extends the Claude Code Learning System MCP Server with ROS2/Gazebo-specific functionality.</p>
<p>Implements the Model Context Protocol pattern for 98.7% token reduction:
- Exposes Gazebo tools as importable Python modules
- Executes code locally in sandboxed environment
- Returns only filtered results to agent
- Manages ROS2 connection lifecycle</p>
<p>Based on: /home/koen/workspaces/hackathon-git/claude/mcp/servers/skills-mcp/server.py</p>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPRequest">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.server.</span></span><span class="sig-name descname"><span class="pre">MCPRequest</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#MCPRequest"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.MCPRequest" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>MCP execution request.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPRequest.code">
<span class="sig-name descname"><span class="pre">code</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#gazebo_mcp.server.MCPRequest.code" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPRequest.context">
<span class="sig-name descname"><span class="pre">context</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPRequest.context" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPRequest.timeout">
<span class="sig-name descname"><span class="pre">timeout</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPRequest.timeout" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPRequest.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#gazebo_mcp.server.MCPRequest.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.server.</span></span><span class="sig-name descname"><span class="pre">MCPResponse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">success</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">result</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stdout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stderr</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">duration</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tokens_saved</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ros2_status</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#MCPResponse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.MCPResponse" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>MCP execution response.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.success">
<span class="sig-name descname"><span class="pre">success</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.success" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.result">
<span class="sig-name descname"><span class="pre">result</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.result" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.error">
<span class="sig-name descname"><span class="pre">error</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.error" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.stdout">
<span class="sig-name descname"><span class="pre">stdout</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">''</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.stdout" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.stderr">
<span class="sig-name descname"><span class="pre">stderr</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">''</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.stderr" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.duration">
<span class="sig-name descname"><span class="pre">duration</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0.0</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.duration" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.tokens_saved">
<span class="sig-name descname"><span class="pre">tokens_saved</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.tokens_saved" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.ros2_status">
<span class="sig-name descname"><span class="pre">ros2_status</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.ros2_status" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.MCPResponse.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">success</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">result</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stdout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stderr</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">duration</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tokens_saved</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ros2_status</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#gazebo_mcp.server.MCPResponse.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.server.</span></span><span class="sig-name descname"><span class="pre">GazeboMCPServer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">workspace_dir</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ros2_workspace</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gazebo_model_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<blockquote>
<div><p>ROS2 Gazebo MCP Server.</p>
<p>Extends base MCP Server with ROS2/Gazebo-specific functionality:
- ROS2 connection management
- Gazebo simulation state tracking
- Extended sandbox for ROS2/Gazebo paths
- Health monitoring for ROS2 nodes</p>
<dl>
<dt>Example usage:</dt><dd><dl class="simple">
<dt>server = GazeboMCPServer(</dt><dd><p>workspace_dir=”/path/to/ros2_ws”,
ros2_workspace=”/opt/ros/humble”</p>
</dd>
</dl>
<p>)</p>
<p>request = MCPRequest(code=’’’</p>
</dd>
</dl>
</div></blockquote>
<p>from gazebo_mcp.tools.model_management import list_models
from skills.common.filters import ResultFilter</p>
<p># Get all models (filtered format):
result = list_models(response_format=”filtered”)</p>
<p># Filter locally (98.7% token savings!):
turtlebots = ResultFilter.search(result[“models”], “turtlebot3”, [“name”])
burger = ResultFilter.filter_by_field(turtlebots, “variant”, “burger”)</p>
<dl>
<dt>print(f”Found: {burger[0][‘name’]}”)</dt><dd><p>‘’’)</p>
<p>response = server.execute(request)
print(response.result)</p>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">workspace_dir</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ros2_workspace</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gazebo_model_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer.__init__" title="Link to this definition"></a></dt>
<dd><p>Initialize Gazebo MCP server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workspace_dir</strong> – Project workspace directory (default: current dir)</p></li>
<li><p><strong>ros2_workspace</strong> – ROS2 installation path (default: $ROS2_WS or /opt/ros/humble)</p></li>
<li><p><strong>gazebo_model_path</strong> – Gazebo models path (default: /usr/share/gazebo)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer.execute">
<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#gazebo_mcp.server.MCPRequest" title="gazebo_mcp.server.MCPRequest"><span class="pre">MCPRequest</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#gazebo_mcp.server.MCPResponse" title="gazebo_mcp.server.MCPResponse"><span class="pre">MCPResponse</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer.execute" title="Link to this definition"></a></dt>
<dd><p>Execute MCP request with ROS2 connection check.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>request</strong> – MCP execution request</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>MCPResponse with results and ROS2 status</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer.execute_json">
<span class="sig-name descname"><span class="pre">execute_json</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request_json</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer.execute_json"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer.execute_json" title="Link to this definition"></a></dt>
<dd><p>Execute code request from JSON.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>request_json</strong> – JSON-encoded MCPRequest</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>JSON-encoded MCPResponse</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer.get_available_tools">
<span class="sig-name descname"><span class="pre">get_available_tools</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer.get_available_tools"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer.get_available_tools" title="Link to this definition"></a></dt>
<dd><p>Get list of available Gazebo tools.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>List of tool metadata</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer.get_stats">
<span class="sig-name descname"><span class="pre">get_stats</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer.get_stats"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer.get_stats" title="Link to this definition"></a></dt>
<dd><p>Get server statistics.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.server.GazeboMCPServer.shutdown">
<span class="sig-name descname"><span class="pre">shutdown</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#GazeboMCPServer.shutdown"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.GazeboMCPServer.shutdown" title="Link to this definition"></a></dt>
<dd><p>Clean shutdown with ROS2 disconnect.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="gazebo_mcp.server.start_stdio_server">
<span class="sig-prename descclassname"><span class="pre">gazebo_mcp.server.</span></span><span class="sig-name descname"><span class="pre">start_stdio_server</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#start_stdio_server"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.start_stdio_server" title="Link to this definition"></a></dt>
<dd><p>Start Gazebo MCP server in STDIO mode.</p>
<p>This is the standard MCP server mode where:
- Requests come via stdin (JSON)
- Responses go via stdout (JSON)
- Agent communicates via standard I/O</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="gazebo_mcp.server.start_http_server">
<span class="sig-prename descclassname"><span class="pre">gazebo_mcp.server.</span></span><span class="sig-name descname"><span class="pre">start_http_server</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">8080</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/server.html#start_http_server"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.server.start_http_server" title="Link to this definition"></a></dt>
<dd><p>Start Gazebo MCP server in HTTP mode (for development/testing).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>port</strong> – Port to listen on</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="module-gazebo_mcp">
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-gazebo_mcp" title="Link to this heading"></a></h2>
<p>Gazebo MCP Server - ROS2 Model Context Protocol Server for Gazebo Simulation</p>
<p>This package provides an MCP server that enables AI assistants to control
and manipulate Gazebo simulations through ROS2 interfaces.</p>
<p>Features:
- Simulation control (start, stop, pause, reset)
- Model management (spawn, delete, control TurtleBot3)
- Sensor data access (camera, lidar, IMU, GPS)
- World generation and manipulation
- Dynamic lighting and terrain control
- Real-time world updates</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="modules.html" class="btn btn-neutral float-left" title="gazebo_mcp" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="gazebo_mcp.bridge.html" class="btn btn-neutral float-right" title="gazebo_mcp.bridge package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>© Copyright 2025, Development Team.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>