Geoniks — Wooden House Design
Wooden houses: draw in 3D or turn SketchUp, DWG or PDF plans into 3D, then get manufacturer quotes.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"geoniks": {
"url": "https://www.geoniks.com/api/mcp"
}
}
}遠端端點
https://www.geoniks.com/api/mcpstreamable-httphttps://www.geoniks.com/api/mcp/openstreamable-http它能做什麼
工具清單
工具(6)
🟡save_contact_and_request(email, name, phone, country, need, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The person's email address, as they gave it."
},
"name": {
"type": "string",
"maxLength": 100,
"description": "Their name."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Phone number with country code (optional)."
},
"country": {
"type": "string",
"description": "Country where they want to build."
},
"need": {
"type": "string",
"enum": [
"have_drawing",
"design_from_scratch",
"get_quotes",
"not_sure"
],
"description": "have_drawing · design_from_scratch · get_quotes · not_sure"
},
"drawing_format": {
"type": "string",
"maxLength": 60,
"description": "If they have a drawing: what kind (PDF, photo, DWG, DXF, IFC, SketchUp, Revit …)."
},
"construction": {
"type": "string",
"enum": [
"Log house",
"Timber frame",
"CLT / solid wood",
"Not sure yet"
],
"description": "Wooden house type."
},
"area_m2": {
"type": "number",
"description": "Floor area in m², if known."
},
"bedrooms": {
"type": "number",
"description": "Bedrooms, if known."
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Anything else: budget, timing, plot, wishes."
},
"design_id": {
"type": "string",
"description": "Id of a Geoniks design made in this conversation, if any."
},
"consent_to_contact": {
"type": "boolean",
"description": "true only if the person agreed that Geoniks saves their details, opens their free account and contacts them."
},
"consent_to_share": {
"type": "boolean",
"description": "true only if they also agreed that manufacturers in their country receive the request and contact details."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"required": [
"email",
"country",
"need",
"consent_to_contact"
],
"additionalProperties": false
}🟢design_wooden_house(width_m, depth_m, bedrooms, bathrooms, roof, ...)
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".
輸入結構描述
{
"type": "object",
"properties": {
"width_m": {
"type": "number",
"minimum": 4,
"maximum": 24,
"description": "Outer width along the front, in metres (4–24)."
},
"depth_m": {
"type": "number",
"minimum": 4,
"maximum": 16,
"description": "Outer depth, in metres (4–16)."
},
"bedrooms": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "Number of bedrooms (0 = studio). Reduced automatically if they do not fit."
},
"bathrooms": {
"type": "integer",
"minimum": 1,
"maximum": 2,
"description": "Number of bathrooms (1–2)."
},
"roof": {
"type": "string",
"enum": [
"gable",
"shed",
"hip"
],
"description": "Roof shape. Default gable."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional name for the design."
},
"template_id": {
"type": "string",
"description": "Id of a ready-made plan to start from. Size/room fields are then ignored."
},
"country": {
"type": "string",
"description": "Optional country (name or ISO code) for a price estimate."
},
"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
}🟢design_from_floor_plan(rooms, openings, roof, name, country, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"rooms": {
"type": "array",
"minItems": 1,
"maxItems": 40,
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Room name as written on the plan, e.g. \"Living room\", \"Bedroom 1\", \"Bathroom\"."
},
"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."
},
"width": {
"type": "number",
"description": "Width (left → right), metres."
},
"depth": {
"type": "number",
"description": "Depth (top → bottom), metres."
}
},
"required": [
"name",
"x",
"y",
"width",
"depth"
],
"additionalProperties": false
}
},
"openings": {
"type": "array",
"maxItems": 120,
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"door",
"window"
]
},
"room": {
"type": "string",
"description": "Room name."
},
"to": {
"type": "string",
"description": "Other room for a door between two rooms."
},
"side": {
"type": "string",
"enum": [
"top",
"bottom",
"left",
"right"
],
"description": "Outside wall side of the room, as drawn."
},
"width": {
"type": "number",
"description": "Metres. Default door 0.9, window 1.2."
},
"position": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "0–1 along the wall part (left→right or top→bottom). Default 0.5."
}
},
"required": [
"type",
"room"
],
"additionalProperties": false
}
},
"roof": {
"type": "string",
"enum": [
"gable",
"shed",
"hip"
],
"description": "Roof shape if shown or asked for. Default gable."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional name for the design."
},
"country": {
"type": "string",
"description": "Optional country (name or ISO code) for a price estimate."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"required": [
"rooms"
],
"additionalProperties": false
}🟢list_wooden_house_plans(user_request)
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).
輸入結構描述
{
"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
}🟢estimate_wooden_house_price(area_m2, country, wood, floors, currency, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"area_m2": {
"type": "number",
"minimum": 10,
"maximum": 2000,
"description": "Floor area in m²."
},
"country": {
"type": "string",
"description": "Country name or ISO code, e.g. \"Germany\" or \"DE\"."
},
"wood": {
"type": "string",
"enum": [
"pine",
"larch",
"cedar",
"log",
"oak"
],
"description": "Construction / wood type. Default pine (timber frame)."
},
"floors": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"description": "Number of floors. Default 1."
},
"currency": {
"type": "string",
"enum": [
"EUR",
"USD"
],
"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)."
}
},
"required": [
"area_m2",
"country"
],
"additionalProperties": false
}⚪request_manufacturer_quotes(email, country, consent_to_share, design_id, name, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The person's email address, as they gave it. Not needed when signed in with Geoniks (taken from the account)."
},
"country": {
"type": "string",
"description": "Country where they want to build. When signed in, the account's country is used if this is left out."
},
"consent_to_share": {
"type": "boolean",
"description": "true only if the person agreed that Geoniks shares their design and contact details with manufacturers."
},
"design_id": {
"type": "string",
"description": "Id of a Geoniks design to send with the request."
},
"name": {
"type": "string",
"maxLength": 100,
"description": "Their name (optional)."
},
"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."
},
"includes": {
"type": "string",
"enum": [
"House kit only (walls, floors, roof structure)",
"Kit + windows, doors and roofing",
"Weather-tight shell, assembled",
"Turnkey (ready to move in)",
"Not sure yet"
],
"description": "What the price should cover, if the person said (kit only … turnkey)."
},
"budget": {
"type": "string",
"enum": [
"Under €100,000",
"€100,000 – 200,000",
"€200,000 – 400,000",
"Over €400,000",
"Not sure yet"
],
"description": "Budget range, if the person said."
},
"start": {
"type": "string",
"enum": [
"Within 6 months",
"In 6–12 months",
"In 1–2 years",
"Just researching"
],
"description": "When they want to build, if the person said."
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Wishes: budget, timing, plot, wood type, anything the manufacturer should know."
},
"user_request": {
"type": "string",
"maxLength": 300,
"description": "What the person asked for, in one short sentence in their own words (no contact details)."
}
},
"required": [
"consent_to_share"
],
"additionalProperties": false
}社群
證據