Integration

Procore integration

Procore is a construction project management platform. Manage companies and projects, the company and project directories (users and vendors), locations, RFIs and their replies, submittals, daily logs (manpower, notes, weather, construction reports), safety incidents, observations, punch items, inspections, meetings, task items, photos and drawings, timecards and timesheets, and the financial side: change events, change order packages, potential change orders, purchase order and work order contracts, prime contracts, budget views, direct costs, cost codes and requisitions. Directory, timecard and incident records hold personal data (incidents can hold injury details). Left out: file uploads (multipart), recycle bins, exports and PDFs, sync and bulk routes, email sending routes, deprecated routes and the rest of the Procore API. Authentication is OAuth 2.0 with a Procore app from the Procore Developer Portal, which a company admin must install in the Procore company (App Management) before its data can be read; the connection reaches the commercial production environment (login.procore.com), not sandboxes or the Federal Zone. Every call except get_me and list_companies takes the company id in the Procore-Company-Id header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Procore.Built from the 114 Procore tools below, on the connection you add once.

What you can do with Procore

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

User, 6 operations

  • create_company_userCreate company userPOSTAdds a user to a company directory; user.last_name and user.email_address are required, with name, job title, phones, address, vendor and employee details optional. Personal data.
  • get_company_userGet company userGETReturns one user of a company directory: name, email, phones, address, job title, vendor and permission template. Personal data.
  • get_project_userGet project userGETReturns one user of a project directory: name, email, phones, job title and vendor. Personal data.
  • list_company_usersList company usersGETLists the active users of a company directory: name, email, phones, address, job title, vendor (company), permission template. Filters by vendor, trade, update date or search. Personal data.
  • list_project_usersList project usersGETLists the active users of a project directory: name, email, phones, job title, vendor and project permission template. Personal data.
  • update_company_userUpdate company userPATCHUpdates a company directory user's name, email, job title, phones, address, vendor or employee details. Personal data.

Change event, 4 operations

  • create_change_eventCreate change eventPOSTCreates a change event in a project; change_event.status (a status id that exists for the company) and change_event.scope are required, with title, description, reason, type and line items optional.
  • get_change_eventGet change eventGETReturns one change event: number, title, description, status, scope, reason, type, origin and its line items.
  • list_change_eventsList change eventsGETLists the change events of a project: number, title, status, scope, change reason and type, line items with estimated cost and revenue.
  • update_change_eventUpdate change eventPATCHUpdates a change event's title, description, status, scope, reason, type or line items.

Incident, 4 operations

  • create_incidentCreate incidentPOSTCreates a safety incident in a project (a title and event_date at minimum), optionally with injuries, near misses, environmental and property damage records. Injury records are sensitive personal data.
  • get_incidentGet incidentGETReturns one incident with its injuries, near misses, environmental and property damage records, witness statements, actions and attachments. Sensitive personal data (health, witnesses).
  • list_incidentsList incidentsGETLists a project's safety incidents (newest number first): title, number, event date, status, location, recordable flag, record counts. Incidents can hold injury and witness details: sensitive personal data.
  • update_incidentUpdate incidentPATCHUpdates an incident's title, description, event date, location, status, assignees or root-cause fields (status and assignees are locked while a workflow runs on it).

Item, 4 operations

  • create_observationCreate observationPOSTCreates an observation item in a project; observation.name and observation.type_id (from list_observation_types) are required. Every assignee must be a user the caller may assign, or the call is refused.
  • get_observationGet observationGETReturns one observation item with its description, status, priority, assignees, distribution, location, trade, attachments and custom fields.
  • list_observationsList observationsGETLists the observation items of a project (safety, quality and other field observations): number, name, type, status, priority, assignees, due date, location, trade.
  • update_observationUpdate observationPATCHUpdates an observation item; only the attributes sent change. Changing status notifies the distribution list, and adding assignees notifies them.

List, 4 operations

  • create_inspectionCreate inspectionPOSTCreates an inspection from an inspection template (list_template_id), optionally setting its inspection date, due date, inspectors, location, trade and status.
  • get_inspectionGet inspectionGETReturns one inspection (checklist): name, number, status, type, dates, inspectors, location, trade, and its item counts (conforming, deficient, not applicable, inspected).
  • list_inspectionsList inspectionsGETLists the inspections (checklists) of a project: name, number, status, inspection type, inspection date, due date, inspectors, location, trade.
  • update_inspectionUpdate inspectionPATCHUpdates an inspection's name, description, dates, inspectors, point of contact, location, trade or status.

Manpower log, 4 operations

  • create_manpower_logCreate manpower logPOSTAdds a manpower entry to a project's daily log: number of workers, hours, date, company (vendor or contact), trade, cost code, location and notes.
  • get_manpower_logGet manpower logGETReturns one manpower entry of a daily log: workers, hours, date, company, trade, location and notes.
  • list_manpower_logsList manpower logsGETLists the approved manpower entries of a project's daily log: workers, hours, company (vendor), trade, location, notes. Use log_date, or start_date and end_date (YYYY-MM-DD); with no date, only today's.
  • update_manpower_logUpdate manpower logPATCHUpdates a daily log manpower entry: workers, hours, date, company, trade, location, notes or status.

Meeting, 4 operations

  • create_meetingCreate meetingPOSTCreates a meeting in a project; meeting.position, meeting.starts_at and meeting.ends_at are required, with title, location, overview, attendees and privacy optional.
  • get_meetingGet meetingGETReturns one meeting: title, start and end, location, description, conclusion, attendees, categories and topics.
  • list_meetingsList meetingsGETLists the meetings of a project: title, date and time, location, draft and public flags, template. Filters by date range, title, assignee and more.
  • update_meetingUpdate meetingPATCHUpdates a meeting's title, dates, location, overview, minutes, conclusion, privacy or draft flag.

Notes log, 4 operations

  • create_notes_logCreate notes logPOSTAdds a note to a project's daily log: comment, date, issue flag, location and company (vendor).
  • get_notes_logGet notes logGETReturns one notes entry of a daily log: comment, issue flag, location, company and date.
  • list_notes_logsList notes logsGETLists the approved notes entries of a project's daily log: comment, issue flag, location, company and date. Use log_date, or start_date and end_date (YYYY-MM-DD); with no date, only today's.
  • update_notes_logUpdate notes logPATCHUpdates a daily log note: comment, date, issue flag, location, company or status.

Project, 4 operations

  • create_projectCreate projectPOSTCreates an active project in a company; project.name is required, and address, dates, value, stage, office, time zone and custom fields are optional (country_code and state_code are ISO 3166 alpha-2).
  • get_projectGet projectGETReturns one project: name, number, address, dates, stage, type, value, office, time zone and status flags.
  • list_projectsList projectsGETLists the active projects of a company (all of them for a company admin, else those the user belongs to): name, number, address, dates, stage, estimated value. 100 per page by default, 300 at most.
  • update_projectUpdate projectPATCHUpdates a project's name, number, address, dates, value, stage, office or other attributes; only the attributes sent change.

Punch item, 4 operations

  • create_punch_itemCreate punch itemPOSTCreates a punch item in a project; punch_item.name is required, with description, due date, priority, assignees, location, trade, manager and cost impact optional.
  • get_punch_itemGet punch itemGETReturns one punch item: name, description, status, priority, due date, assignees and their responses, location, trade, images and comments.
  • list_punch_itemsList punch itemsGETLists the punch items of a project: number, name, status, priority, due date, assignees, ball in court, location, trade, cost impact.
  • update_punch_itemUpdate punch itemPATCHUpdates a punch item's name, description, status, due date, priority, assignees, location or trade.

Purchase order contract, 4 operations

  • create_purchase_order_contractCreate purchase order contractPOSTCreates a purchase order contract (commitment) in a project: vendor, number, title, status, dates, description, payment terms and addresses.
  • get_purchase_order_contractGet purchase order contractGETReturns one purchase order contract: vendor, number, title, status, dates, amounts, line items summary and change order tiers.
  • list_purchase_order_contractsList purchase order contractsGETLists the purchase order contracts (commitments) of a project: number, title, vendor, status, amounts and dates.
  • update_purchase_order_contractUpdate purchase order contractPATCHUpdates a purchase order contract's vendor, number, title, status, dates, description, payment terms or addresses.

Rfis, 4 operations

  • create_rfiCreate rfiPOSTCreates an RFI in a project; rfi.subject, rfi.question (body) and rfi.rfi_manager_id are required. Procore can email the RFI manager, assignees and distribution list, per the project's RFI email settings (drafts too).
  • get_rfiGet rfiGETReturns one RFI: number, subject, status, questions and their answers, RFI manager, assignees, ball in court, due date, cost and schedule impact, location.
  • list_rfisList rfisGETLists the RFIs (requests for information) of a project: number, subject, status, due date, RFI manager, assignees, ball in court, cost and schedule impact. Filters by status, assignee, dates, number and more.
  • update_rfiUpdate rfiPATCHUpdates an RFI's subject, assignees, due date, distribution, status or impacts. Reassigning, a new due date, closing or reopening can email the people on the RFI, per the project's RFI email settings.

Submittal, 4 operations

  • create_submittalCreate submittalPOSTCreates a submittal in a project; submittal.number is required, with title, type, status, spec section, dates, responsible contractor, approvers and distribution optional. Emails are sent only with send_emails=true.
  • get_submittalGet submittalGETReturns one submittal: number, revision, title, status, type, spec section, dates, ball in court, approvers and their responses, attachments.
  • list_submittalsList submittalsGETLists the submittals of a project: number, revision, title, status, type, spec section, due and required on-site dates, ball in court, approvers. Filters by status, type, spec section and more.
  • update_submittalUpdate submittalPATCHUpdates a submittal's title, status, dates, responsible contractor, distribution or other attributes (not its approver workflow). Emails are sent only with send_emails=true.

Timecard entry, 4 operations

  • create_timecard_entryCreate timecard entryPOSTRecords a timecard entry in a project; hours, lunch_time, time_in and time_out are required, with the worker (party_id), date, cost code, time type and billable flag optional.
  • get_timecard_entryGet timecard entryGETReturns one timecard entry: worker, date, hours, time in and out, cost code, time type and billable flag. Personal data.
  • list_timecard_entriesList timecard entriesGETLists the timecard entries of a project (worker hours by date, cost code, time type, billable flag). Use log_date, or start_date and end_date (YYYY-MM-DD); with no date, only today's. Personal data.
  • update_timecard_entryUpdate timecard entryPATCHUpdates a timecard entry's hours, times, worker, date, cost code, time type or billable flag.

Vendor, 4 operations

  • create_vendorCreate vendorPOSTAdds a vendor (subcontractor or supplier company) to a company directory; vendor.name is required, address, phones, email, trades, license and bidding flags are optional.
  • get_vendorGet vendorGETReturns one vendor of a company directory: name, address, phones, email, trades, license number, bidding, union and prequalification flags, and its primary contact (name, phones, email: personal data).
  • list_vendorsList vendorsGETLists the vendors (subcontractors, suppliers) of a company directory: name, address, phones, email, trades, license, bidding flags, primary contact (personal data). view=minimal returns only id, name, is_active and logo.
  • update_vendorUpdate vendorPATCHUpdates a company vendor's name, address, contact details, trades, license or bidding flags.

Work order contract, 4 operations

  • create_work_order_contractCreate work order contractPOSTCreates a work order contract (subcontract) in a project: vendor, number, title, status, dates, description, inclusions and exclusions.
  • get_work_order_contractGet work order contractGETReturns one work order contract (subcontract): vendor, number, title, status, dates, amounts and change order tiers.
  • list_work_order_contractsList work order contractsGETLists the work order contracts (subcontracts) of a project: number, title, vendor, status, amounts and dates.
  • update_work_order_contractUpdate work order contractPATCHUpdates a work order contract's vendor, number, title, status, dates, description, inclusions or exclusions.

Direct cost, 3 operations

  • create_direct_costCreate direct costPOSTCreates a direct cost item in a project; direct_cost.invoice_number, vendor_id and direct_cost_type are required, with up to 100 line items.
  • get_direct_costGet direct costGETReturns one direct cost item: type, vendor, invoice number, dates, status, terms and line items.
  • list_direct_costsList direct costsGETLists the direct cost items of a project (invoices, expenses, payroll): number, vendor, date, status, amount.

Location, 3 operations

  • create_locationCreate locationPOSTCreates a project location (node_name, optionally under parent_id). Requires Project Admin permission on the project.
  • get_locationGet locationGETReturns one project location: id, name, node name, parent id and code.
  • list_locationsList locationsGETLists the locations of a project: id, name, node name, parent id and code (locations form a tree through parent_id).

Task item, 3 operations

  • create_task_itemCreate task itemPOSTCreates a task item in a project: title, description, due date, status, category, assignees and distribution.
  • get_task_itemGet task itemGETReturns one task item: title, description, status, due date, category, assignees and distribution.
  • list_task_itemsList task itemsGETLists the task items of a project: number, title, status, due date, category, assignee. Filters by status, assignee, due date and more.

Timesheet, 3 operations

  • create_timesheetCreate timesheetPOSTCreates a timesheet for a date (timesheet.date) in a project.
  • get_timesheetGet timesheetGETReturns one timesheet: date, status, creator and its timecard entries. Personal data.
  • list_timesheetsList timesheetsGETLists the timesheets of a project: date, status, creator and their timecard entries. Personal data.

Weather log, 3 operations

  • create_weather_logCreate weather logPOSTAdds a weather entry to a project's daily log; weather_log.date is required, with sky, temperature, wind, precipitation, ground, delay flag and comments optional.
  • get_weather_logGet weather logGETReturns one weather entry of a daily log: sky, temperature, wind, precipitation, ground conditions, delay flag and comments.
  • list_weather_logsList weather logsGETLists the weather entries of a project's daily log: sky, temperature, wind, precipitation, ground conditions, weather delay, comments. Use log_date, or start_date and end_date (YYYY-MM-DD); with no date, only today's.

Change order package, 2 operations

  • get_change_order_packageGet change order packageGETReturns one change order package: number, title, status, contract, line items, amounts and dates.
  • list_change_order_packagesList change order packagesGETLists the change order packages of a project: number, title, status, contract, amounts and dates.

Cost code, 2 operations

  • get_cost_codeGet cost codeGETReturns one cost code of a project: code, full code, name and parent.
  • list_cost_codesList cost codesGETLists the cost codes of a project (code, full code, name, parent, budgeted flag), used on budgets, logs and contracts.

Daily construction report log, 2 operations

  • create_daily_construction_report_logCreate daily construction report logPOSTAdds a daily construction report entry to a project's daily log: workers and hours by category (foreman, journeyman, apprentice, other) for a company (vendor) and trade.
  • list_daily_construction_report_logsList daily construction report logsGETLists the approved daily construction report entries of a daily log: workers and hours by category (foreman, journeyman, apprentice, other) per company and trade. Use log_date, or start_date and end_date (YYYY-MM-DD); with no date, only today's.

Image, 2 operations

  • get_imageGet imageGETReturns one photo of a project: name, description, location, trade, uploader, dates and image links.
  • list_imagesList imagesGETLists the photos of a project's photo album: name, description, location, trade, uploader, taken date and image links. Filters by category, date, location and more.

Me, 2 operations

  • get_meGet meGETReturns the signed-in Procore user: global user id (the same across companies), login (email) and name. Needs no Procore-Company-Id. Personal data.
  • get_my_company_userGet my company userGETReturns the signed-in user as a member of a company directory: name, email, phones, job title, vendor, permission template. Personal data.

Potential change order, 2 operations

  • get_potential_change_orderGet potential change orderGETReturns one potential change order (PCO) of a contract: number, title, status, amount, reason and dates.
  • list_potential_change_ordersList potential change ordersGETLists the potential change orders (PCO) of a project: number, title, status, contract, amount and dates.

Reply, 2 operations

  • create_rfi_replyCreate rfi replyPOSTPosts a reply on an RFI (reply.body), optionally official and linked to existing drawings, files, images or uploads. Procore can email the people on the RFI, per the project's RFI email settings.
  • list_rfi_repliesList rfi repliesGETLists the replies (responses) posted on an RFI: body, author, official flag, attachments and dates.

Requisition, 2 operations

  • get_requisitionGet requisitionGETReturns one requisition (subcontractor invoice): number, commitment, billing period, status and amounts.
  • list_requisitionsList requisitionsGETLists the requisitions (subcontractor invoices) of a project: number, commitment, period, status, amounts.

Add, 1 operation

  • add_user_to_projectAdd user to projectPOSTAdds a user of the company directory to a project directory, optionally with a project permission template.

Budget view, 1 operation

  • list_budget_viewsList budget viewsGETLists the budget views of the Procore Budget tool, for a project when project_id is given: id, name, description and creator.

Budget view snapshot, 1 operation

  • list_budget_view_snapshotsList budget view snapshotsGETLists the budget snapshots of a project (project status and ad hoc snapshots), filterable by type.

Close, 1 operation

  • close_inspectionClose inspectionPATCHCloses an inspection (status closed); closing one already closed changes nothing. Returns the inspection.

Comment, 1 operation

  • create_punch_item_commentCreate punch item commentPOSTAdds a comment (comment.body) to a punch item.

Company, 1 operation

  • list_companiesList companiesGETLists the Procore companies the signed-in user can access (id, name, active flag). Start here: every other call needs a company id in the Procore-Company-Id header. Needs no Procore-Company-Id.

Drawing, 1 operation

  • list_drawingsList drawingsGETLists the drawings of a drawing area: number, title, discipline and current revision.

Drawing area, 1 operation

  • list_drawing_areasList drawing areasGETLists the drawing areas of a project: id, name, description and number of drawings. Use an area id with list_drawings.

Drawing revision, 1 operation

  • list_drawing_revisionsList drawing revisionsGETLists the drawing revisions of a project: drawing number and title, revision number, set, discipline, dates, and links to the PDF and image files.

Drawing set, 1 operation

  • list_drawing_setsList drawing setsGETLists the drawing sets of a project (name and date of each issued set of drawings).

Potential assignee, 1 operation

  • list_rfi_potential_assigneesList rfi potential assigneesGETLists the users who can be assigned to an RFI in a project: id, name, login (email) and locale. Personal data.

Potential rfi manager, 1 operation

  • list_rfi_potential_managersList rfi potential managersGETLists the users who can be RFI manager in a project: id, name, login (email) and locale. Personal data.

Prime contract, 1 operation

  • list_prime_contractsList prime contractsGETLists the prime contracts (owner contracts) of a project: number, title, owner (vendor), status, contract amounts and dates.

Remove, 1 operation

  • remove_user_from_projectRemove user from projectDELETERemoves a user from a project directory.

Reopen, 1 operation

  • reopen_inspectionReopen inspectionPATCHReopens a closed inspection (status open). Returns the inspection.

Trade, 1 operation

  • list_tradesList tradesGETLists the trades defined for a company (id, name, active flag), used to classify vendors, users and logs.

Type, 1 operation

  • list_observation_typesList observation typesGETLists the observation types (id, name, category, active flag) of a project's company or of a company; pass project_id or company_id. Use a type id to create an observation.

Use Procore from Claude Code, Cursor or Codex

Connect Procore in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Procore operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Procore

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Procore once

    Add your Procore connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Procore integration FAQ

What can you do with the Procore integration?

LiveContext exposes 114 operations on Procore, covering user, change event, incident and item.

Popular integrations

Browse the whole catalog