Skip to main content
Glama

get_qgis_info

Retrieve essential QGIS software details and configuration data to verify installation status and prepare for GIS project workflows.

Instructions

Get QGIS information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Primary MCP tool handler for 'get_qgis_info'. Proxies the request to the QGIS socket server via send_command.
    @mcp.tool() def get_qgis_info(ctx: Context) -> str: """Get QGIS information""" qgis = get_qgis_connection() result = qgis.send_command("get_qgis_info") return json.dumps(result, indent=2)
  • Core execution logic for 'get_qgis_info' in the QGIS plugin socket server. Returns QGIS version, profile folder, and active plugins count.
    def get_qgis_info(self, **kwargs): """Get basic QGIS information""" return { "qgis_version": Qgis.version(), "profile_folder": QgsApplication.qgisSettingsDirPath(), "plugins_count": len(active_plugins) }
  • Registration of the 'get_qgis_info' handler (and others) 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, }
  • Helper function to manage persistent connection to the QGIS socket server, used by the MCP tool.
    def get_qgis_connection(): """Get or create a persistent Qgis connection""" global _qgis_connection # If we have an existing connection, check if it's still valid if _qgis_connection is not None: # Test if the connection is still alive with a simple ping try: # Just try to send a small message to check if the socket is still connected _qgis_connection.sock.sendall(b'') return _qgis_connection except Exception as e: # Connection is dead, close it and create a new one logger.warning(f"Existing connection is no longer valid: {str(e)}") try: _qgis_connection.disconnect() except Exception: pass _qgis_connection = None # Create a new connection if needed if _qgis_connection is None: _qgis_connection = QgisMCPServer(host="localhost", port=9876) if not _qgis_connection.connect(): logger.error("Failed to connect to Qgis") _qgis_connection = None raise Exception("Could not connect to Qgis. Make sure the Qgis plugin is running.") logger.info("Created new persistent connection to Qgis") return _qgis_connection

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