Docs · MCP server

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.

Connection details
ItemDetail
EndpointPOST https://floorgen.app/mcp
TransportStreamable HTTP, stateless
Protocol versions2025-03-26, 2025-06-18, 2025-11-25 and 2026-07-28
OAuthOAuth 2.1 with PKCE (S256), dynamic client registration or client metadata documents, rotating refresh tokens
API keysMade in Agents & MCP, start with fg_live_, shown once; sent as Authorization: Bearer <key>
AccountA 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)

  1. Open Settings → Connectors → Add custom connector.
  2. Name it FloorGen and paste https://floorgen.app/mcp as the remote MCP server URL.
  3. Click Connect, sign in to FloorGen and choose Read only, Read & edit, or Full.
  4. 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

  1. Turn on developer mode: Settings → Apps & Connectors → Advanced settings → Developer mode. Write tools need it.
  2. Create a connector named FloorGen with the MCP server URL https://floorgen.app/mcp and OAuth authentication.
  3. 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.

The toolsets, with their tool counts (from the server registry)
ToolsetToolsWhat it adds
core44On by default: reading, projects, floors, walls, rooms, openings, furniture, batches, checks, renders, undo.
more65The rest of the everyday editing: finishes, surfaces, notes, elevations, schedules, scenarios, comparisons.
stairs8Stairs, stair cores and lifts, with their presets and checks.
trace4A background image to trace over, and its scale; DXF import.
live6The open editor tab: selection, view, camera.
macros15Whole layouts and rooms in one call, and the kitchen, bathroom and living room generators.
history9The 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.

Reading the plan (6)
ToolWhat it doesAccessToolset
get_contextReturns what this FloorGen server speaks and allows.Readcore
get_creditsReturns the signed-in user's AI credits.Readcore
describe_projectA readable summary of the project.Readcore
list_entitiesRows for the plan's entities, filtered by type, by room (entities inside it or on its walls) or by a box.Readcore
get_entityOne entity by id with its derived facts.Readcore
findFinds entities from a plain-words query and ranks them.Readcore

The open editor tab

Work with what the person sees in the browser right now (toolset live).

The open editor tab (5)
ToolWhat it doesAccessToolset
get_selectionWhat the person has selected in the open editor tab.Readlive
set_selectionSelects entities in the open editor tab so the person sees them highlighted (an empty list clears the selection).Editlive
get_viewHow the open editor tab is showing the project.Readlive
set_viewChanges what the open editor tab shows.Editlive
focus_entitiesMoves 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).Editlive

Projects and settings

Create, copy, import, export and delete projects; units, code profile and title block.

Projects and settings (12)
ToolWhat it doesAccessToolset
list_projectsLists the projects in this account: id, name, updated_at (ISO time), rev (version number to pass as expected_rev) and size_kb.Readcore
list_templatesLists the ready-made plans create_project and apply_template use.Readcore
create_projectCreates a new project: blank, a blank plot with boundary walls (plot_width and plot_depth), or from a template (see list_templates).Editcore
rename_projectRenames the project.Editcore
set_unitsSwitches how the project shows lengths and areas (metric or imperial).Editmore
update_project_settingsChanges project-wide settings; only the fields you pass change.Editmore
update_project_metaSets the title-block details (client, address, revision, notes), the budget currency and the budget unit rates.Editmore
duplicate_projectMakes an independent copy of the project (every floor and design, new ids throughout) as a new project.Editcore
import_projectCreates 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).Editmore
export_project_jsonReturns the whole project as the text of a .floorgen.json file (traced images embedded; the trash is not included).Readmore
delete_projectDeletes a whole project.Delete (asks to confirm)core
restore_projectBrings back a project deleted through this API within the last 30 days, as it was when deleted.Editmore

Floors, designs and scenarios

Storeys, alternative designs of a floor, and whole-house scenarios.

Floors, designs and scenarios (15)
ToolWhat it doesAccessToolset
list_floorsLists the floors lowest first.Readcore
add_floorAdds 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.Editcore
update_floorChanges a floor's name, storey height, type (basement, stilt, ground, upper, terrace) or slab thickness.Editcore
move_floorMoves a floor within the stack, to a position (0 is the lowest) or one step up or down.Editmore
delete_floorDeletes a floor with all its designs.Delete (asks to confirm)more
set_active_floorMakes a floor (the floor argument) the active one, the floor the app shows and the default for plan tools.Editmore
add_designAdds 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.Editcore
rename_designRenames a design.Editmore
set_active_designMakes the design named by the design argument (id or name) the active design of the floor (the floor argument, default the active floor).Editmore
delete_designDeletes the design named by the design argument (id or name; by default the active one) from the floor.Delete (asks to confirm)more
list_scenariosLists whole-house scenarios.Readmore
save_scenarioSaves a scenario.Editmore
apply_scenarioSwitches 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).Editmore
delete_scenarioDeletes a scenario.Editmore
copy_floorCopies one floor (the floor argument, default the active floor; its active design, or every design with all_designs) with everything on it.Editcore

Walls and rooms

Walls are the geometry; rooms are found from closed loops of walls.

Walls and rooms (15)
ToolWhat it doesAccessToolset
add_wallsDraws walls: a polyline through points (closed:true joins the last point to the first, making a room) or separate segments [{a,b}].Editcore
update_wallsPaint, finish, thickness and height of existing walls.Editcore
set_wall_lengthMakes a wall longer or shorter, like typing a length in the editor.Editcore
move_wallSlides a wall sideways (perpendicular to itself); straight neighbours stay joined and openings ride along.Editmore
split_wallCuts one wall into two joined walls so the joint can be moved (for a slanted or stepped wall).Editmore
set_wall_dividerTurns 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.Editmore
add_wall_featureBuilds a niche (a recess into the wall) or a bay window (a bump-out with windows) into a wall.Editmore
create_room_rectDraws a rectangular room.Editcore
create_room_polygonDraws a room of any shape from its corners in order (at least 3; sides must not cross).Editcore
update_roomRenames a room and sets its type, floor texture and colour, area label and label position.Editcore
split_roomDivides 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).Editmore
merge_roomsJoins 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.Editmore
delete_roomDeletes 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_useChanges what a room is used for in one step.Editmore
define_zoneName 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).Editmore

Doors, windows and finishes

Openings in walls, curtains and blinds, floor and wall finishes.

Doors, windows and finishes (8)
ToolWhat it doesAccessToolset
add_openingAdds 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.Editcore
update_openingChanges an existing door, window or passage.Editcore
flip_openingFlips which side a door swings to, which end its hinge is on, or both.Editmore
add_window_dressingHangs curtains or a roller blind on a window (or a sliding or double door).Editmore
list_finishesLists the floor textures (with each one's usual colour), the wall textures (plaster, brick, plain paint) and some named paint colours.Readmore
set_floor_finishSets the floor texture and/or colour of rooms and of floor surfaces.Editcore
set_wall_finishPaints walls and/or sets their material (plain paint "none", plaster or brick) on the same faces as the colour.Editmore
list_exterior_facesLists the wall faces on a floor that face outside the building (for exterior paint, cladding or windows).Readcore

Furniture and fixtures

Search the catalog of about 2,500 models and place, move and restyle items.

Furniture and fixtures (9)
ToolWhat it doesAccessToolset
list_categoriesList the catalogue categories and their subcategories with how many items each holds.Readcore
search_catalogFind furniture and fittings in the catalogue by words, category and size.Readcore
get_catalog_itemFull details of one catalogue item.Readmore
place_itemPlace a catalogue item (catalog_id from search_catalog) the way a drop in the editor does.Editcore
update_itemsChange placed items (id or ids, by id or name).Editcore
arrange_itemsLine up several items, space them evenly, or push them against the nearest wall.Editmore
place_on_itemPuts an item exactly on top of another (a lamp on a nightstand, a hob on an island).Editmore
place_on_wallHang 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.Editmore
find_free_spaceFinds the empty floor in a room or zone, to see where something big fits.Readcore

Stairs and lifts

Toolset stairs.

Stairs and lifts (7)
ToolWhat it doesAccessToolset
list_stair_presetsLists the stair presets add_stair accepts.Readstairs
add_stairAdds a staircase from a preset on the targeted floor, fitted clear of walls and furniture.Editstairs
update_stairChanges a stair's fields.Editstairs
set_stair_spanMakes 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.Editstairs
list_lift_presetsLists the lift presets add_lift accepts (home, passenger-8, passenger-13, bed, panoramic, goods) with shaft and cabin size in cm, capacity and door.Readstairs
add_liftAdds a lift (elevator) from a preset on the targeted floor, fitted clear of walls, furniture and stairs.Editstairs
update_liftChanges a lift's fields.Editstairs

Surfaces, railings, notes and dimensions

Terraces, balconies, cut-outs, railings, notes, dimension lines, the north arrow and section lines.

Surfaces, railings, notes and dimensions (13)
ToolWhat it doesAccessToolset
add_surfaceDraws a wall-less surface on the plan: a terrace, path or zone (floor), a hole in the floor (cutout) or a balcony.Editmore
update_surfaceChanges a surface's name, finish, colour, thickness, height, opacity, visibility or (balconies) railing.Editmore
edit_surface_pointsMoves, inserts or removes corners of a surface.Editmore
clip_surfaceCuts a surface (terrace, floor surface, balcony) with a polygon, rectangle, room or another surface.Editmore
add_balconyAdds a balcony slab with a glass railing.Editmore
add_railingAdds a free-standing railing along a polyline (a terrace edge, gallery or landing).Editmore
update_railingChanges a railing's path, style, height, post spacing, elevation or name.Editmore
measureMeasures 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).Readcore
pin_measurementPins a dimension line between two points so the length shows on the plan.Editmore
add_noteWrites a text note on the plan (a label, remark or sticky note for the client).Editmore
update_noteChanges a note's text, position, style, size, colour or arrow.Editmore
set_north_arrowPlaces the north arrow on the plan and/or sets which way north points.Editmore
add_sectionAdds a section line: a cut through the building from a to b that the app draws as a section view.Editmore

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).

Tracing an image or a drawing (4)
ToolWhat it doesAccessToolset
set_backgroundPuts an image (a scanned plan, sketch or photo) behind the plan to trace over.Edittrace
calibrate_backgroundRescales the background image so the distance between two plan points equals a real length.Edittrace
update_backgroundChanges the background image's opacity, visibility, lock, position or rotation, or removes it.Edittrace
import_dxfAdds 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.Edittrace

Batch edits, copies and the trash

Many edits as one undo step, moving and copying by id, and the restorable trash.

Batch edits, copies and the trash (11)
ToolWhat it doesAccessToolset
apply_opsRun up to 100 edits in order as ONE change and a single undo step.Editcore
list_opsLists the op names apply_ops accepts with a one-line summary each (no arguments needed, no project).Readcore
transform_entitiesMove 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".Editcore
duplicate_entitiesCopies 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.Editmore
clear_designEmpty 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_flagsLock, unlock, hide or show entities by id (rooms by key).Editmore
soft_deleteThe delete tool, no confirmation needed: removes entities by id into the design's trash, so restore_trash or undo brings them back.Editcore
list_trashLists what soft_delete and purge_hidden removed from the chosen design, newest first.Readcore
restore_trashPuts trashed entities back where they were.Editcore
purge_hiddenMoves 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.Editmore
empty_trashPermanently 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.

Checks and schedules (9)
ToolWhat it doesAccessToolset
validate_planThe single audit of the plan; use it after a batch of edits or before showing the plan.Readcore
check_stairsCheck 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.Readstairs
check_clearancesOnly the clearance findings of validate_plan, to see if people can move around after placing furniture.Readmore
get_scheduleThe numbers for a brief or a quote.Readmore
audit_furnitureChecks every piece of furniture and reports what is wrong with it.Readcore
check_circulationChecks 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.Readcore
fix_geometryCleans up small slips on the floor and design, in one step.Editmore
list_labelsLists every room label (the name, type and finish saved for a room) on the floor and design.Readmore
manage_labelsMoves labels between rooms or removes them.Editmore

Images, elevations and the roof

Pictures the agent can look at, and the elevations the print sets use.

Images, elevations and the roof (9)
ToolWhat it doesAccessToolset
render_2dDraws the floor plan as a PNG image.Readcore
render_3dDraws a 3D view of a floor (or one room) as a PNG image, from a chosen corner, with flat shading and no textures.Readmore
list_elevationsLists the elevations: flat, square-on views of the outside of the building.Readmore
get_elevationReads one elevation as data.Readmore
render_elevationDraws one elevation as a PNG.Readmore
add_elevationSaves an extra elevation looking square at a façade: by bearing, or by a wall's outer side.Editmore
update_elevationRenames, re-aims or restyles a saved elevation.Editmore
delete_elevationDeletes a saved elevation (undo brings it back).Editmore
set_roofSets the automatic roof over the top floor, as the 3D view and every elevation draw it: kind, pitch, overhang and finish.Editmore

Comparing designs and projects

Side-by-side plans and area tables.

Comparing designs and projects (2)
ToolWhat it doesAccessToolset
compare_designsCompares two designs of one floor.Readmore
compare_projectsCompares the areas of 2 to 6 projects side by side.Readmore

History, undo and checkpoints

Every agent edit is logged as a transaction that can be inspected and undone (toolset history, except undo).

History, undo and checkpoints (11)
ToolWhat it doesAccessToolset
get_historyLists the changes made to a project through agent tools and reverts, newest first.Readhistory
diffShows what a logged change did, entity by entity.Readhistory
undoTakes back your own latest change (or the last few with steps), like Undo in the editor; one apply_ops call is one change.Editcore
redoBrings back the change you most recently undid with undo (or the last few with steps).Edithistory
restore_entitiesPuts 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.Edithistory
create_checkpointSaves a named copy of the whole project as it is now, so you can come back to it with restore_checkpoint.Edithistory
list_checkpointsLists the saved checkpoints of a project, newest first.Readhistory
restore_checkpointPuts the whole project back as it was at a checkpoint.Delete (asks to confirm)history
get_activityThe activity feed of a project, newest first: logged changes (kind "change") and notes people or agents left (kind "note") together.Readhistory
post_noteLeaves 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.Edithistory
who_is_hereShows who has this project open right now.Readlive

One-step layouts

Bigger jobs in one call, each a single undo step with a checkpoint before it (toolset macros).

One-step layouts (15)
ToolWhat it doesAccessToolset
generate_layoutCreates 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).Editmacros
furnish_roomFurnishes a room at once (no proposals; undo removes it) with a ready-made set against its walls and clear of doors.Editmacros
connect_roomsOpens a door (or a plain opening) between two rooms that share a wall: on the longest shared wall, centred where both rooms touch it.Editmacros
add_storey_with_stairAdds 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).Editmacros
auto_dimensionPins dimension lines on the plan: the overall width and depth outside the walls and, if asked, the width and depth of each rectangular room.Editmacros
apply_templateCreates 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.Editmacros
propose_variantOffers a change without touching the original.Editmacros
add_adjacent_roomAdds a rectangular room against one side of an existing room in one step.Editmacros
partition_roomCarves a closet, ensuite or pantry out of a corner or a side of a rectangular room in one step.Editmacros
resize_roomMoves one side of a rectangular room out or in.Editmacros
add_stair_coreReserves 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.Editmacros
swap_roomsSwaps what two rooms are.Editmacros
generate_kitchenProposes 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).Editmacros
generate_bathroomProposes 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).Editmacros
generate_livingProposes 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).Editmacros

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.

Prompts (prompts/list)
PromptWhat it does
design_homeCreate a complete home layout from a short brief: rooms, doors, windows, storeys and furniture, checked and rendered.
furnish_roomFurnish one room with the generator that fits its type (kitchen, bathroom, living, bedroom), in a copy of the design, and check clearances.
trace_planTrace an uploaded floor plan image into walls, rooms and openings at the right scale, then clean and check it.
review_planReview a plan for issues and give prioritised feedback, without editing it.
add_storeyAdd a floor above with a stair that connects both, lined up with the floor below, and check the stairs.
explain_projectExplain the project in plain words for a given audience, without editing it.
make_alternativeTry a change in a separate design, check it and compare it with the original, which stays untouched.
audit_and_fix_planFind 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_roomOffer 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_loopRender each floor, look for what the checks miss, fix it and render again, at most three rounds.
safe_destructive_editRemove 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_reportCompare two designs of one floor side by side, with checks and pictures, and recommend one; read only.
Resources (read-only)
URIWhat it holds
floorgen://projectsYour projects: id, name, last change.
floorgen://catalogCategories of the furniture catalog with item counts.
floorgen://stairs/presetsPresets for add_stair and add_lift.
floorgen://finishesFloor textures, wall materials and named paints.
floorgen://schema/project.jsonJSON Schema of a .floorgen.json project file.
floorgen://guide/conventionsUnits, axes, ids, references and how edits work.
floorgen://guide/playbooksStep-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.mdA short readable summary of the project.
floorgen://projects/{id}/floors/{floor}/designs/{design}/plan.jsonOne design of one floor as JSON (floor and design by id or name).
floorgen://projects/{id}/roomsRooms of every floor with areas.
floorgen://projects/{id}/activityLatest edits and notes, newest first.
floorgen://projects/{id}/historyLatest 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_run to see the result without saving, and expected_rev so 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_delete moves things to a trash that restore_trash empties back.
  • Undo and checkpoints. Each call is one logged change that undo reverses. 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.