FloorGen MCP server
FloorGen runs a Model Context Protocol server at https://floorgen.app/mcp, so Claude, ChatGPT, Cursor and other MCP clients can read and edit your floor plans with the same engine as the editor. This page is generated from the server's own tool registry.
- Endpoint
- floorgen.app/mcp
- Transport
- Streamable HTTP
- Tools
- 151
- Sign-in
- OAuth 2.1 or API key
What the server does
An MCP client calls tools such as create_project, add_walls, add_opening and place_item to build a real plan: walls with lengths, rooms that close, doors in walls. The plan is an ordinary FloorGen project, so you can open it in the editor, change it by hand and hand it back. Edits an agent makes appear in an open editor within about a second, each as one undoable step, and are listed under Activity.
| Item | Detail |
|---|---|
| Endpoint | POST https://floorgen.app/mcp |
| Transport | Streamable HTTP, stateless |
| Protocol versions | 2025-03-26, 2025-06-18, 2025-11-25 and 2026-07-28 |
| OAuth | OAuth 2.1 with PKCE (S256), dynamic client registration or client metadata documents, rotating refresh tokens |
| API keys | Made in Agents & MCP, start with fg_live_, shown once; sent as Authorization: Bearer <key> |
| Account | A free FloorGen account (sign in with Google); projects must be synced to it |
Connecting a client
Clients that take only a URL (claude.ai, Claude Desktop's connector screen, ChatGPT) sign you in with OAuth: you sign in to FloorGen and pick the access level on a consent page. Clients that let you set a header (Claude Code, Cursor, VS Code and most editors) use an API key, sent as Authorization: Bearer <key>. Keys are made on FloorGen's Home screen, under Agents & MCP at the foot of the sidebar: pick Read only, Read & edit or Full, all projects or chosen ones, and an expiry. Either way you need a free FloorGen account, and only projects synced to it are visible.
Claude (claude.ai, Desktop and mobile)
- Open Settings → Connectors → Add custom connector.
- Name it FloorGen and paste
https://floorgen.app/mcpas the remote MCP server URL. - Click Connect, sign in to FloorGen and choose Read only, Read & edit, or Full.
- In a chat, turn FloorGen on from the tools menu. A connector added on claude.ai also appears in Claude Desktop and the mobile apps.
Claude Code
export FLOORGEN_API_KEY="fg_live_PASTE_YOUR_KEY" claude mcp add --transport http --scope user floorgen https://floorgen.app/mcp \ --header "Authorization: Bearer $FLOORGEN_API_KEY"
Check it with claude mcp list, or /mcp inside a session.
ChatGPT
- Turn on developer mode: Settings → Apps & Connectors → Advanced settings → Developer mode. Write tools need it.
- Create a connector named FloorGen with the MCP server URL
https://floorgen.app/mcpand OAuth authentication. - Sign in to FloorGen when asked, pick the access level, then choose the connector in a chat and ask it to list your FloorGen projects.
Cursor
{
"mcpServers": {
"floorgen": {
"url": "https://floorgen.app/mcp",
"headers": { "Authorization": "Bearer ${env:FLOORGEN_API_KEY}" }
}
}
}In Cursor Settings → MCP, floorgen shows a green dot and its tool count. The Agents & MCP dialog has set-up text for each client (Claude Code, Claude Desktop, claude.ai, Cursor, VS Code with Copilot, Windsurf, Codex CLI, Gemini CLI, Cline, ChatGPT and any other), with a new key filled in. The longer walk-through, with Claude Desktop's config file, is connecting Claude, ChatGPT and Cursor to FloorGen.
Toolsets
A short tool list helps a model choose well, so the server lists only core (44 tools) unless the client asks for more, with ?toolsets= on the URL or an X-FloorGen-Toolsets header: https://floorgen.app/mcp?toolsets=core,stairs,history, or ?toolsets=all for all 151. A credential only ever sees the tools its access level allows: a read-only key never sees an edit tool.
| Toolset | Tools | What it adds |
|---|---|---|
core | 44 | On by default: reading, projects, floors, walls, rooms, openings, furniture, batches, checks, renders, undo. |
more | 65 | The rest of the everyday editing: finishes, surfaces, notes, elevations, schedules, scenarios, comparisons. |
stairs | 8 | Stairs, stair cores and lifts, with their presets and checks. |
trace | 4 | A background image to trace over, and its scale; DXF import. |
live | 6 | The open editor tab: selection, view, camera. |
macros | 15 | Whole layouts and rooms in one call, and the kitchen, bathroom and living room generators. |
history | 9 | The change log, diffs, redo, checkpoints and the activity feed. |
All 151 tools
Grouped by what they work on. Lengths are in centimetres, or text such as 3.5m or 12'6"; every edit takes dry_run and expected_rev. "Edit" tools need Read & edit access, "Delete" tools Full access and a confirmation token.
Reading the plan
Start here: what the server allows, and the plan as rows an agent can search.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
get_context | Returns what this FloorGen server speaks and allows. | Read | core |
get_credits | Returns the signed-in user's AI credits. | Read | core |
describe_project | A readable summary of the project. | Read | core |
list_entities | Rows for the plan's entities, filtered by type, by room (entities inside it or on its walls) or by a box. | Read | core |
get_entity | One entity by id with its derived facts. | Read | core |
find | Finds entities from a plain-words query and ranks them. | Read | core |
The open editor tab
Work with what the person sees in the browser right now (toolset live).
| Tool | What it does | Access | Toolset |
|---|---|---|---|
get_selection | What the person has selected in the open editor tab. | Read | live |
set_selection | Selects entities in the open editor tab so the person sees them highlighted (an empty list clears the selection). | Edit | live |
get_view | How the open editor tab is showing the project. | Read | live |
set_view | Changes what the open editor tab shows. | Edit | live |
focus_entities | Moves the open editor tab's camera to frame the given entities, so the person looks at them (in 2D it pans and zooms the plan). | Edit | live |
Projects and settings
Create, copy, import, export and delete projects; units, code profile and title block.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
list_projects | Lists the projects in this account: id, name, updated_at (ISO time), rev (version number to pass as expected_rev) and size_kb. | Read | core |
list_templates | Lists the ready-made plans create_project and apply_template use. | Read | core |
create_project | Creates a new project: blank, a blank plot with boundary walls (plot_width and plot_depth), or from a template (see list_templates). | Edit | core |
rename_project | Renames the project. | Edit | core |
set_units | Switches how the project shows lengths and areas (metric or imperial). | Edit | more |
update_project_settings | Changes project-wide settings; only the fields you pass change. | Edit | more |
update_project_meta | Sets the title-block details (client, address, revision, notes), the budget currency and the budget unit rates. | Edit | more |
duplicate_project | Makes an independent copy of the project (every floor and design, new ids throughout) as a new project. | Edit | core |
import_project | Creates a new project from a FloorGen project file, given as json (object or text) or as an https url (JSON or gzip, up to 15 MB). | Edit | more |
export_project_json | Returns the whole project as the text of a .floorgen.json file (traced images embedded; the trash is not included). | Read | more |
delete_project | Deletes a whole project. | Delete (asks to confirm) | core |
restore_project | Brings back a project deleted through this API within the last 30 days, as it was when deleted. | Edit | more |
Floors, designs and scenarios
Storeys, alternative designs of a floor, and whole-house scenarios.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
list_floors | Lists the floors lowest first. | Read | core |
add_floor | Adds a floor on top, as a basement under everything, or right above a chosen floor, empty or copying the walls (or everything) of its source floor, and makes it the active floor. | Edit | core |
update_floor | Changes a floor's name, storey height, type (basement, stilt, ground, upper, terrace) or slab thickness. | Edit | core |
move_floor | Moves a floor within the stack, to a position (0 is the lowest) or one step up or down. | Edit | more |
delete_floor | Deletes a floor with all its designs. | Delete (asks to confirm) | more |
set_active_floor | Makes a floor (the floor argument) the active one, the floor the app shows and the default for plan tools. | Edit | more |
add_design | Adds an alternative design (variant) to a floor, blank or a copy of an existing one, and makes it the active design, to try a layout without touching the original. | Edit | core |
rename_design | Renames a design. | Edit | more |
set_active_design | Makes the design named by the design argument (id or name) the active design of the floor (the floor argument, default the active floor). | Edit | more |
delete_design | Deletes the design named by the design argument (id or name; by default the active one) from the floor. | Delete (asks to confirm) | more |
list_scenarios | Lists whole-house scenarios. | Read | more |
save_scenario | Saves a scenario. | Edit | more |
apply_scenario | Switches every floor to the design the scenario saved for it, in one change (like calling set_active_design on each floor; floors added later keep their active design). | Edit | more |
delete_scenario | Deletes a scenario. | Edit | more |
copy_floor | Copies one floor (the floor argument, default the active floor; its active design, or every design with all_designs) with everything on it. | Edit | core |
Walls and rooms
Walls are the geometry; rooms are found from closed loops of walls.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
add_walls | Draws walls: a polyline through points (closed:true joins the last point to the first, making a room) or separate segments [{a,b}]. | Edit | core |
update_walls | Paint, finish, thickness and height of existing walls. | Edit | core |
set_wall_length | Makes a wall longer or shorter, like typing a length in the editor. | Edit | core |
move_wall | Slides a wall sideways (perpendicular to itself); straight neighbours stay joined and openings ride along. | Edit | more |
split_wall | Cuts one wall into two joined walls so the joint can be moved (for a slanted or stepped wall). | Edit | more |
set_wall_divider | Turns walls into invisible room dividers (a hairline drawn dashed in 2D and not built in 3D, but still splitting one space into two rooms), or back into normal walls with divider:false. | Edit | more |
add_wall_feature | Builds a niche (a recess into the wall) or a bay window (a bump-out with windows) into a wall. | Edit | more |
create_room_rect | Draws a rectangular room. | Edit | core |
create_room_polygon | Draws a room of any shape from its corners in order (at least 3; sides must not cross). | Edit | core |
update_room | Renames a room and sets its type, floor texture and colour, area label and label position. | Edit | core |
split_room | Divides a room in two with a new wall along the line from a to b (ends within 30 cm of a wall of the room snap onto it). | Edit | more |
merge_rooms | Joins two neighbouring rooms into one by removing the wall(s) they share (with any doors and windows in them), like deleting those walls in the editor. | Edit | more |
delete_room | Deletes a room by removing the walls only it uses (walls shared with another room stay), with the doors and windows on them. | Delete (asks to confirm) | more |
change_room_use | Changes what a room is used for in one step. | Edit | more |
define_zone | Name an area inside a room, such as Kitchen, Dining and Living in one open-plan room, as a polygon or rectangle in cm that must lie inside the room (1 cm tolerance). | Edit | more |
Doors, windows and finishes
Openings in walls, curtains and blinds, floor and wall finishes.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
add_opening | Adds a door (hinged, double, sliding, pocket, bifold or overhead garage door), a window (casement, double-hung, slider, awning, picture or tilt-and-turn: window_type) or an open passage to a wall. | Edit | core |
update_opening | Changes an existing door, window or passage. | Edit | core |
flip_opening | Flips which side a door swings to, which end its hinge is on, or both. | Edit | more |
add_window_dressing | Hangs curtains or a roller blind on a window (or a sliding or double door). | Edit | more |
list_finishes | Lists the floor textures (with each one's usual colour), the wall textures (plaster, brick, plain paint) and some named paint colours. | Read | more |
set_floor_finish | Sets the floor texture and/or colour of rooms and of floor surfaces. | Edit | core |
set_wall_finish | Paints walls and/or sets their material (plain paint "none", plaster or brick) on the same faces as the colour. | Edit | more |
list_exterior_faces | Lists the wall faces on a floor that face outside the building (for exterior paint, cladding or windows). | Read | core |
Furniture and fixtures
Search the catalog of about 2,500 models and place, move and restyle items.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
list_categories | List the catalogue categories and their subcategories with how many items each holds. | Read | core |
search_catalog | Find furniture and fittings in the catalogue by words, category and size. | Read | core |
get_catalog_item | Full details of one catalogue item. | Read | more |
place_item | Place a catalogue item (catalog_id from search_catalog) the way a drop in the editor does. | Edit | core |
update_items | Change placed items (id or ids, by id or name). | Edit | core |
arrange_items | Line up several items, space them evenly, or push them against the nearest wall. | Edit | more |
place_on_item | Puts an item exactly on top of another (a lamp on a nightstand, a hob on an island). | Edit | more |
place_on_wall | Hang an item on one face of a wall, back flush against it and facing into face_room, at offset along the wall from end a and elevation above the floor. | Edit | more |
find_free_space | Finds the empty floor in a room or zone, to see where something big fits. | Read | core |
Stairs and lifts
Toolset stairs.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
list_stair_presets | Lists the stair presets add_stair accepts. | Read | stairs |
add_stair | Adds a staircase from a preset on the targeted floor, fitted clear of walls and furniture. | Edit | stairs |
update_stair | Changes a stair's fields. | Edit | stairs |
set_stair_span | Makes a stair a stair core that repeats on every floor above (each floor gets its own riser count), or turns it back into a single-floor stair. | Edit | stairs |
list_lift_presets | Lists the lift presets add_lift accepts (home, passenger-8, passenger-13, bed, panoramic, goods) with shaft and cabin size in cm, capacity and door. | Read | stairs |
add_lift | Adds a lift (elevator) from a preset on the targeted floor, fitted clear of walls, furniture and stairs. | Edit | stairs |
update_lift | Changes a lift's fields. | Edit | stairs |
Surfaces, railings, notes and dimensions
Terraces, balconies, cut-outs, railings, notes, dimension lines, the north arrow and section lines.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
add_surface | Draws a wall-less surface on the plan: a terrace, path or zone (floor), a hole in the floor (cutout) or a balcony. | Edit | more |
update_surface | Changes a surface's name, finish, colour, thickness, height, opacity, visibility or (balconies) railing. | Edit | more |
edit_surface_points | Moves, inserts or removes corners of a surface. | Edit | more |
clip_surface | Cuts a surface (terrace, floor surface, balcony) with a polygon, rectangle, room or another surface. | Edit | more |
add_balcony | Adds a balcony slab with a glass railing. | Edit | more |
add_railing | Adds a free-standing railing along a polyline (a terrace edge, gallery or landing). | Edit | more |
update_railing | Changes a railing's path, style, height, post spacing, elevation or name. | Edit | more |
measure | Measures the straight-line distance between two points, or the closest distance between two entities (their outlines or wall lines; 0 when they touch or overlap). | Read | core |
pin_measurement | Pins a dimension line between two points so the length shows on the plan. | Edit | more |
add_note | Writes a text note on the plan (a label, remark or sticky note for the client). | Edit | more |
update_note | Changes a note's text, position, style, size, colour or arrow. | Edit | more |
set_north_arrow | Places the north arrow on the plan and/or sets which way north points. | Edit | more |
add_section | Adds a section line: a cut through the building from a to b that the app draws as a section view. | Edit | more |
Tracing an image or a drawing
Put a scanned plan or photo under the plan and scale it, or import a CAD drawing (DXF) as walls, doors and windows (toolset trace).
| Tool | What it does | Access | Toolset |
|---|---|---|---|
set_background | Puts an image (a scanned plan, sketch or photo) behind the plan to trace over. | Edit | trace |
calibrate_background | Rescales the background image so the distance between two plan points equals a real length. | Edit | trace |
update_background | Changes the background image's opacity, visibility, lock, position or rotation, or removes it. | Edit | trace |
import_dxf | Adds a CAD floor plan (ASCII DXF, R12 to 2018) to the plan on this floor as walls, doors, windows and room names, in one change that undo takes back. | Edit | trace |
Batch edits, copies and the trash
Many edits as one undo step, moving and copying by id, and the restorable trash.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
apply_ops | Run up to 100 edits in order as ONE change and a single undo step. | Edit | core |
list_ops | Lists the op names apply_ops accepts with a one-line summary each (no arguments needed, no project). | Read | core |
transform_entities | Move and/or turn walls, furniture, stairs, lifts, surfaces, notes, measurements and railings by id, e.g. "shift the bedroom 50 cm east" or "turn the sofa group 90 degrees". | Edit | core |
duplicate_entities | Copies entities by id, offset a little (default 30 cm right and down), e.g. to repeat a bedroom module or a furniture group with offset {x. | Edit | more |
clear_design | Empty the chosen design of a floor: all walls, doors, windows, rooms, furniture, stairs, lifts, surfaces, railings, notes and measurements. | Delete (asks to confirm) | more |
set_layer_flags | Lock, unlock, hide or show entities by id (rooms by key). | Edit | more |
soft_delete | The delete tool, no confirmation needed: removes entities by id into the design's trash, so restore_trash or undo brings them back. | Edit | core |
list_trash | Lists what soft_delete and purge_hidden removed from the chosen design, newest first. | Read | core |
restore_trash | Puts trashed entities back where they were. | Edit | core |
purge_hidden | Moves everything on the chosen design that is hidden (see set_layer_flags) into the trash, so a tracing clutter pass can be cleaned up and still undone with restore_trash. | Edit | more |
empty_trash | Permanently removes entries from the chosen design's trash: pass entries (entry ids from list_trash, or "all") and/or older_than_days. | Delete (asks to confirm) | more |
Checks and schedules
The same checks as the editor's issue list, the area schedule and geometry clean-up.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
validate_plan | The single audit of the plan; use it after a batch of edits or before showing the plan. | Read | core |
check_stairs | Check every stair on the chosen floor (including stair cores coming up from below) for riser and tread comfort, width, headroom, handrail height and ramp slope, under the project's building code. | Read | stairs |
check_clearances | Only the clearance findings of validate_plan, to see if people can move around after placing furniture. | Read | more |
get_schedule | The numbers for a brief or a quote. | Read | more |
audit_furniture | Checks every piece of furniture and reports what is wrong with it. | Read | core |
check_circulation | Checks that a clear path at least 75 cm wide leads from the main (exterior) entrance door to every room's door on the floor, round furniture, stairs and walls. | Read | core |
fix_geometry | Cleans up small slips on the floor and design, in one step. | Edit | more |
list_labels | Lists every room label (the name, type and finish saved for a room) on the floor and design. | Read | more |
manage_labels | Moves labels between rooms or removes them. | Edit | more |
Images, elevations and the roof
Pictures the agent can look at, and the elevations the print sets use.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
render_2d | Draws the floor plan as a PNG image. | Read | core |
render_3d | Draws a 3D view of a floor (or one room) as a PNG image, from a chosen corner, with flat shading and no textures. | Read | more |
list_elevations | Lists the elevations: flat, square-on views of the outside of the building. | Read | more |
get_elevation | Reads one elevation as data. | Read | more |
render_elevation | Draws one elevation as a PNG. | Read | more |
add_elevation | Saves an extra elevation looking square at a façade: by bearing, or by a wall's outer side. | Edit | more |
update_elevation | Renames, re-aims or restyles a saved elevation. | Edit | more |
delete_elevation | Deletes a saved elevation (undo brings it back). | Edit | more |
set_roof | Sets the automatic roof over the top floor, as the 3D view and every elevation draw it: kind, pitch, overhang and finish. | Edit | more |
Comparing designs and projects
Side-by-side plans and area tables.
| Tool | What it does | Access | Toolset |
|---|---|---|---|
compare_designs | Compares two designs of one floor. | Read | more |
compare_projects | Compares the areas of 2 to 6 projects side by side. | Read | more |
History, undo and checkpoints
Every agent edit is logged as a transaction that can be inspected and undone (toolset history, except undo).
| Tool | What it does | Access | Toolset |
|---|---|---|---|
get_history | Lists the changes made to a project through agent tools and reverts, newest first. | Read | history |
diff | Shows what a logged change did, entity by entity. | Read | history |
undo | Takes back your own latest change (or the last few with steps), like Undo in the editor; one apply_ops call is one change. | Edit | core |
redo | Brings back the change you most recently undid with undo (or the last few with steps). | Edit | history |
restore_entities | Puts the chosen entities back to how they were at an earlier point in the history (a rev, or just before a change), even when other things were edited since. | Edit | history |
create_checkpoint | Saves a named copy of the whole project as it is now, so you can come back to it with restore_checkpoint. | Edit | history |
list_checkpoints | Lists the saved checkpoints of a project, newest first. | Read | history |
restore_checkpoint | Puts the whole project back as it was at a checkpoint. | Delete (asks to confirm) | history |
get_activity | The activity feed of a project, newest first: logged changes (kind "change") and notes people or agents left (kind "note") together. | Read | history |
post_note | Leaves a note in the project's activity feed (shown to the person in the editor), for example to explain a choice or ask a question. | Edit | history |
who_is_here | Shows who has this project open right now. | Read | live |
One-step layouts
Bigger jobs in one call, each a single undo step with a checkpoint before it (toolset macros).
| Tool | What it does | Access | Toolset |
|---|---|---|---|
generate_layout | Creates a NEW design with a whole floor plan from a room list and switches to it; not for adding a room to the current plan (use create_room_rect). | Edit | macros |
furnish_room | Furnishes a room at once (no proposals; undo removes it) with a ready-made set against its walls and clear of doors. | Edit | macros |
connect_rooms | Opens a door (or a plain opening) between two rooms that share a wall: on the longest shared wall, centred where both rooms touch it. | Edit | macros |
add_storey_with_stair | Adds a floor above the target floor and a stair up to it, in one step (direction "down": a basement under the lowest floor and a stair down to it). | Edit | macros |
auto_dimension | Pins dimension lines on the plan: the overall width and depth outside the walls and, if asked, the width and depth of each rectangular room. | Edit | macros |
apply_template | Creates a NEW design from a template's floor plan (ids from list_templates) and switches to it; not for adding a room to the current plan. | Edit | macros |
propose_variant | Offers a change without touching the original. | Edit | macros |
add_adjacent_room | Adds a rectangular room against one side of an existing room in one step. | Edit | macros |
partition_room | Carves a closet, ensuite or pantry out of a corner or a side of a rectangular room in one step. | Edit | macros |
resize_room | Moves one side of a rectangular room out or in. | Edit | macros |
add_stair_core | Reserves the same stair rectangle on every floor from from_floor to to_floor and puts a stair in it that climbs through them, in one step. | Edit | macros |
swap_rooms | Swaps what two rooms are. | Edit | macros |
generate_kitchen | Proposes 2 or 3 kitchen layouts for a room or zone and changes nothing; call again with apply true and option n to place one (replacing an earlier generated kitchen there). | Edit | macros |
generate_bathroom | Proposes 2 or 3 bathroom layouts for a room or zone and changes nothing; call again with apply true and option n to place one (replacing an earlier generated bathroom there). | Edit | macros |
generate_living | Proposes 2 or 3 living and/or dining layouts for a room or zone and changes nothing; call again with apply true and option n to place one (replacing an earlier generated layout there). | Edit | macros |
12 prompts and 15 resources
Each prompt is a playbook: a job written out step by step against the real tools, starting with get_context and ending with validate_plan and render_2d.
| Prompt | What it does |
|---|---|
design_home | Create a complete home layout from a short brief: rooms, doors, windows, storeys and furniture, checked and rendered. |
furnish_room | Furnish one room with the generator that fits its type (kitchen, bathroom, living, bedroom), in a copy of the design, and check clearances. |
trace_plan | Trace an uploaded floor plan image into walls, rooms and openings at the right scale, then clean and check it. |
review_plan | Review a plan for issues and give prioritised feedback, without editing it. |
add_storey | Add a floor above with a stair that connects both, lined up with the floor below, and check the stairs. |
explain_project | Explain the project in plain words for a given audience, without editing it. |
make_alternative | Try a change in a separate design, check it and compare it with the original, which stays untouched. |
audit_and_fix_plan | Find what is wrong with a plan (geometry, floors, stairs, furniture, circulation) and fix it in small checked steps, or only report with apply false. |
refresh_room | Offer new layouts for one room, each built in its own copy of the design, rendered and compared with the original; nothing switches until the user picks. |
render_review_loop | Render each floor, look for what the checks miss, fix it and render again, at most three rounds. |
safe_destructive_edit | Remove or rebuild part of a plan safely: checkpoint, soft delete, verify, restore if needed; permanent deletes only with the confirm flow and the user's yes. |
compare_designs_report | Compare two designs of one floor side by side, with checks and pictures, and recommend one; read only. |
| URI | What it holds |
|---|---|
floorgen://projects | Your projects: id, name, last change. |
floorgen://catalog | Categories of the furniture catalog with item counts. |
floorgen://stairs/presets | Presets for add_stair and add_lift. |
floorgen://finishes | Floor textures, wall materials and named paints. |
floorgen://schema/project.json | JSON Schema of a .floorgen.json project file. |
floorgen://guide/conventions | Units, axes, ids, references and how edits work. |
floorgen://guide/playbooks | Step-by-step jobs (audit and fix, refresh a room, safe deletes...), the same as the prompts. |
floorgen://projects/{id} | Project facts: floors, designs, settings. |
floorgen://projects/{id}/summary.md | A short readable summary of the project. |
floorgen://projects/{id}/floors/{floor}/designs/{design}/plan.json | One design of one floor as JSON (floor and design by id or name). |
floorgen://projects/{id}/rooms | Rooms of every floor with areas. |
floorgen://projects/{id}/activity | Latest edits and notes, newest first. |
floorgen://projects/{id}/history | Latest transactions with revisions. |
floorgen://catalog/{category} | Items of one catalog category. |
floorgen://guide/playbooks/{name} | One playbook: arguments, toolsets and scopes it needs, and the steps. |
Safety rails
- Access levels. Read only, Read & edit, or Full (which can delete), per key or per OAuth grant. A key can be limited to chosen projects and given an expiry.
- Preview and conflicts. Every edit takes
dry_runto see the result without saving, andexpected_revso an edit made on a stale copy is refused. - Two-step deletes. Destructive tools return a confirmation token first; the agent has to ask and call again.
soft_deletemoves things to a trash thatrestore_trashempties back. - Undo and checkpoints. Each call is one logged change that
undoreverses. A checkpoint is saved before macros and deletes, and deleted projects can be restored for 30 days. - Rate limits. 300 calls and 60 edits a minute per key.
More on how these work together: letting AI agents edit floor plans safely.
Questions
Do I need an account?
Yes, for agents. The editor works without one, but an AI app reaches only projects synced to a FloorGen account, so sign in (free, with Google) and let your projects sync before you connect it.
Which AI apps work?
Any client that speaks MCP over Streamable HTTP: Claude (web, desktop, mobile and Claude Code), ChatGPT in developer mode, Cursor, VS Code with Copilot, Windsurf, Codex CLI, Gemini CLI and Cline, among others.
Can an agent see all my projects?
An OAuth sign-in covers every project in the account. To keep an agent to one job, make an API key limited to chosen projects, and give it Read only or Read & edit access.
Can I undo what an agent did?
Yes. Each tool call is one step in the editor's undo history and one logged transaction that undo reverses, and checkpoints are saved before bigger changes.
Does it export PNG, PDF or 3D files for agents?
render_2d, render_3d and render_elevation return PNG images the agent can look at. File exports (PDF, DXF, glTF, video) are in the editor's Export menu; export tools for agents are listed as coming soon.