Skip to main content
Glama

get_project_info

Retrieve current project details from QGIS, including layers, settings, and metadata, to understand and work with existing GIS projects.

Instructions

Get current project information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • MCP tool handler for 'get_project_info' that sends the command to the QGIS plugin via socket connection and returns JSON response.
    def get_project_info(ctx: Context) -> str: """Get current project information""" qgis = get_qgis_connection() result = qgis.send_command("get_project_info") return json.dumps(result, indent=2)
  • Primary handler executing the logic to retrieve detailed project information from QGIS, including file details, CRS, and up to 10 layers with basic info.
    def get_project_info(self, **kwargs): """Get information about the current QGIS project""" project = QgsProject.instance() # Get basic project information info = { "filename": project.fileName(), "title": project.title(), "layer_count": len(project.mapLayers()), "crs": project.crs().authid(), "layers": [] } # Add basic layer information (limit to 10 layers for performance) layers = list(project.mapLayers().values()) for i, layer in enumerate(layers): if i >= 10: # Limit to 10 layers break layer_info = { "id": layer.id(), "name": layer.name(), "type": self._get_layer_type(layer), "visible": layer.isValid() and project.layerTreeRoot().findLayer(layer.id()).isVisible() } info["layers"].append(layer_info) return info
  • Registration of command handlers in the QGIS plugin's execute_command method, mapping 'get_project_info' to its handler.
    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, }
  • Helper function used by get_project_info to determine and format layer types.
    def _get_layer_type(self, layer): """Helper to get layer type as string""" if layer.type() == QgsMapLayer.VectorLayer: return f"vector_{layer.geometryType()}" elif layer.type() == QgsMapLayer.RasterLayer: return "raster" else: return str(layer.type())

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/syauqi-uqi/qgis_mcp_modify1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server