PostGIS MCP Server Example

April 5, 2025 · View on GitHub

Ejemplo de servidor MCP que expone una herramienta (tool) para ejecutar consultas SQL en una base de datos PostgreSQL con PostGIS, usando datos geograficos de la Univalle y pruebas realizadas con Cloude Desktop

Install dependencies

conda create --name env_ai python=3.8
conda activate env_ai
pip install mcp psycopg2-binary

Claude config

Add claude_desktop_config.json to your cloude desktop config

{
  "mcpServers": {
    "postgis-mcp": {
      "command": "C:\\Users\\User\\miniconda3\\Scripts\\conda.exe",
      "args": [
	    "run",
        "-n",
        "env_ai",
        "--no-capture-output",
		"python",
        "C:\\Users\\User\\Desktop\\AI\\mcp_postgis\\mcp_postgis.py"
      ],
      "host": "127.0.0.1",
      "port": 5001,
      "timeout": 30000
    }
  }
}
example1 example1

Create database

CREATE DATABASE uvruteo;

Add PostGIS extension to database

CREATE EXTENSION postgis;

Populate the database

psql -h localhost -p 5432 -d uvruteo -U postgres -f geodata/edificios_univalle.sql
psql -h localhost -p 5432 -d uvruteo -U postgres -f geodata/rios_univalle.sql
psql -h localhost -p 5432 -d uvruteo -U postgres -f geodata/sitiosinteres_univalle.sql

Example Prompts

"Cual es la longitud de todos los rios_univalle transforma los datos al epsg:3115 la columna the_geom contiene la geometria"

example1

"Cual es el edificio más cercano al sitio de interés plazoleta de ingeniería, entrégame la distancia en metros, usa las tablas edificios_univalle y sitiosinteres_univalle , transforma los datos en epsg:3115 si es necesario, usa la columna the_geom"

example2