add_raster_layer
Add raster data to QGIS projects by specifying file paths, enabling geospatial analysis and visualization of imagery or elevation data.
Instructions
Add a raster layer to the project.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| provider | No | gdal | |
| name | No |
Implementation Reference
- The core handler function that executes the tool logic: creates a QgsRasterLayer from the given path and provider, validates it, adds it to the current QGIS project, and returns layer information.def add_raster_layer(self, path, name=None, provider="gdal", **kwargs): """Add a raster layer to the project""" if not name: name = os.path.basename(path) # Create the layer layer = QgsRasterLayer(path, name, provider) if not layer.isValid(): raise Exception(f"Layer is not valid: {path}") # Add to project QgsProject.instance().addMapLayer(layer) return { "id": layer.id(), "name": layer.name(), "type": "raster", "width": layer.width(), "height": layer.height() }
- qgis_mcp_plugin/qgis_mcp_plugin.py:133-149 (registration)Registration of command handlers in the QGIS MCP socket server, mapping "add_raster_layer" to the handler method.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, }
- src/qgis_mcp/qgis_mcp_server.py:192-199 (handler)MCP tool handler that proxies the add_raster_layer command to the underlying QGIS MCP socket server via get_qgis_connection().def add_raster_layer(ctx: Context, path: str, provider: str = "gdal", name: str = None) -> str: """Add a raster layer to the project.""" qgis = get_qgis_connection() params = {"path": path, "provider": provider} if name: params["name"] = name result = qgis.send_command("add_raster_layer", params) return json.dumps(result, indent=2)
- Convenience method in the socket client wrapper that prepares parameters and sends the add_raster_layer command.def add_raster_layer(self, path, name=None, provider="gdal"): """Add a raster layer to the project""" params = { "path": path, "provider": provider } if name: params["name"] = name return self.send_command("add_raster_layer", params)