Create a new project from a site (`create`), attach lots (`attach_parcels`, using lot.parcelExternalId from getFeasibilitySnapshot), or attach a knowledge reference (`attach_reference`). On `create`, pass `address`, or `lat` and `lng` from getFeasibilitySnapshot when you already have them: coordinates resolve the project to a city, and an address alone is geocoded server-side. Check `geography` on the result — `resolved: false` means the project has no city context and feasibility analysis will have nothing to resolve against, and `coordinateSource: "geocoded"` means the server picked the point, so confirm it is the right site. preview=true returns the field-level diff and writes nothing. A write returns a receipt. Not reversible on this surface: MCP cannot archive a project, detach a parcel, or detach a reference. attach_parcels and attach_reference take `projectId`, or `project` with the name the user said; with neither, the result lists their projects and nothing is attached. Create accepts idempotencyKey and externalRef (`<system>:<id>`, e.g. `notion:<page-id>`) so an imported project can be looked up later.