Documentation menu

MCP

The Georizon MCP server lets an assistant work with datasets the same way you do in the web app: inspect a dataset, submit a delivery, read the validation report, start or inspect processing, and take a map snapshot. It uses your user token, so it can only see and change what you can.

Uploads do not go through MCP. Create an S3 access key on the same profile page as the Bearer token and copy objects to s3.georizon.cloud with ordinary S3 tools (region auto). MCP does not mint credentials and does not create datasets — create those in the web app.

Endpoint#

https://georizon.cloud/mcp

This is a Streamable HTTP MCP server (not a stdio process). Point the client at that URL.

Token#

Create a personal access token on your Georizon profile:

https://{tenantSubdomain}.georizon.nl/user/profile

The token must include the features-api scope. Send it as Authorization: Bearer … on every request, including initialize. There is no cookie login and no query-string token.

S3 access keys are created on that same profile. Use them against s3.georizon.cloud, region auto. Azure-hosted datasets use Azure Storage Explorer instead.

Client configuration#

Cursor (mcp.json):

{
  "mcpServers": {
    "georizon": {
      "url": "https://georizon.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Claude Desktop uses the same shape: a Streamable HTTP URL plus the Authorization header. Do not configure a command / stdio server.

Replace YOUR_TOKEN with the token from your profile. Treat it like a password.

Tenant ids#

Every tenant-scoped tool takes tenant_id (a UUID). Call list_tenants first; each row has id, name, role, and optional enterprise. The GUI subdomain (gemeente-nijmegen) is not an MCP argument.

Delivery loop#

Same stages as Getting started, except dataset creation stays in the web app.

  1. Pick a tenant. list_tenants, then pass tenant_id into the other tools. list_ingest_templates is the catalog of templates that tenant may use; folder layout and metadata rules are on each ingest page. Machine-readable contracts are also MCP resources at georizon://ingest/{slug}.
  2. Find the dataset. list_datasets / get_dataset. Create new datasets in the web app, then come back here.
  3. Upload. MCP does not mint credentials. Use an S3 access key from your Georizon profile with aws s3 or rclone against s3.georizon.cloud, region auto. Azure-hosted datasets: upload with Azure Storage Explorer.
  4. Submit. dataset_transition with action=submit. Acquisition start / end (YYYY-MM-DD) are optional — they are read from timestamps in the delivery when omitted. Some tenants also need a document under Reports/delivery/ in the bucket before submit will succeed.
  5. Validation. get_dataset includes a next_step hint. get_validation_report returns the newest report. Failed validation: fix the files, action=reopen, submit again. Warnings: action=start_processing to accept them, or reopen to fix.
  6. Accept. Both acquisition dates must be set. Photo workflows fill them from the delivery; point-cloud and ortho need action=set_acquisition_dates with start / end first. Then action=accept.

get_dataset is the orientation tool: it returns the same payload as the dataset page, plus next_step in English.

Processing#

list_workflows lists processing runs for one tenant_id (optional filters: status, kind, dataset). get_workflow takes tenant_id and workflow_id — a run that belongs to another tenant is not found. workflow_action uses the same pair; it cancels a run, retries a failed step (step_id required), or retriggers a finished run.

Snapshots#

panorama_snapshot renders a JPEG from the nearest anonymised panorama (coordinates and/or an address). Pass tenant_id and exactly one of dataset_id or virtual_collection_id. ortho_snapshot renders a JPEG from a tile server bbox. Both share the web app's render budget, so a burst of snapshots can be asked to wait.

Coming later#

OAuth so a client can obtain a token without you pasting one. Dataset create over MCP, once the GUI form is stable. No dates on those yet.