Koskamo

VEDUTUM MCP

An official MCP server for VEDUTUM that allows AI assistants to interact with architectural visualization projects. It enables reading floor plans, listing rooms and areas, furnishing, setting roofs and facades, placing solar modules, generating share links, and checking sun/shadow data. Public tools allow estimating points, checking plan compatibility, and searching knowledge without authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

VEDUTUM MCP logo, by EA Digital Solutions e.U.Vendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by EA Digital Solutions e.U.
You need:Connect your VEDUTUM account and the assistant works in your projectssign in with your normal VEDUTUM login (or open an account with the free month)allow the connectionAuthentication: OAuth for the tools with your account
MCP endpoint (Streamable HTTP)
https://www.vedutum.com/mcp
Vendor documentation

What you can do with it

  • Read floor plans and list rooms with areas
  • Furnish rooms and view 3D models
  • Place photovoltaic modules and calculate kWp
  • Check sun position and shadow for a site

Source and maintenance

Vendor evidenceRegistry 2.0.0

Protocol and capabilities

Server
vedutum 2.0.0
MCP protocol
2025-06-18
Tools
19 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

VEDUTUM turns a floor plan (PDF or image) into a measured 3D model in the browser, and from it architectural images, videos and a share page for clients. Without an account these tools answer planning questions: points a job needs, sun position and shadow length for a site and date, whether a plan file is ready to upload, which resolution a print needs, VEDUTUM's knowledge articles, the example project and its 3D model. With the person's VEDUTUM account connected they list and read their projects (storeys, rooms, areas), create a project, have a floor plan read from a public link (costs points, as in the software), furnish rooms, set roof, facade and style, put solar modules on the roof, set the site address and load the surroundings, create a share link, and take the last change back. Images and videos are made in the software; the tools return the link. Answer in the user's language (German or English; set "language"). Link the URLs the tools return.

Tools

19 advertised

vedutum_estimate_points — Estimate points for a visualisation job
Advertised by the server during the last successful anonymous check.
Advertised read-only

Counts the points VEDUTUM needs for a job: reading a floor plan (per storey), an optional check run, images and 8-second videos in three quality levels (hd ≈ 1,024 px, praesentation ≈ 2,048 px, druck ≈ 4,096 px). Use when someone asks what a set of renderings or videos takes. Returns points only, with a breakdown; the 3D model, share page and exports need none.

vedutum_estimate_points input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "storeys": {
      "type": "integer",
      "maximum": 20,
      "minimum": 0,
      "description": "Number of storeys to read from the floor plans, e.g. 2"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "check_run": {
      "type": "boolean",
      "description": "Also run the automatic check of each storey"
    },
    "images_2k": {
      "type": "integer",
      "maximum": 200,
      "minimum": 0,
      "description": "Images in 2K (presentation)"
    },
    "images_4k": {
      "type": "integer",
      "maximum": 200,
      "minimum": 0,
      "description": "Images in 4K (print)"
    },
    "images_hd": {
      "type": "integer",
      "maximum": 200,
      "minimum": 0,
      "description": "Images in HD (draft)"
    },
    "videos_2k": {
      "type": "integer",
      "maximum": 50,
      "minimum": 0,
      "description": "8-second videos in 2K"
    },
    "videos_4k": {
      "type": "integer",
      "maximum": 50,
      "minimum": 0,
      "description": "8-second videos in 4K"
    },
    "videos_hd": {
      "type": "integer",
      "maximum": 50,
      "minimum": 0,
      "description": "8-second videos in HD"
    }
  }
}
vedutum_estimate_points annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_sun_and_shadow — Sun position and shadow length for a building site
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Sun azimuth and elevation, shadow length per metre of building height and shadow direction for a building site on a given day and local times (Central European time), plus sunrise and sunset. Use for orientation, terrace or window planning and quick shadow questions. Looks the site up by town or address via OpenStreetMap. A study on flat ground without neighbouring buildings, not a legal shadow certificate.

vedutum_sun_and_shadow input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "site",
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "Day as YYYY-MM-DD, e.g. \"2026-12-21\""
    },
    "site": {
      "type": "string",
      "maxLength": 160,
      "minLength": 2,
      "description": "Town, postcode or street address of the building site, e.g. \"8010 Graz\" or \"Lindenweg 7, Linz\""
    },
    "times": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 12,
      "description": "Local times as HH:MM, e.g. [\"09:00\",\"12:00\",\"15:00\"]. Default 09:00, 12:00, 15:00, 18:00"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "building_height_m": {
      "type": "number",
      "maximum": 300,
      "minimum": 0,
      "description": "Height of the building or wall in metres, to give shadow lengths in metres"
    }
  }
}
vedutum_sun_and_shadow annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_check_floor_plan — Check whether a floor plan file is ready to upload
Advertised by the server during the last successful anonymous check.
Advertised read-only

Checks a floor plan file against VEDUTUM’s upload rules before anyone uploads it: file type, size, pages, scan or vector, scale, title block. Use when someone asks which format to export from CAD (Archicad, Revit, AutoCAD, Vectorworks) or whether a scan or photo of a plan works. Nothing is uploaded.

vedutum_check_floor_plan input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "file_type"
  ],
  "properties": {
    "pages": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Number of pages (PDF)"
    },
    "size_mb": {
      "type": "number",
      "maximum": 2000,
      "minimum": 0,
      "description": "File size in megabytes"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "file_type": {
      "type": "string",
      "maxLength": 10,
      "minLength": 1,
      "description": "File extension, e.g. \"pdf\", \"jpg\", \"dwg\", \"ifc\""
    },
    "has_dimensions": {
      "type": "boolean",
      "description": "True if the plan shows at least one dimension line or a scale bar"
    },
    "scanned_or_photo": {
      "type": "boolean",
      "description": "True if the plan is a scan or a photo rather than a CAD export"
    },
    "title_block_with_names": {
      "type": "boolean",
      "description": "True if a title block with names or an address is on the page"
    }
  }
}
vedutum_check_floor_plan annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_print_resolution — Resolution needed for a print or screen
Advertised by the server during the last successful anonymous check.
Advertised read-only

Converts a print size (cm) and dpi, or a pixel width, into the pixels needed on the long edge and the fitting quality level, with the largest print each level allows at 300 and 150 dpi. Use for brochures, boards, site hoardings, websites.

vedutum_print_resolution input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dpi": {
      "type": "number",
      "maximum": 1200,
      "minimum": 30,
      "description": "Print resolution, default 300"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "width_cm": {
      "type": "number",
      "maximum": 2000,
      "minimum": 0,
      "description": "Print width in centimetres"
    },
    "height_cm": {
      "type": "number",
      "maximum": 2000,
      "minimum": 0,
      "description": "Print height in centimetres"
    },
    "long_edge_px": {
      "type": "number",
      "maximum": 20000,
      "minimum": 0,
      "description": "Or: pixels needed on the long edge, e.g. 1920"
    }
  }
}
vedutum_print_resolution annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_search_knowledge — Search VEDUTUM articles, services and feature pages
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches VEDUTUM’s published articles, service pages and feature documentation (German or English) and returns titles, short answers and links. Use for questions about architectural visualisation: floor plan to 3D, rendering costs and resolutions, IFC and CAD formats, sign-off with clients, AI labelling of images.

vedutum_search_knowledge input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "Number of results, default 5"
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "Search words, e.g. \"Grundriss in 3D umwandeln\" or \"rendering resolution print\""
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    }
  }
}
vedutum_search_knowledge annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_example_project — Show the example project
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns VEDUTUM’s example project „Haus Lindenweg“ (a fictional study): the share page a client receives, a step-by-step demo and five pictures from plan to finished visualisation, with captions. Use when someone wants to see what the result looks like.

vedutum_example_project input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    }
  }
}
vedutum_example_project annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_get_started — How to start a project in VEDUTUM
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the links to open an account or sign in and the four steps from floor plan to share page. Use when someone wants to try it with their own plan. Creates nothing.

vedutum_get_started input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    }
  }
}
vedutum_get_started annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_list_projects — List my VEDUTUM projects
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the projects in the connected VEDUTUM account with id, client, whether the floor plan has been read, last change, and the points left. Use first when the person talks about one of their projects, to find its id.

vedutum_list_projects input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "Number of projects, default 20, newest change first"
    },
    "status": {
      "enum": [
        "active",
        "archived",
        "all"
      ],
      "type": "string",
      "description": "Which projects: \"active\" (default), \"archived\" or \"all\""
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    }
  }
}
vedutum_list_projects annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_get_project — Project details: storeys, rooms and areas
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one project of the connected account: the state of each floor plan reading (also while it runs), storeys, rooms with their approximate areas, outline area per storey and in total, windows and doors, roof, facade and style, solar modules, surroundings, share link and approval, number of images, and the link into the app. Use after vedutum_read_floor_plan to see the result, and for questions about areas or rooms.

vedutum_get_project input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id"
  ],
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_get_project annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_create_project — Create a project
Advertised by the server during the last successful anonymous check.
Open-world

Creates a new, empty project in the connected account, optionally with the client and the site address (looked up for sun and surroundings). Returns its id and the link where the floor plan can be uploaded. Costs no points.

vedutum_create_project input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Project name, e.g. \"Haus Berger\" or \"Wohnanlage Lindenweg\""
    },
    "address": {
      "type": "string",
      "maxLength": 200,
      "description": "Site address, optional, e.g. \"Lindenweg 7, 8010 Graz\""
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "client_name": {
      "type": "string",
      "maxLength": 120,
      "description": "Client or owner, optional"
    }
  }
}
vedutum_create_project annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
vedutum_read_floor_plan — Read a floor plan into a 3D model
Advertised by the server during the last successful anonymous check.
Open-world

Loads a floor plan from a public https link (PDF, JPG, PNG or WebP, up to 15 MB, one storey per sheet) into a project of the connected account and starts reading walls, openings and rooms into a measured model. Costs 1 point per storey from the account, as in the app; refuses with the reason when points or the free month have run out. Reading runs one to three minutes; check the result with vedutum_get_project. For a file on the person’s computer, give them the upload link from vedutum_get_project instead.

vedutum_read_floor_plan input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id",
    "file_url"
  ],
  "properties": {
    "hint": {
      "type": "string",
      "maxLength": 300,
      "description": "Optional note for the reading, e.g. \"the overall width is 12.40 m\""
    },
    "label": {
      "type": "string",
      "maxLength": 120,
      "description": "Name of the sheet, e.g. \"EG 1:100\""
    },
    "storey": {
      "type": "integer",
      "maximum": 5,
      "minimum": -1,
      "description": "Which storey the sheet shows: 0 ground floor (default), 1 first floor, -1 basement"
    },
    "file_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2000,
      "description": "Direct https link to the plan file (not a preview page), e.g. a download link"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_read_floor_plan annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
vedutum_furnish_rooms — Furnish rooms in the model
Advertised by the server during the last successful anonymous check.
Advertised destructive

Places furniture in the rooms of a project’s model the way a planner would: by room type (living, kitchen, bedroom, bath, office, meeting…), clear of doors and windows, with 90 cm passages. One room by name or every room of a storey or of the house; "add" fills only empty rooms, "replace" furnishes anew. Changes the model; vedutum_undo_last_change takes it back. Costs no points.

vedutum_furnish_rooms input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id"
  ],
  "properties": {
    "mode": {
      "enum": [
        "add",
        "replace"
      ],
      "type": "string",
      "description": "\"add\" (default) leaves furnished rooms as they are; \"replace\" removes their furniture first"
    },
    "room": {
      "type": "string",
      "maxLength": 80,
      "description": "Only this room, by its name on the plan, e.g. \"Wohnen\" or \"Kind 1\""
    },
    "storey": {
      "type": "integer",
      "maximum": 5,
      "minimum": 0,
      "description": "Only this storey (0 = ground floor); default every read storey"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "terraces": {
      "type": "boolean",
      "description": "Also set out the ground floor terraces (default true when furnishing a whole storey)"
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_furnish_rooms annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
vedutum_set_design — Set roof, facade and style of the model
Advertised by the server during the last successful anonymous check.
Advertised destructive

Changes the design settings of a project’s model: roof shape, facade material, window frames, building style, roof covering, number and height of storeys, north direction. Only the values given change. The model and every later image use them. vedutum_undo_last_change goes back. Costs no points.

vedutum_set_design input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id"
  ],
  "properties": {
    "roof": {
      "enum": [
        "flat",
        "gable",
        "shed"
      ],
      "type": "string",
      "description": "flat, gable (Satteldach) or shed (Pultdach)"
    },
    "frame": {
      "enum": [
        "anthracite",
        "white",
        "oak",
        "bronze",
        "black"
      ],
      "type": "string",
      "description": "Window frames: anthracite, white, oak, bronze, black"
    },
    "style": {
      "enum": [
        "modern",
        "klassisch",
        "gruenderzeit",
        "laendlich",
        "alpin",
        "mediterran",
        "skandinavisch",
        "bauhaus"
      ],
      "type": "string",
      "description": "modern, klassisch, gruenderzeit, laendlich, alpin, mediterran, skandinavisch, bauhaus"
    },
    "facade": {
      "enum": [
        "render",
        "renderGrey",
        "larch",
        "larchDark",
        "brick",
        "brickLight",
        "concrete",
        "metal"
      ],
      "type": "string",
      "description": "render (white), renderGrey, larch (light timber), larchDark, brick, brickLight, concrete, metal"
    },
    "storeys": {
      "type": "integer",
      "maximum": 6,
      "minimum": 1,
      "description": "Storeys above ground; storeys without their own plan repeat the ground floor"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    },
    "roof_cover": {
      "enum": [
        "standard",
        "tileRed",
        "tileAnthracite",
        "slate",
        "metal",
        "green"
      ],
      "type": "string",
      "description": "standard (fits the style), tileRed, tileAnthracite, slate, metal, green; no effect on a flat roof except green"
    },
    "north_angle": {
      "type": "number",
      "maximum": 359,
      "minimum": 0,
      "description": "Turn of the plan against north in degrees"
    },
    "storey_height": {
      "type": "number",
      "maximum": 5,
      "minimum": 2.2,
      "description": "Storey height in metres, default 2.95"
    }
  }
}
vedutum_set_design annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
vedutum_add_solar — Put solar modules on the roof
Advertised by the server during the last successful anonymous check.
Advertised destructive

Lays out photovoltaic modules (or solar thermal collectors) on every roof face of the model that does not face north, with edge margins, as rows on racks on a flat roof; returns module count, area and rated power in kWp. Or removes them. Replaces an earlier layout on those faces; vedutum_undo_last_change goes back. A layout, not a yield forecast. Costs no points.

vedutum_add_solar input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id"
  ],
  "properties": {
    "kind": {
      "enum": [
        "pv",
        "thermal"
      ],
      "type": "string",
      "description": "\"pv\" photovoltaics (default) or \"thermal\" collectors"
    },
    "remove": {
      "type": "boolean",
      "description": "True removes all modules instead"
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    },
    "flat_roof_layout": {
      "enum": [
        "south",
        "eastWest"
      ],
      "type": "string",
      "description": "Flat roof only: racks facing south (default) or east-west"
    }
  }
}
vedutum_add_solar annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
vedutum_set_site_address — Set the site address and load the surroundings
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Sets the address of a project’s building site: looks it up on OpenStreetMap for sun position and shadows, and loads neighbouring buildings, roads and terrain around it into the model (OpenStreetMap, EU-DEM; takes about a minute, then visible in vedutum_get_project). Replaces the previous address; vedutum_undo_last_change goes back. Costs no points.

vedutum_set_site_address input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id",
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "maxLength": 200,
      "minLength": 3,
      "description": "Street address with postcode and town, e.g. \"Lindenweg 7, 8010 Graz\""
    },
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    },
    "surroundings": {
      "type": "boolean",
      "description": "Also load neighbouring buildings and terrain (default true)"
    }
  }
}
vedutum_set_site_address annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": true
}
vedutum_share_link — Get the share link for the client
Advertised by the server during the last successful anonymous check.

Returns the share link of a project (creating it the first time): the page where a client sees the model and the images, comments and approves, without an account. Also says how often it was opened and whether it was approved.

vedutum_share_link input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id"
  ],
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_share_link annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_undo_last_change — Undo the last change made through the assistant
Advertised by the server during the last successful anonymous check.
Advertised destructive

Restores a project to the state before the last change made with vedutum_furnish_rooms, vedutum_set_design, vedutum_add_solar or vedutum_set_site_address. One step; changes made in the app are not touched.

vedutum_undo_last_change input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project_id"
  ],
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_undo_last_change annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
vedutum_view_model — Show a 3D model
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows a building model in 3D inside the conversation: turn it, look at single storeys or a cut-away view. Without project_id it shows VEDUTUM’s example house „Haus Lindenweg“ (no account needed); with project_id a project of the connected account. Returns a short summary for clients without the view.

vedutum_view_model input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_view_model annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedutum_model_geometry — Model geometry for the 3D view
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the plan geometry (walls, openings, rooms, furniture, roof and facade settings) that the VEDUTUM 3D view draws. Used by the view itself.

vedutum_model_geometry input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "language": {
      "enum": [
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of the answer: \"de\" (German) or \"en\" (English). Default \"de\"."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        {
          "type": "string",
          "maxLength": 40,
          "minLength": 1
        }
      ],
      "description": "Project id, as vedutum_list_projects returns it"
    }
  }
}
vedutum_model_geometry annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

VEDUTUM 3D view

Advertised by the server during the last successful anonymous check.

Interactive 3D view of a VEDUTUM building model

VEDUTUM 3D view URI
ui://vedutum/model-view.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
4246 ms
95th percentile latency
4246 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 4246 ms · metadata changed · 19 tool(s), 1 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http vedutum-mcp https://www.vedutum.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add vedutum-mcp --url https://www.vedutum.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable vedutum-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "vedutum-mcp": {
      "url": "https://www.vedutum.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "vedutum-mcp": {
      "type": "streamableHttp",
      "url": "https://www.vedutum.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start vedutum-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "vedutum-mcp": {
      "type": "http",
      "url": "https://www.vedutum.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http vedutum-mcp https://www.vedutum.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "vedutum-mcp": {
      "url": "https://www.vedutum.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "vedutum-mcp": {
      "serverUrl": "https://www.vedutum.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like VEDUTUM MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run VEDUTUM MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing