Documentation

AI connectors

Connect Claude, ChatGPT or any MCP-capable AI assistant to your own SitesAI data — what the connectors do, how to turn one on, and exactly which tools each one exposes.

What a connector is

SitesAI publishes two MCP servers (Model Context Protocol — the open standard AI assistants use to reach external systems). Once you connect one, you can ask your AI assistant questions about your own worksite data in plain language — “which jobs are quoted but not scheduled?”, “what did we cut on the Kilsyth site?” — and it answers from the live records in your account.

Both speak MCP streamable HTTP over HTTPS and support OAuth 2.1 (authorisation code + PKCE) as well as personal API keys.

Turning a connector on

Connectors are off by default — nothing is shared with any AI assistant until you deliberately connect one.

  1. Check your plan. The SitesAI App connector requires the AI add-on on your company; SitesAI Estimate requires the AI plan on your account.
  2. Add the connector in your AI client using the endpoint above, then complete the sign-in it prompts for. On the SitesAI App the consent screen is restricted to company owners and managers, and it is where you choose what the connection can do — read-only, or read and write. Write access is never automatic: unless an owner or manager picks the read-and-write option on that screen, the connection is read-only and every write tool refuses.
  3. Or use an API key — create one at app.sitesai.net/ai-keys (SitesAI Estimate: Account → MCP access) and paste it into your AI client. A key can be read-only or read-and-write, and belongs to one company.

Revoking access: every key and every OAuth connection is listed at app.sitesai.net/ai-keys and can be revoked at any time — it stops working immediately.

What a connected assistant can and cannot see

SitesAI App — tools

The App connector exposes 107 tools: 48 read tools and 59 write tools. Every one is listed below.

Read tools (safe, never change anything):

ToolWhat it does
lookup_by_phoneWho is this phone number? Matches the last 9 digits across CRM contacts, accounts, company members and leads. Call this first on every inbound call…
search_recordsGlobal search across ALL company records in one call — leads (job #/name/client), quotes, tasks, comments/diary notes (incl. photo/file attachments…
list_activityCompany log book: EVERYTHING that happened in a time window, newest first — tasks created/done/approved, leads created & stage moves, comments (the…
company_overviewOne-call company snapshot: dashboard stats, lead pipeline (open/due/won + counts by stage), task buckets, and the company timezone (all date/time s…
get_phone_agent_configThis company's SitesAI Voice phone-agent config — greeting, behaviour, allowed tools, business profile, timezone and active services: what the voic…
list_leadsList CRM leads (sales pipeline). Filter by search text, exact stage, bucket (live/won/closed), or due=true for follow-ups due now.
get_leadOne lead in full: every field (incl. lead_ref, the user-facing job #) plus its attached contacts (people from any company, one flagged primary), ac…
list_lead_typesThe company's lead types — the definable categories every lead belongs to (their labels switch the generic text/date/number fields on for leads of…
list_quotesList customer quotes (draft/sent/accepted/rejected) with totals. Filter by status, lead, or search text.
get_quoteOne quote in full: header, every line (qty/unit/rate/GST, 3DX provenance), totals (ex GST / GST / inc GST), and the client share URL once sent.
list_tasksList company tasks. Filter by status (open/done/approved), assignee email, search text, or due=true for tasks due now.
list_sitesList the company's sites/work locations (projects, workshops, storage, offices). The q search matches name, address, project ref and phone (multi-w…
get_siteOne site in full. As the OWNER: detail (address, timezone, geofence, hours), the induction, document_requirements, granted_companies (subcontractor…
list_servicesList the company's service catalogue + pricing (for customer pricing & support). Each service: name, description, category (parent_name), and rate…
list_itemsList the company's items/equipment/stock. The q search matches name, part number, brand and description (multi-word). Use flag="hire" or flag="sale…
get_itemGet one item by item_id — full detail incl. for_hire / for_sale, price, qty_on_hand, unit, category. qty_on_hand is derived from the stock ledger;…
list_stock_movesStock ledger: every movement of material, parts, consumables or fuel. qty is SIGNED — positive means it came IN (a delivery received against a purc…
get_purchase_orderGet one purchase order by po_id — supplier, deliver-to site, status (draft | quote | ordered | received | cancelled) and every line. Each line carr…
list_accountsList CRM accounts (client/supplier companies). The q search matches name, type, industry, site, website and phone (multi-word, order-independent).
get_accountOne CRM account in full, with its contacts and its leads.
list_contactsList CRM contacts (people). The q search matches name, role/title, email, company and phone (multi-word, order-independent). For a pure phone-numbe…
list_worktimeCrew shifts — who worked / is clocked in where. Rows carry planned_start/finish (the accepted roster offer, for planned-vs-actual) and the signatur…
worktime_summaryHour TOTALS for a date range — "how many hours did Sam work last month", or how much time went into a site — without listing every shift and adding …
list_action_entriesRecorded KPI/action entries — the company's operation log (truck loads, pit sets, deliveries…). One row per record: entry time, qty, material, mach…
list_docketsSigned DOCKETS: one per operator + machine + site + action + company-local day, over the KPI entries recorded that day — the plant-hire / cartage b…
get_docketOne docket in full: header, signature + confirmation blocks, and its LINES — live entries while open, the FROZEN snapshot once signed (never re-der…
list_shiftsPLANNED shifts (the roster/calendar): offers to members with status offered | accepted | rejected (reject_reason says why) | cancelled | expired (o…
get_shiftOne planned shift in full (status, window, note, reject reason, who responded).
list_no_showsDay-of check: ACCEPTED shifts on the site-local TODAY whose start passed the 15-minute grace with NO clock-in — 'rostered but not here'. Optionally…
calendar_eventsThe company calendar in one call: planned shifts, task due dates, lead follow-ups and document expiries for a date window (plus what the /calendar…
list_membersCompany members that leads and tasks can be assigned to (email + display name). Use to resolve a person name to an email before create_task / updat…
list_processesOperations knowledge base: list the company's documented processes (SOPs live under a process). A process can also RUN as a guided flow (worker wiz…
get_processOne process with its ordered SOP steps (input/instruction/output, branch edges, checklists, executable action_type/action_config) and sub-processes.
get_sopOne SOP step in full (input/output/role/instruction, media, next steps, checklists, executable action_type/action_config).
list_flow_assignmentsList guided-flow assignments — which members/roles follow which process wizard.
list_flow_runsGuided-flow runs — who walked which flow when, current step, steps done. Filter by process, member email, date range (YYYY-MM-DD).
get_flow_runOne guided-flow run in full: the run, the current step, every completed step with what it created (shift/task/comment refs).
get_flow_design_guideREAD THIS FIRST before designing or editing processes: how SOPs (shared library), processes (ordered lists of SOPs) and flows (worker wizard runs) …
list_step_typesThe catalog of step types a SOP can have (action_type): what each does in the worker wizard, its action_config keys (kind, required, defaults, opti…
list_sopsThe company's SOP LIBRARY — every SOP once, with the processes it is a step of (used_in). SOPs are SHARED building blocks: the same "Check in" can …
list_flow_offersProcesses that HOST companies offer on sites my company is granted on (the subcontractor view of "Working for <host>"): host, site, whether we alre…
list_tagsNFC / QR tags: a physical sticker carrying https://app.sitesai.net/t/<code>. A worker's tap opens the app and ACTS per purpose — site tag: clock in…
list_doc_typesDocument types the company can use — the shared system types (License, Certificate, Insurance, SWMS, White Card, Induction Cert, Other) plus the co…
list_site_document_requirementsThe documents a site asks for: one row per (document type × scope) — scope company (insurance…), member (each person's licences/cards), unit (each …
list_documentsThe documents the company can see, in one list: its own (relation company), its members' (member — any live connection), its machines' (unit) and d…
site_complianceWHO IS NON-COMPLIANT ON WHAT, right now: every requirement × subject cell on a site (company / member / machine) with the submitted document, its s…
compliance_overviewThe company's compliance at a glance: expiring documents (own + shared with it, active holders only), submissions awaiting your review (as a site o…
get_fileOpen a photo or file attached to a record — pass a photo_path / file_path value exactly as another tool returned it (e.g. from a comment on get_lea…

Write tools (only reachable with a read-and-write key or connection; each is a single, narrow action). They come in three kinds, and each tool carries that kind as a machine-readable MCP annotation, so your AI client knows which is which before it runs one:

Add something new — creates a record and overwrites nothing (annotated not destructive): create_lead, create_lead_type, create_quote, add_quote_line, create_account, create_contact, add_comment, create_process, create_sop, add_sop_next, create_checklist, assign_flow, add_process_step, start_flow_offer, create_doc_type, create_document, submit_document, assign_to_site, grant_site_company, register_tag.

Change or remove something that already exists — annotated destructive, so your AI client can ask before it runs: update_lead_type, update_quote_line, delete_quote_line, attach_lead_contact, detach_lead_contact, delete_lead, delete_task, update_account, delete_account, update_contact, delete_contact, update_comment, delete_comment, update_worktime, update_process, update_sop, remove_sop_next, unassign_flow, remove_process_step, move_process_step, set_process_steps, delete_process, delete_sop, update_doc_type, set_site_document_requirements, review_submission, revoke_site_company, revoke_tag.

Reaches a person outside the app — these email or notify someone as well as changing a record, so they are annotated destructive and open-world (the message cannot be recalled): create_task, update_task, update_lead, update_quote, create_shift, create_shifts_bulk, respond_shift, reoffer_shift, reassign_shift, cancel_shift, add_member.

SitesAI Estimate — tools

ToolWhat it doesType
get_project_summaryGet project summaryRead
list_layersList plan layersRead
list_sheetsList design sheetsRead
list_takeoffsList take-off groupsRead
list_elementsList earthworks elementsRead
get_estimateGet the estimateRead
get_page_imageRender the plan as an imageRead
get_ai_authoring_contextGet AI authoring contextRead
apply_deltaDraw take-offs / elements (apply delta)Write
manage_sheetsAdd, rename or activate a sheetWrite
add_layer_from_urlAdd a plan layer from a URLWrite
calibrate_layer_scaleCalibrate a layer's scaleWrite
align_layerAlign a layer onto the planWrite
update_estimateEdit the estimateWrite — irreversible
run_auto_takeoffRun AI vision auto take-offWrite
run_vector_takeoffRun deterministic vector take-offWrite
list_cad_layersList CAD layers on a pageRead
delete_takeoffDelete a take-off groupWrite — irreversible
save_projectSave the projectWrite
new_projectStart a new project (background mode)Write — irreversible
open_projectOpen a .3dx project (background mode)Write — irreversible
add_layer_from_dataAdd a plan layer from file bytesWrite

SitesAI Estimate can run live in your open browser tab (changes appear as the assistant makes them) or in background mode without a tab. Deeper technical notes are in the product's MCP documentation.

Things to ask

Support

Trouble connecting, or a tool doing something you didn't expect? Email admin@sitesai.net — we usually reply within one business day. See also our support page and privacy policy.