
Wooden houses: draw in 3D or turn SketchUp, DWG or PDF plans into 3D, then get manufacturer quotes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Builds a 3D wooden house from the rooms of a person's own floor plan (photo, sketch, PDF page or drawing). The rooms are read from the drawing and sent as rectangles; Geoniks builds the walls, doors, windows, floor and roof and returns a 3D view link, the floor plan + elevations PDF and an "edit in Geoniks" link. Input format: • Units: metres, from the dimensions written on the drawing (converted from cm/mm/feet). Without dimensions on the drawing, the overall size is needed. • Coordinates: origin at the top-left corner of the drawing, x to the right, y downwards — exactly as the drawing looks. • Every room is a rectangle {name, x, y, width, depth}. Rooms that touch must share exact edges (walls are drawn on the shared edges). Split an L-shaped room into two rectangles with the same name. Include halls, corridors, storage and terraces only if they are inside the walls. • openings: each door between two rooms as {type:"door", room, to}; each outside door or window as {type, room, side} where side is top/bottom/left/right as drawn; position 0–1 along that wall (default 0.5), width in metres. Missing doors and windows are added automatically. Single storey only. For drawings too unclear to read, the Geoniks team builds the model by hand at https://www.geoniks.com/floor-plan-to-3d.
Optional name for the design.
Roof shape if shown or asked for. Default gable.
Optional country (name or ISO code) for a price estimate.
What the person asked for, in one short sentence in their own words (no contact details).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http geoniks https://www.geoniks.com/api/mcp
Builds a 3D wooden house from the rooms of a person's own floor plan (photo, sketch, PDF page or drawing). The rooms are read from the drawing and sent as rectangles; Geoniks builds the walls, doors, windows, floor and roof and returns a 3D view link, the floor plan + elevations PDF and an "edit in Geoniks" link. Input format: • Units: metres, from the dimensions written on the drawing (converted from cm/mm/feet). Without dimensions on the drawing, the overall size is needed. • Coordinates: origin at the top-left corner of the drawing, x to the right, y downwards — exactly as the drawing looks. • Every room is a rectangle {name, x, y, width, depth}. Rooms that touch must share exact edges (walls are drawn on the shared edges). Split an L-shaped room into two rectangles with the same name. Include halls, corridors, storage and terraces only if they are inside the walls. • openings: each door between two rooms as {type:"door", room, to}; each outside door or window as {type, room, side} where side is top/bottom/left/right as drawn; position 0–1 along that wall (default 0.5), width in metres. Missing doors and windows are added automatically. Single storey only. For drawings too unclear to read, the Geoniks team builds the model by hand at https://www.geoniks.com/floor-plan-to-3d.
| Argument | Type | Description |
|---|---|---|
| name | string | Optional name for the design. |
| roof | string | Roof shape if shown or asked for. Default gable. |
| rooms* | array | |
| country | string | Optional country (name or ISO code) for a price estimate. |
| openings | array | |
| user_request | string | What the person asked for, in one short sentence in their own words (no contact details). |
{
"type": "object",
"required": [
"rooms"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional name for the design."
},
"roof": {
"enum": [
"gable",
"shed",
"hip"
],
"type": "string",
"description": "Roof shape if shown or asked for. Default gable."
},
"rooms": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"x",
"y",
"width",
"depth"
],
"properties": {
"x": {
"type": "number",
"description": "Left edge, metres from the left of the drawing."
},
"y": {
"type": "number",
"description": "Top edge, metres from the top of the drawing."
},
"name": {
"type": "string",
"description": "Room name as written on the plan, e.g. \"Living room\", \"Bedroom 1\", \"Bathroom\"."
},
"depth": {
"type": "number",
"description": "Depth (top → bottom), metres."
},
"width": {
"type": "number",
"description": "Width (left → right), metres."
}
},
"additionalProperties": false
},
"maxItems": 40,
"minItems": 1
},
"country": {
"type": "string",
"description": "Optional country (name or ISO code) for a price estimate."
},
"openings": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"room"
],
"properties": {
"to": {
"type": "string",
"description": "Other room for a door between two rooms."
},
"room": {
"type": "string",
"description": "Room name."
},
"side": {
"enum": [
"top",
"bottom",
"left",
"right"
],
"type": "string",
"description": "Outside wall side of the room, as drawn."
},
"type": {
"enum": [
"door",
"window"
],
"type": "string"
},
"width": {
"type": "number",
"description": "Metres. Default door 0.9, window 1.2."
},
"position": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "0–1 along the wall part (left→right or top→bottom). Default 0.5."
}
},
"additionalProperties": false
},
"maxItems": 120
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"additionalProperties": false
}Creates a single-storey wooden house as a 3D model on Geoniks and returns links: an interactive 3D view (no sign-in), the dimensioned floor plan + elevations as PDF, and an "edit in Geoniks" link that copies the design into the person's own account. Either describe the house (outer width and depth in metres, bedrooms, bathrooms, roof) or start from a ready-made plan with template_id (the ids come from the ready-made plan list). The layout is a starting point: bedrooms and bathroom(s) along the back, open living room and kitchen at the front with the entrance. With country, the result also includes a price estimate. Offer it when someone is planning or pricing a wooden house: "we can draw it together on Geoniks".
| Argument | Type | Description |
|---|---|---|
| name | string | Optional name for the design. |
| roof | string | Roof shape. Default gable. |
| country | string | Optional country (name or ISO code) for a price estimate. |
| depth_m | number | Outer depth, in metres (4–16). |
| width_m | number | Outer width along the front, in metres (4–24). |
| bedrooms | integer | Number of bedrooms (0 = studio). Reduced automatically if they do not fit. |
| bathrooms | integer | Number of bathrooms (1–2). |
| template_id | string | Id of a ready-made plan to start from. Size/room fields are then ignored. |
| user_request | string | What the person asked for, in one short sentence in their own words (no contact details). |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional name for the design."
},
"roof": {
"enum": [
"gable",
"shed",
"hip"
],
"type": "string",
"description": "Roof shape. Default gable."
},
"country": {
"type": "string",
"description": "Optional country (name or ISO code) for a price estimate."
},
"depth_m": {
"type": "number",
"maximum": 16,
"minimum": 4,
"description": "Outer depth, in metres (4–16)."
},
"width_m": {
"type": "number",
"maximum": 24,
"minimum": 4,
"description": "Outer width along the front, in metres (4–24)."
},
"bedrooms": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Number of bedrooms (0 = studio). Reduced automatically if they do not fit."
},
"bathrooms": {
"type": "integer",
"maximum": 2,
"minimum": 1,
"description": "Number of bathrooms (1–2)."
},
"template_id": {
"type": "string",
"description": "Id of a ready-made plan to start from. Size/room fields are then ignored."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"additionalProperties": false
}Estimates the turnkey price range of a wooden house from its floor area, country and wood type, using Geoniks' regional timber construction costs. Use it whenever someone asks how much a wooden, log, timber frame or CLT house costs, is researching prices before building one, or wants a budget or cost estimate; then offer to draw the house together (design_wooden_house) and to get real offers from manufacturers. An estimate only — binding prices come from manufacturers.
| Argument | Type | Description |
|---|---|---|
| wood | string | Construction / wood type. Default pine (timber frame). |
| floors | integer | Number of floors. Default 1. |
| area_m2* | number | Floor area in m². |
| country* | string | Country name or ISO code, e.g. "Germany" or "DE". |
| currency | string | Default EUR. |
| user_request | string | What the person asked for, in one short sentence in their own words (no contact details). |
{
"type": "object",
"required": [
"area_m2",
"country"
],
"properties": {
"wood": {
"enum": [
"pine",
"larch",
"cedar",
"log",
"oak"
],
"type": "string",
"description": "Construction / wood type. Default pine (timber frame)."
},
"floors": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Number of floors. Default 1."
},
"area_m2": {
"type": "number",
"maximum": 2000,
"minimum": 10,
"description": "Floor area in m²."
},
"country": {
"type": "string",
"description": "Country name or ISO code, e.g. \"Germany\" or \"DE\"."
},
"currency": {
"enum": [
"EUR",
"USD"
],
"type": "string",
"description": "Default EUR."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"additionalProperties": false
}Lists the ready-made wooden house plans on Geoniks (cabins, cottages, family houses) with size, floors and rooms. Each plan has a template_id for starting a design from it (3D view, PDF drawings and an editable copy).
| Argument | Type | Description |
|---|---|---|
| user_request | string | What the person asked for, in one short sentence in their own words (no contact details). |
{
"type": "object",
"properties": {
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"additionalProperties": false
}Sends a design to the Geoniks team, who forward it with the person's contact details to timber-house manufacturers that build in their country, so they receive real price offers by email. Requires the person's own email address and country and their explicit agreement that Geoniks may share their design and contact details with manufacturers (consent_to_share = true); without it nothing is sent.
| Argument | Type | Description |
|---|---|---|
| name | string | Their name (optional). |
| string | The person's email address, as they gave it. Not needed when signed in with Geoniks (taken from the account). | |
| notes | string | Wishes: budget, timing, plot, wood type, anything the manufacturer should know. |
| phone | string | Phone number with country code (optional; manufacturers often reply by phone). |
| area_m2 | number | Floor area in m², if there is no design_id. |
| country | string | Country where they want to build. When signed in, the account's country is used if this is left out. |
| design_id | string | Id of a Geoniks design to send with the request. |
| user_request | string | What the person asked for, in one short sentence in their own words (no contact details). |
| consent_to_share* | boolean | true only if the person agreed that Geoniks shares their design and contact details with manufacturers. |
{
"type": "object",
"required": [
"consent_to_share"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Their name (optional)."
},
"email": {
"type": "string",
"description": "The person's email address, as they gave it. Not needed when signed in with Geoniks (taken from the account)."
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Wishes: budget, timing, plot, wood type, anything the manufacturer should know."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Phone number with country code (optional; manufacturers often reply by phone)."
},
"area_m2": {
"type": "number",
"description": "Floor area in m², if there is no design_id."
},
"country": {
"type": "string",
"description": "Country where they want to build. When signed in, the account's country is used if this is left out."
},
"design_id": {
"type": "string",
"description": "Id of a Geoniks design to send with the request."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
},
"consent_to_share": {
"type": "boolean",
"description": "true only if the person agreed that Geoniks shares their design and contact details with manufacturers."
}
},
"additionalProperties": false
}Call this early in the conversation, once the person has said what they want and agreed to leave their contact details: it saves their request for the Geoniks team, opens a free Geoniks account for their email (they get a sign-in link by email, so designs and offers are kept in one place) and returns the next step for the chosen path — they have a drawing (PDF, DWG, DXF, IFC, SketchUp, photo), want a house designed from scratch, or want prices from manufacturers. Requires their own email, their country and consent_to_contact = true. Set consent_to_share = true only if they also agreed that their request and contact details go to wooden house manufacturers.
| Argument | Type | Description |
|---|---|---|
| name | string | Their name. |
| need* | string | have_drawing · design_from_scratch · get_quotes · not_sure |
| email* | string | The person's email address, as they gave it. |
| notes | string | Anything else: budget, timing, plot, wishes. |
| phone | string | Phone number with country code (optional). |
| area_m2 | number | Floor area in m², if known. |
| country* | string | Country where they want to build. |
| bedrooms | number | Bedrooms, if known. |
| design_id | string | Id of a Geoniks design made in this conversation, if any. |
| construction | string | Wooden house type. |
| user_request | string | What the person asked for, in one short sentence in their own words (no contact details). |
| drawing_format | string | If they have a drawing: what kind (PDF, photo, DWG, DXF, IFC, SketchUp, Revit …). |
| consent_to_share | boolean | true only if they also agreed that manufacturers in their country receive the request and contact details. |
| consent_to_contact* | boolean | true only if the person agreed that Geoniks saves their details, opens their free account and contacts them. |
{
"type": "object",
"required": [
"email",
"country",
"need",
"consent_to_contact"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Their name."
},
"need": {
"enum": [
"have_drawing",
"design_from_scratch",
"get_quotes",
"not_sure"
],
"type": "string",
"description": "have_drawing · design_from_scratch · get_quotes · not_sure"
},
"email": {
"type": "string",
"description": "The person's email address, as they gave it."
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Anything else: budget, timing, plot, wishes."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Phone number with country code (optional)."
},
"area_m2": {
"type": "number",
"description": "Floor area in m², if known."
},
"country": {
"type": "string",
"description": "Country where they want to build."
},
"bedrooms": {
"type": "number",
"description": "Bedrooms, if known."
},
"design_id": {
"type": "string",
"description": "Id of a Geoniks design made in this conversation, if any."
},
"construction": {
"enum": [
"Log house",
"Timber frame",
"CLT / solid wood",
"Not sure yet"
],
"type": "string",
"description": "Wooden house type."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
},
"drawing_format": {
"type": "string",
"maxLength": 60,
"description": "If they have a drawing: what kind (PDF, photo, DWG, DXF, IFC, SketchUp, Revit …)."
},
"consent_to_share": {
"type": "boolean",
"description": "true only if they also agreed that manufacturers in their country receive the request and contact details."
},
"consent_to_contact": {
"type": "boolean",
"description": "true only if the person agreed that Geoniks saves their details, opens their free account and contacts them."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.