RustGIS v0.2.0: Open-Source GIS With an MCP Server RustGIS v0.2.0 shipped October 13 with a native Model Context Protocol server, letting Claude Code, Cursor, VS Code and other ACP-compatible agents open geospatial data, run geoprocessing tools and render maps without human intervention. The release also adds a DuckDB Spatial-backed SQL pane, native reading of ten data formats including GeoPackage, GeoParquet, FlatGeobuf, KML/KMZ, GPX, zipped Shapefiles, PMTiles and GeoTIFF palette images, and a headless Python package installable via pip that requires Python 3.12+. RustGIS ships as a single 18–30 MB binary that also runs in the browser via WebAssembly, with sandboxed WASM plugins, against QGIS's 500+ MB install. RustGIS v0.2.0 shipped October 13, and the headline feature is an MCP server. That means Claude Code, Cursor, and VS Code can now open geospatial data, run geoprocessing tools, and render maps — without a human in the loop. The full GIS stack, a single 18–30 MB binary that also runs in a browser, just became AI-agent-accessible. The MCP Server: What It Actually Does Run rustgis-cli mcp and RustGIS becomes a Model Context Protocol server. Any ACP-compatible agent — Claude Code, Claude Desktop, Cursor, VS Code, Codex — connects to it. From there, the agent can open data files, execute any RustGIS command or geoprocessing tool, read attribute tables, and view rendered map output as an image. The documentation is built into the server, so agents know what commands exist without you telling them. That is worth pausing on. Most GIS tools bolt AI on as a chat widget that answers questions about data. RustGIS ships MCP natively, which means your agent orchestrates the full pipeline — open data, transform, analyze, render, export — not just narrates it. The AGENTS.md contributor guide https://github.com/opengeos/RustGIS/blob/main/AGENTS.md was in the repository from day one. The AI integration is structural, not cosmetic. DuckDB Spatial SQL, Built In v0.2.0 also adds a SQL pane backed by DuckDB Spatial. Write a query, hit Ctrl+Enter, get results. The editor autocompletes table and column names and DuckDB Spatial’s common functions. You can read Parquet, CSV, JSON, GeoParquet, and URLs including s3:// directly from SQL. Open an existing DuckDB database and query it in place. DuckDB Spatial has become the default analyst SQL layer for geospatial Python work. Embedding it in the GIS app itself — with autocomplete — removes a context switch that was previously unavoidable. You no longer need to export to Python, run a query in a notebook, and re-import to visualize. Ten New Data Formats The format list expanded significantly. v0.2.0 reads natively: GeoPackage, GeoParquet, FlatGeobuf, KML and KMZ with styles , GPX, zipped Shapefiles, PMTiles raster and vector , and GeoTIFF palette images. Large files stream a view at a time rather than loading fully into memory. Every format also works in the browser app at web.rustgis.app https://web.rustgis.app — GeoPackages through a pure-Rust SQLite reader, PMTiles by URL. Export covers GeoPackage, GeoParquet, Shapefile, KMZ, GeoJSON, CSV, FlatGeobuf, KML, GPX, and WKT. The practical upshot: ingest almost any standard geospatial format and export to almost any standard format, from the desktop, CLI, or browser, without installing GDAL yourself. Python Package and CLI for Scripting Beyond the desktop app, RustGIS ships as a headless Python engine: pip install rustgis pip install "rustgis geopandas " for GeoDataFrame support The engine runs fully headless — no GUI, no server process. Open data, run geoprocessing tools, render to PNG, return a GeoDataFrame: python import rustgis s = rustgis.Session sample=True s.run "gp.run", tool="buffer", params={"input": "Cities", "distance": 100} s.to png "map.png" gdf = s.layer "Cities Buffer" .to geopandas Requires Python 3.12+. The PyPI package https://pypi.org/project/rustgis/ ships a native module for Windows, macOS, and Linux — no Rust toolchain needed to use it. How It Compares to QGIS QGIS is not going anywhere. It has 20+ years of plugins, full PROJ coordinate system support, and a community of cartographers who know it cold. RustGIS is not trying to replace it. But QGIS is a 500+ MB install with a Python runtime attached. Its plugins run with full user system access. RustGIS is 18–30 MB, ships as one binary, runs in a browser tab via WebAssembly, and its plugins are sandboxed WASM modules with declared permissions — closer to browser extensions than QGIS plugins in terms of what they can touch. See the official comparison page https://rustgis.app/comparison/qgis/ for the full breakdown. The honest use-case split: if you run a GIS team doing professional cartography and depend on Python plugin workflows, QGIS still owns that space. If you are a developer who needs to script geospatial pipelines, expose map operations to an AI agent, or ship a GIS tool without a 500 MB install requirement, RustGIS is worth trying now. One Caveat RustGIS is weeks old. v0.2.0 is the second public release. The project has 1,200+ GitHub stars and real momentum, but it has not been production-battle-tested at scale. Experiment with it. Use it for new scripted pipelines. Give it time before you trust it for critical production data. The GitHub repository https://github.com/opengeos/RustGIS is the place to watch — the roadmap signals vector tile rendering, raster analysis expansion, and a plugin marketplace ahead. The MCP server documentation https://rustgis.app/mcp/ covers setup for Claude Code, Cursor, and VS Code.