Buildern API and MCP server Let your AI agent price, schedule and log the job.

Buildern documents a gated API and no Buildern MCP server (checked 13 Nov 2026). Cotlet runs a hosted Buildern MCP server with 21 tools that ChatGPT and Claude use in your own contractor account. Estimates, invoices and anything that reaches a client or a sub wait for your OK.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Buildern
Buildern logo Buildern Cloud Browser

21 tools Read and write

Construction office work

What can your AI agent do in Buildern? The office work around each project.

  • Turn a takeoff into an estimate

  • Draft the client proposal

  • Move a schedule date and assign to-dos

  • Check budgets against bills and orders

  • Prepare the next client invoice

  • Write today's site diary

API gated, no MCP

Does Buildern have an MCP server or an API? The official Buildern routes, checked 13 November 2026.

Buildern publishes API documentation at api.buildern.com/v1/docs and directs API access through its contact flow. No Buildern MCP server and no official ChatGPT or Claude connector was verified.

  • The Buildern API docs are public at api.buildern.com/v1/docs; access goes through buildern.com/contact-us.
  • Buildern AI is the vendor's own assistant, described on its product page and in its Help Center.
  • Buildern documents its own QuickBooks Online and Xero integrations for accounting.
The Buildern API, working by hand and Cotlet compared
What you need Buildern APIBy handCotlet
Ask ChatGPT or Claude to do the work No MCP server verified Copy and paste Hosted MCP server
Start today with your own login Request access first Your login Your login, once
Estimates, schedules, bills and invoices Endpoints not verified One screen at a time 21 tools, writes after your OK
Run from n8n or a script After access, your own code Manual only REST, same key

Checked 13 Nov 2026. Sources: Buildern API documentation · Buildern contact page · Buildern AI · Buildern Help Center · Help: Buildern AI · Help: Quickbooks Online Integration · Help: Xero Integration · Help: Users, Roles, Permissions · Help: Projects · Help: Dashboards · Help: Takeoff · Help: Estimates · Help: Cost Codes · Help: Proposals · Help: Schedule · Help: Bid Requests / Request for Quote · Help: Selections and Allowances · Help: Purchase Orders · Help: Bills · Help: Budget Tab · Help: Change Orders / Variations · Help: Client Invoices · Help: To-Dos · Help: Daily Logs / Site diary · Help: Timesheets · Help: Files · Help: Clients · Help: Subcontractors & Vendors · Help: Templates

Set up once

How does the Buildern MCP server work? The Buildern MCP server by Cotlet: your agent works in your own Buildern account.

  1. 1Sign in to Buildern

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the paperwork

    Price a takeoff, then approve the estimate.

Your agent works in your own signed-in Cloud Browser. Writes, and anything that reaches a client or a sub, wait for your OK. Who can see your session

Any MCP client

How to connect Buildern to your AI agent

  1. 1

    Sign in to Buildern in a Cloud Browser. Open app.buildern.com in your Cotlet Cloud Browser and sign in with your own Buildern user.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Buildern sits on the shared address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Buildern on after connecting? Refresh the connector and the 21 Buildern tools appear.

ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: buildern_read
2 read, 19 write

All 21 Buildern MCP tools

One tool per workflow in the Buildern Help Center. Most take an `action`: `list` and `get` only read, the other actions write and ask first.

Projects and dashboards3

Start here: most other tools take a project name. Dashboards and the Budget tab are read only.

  • manage_projects List, open, create or update a project in Buildern. writeAsks first

    Most tools take a project, so this is usually the first call: `list` finds the project, `get` reads it. `create` and `update` save the fields you give and leave the rest as they are. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_projects

    REST endpointPOST https://cotlet.dev/api/v1/buildern/projects/manage

    Parameters

    Parameters: manage_projects
    NameTypeDescription
    action string required string One of `list`, `get`, `create`, `update`. `list` and `get` only read.
    project string string Project name or ID, for `get` and `update`.
    fields object object For `create` and `update`: name, client, address and the other project fields you want set, in Buildern's own labels.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "client": "Example Homeowner",
      "address": "12 Oak Lane, Springfield",
      "saved": true
    }
  • view_dashboards Read a Buildern dashboard, for the whole company or one project. read

    Returns the figures and lists the dashboard shows to your signed-in user, as text. Nothing is changed, so it runs without asking.

    MCP callbuildern_read → view_dashboards

    REST endpointGET https://cotlet.dev/api/v1/buildern/dashboards/view

    Parameters

    Parameters: view_dashboards
    NameTypeDescription
    dashboard string string Dashboard to open, by the name Buildern shows. Leave empty for the first one your role sees.
    project string string Project name or ID. Leave empty to cover every project your role can open.

    Example response

    {
      "dashboard": "Company overview",
      "project": null,
      "widgets": [
        {
          "title": "Open projects",
          "value": 3
        },
        {
          "title": "To-dos due this week",
          "value": 7
        }
      ]
    }
  • manage_budget_tab Read the Budget tab of one Buildern project, line by line. read

    Returns the rows of the project's Budget tab as your role sees them. Use it before a client meeting or at the end of a week to compare with bills and purchase orders. It changes nothing and runs without asking.

    MCP callbuildern_read → manage_budget_tab

    REST endpointGET https://cotlet.dev/api/v1/buildern/budget-tabs/manage

    Parameters

    Parameters: manage_budget_tab
    NameTypeDescription
    project string required string Project name or ID, as list in manage_projects returns it.

    Example input

    {
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "rows": [
        {
          "cost_code": "Cabinetry",
          "budget": 4340
        },
        {
          "cost_code": "Countertops",
          "budget": 3570
        },
        {
          "cost_code": "Tile",
          "budget": 720
        }
      ]
    }

Takeoffs, estimates and proposals5

From measured quantities to the document your client reads. The agent enters quantities you give it; it does not measure drawings.

  • perform_takeoff List or read a project's takeoffs, or record a new quantity takeoff. writeAsks first

    The agent enters the quantities you hand it; it does not measure drawings by itself. Read a saved takeoff back with `get` to price it in create_estimates. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → perform_takeoff

    REST endpointPOST https://cotlet.dev/api/v1/buildern/takeoff/perform

    Parameters

    Parameters: perform_takeoff
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    takeoff string string Takeoff name, for `get` and `create`.
    items array array For `create`: measured items, each with description, quantity and unit, as you or your estimator give them.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "takeoff": "Kitchen, base scope",
      "items": [
        {
          "description": "Base cabinets",
          "quantity": 14,
          "unit": "lf"
        },
        {
          "description": "Quartz countertop",
          "quantity": 42,
          "unit": "sq ft"
        },
        {
          "description": "Backsplash tile",
          "quantity": 30,
          "unit": "sq ft"
        }
      ],
      "saved": true
    }
  • create_estimates List or read a project's estimates, or create one from lines or a takeoff. writeAsks first

    Each line can carry a cost code from manage_cost_codes. The agent shows you the lines and the total before it saves. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → create_estimates

    REST endpointPOST https://cotlet.dev/api/v1/buildern/estimates

    Parameters

    Parameters: create_estimates
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    name string string Estimate name, for `get` and `create`.
    lines array array For `create`: description, cost_code, quantity, unit and unit_cost per line.

    Example input

    {
      "action": "create",
      "project": "Oak Lane kitchen remodel",
      "name": "Kitchen remodel, base scope",
      "lines": [
        {
          "description": "Base cabinets, supply and install",
          "cost_code": "CAB",
          "quantity": 14,
          "unit": "lf",
          "unit_cost": 310
        },
        {
          "description": "Quartz countertop",
          "cost_code": "CTP",
          "quantity": 42,
          "unit": "sq ft",
          "unit_cost": 85
        },
        {
          "description": "Backsplash tile",
          "cost_code": "TIL",
          "quantity": 30,
          "unit": "sq ft",
          "unit_cost": 24
        }
      ]
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "estimate": "Kitchen remodel, base scope",
      "lines": 3,
      "total": 8630,
      "saved": true
    }
  • manage_cost_codes List your Buildern cost codes, add one or rename one. writeAsks first

    Run `list` first to see the codes you already have, so the list does not grow duplicates. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_cost_codes

    REST endpointPOST https://cotlet.dev/api/v1/buildern/cost-codes/manage

    Parameters

    Parameters: manage_cost_codes
    NameTypeDescription
    action string required string One of `list`, `create`, `update`. `list` and `get` only read.
    code string string The cost code, for `create` and `update`.
    name string string What the code covers, for example Cabinetry.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "cost_codes": [
        {
          "code": "CAB",
          "name": "Cabinetry"
        },
        {
          "code": "CTP",
          "name": "Countertops"
        },
        {
          "code": "TIL",
          "name": "Tile"
        }
      ]
    }
  • create_proposals List or read a project's proposals, or create one for the client. writeAsks first

    A proposal is what your client reads, so the agent shows you its title and the estimate behind it before saving. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → create_proposals

    REST endpointPOST https://cotlet.dev/api/v1/buildern/proposals

    Parameters

    Parameters: create_proposals
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    title string string Proposal title, for `get` and `create`.
    estimate string string For `create`: the estimate the proposal is based on.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "proposal": "Kitchen remodel proposal",
      "estimate": "Kitchen remodel, base scope",
      "saved": true
    }
  • manage_templates List your Buildern templates or save a new one. writeAsks first

    A template is reused on future projects, so the agent shows you its name and source before saving. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_templates

    REST endpointPOST https://cotlet.dev/api/v1/buildern/templates/manage

    Parameters

    Parameters: manage_templates
    NameTypeDescription
    action string required string One of `list`, `create`. `list` and `get` only read.
    name string string Template name, for `create`.
    from_record string string For `create`: an existing Buildern record to start the template from, by name.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "template": "Kitchen remodel, standard scope",
      "from_record": "Kitchen remodel, base scope",
      "saved": true
    }

Schedule and site work5

Dates, to-dos, the daily log or site diary, crew hours and project files.

  • manage_schedule Read a project's schedule, add a task or move its dates. writeAsks first

    Your crews and subcontractors plan around these dates, so every move waits for your OK and the agent tells you which item it changed. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_schedule

    REST endpointPOST https://cotlet.dev/api/v1/buildern/schedule/manage

    Parameters

    Parameters: manage_schedule
    NameTypeDescription
    action string required string One of `list`, `create`, `update`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    task string string Schedule item, for `create` and `update`.
    start_date string string ISO date.
    end_date string string ISO date.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "task": "Drywall",
      "start_date": "2026-11-19",
      "end_date": "2026-11-21",
      "saved": true
    }
  • manage_to_dos List a project's to-dos, add one, reassign it or mark it done. writeAsks first

    An assigned to-do is work for a teammate, so new ones and reassignments wait for your OK. Without a project, `list` covers every project you can open. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_to_dos

    REST endpointPOST https://cotlet.dev/api/v1/buildern/dos/manage

    Parameters

    Parameters: manage_to_dos
    NameTypeDescription
    action string required string One of `list`, `create`, `update`. `list` and `get` only read.
    project string string Project name or ID. Leave empty to cover every project your role can open.
    title string string The to-do, for `create` and `update`.
    assignee string string Team member it is for.
    due_date string string ISO date.
    done boolean boolean Set true to mark it done.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "title": "Confirm tile start with the tile crew",
      "assignee": "Site lead",
      "due_date": "2026-11-20",
      "done": false
    }
  • record_daily_logs_site_diary Read a project's daily logs, or add today's site diary entry. writeAsks first

    Buildern's Help Center calls this Daily Logs / Site diary. The agent writes your notes as given and adds nothing you did not say. Run `list` for the date first so the same day is not logged twice. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → record_daily_logs_site_diary

    REST endpointPOST https://cotlet.dev/api/v1/buildern/daily-logs-site-diaries

    Parameters

    Parameters: record_daily_logs_site_diary
    NameTypeDescription
    action string required string One of `list`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    date string string ISO date of the log. Defaults to today.
    notes string string What happened on site, in your words.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "date": "2026-11-13",
      "notes": "Base cabinets set and levelled. Countertop template booked for Monday.",
      "saved": true
    }
  • track_timesheets Read timesheets, or enter hours for a team member on a project. writeAsks first

    Hours feed what you pay your crew, so each entry waits for your OK. `list` reads the hours already entered for a person, project or week. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → track_timesheets

    REST endpointPOST https://cotlet.dev/api/v1/buildern/timesheets/track

    Parameters

    Parameters: track_timesheets
    NameTypeDescription
    action string required string One of `list`, `create`. `list` and `get` only read.
    project string string Project name or ID. Leave empty to cover every project your role can open.
    person string string Team member the hours are for.
    date string string ISO date.
    hours number number Hours worked.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "person": "Carpenter A",
      "date": "2026-11-13",
      "hours": 8,
      "saved": true
    }
  • manage_files List a project's files or upload one to it. writeAsks first

    The file goes to the project in Buildern under the name you give. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_files

    REST endpointPOST https://cotlet.dev/api/v1/buildern/files/manage

    Parameters

    Parameters: manage_files
    NameTypeDescription
    action string required string One of `list`, `upload`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    file_url string string For `upload`: a link the Cloud Browser can download the file from.
    name string string File name to show in Buildern.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "file": "Kitchen layout rev B.pdf",
      "uploaded": true
    }

Buying: bids, orders and bills3

Requests for quote reach subcontractors and vendors outside your company; orders and bills are money. Each write waits for your OK.

  • manage_bid_requests_request_for_quote List bid requests or send a request for quote to subcontractors and vendors. writeAsks first

    A request for quote reaches people outside your company, so the agent lists the recipients and the scope before it goes out. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_bid_requests_request_for_quote

    REST endpointPOST https://cotlet.dev/api/v1/buildern/bid-requests-request-for-quote/manage

    Parameters

    Parameters: manage_bid_requests_request_for_quote
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    scope string string The work or materials you want priced.
    vendors array array Subcontractors or vendors from manage_subcontractors_vendors.
    due_date string string ISO date the bids are due.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "scope": "Kitchen rewiring",
      "vendors": [
        "Example Electric",
        "Sample Sparks"
      ],
      "due_date": "2026-11-27",
      "created": true
    }
  • manage_purchase_orders List or read a project's purchase orders, or create one for a vendor. writeAsks first

    A purchase order commits money to a vendor, so the agent shows the vendor, lines and total before it creates one. `list` is the quick way to see what is already ordered on a project. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_purchase_orders

    REST endpointPOST https://cotlet.dev/api/v1/buildern/purchase-orders/manage

    Parameters

    Parameters: manage_purchase_orders
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    vendor string string Vendor from manage_subcontractors_vendors, for `create`.
    lines array array For `create`: description, cost_code, quantity and unit_cost per line.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "purchase_orders": [
        {
          "vendor": "Example Lumber Co",
          "title": "Framing lumber package",
          "amount": 18400
        },
        {
          "vendor": "Sample Windows",
          "title": "Window order",
          "amount": 9650
        }
      ]
    }
  • manage_bills List a project's bills or add a vendor or subcontractor bill. writeAsks first

    Bills are costs against the project budget, so the agent checks the vendor and amount with you before adding one. With `list` it reads what is already entered, which avoids adding the same bill twice. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_bills

    REST endpointPOST https://cotlet.dev/api/v1/buildern/bills/manage

    Parameters

    Parameters: manage_bills
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    vendor string string Who sent the bill, for `create`.
    amount number number Bill total.
    bill_date string string ISO date on the bill.
    reference string string The vendor's bill or invoice number.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "vendor": "Example Lumber Co",
      "amount": 18400,
      "bill_date": "2026-11-10",
      "reference": "EL-2231",
      "saved": true
    }

Client money: selections, change orders and invoices3

Everything here changes what your client pays. Preparing an invoice and sending it are separate calls.

  • manage_selections_and_allowances Read or set a project's selections and the allowance for each. writeAsks first

    Allowances are money your client has agreed to, so a new or changed allowance waits for your OK. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_selections_and_allowances

    REST endpointPOST https://cotlet.dev/api/v1/buildern/selections-and-allowances/manage

    Parameters

    Parameters: manage_selections_and_allowances
    NameTypeDescription
    action string required string One of `list`, `create`, `update`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    item string string The selection, for example Kitchen faucet.
    allowance number number The allowance amount in your account currency.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "item": "Kitchen faucet",
      "allowance": 450,
      "saved": true
    }
  • manage_change_orders_variations List a project's change orders or variations, or add one. writeAsks first

    A change order changes what the client pays, so it waits for your OK. Buildern's Help Center files them under Change Orders / Variations. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_change_orders_variations

    REST endpointPOST https://cotlet.dev/api/v1/buildern/change-orders-variations/manage

    Parameters

    Parameters: manage_change_orders_variations
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    title string string Short name of the change, for `create`.
    description string string What changes in the work.
    amount number number Price of the change.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "change_order": "Extra outlet run",
      "amount": 640,
      "saved": true
    }
  • manage_client_invoices List or read client invoices, prepare one or send it to the client. writeAsks first

    Preparing and sending are separate calls, so you can read the invoice before it goes out. A sent invoice has reached your client and cannot be pulled back by the agent. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_client_invoices

    REST endpointPOST https://cotlet.dev/api/v1/buildern/client-invoices/manage

    Parameters

    Parameters: manage_client_invoices
    NameTypeDescription
    action string required string One of `list`, `get`, `create`, `send`. `list` and `get` only read.
    project string required string Project name or ID, as list in manage_projects returns it.
    invoice string string Invoice name or number, for `get` and `send`.
    lines array array For `create`: description and amount per line.

    Example input

    {
      "action": "action",
      "project": "project"
    }

    Example response

    {
      "project": "Oak Lane kitchen remodel",
      "invoice": "Progress invoice, November",
      "lines": [
        {
          "description": "Cabinet install, completed",
          "amount": 4340
        },
        {
          "description": "Extra outlet run",
          "amount": 640
        }
      ],
      "total": 4980,
      "sent": false
    }

Clients, subcontractors and vendors2

The people the other records point at. Add a sub here before sending them a bid request.

  • manage_clients List or read your Buildern clients, or add a new one. writeAsks first

    Add the client before manage_projects creates their project. Run `list` first so the same homeowner is not added twice. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_clients

    REST endpointPOST https://cotlet.dev/api/v1/buildern/clients/manage

    Parameters

    Parameters: manage_clients
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    client string string Client name, for `get`.
    fields object object For `create`: name, email, phone and address.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "client": "Example Homeowner",
      "email": "homeowner@example.com",
      "phone": "+1 555 0100",
      "saved": true
    }
  • manage_subcontractors_vendors List your subcontractors and vendors, or add one. writeAsks first

    Bid requests, purchase orders and bills point at these records, so add a new subcontractor here before you send them anything. By default you confirm each call; you can switch that off for this tool.

    MCP callbuildern_write → manage_subcontractors_vendors

    REST endpointPOST https://cotlet.dev/api/v1/buildern/subcontractors-vendors/manage

    Parameters

    Parameters: manage_subcontractors_vendors
    NameTypeDescription
    action string required string One of `list`, `get`, `create`. `list` and `get` only read.
    name string string Company name.
    trade string string Trade or what they supply, for example Electrical.
    email string string Contact email for bid requests and orders.

    Example input

    {
      "action": "action"
    }

    Example response

    {
      "name": "Example Electric",
      "trade": "Electrical",
      "email": "bids@example.com",
      "saved": true
    }
Encrypted, revocable

Who can see my Buildern session, and how do I revoke it?

  • What we store

    Your signed-in Buildern browser profile, AES-256-GCM encrypted, in Finland. Never your password.

  • What your agent gets

    The 21 Buildern tools. The session cookie stays in the Cloud Browser.

  • What the session sees

    The projects, estimates and money records your Buildern user and role can open, and nothing more.

  • What no tool touches

    Buildern users, roles and permissions, account settings and the QuickBooks Online and Xero connections.

  • If Buildern signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable Buildern for agents, reset the browser, or change your Buildern password.

You type your Buildern password yourself; the agent only uses the session that sign-in leaves behind. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

We keep it working

What happens when Buildern changes? The tools work through the same Buildern pages your office uses.

Cotlet watches the apps it serves and updates the Buildern server when Buildern changes its screens, so your agent keeps working without a code change on your side.

New Buildern features become available to the agent. It still sees only what your own Buildern user and role can see, so a login with fewer permissions gives the agent fewer records.

If Buildern signs you out, one click in the Cotlet console reopens the Cloud Browser so you can sign in again.

19 tools ask first

Approvals, undo and mistakes Clients, subs and vendors get nothing until you say so.

  1. 01 Read the takeoff perform_takeoff returns the quantities.
  2. 02 Check cost codes manage_cost_codes lists the codes you use.
  3. 03 Show you the estimate Lines and total, before anything is saved.
  4. 04 Save after your OK create_estimates writes it, then the proposal.
Fixing a Buildern write that went wrong
ActionHow to put it right
Project details, schedule dates, to-dosCall manage_projects, manage_schedule or manage_to_dos again with the earlier values
Cost code namesRename the code back with manage_cost_codes
Bid requestAlready with your subs and vendors: follow up with them directly
Client invoice, once sentAlready with your client: talk to them before you change it

All 19 write tools ask first: by default you confirm each call, and you can switch that off per tool. The 2 read tools, dashboards and the Budget tab, run at once.

MCP call
{
  "name": "create_estimates",
  "arguments": {
    "action": "create",
    "project": "Oak Lane kitchen remodel",
    "name": "Kitchen remodel, base scope",
    "lines": [
      {
        "description": "Base cabinets, supply and install",
        "cost_code": "CAB",
        "quantity": 14,
        "unit": "lf",
        "unit_cost": 310
      },
      {
        "description": "Quartz countertop",
        "cost_code": "CTP",
        "quantity": 42,
        "unit": "sq ft",
        "unit_cost": 85
      },
      {
        "description": "Backsplash tile",
        "cost_code": "TIL",
        "quantity": 30,
        "unit": "sq ft",
        "unit_cost": 24
      }
    ]
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/buildern/estimates \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"create","project":"Oak Lane kitchen remodel","name":"Kitchen remodel, base scope","lines":[{"description":"Base cabinets, supply and install","cost_code":"CAB","quantity":14,"unit":"lf","unit_cost":310},{"description":"Quartz countertop","cost_code":"CTP","quantity":42,"unit":"sq ft","unit_cost":85},{"description":"Backsplash tile","cost_code":"TIL","quantity":30,"unit":"sq ft","unit_cost":24}]}'
Response
{
  "project": "Oak Lane kitchen remodel",
  "estimate": "Kitchen remodel, base scope",
  "lines": 3,
  "total": 8630,
  "saved": true
}

The example prices 14 lf of base cabinets at $310, 42 sq ft of quartz at $85 and 30 sq ft of tile at $24: $8,630 in all. A cron job or n8n flow can make the same call over REST at /api/v1/buildern with the same key and price, in JSON. Failed calls are free.

Pay per call

How much does the Buildern MCP server cost?

About $29 a monthfor a small contractor running three projects, 5,000 credits. Your Buildern plan stays as it is.

Illustrative month, our assumption: successful calls for this workload
JobCallsCredits
Morning dashboard and to-do check2 × 20400
Daily log on three projects3 × 20600
Schedule moves2 × 20400
Supplier bills and purchase orders1 × 90900
Crew hours into timesheets15 × 4600
Takeoff, estimate and proposal for a new job3 × 10300
Friday budget review, three projects3 × 4120
Change orders and client invoices1 × 18180
Cloud Browser, 30 days1,500
Total350 calls5,000

The smallest pack, 5,000 credits for $29, covers this month. A busier office with more projects uses more calls.

  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Your Buildern plan and role apply as they are

Credit packs are one-time purchases, not a subscription. The month above is an example built from our own assumptions, not measured customer usage.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Buildern MCP server: other ways to connect What each route does for a construction office, and where it stops.

Other ways to work with Buildern, checked 13 Nov 2026
OptionWhat it doesWhere it stops
Buildern APIDocumented at api.buildern.com/v1/docs for your own code.Access through Buildern's contact flow; you write, host and fix the client.
Buildern AIBuildern's own assistant, inside Buildern.No official ChatGPT or Claude connector was verified.
QuickBooks Online and Xero integrationsBuildern's own links to those accounting tools.Set up in Buildern for accounting, not a route for an AI agent.
By handOpen each project in Buildern and click through.One screen at a time, only while you are at the desk.

If you get access to the Buildern API and it covers your job, use it: it is the vendor's own route. Cotlet fits when you want ChatGPT, Claude or a script working in Buildern today, from your own login, with nothing to host.

EU company, since 2019

Who runs Cotlet A company you can look up.

Cotlet is run by Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273) and in business since 2019. Its founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Buildern tools.

Buildern MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev/signup?app=buildern, turn on Buildern under Integrations in the console and sign in at https://app.buildern.com/ in your Cloud Browser. Then connect your AI agent and ask it to work on a project. The trial needs no card.

Does Buildern have an API?

Buildern publishes API documentation at api.buildern.com/v1/docs and directs API access through its contact flow (checked 13 Nov 2026). No Buildern MCP server and no official ChatGPT or Claude connector was verified; Buildern AI is the vendor's own assistant. Cotlet does not use that API: it works in your own signed-in Buildern account.

How is this different from Buildern AI?

Buildern AI is Buildern's own assistant, documented in its Help Center. Cotlet is separate: it lets ChatGPT, Claude or a script you choose work in your Buildern account with the same tools over MCP or REST.

Does Cotlet set up the QuickBooks Online or Xero connection?

No. Buildern documents its own QuickBooks Online and Xero integrations in its Help Center; you set those up in Buildern. No Cotlet tool changes them, or your users, roles, permissions and settings.

Which Buildern user should I sign in with?

Use the user whose work the agent should do. The agent sees only what that user and its role can see in Buildern, so a user without access to client invoices gives the agent no access to them either.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 21 tools, inputs, answers, API key and price. Agents use MCP; scripts and n8n HTTP steps use REST.

Is Cotlet affiliated with Buildern?

No. Cotlet is independent and not affiliated with Buildern.

Hand your next Buildern estimate to your agent.

Free 7-day trial with 2,000 credits, no card needed.