API & MCP
Everything a person can do on GISela Buffer, a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://giselabuffer.usefulweb.site/api/v1/calculate– run GISela BufferGET https://giselabuffer.usefulweb.site/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
GISela Buffer
Creates buffer polygons at a true distance in metres around every feature of GeoJSON, KML, GPX, CSV or shapefile data: circles around points, corridors around lines, grown or shrunk polygons. Overlapping zones can be merged into one area. Returns GeoJSON, the ellipsoidal area of each zone and a map preview.
| Field | Type | Default | Description |
|---|---|---|---|
data | textarea | — | Data. GeoJSON, TopoJSON, KML, GPX, CSV (lat/lon, x/y or a WKT column) or WKT lines. Or upload a file below. |
file | file | — | File (optional). Used instead of the pasted text. Shapefiles: put .shp, .dbf and .prj into one ZIP. |
from | text | "auto" | Coordinate system of the data. “auto” reads it from the file (.prj, GeoJSON crs); otherwise an EPSG code such as 2056, 25832 or 27700. Without information the data is read as WGS 84 longitude/latitude. |
distance | number | 300 | Distance (metres). Negative values shrink polygons. |
segments | integer | 32 | Segments per circle. More segments = rounder curves, bigger files. |
dissolve | boolean | false | Merge overlapping zones into one |
Example request
300 m around seven tram stops, merged
curl -X POST https://giselabuffer.usefulweb.site/api/v1/calculate -H 'content-type: application/json' -d '{"data":"{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[7.992,47.1215]},\"properties\":{\"name\":\"Weiher\"}},{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[7.999,47.126]},\"properties\":{\"name\":\"Altstadt\"}},{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.006,47.129]},\"properties\":{\"name\":\"Marktplatz\"}},{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.012,47.1335]},\"properties\":{\"name\":\"Bahnhof\"}},{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.018,47.137]},\"properties\":{\"name\":\"Nordring\"}},{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.025,47.14]},\"properties\":{\"name\":\"Rebhalde\"}},{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[8.031,47.1405]},\"properties\":{\"name\":\"Endstation Ost\"}}]}","distance":300,"dissolve":true}'
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://giselabuffer.usefulweb.site/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
gisela_buffer - Local stdio connector:
node src/mcp-stdio.ts --tool=gisela-buffer
{
"mcpServers": {
"gisela-buffer": { "type": "http", "url": "https://giselabuffer.usefulweb.site/mcp" }
}
}