Skip to main content
Glama

get_project_info

Retrieve current QGIS project details including layers, settings, and configurations to analyze or modify geographic data workflows.

Instructions

Get current project information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • MCP tool handler implementation for get_project_info. Proxies the command to the underlying QGIS socket server.
    @mcp.tool() 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)
  • Core handler function that retrieves detailed information about the current QGIS project, including layers.
    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 MCP server, including get_project_info.
    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 layer type strings.
    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