Magicplan import

Three ways to turn a magicplan Statistics export into a project: in-app upload, forwarded email, and the MCP tool.

Magicplan is a phone app that measures a home and exports a Statistics CSV. RenovAI parses that export and creates the project’s rooms (spaces) — so you capture the home once and never re-type it.

Three ways a Magicplan CSV reaches the importer, which creates spaces and stores the parsed plan

Three ways to import

1. In-app upload — on a project’s Spaces & Tasks tab, upload the Statistics CSV. The fastest path when you’re already in the app.

2. Forwarded email — email the Magicplan export to a project’s conversation address. Postmark receives it, the inbound webhook extracts the CSV, and it imports into that conversation’s project. (Inbound is served by convex/inboundEmail.ts, authenticated with a shared secret.)

3. MCP tool — an AI assistant calls import_magicplan({ projectId, csvText }). Combine with create_project to go from nothing to a populated project in two tool calls. See MCP server.

What gets imported

All three paths funnel into one shared importer (importStatsCore), so the result is identical:

  • The CSV’s ROOM ATTRIBUTES rows become spaces (name, type, floor, area, perimeter).
  • The full parsed plan (all six sections — plan/floor/room/wall/object) is stored as the project’s “Magicplan context”, which the get_magicplan_context MCP tool can read.
  • Re-importing reconciles only Magicplan-sourced spaces — rooms matched by name are updated in place (so their Tasks & Elements stay attached), rooms missing from the new file are removed, and new rooms are added. Rooms you added by hand survive untouched. A re-import shows a confirmation preview (kept / removed / added) first, and warns if a room being removed still has Tasks or Elements attached.

About the CSV

The Statistics export is a sectioned CSV — stacked blocks (PLAN ATTRIBUTES, FLOOR ATTRIBUTES, ROOM ATTRIBUTES, WALL ATTRIBUTES, OBJECT COUNT, Object Attributes) separated by header rows and blank lines, with numbers carrying unit suffixes (2.67 m, 6.02 m²). RenovAI’s parser handles all of it.