remove_layer
Delete a specific layer from a QGIS project using its unique identifier to manage project layers and reduce visual clutter.
Instructions
Remove a layer from the project by its ID.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| layer_id | Yes |
Implementation Reference
- src/qgis_mcp/qgis_mcp_server.py:208-213 (handler)The MCP tool handler for 'remove_layer'. Proxies the request to the QGIS plugin server via socket.@mcp.tool() def remove_layer(ctx: Context, layer_id: str) -> str: """Remove a layer from the project by its ID.""" qgis = get_qgis_connection() result = qgis.send_command("remove_layer", {"layer_id": layer_id}) return json.dumps(result, indent=2)
- The core QGIS implementation that executes the layer removal using QgsProject API.def remove_layer(self, layer_id, **kwargs): """Remove a layer from the project""" project = QgsProject.instance() if layer_id in project.mapLayers(): project.removeMapLayer(layer_id) return {"removed": layer_id} else: raise Exception(f"Layer not found: {layer_id}")
- qgis_mcp_plugin/qgis_mcp_plugin.py:133-149 (registration)Registration of the 'remove_layer' command handler in the QGIS plugin's command dispatcher.handlers = { "ping": self.ping, "get_qgis_info": self.get_qgis_info, "load_project": self.load_project, "get_project_info": self.get_project_info, "execute_code": self.execute_code, "add_vector_layer": self.add_vector_layer, "add_raster_layer": self.add_raster_layer, "get_layers": self.get_layers, "remove_layer": self.remove_layer, "zoom_to_layer": self.zoom_to_layer, "get_layer_features": self.get_layer_features, "execute_processing": self.execute_processing, "save_project": self.save_project, "render_map": self.render_map, "create_new_project": self.create_new_project, }