Connectors · Work & projects
Procore MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Procore and the rest of your systems. It gives your agent 3,068 Procore actions (1,541 reads, 1,132 writes and 395 that wait for a confirmation) and holds the Procore credential itself, so the agent never does. It paces Procore's limits and records every call. Connecting Procore needs your own Procore OAuth app and one admin sign-in.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "procore.projects.list_projects", intent: "check which Procore account is connected"}# List projects · read · 1 upstream call- 3,068actionsin one signed file
- 1,541readlook, never change
- 1,132writecreate and update
- 395wait for a yesdestructive, confirmed first
Set up
Connect Procore in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Procore.
OAuth 2.0, authorization code. You register your own OAuth app with Procore, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
Before the first sign-in, Procore needs an OAuth app of your own, registered in its developer portal. actionlake has no Procore app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idProcore app client IDclient_secretProcore app client secret, from the same OAuth Credentials pagecompany_idYour Procore company id
account { op: "connections.requirements", service: "procore" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "procore.projects.list_projects" }# list projects · read · 1 upstream callcheck { action: "procore.projects.create_project", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Procore at a glance
- Sign-in
- OAuth 2.0, authorization code. You register your own OAuth app with Procore, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
- You provide
access_tokenrefresh_tokenclient_idclient_secret- Setup fields
company_id- Limits we pace to
- 3,600 calls an hour, per connection
- API covered
- Procore REST API, full OpenAPI 3.0.0 document (2026-10-21T21:23:20.034Z)
api.procore.com - Built from
- Procore's documentation, read 22 October 2026developers.procore.comdevelopers.procore.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 1,541 of 1,541 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 3, so ask can line Procore up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Procore.
3,068 actions in 618 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 1,541readlook, never change
- 1,132writecreate and update
- 395destructivewait for a confirmation
Submittals
5853 read · 4 write · 1 destructive
List Submittals on a Project · Create Submittal · Create Submittal · Get Revisions
Company users
3913 read · 26 write · 0 destructive
List company users · Show company user · Bulk add company users to projects · Bulk add company users to projects
Equipment
348 read · 19 write · 7 destructive
Create equipment (Company) · Create equipment (Project) · Get equipment change history (Company) · Restore equipment (Company)
Context
3012 read · 12 write · 6 destructive
Create a company-level context · Create a new company-level context · Create a new context · Create a new context
Correspondences
2816 read · 10 write · 2 destructive
Create Generic Tool · Create Generic Tool Item · Create generic tool item response. · Create Generic Tool Status
Shipments
2814 read · 11 write · 3 destructive
Add up to 100 comments to a shipment · Adds attachments to a shipment resource. · Adds bulk line items to a shipment from a purchase order. · Creates a container from shipment line items.
Timesheets
2812 read · 12 write · 4 destructive
Bulk Create · Bulk Create Timecard Entries · Change History · Create Signature for Timesheet
Receipts
2712 read · 11 write · 4 destructive
Add up to 100 comments to a receipt · Adds a single attachment to a receipt resource. · Adds a single line item to a draft receipt. · Adds attachments to a receipt resource.
112 more areas · 2,796 actions
- Checklist list filter options 25
- Purchaseorders 24
- Materials 23
- Issuing 22
- Materialrequirements 22
- Transfers 22
- Defects 21
- Punch items 21
- Adjustments 20
- Company action plan templates 20
- Interprojecttransfers 20
- Layer 20
- Observations 20
- Resource planning projects 20
- Uploads 20
- Checklists 19
- Drawings 19
- Group 19
- Configurable field sets 18
- Direct costs 18
- Timecard entries 18
- Specification sections 16
- Cost codes 15
- Custom fields 15
- Markups 15
- Rfis 15
- Specification section revisions 15
- Timesheets filters 15
- Email communications 14
- Project checklist templates 14
- Requisitions subcontractor invoices 14
- Action plans 13
- Bid board project proposals 13
- Document uploads 13
- Estimating project proposals 13
- External submittals filter options 13
- Markup stamp 13
- Request for quotes 13
- Segment items 13
- Change events 12
- Coordination issues 12
- Filter options 12
- People 12
- Project vendors 12
- Time and material entry 12
- Actions 11
- Bid forms 11
- Document revisions 11
- Potential change orders 11
- Prime contract line items 11
- Prime contracts 11
- Project folders and files 11
- Punch item filter options 11
- Witness statements 11
- Action plan items 10
- Attachment 10
- Bids 10
- Codes 10
- Commitment compliance documents 10
- Company checklist templates 10
- Company folders and files 10
- Coordination issue filter options 10
- Equipment maintenance 10
- Hooks 10
- Meetings 10
- Projects 10
- Schedule resources 10
- Tax codes 10
- Triggers 10
- Workflow instances 10
- Action plan item assignees 9
- Action plan sections 9
- Actual production quantities 9
- Budget line items 9
- Company action plan template item assignees 9
- Documents 9
- Form templates 9
- Forms 9
- Injury filter options 9
- Bid board projects 8
- Checklist schedule filter options 8
- Company assets 8
- Company vendors 8
- Coordination issue viewpoints 8
- Drawing areas 8
- Environmentals 8
- External rfis filter options 8
- Incidents 8
- Injuries 8
- Job titles 8
- Locations 8
- Lookaheads 8
- Manpower logs 8
- Material 8
- Near misses 8
- Project action plan template approvers 8
- Project action plan template receivers 8
- Project assets 8
- Project assignments filter options 8
- Property damages 8
- Tags 8
- Time and material equipment log 8
- Time and material timecard 8
- Workflow presets 8
- Action plan references 7
- Action plan test record requests 7
- Checklist schedules 7
- Company action plan template test record requests 7
- Company asset attachments 7
- Company insurances 7
- External rfi 7
- 499 smaller areas 1,452
Top actions
The Procore API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 11 of Procore's 11 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
procore.company_users.list_company_users_v1_3List company users | List company users. | read | identity.user.list474 connectors |
procore.projects.list_projectsList projects | List projects. | read | work.project.list109 connectors |
procore.projects.create_projectCreate project | Create project. | write | work.project.create102 connectors |
procore.company_vendors.list_company_vendorsList company vendors | List company vendors. | read | crm.company.list162 connectors |
procore.company_users.show_company_user_v1_3Show company user | Show company user. | read | identity.user.get399 connectors |
procore.projects.update_projectUpdate project | Update project. | write | work.project.update98 connectors |
procore.company_vendors.show_company_vendorShow company vendor | Show company vendor. | read | crm.company.get162 connectors |
procore.me.show_user_infoShow User Info | Show User Info. | read | identity.current_user.get307 connectors |
procore.purchase_order_contracts.list_of_purchase_order_contractsList of Purchase Order Contracts | List of Purchase Order Contracts. | read | finance.purchase_order.list45 connectors |
procore.purchase_order_contracts.show_purchase_order_contractShow Purchase Order Contract | Show Purchase Order Contract. | read | finance.purchase_order.get47 connectors |
procore.bids.create_bidCreate bid | Create bid. | write | this connector |
procore.forms.delete_formDelete Form | Delete Form. | destructive | this connector |
Try it
Prompts to paste into Claude.
Each one names the Procore actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Give me a one-line status for every active Procore project.
calls
procore.projects.list_projects - Writewrite
Create project in Procore. Show me exactly what you will send before you save it.
calls
procore.projects.create_project - Across systemsread
Which Procore companies have invoices in ConnectWise PSA, and how many each?
calls
procore.company_vendors.list_company_vendorsconnectwise_manage.invoices.list
Across your systems
Procore, joined to the rest of your business.
One ask fetches from Procore and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which Procore companies have invoices in ConnectWise PSA, and how many each?
procore.company_vendors.list_company_vendors+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAWhich Procore companies have invoices in NetSuite, and how many each?
procore.company_vendors.list_company_vendors+netsuite.views.invoices, oncrm.company· NetSuite
identity.user 517crm.company 227work.project 116ask { intent: "which Procore companies have invoices in ConnectWise PSA, and how many each", steps: [ { action: "procore.company_vendors.list_company_vendors", as: "co", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "co", right: "inv", on: "crm.company", group_by: "co.name", select: ["co.name", "count(inv.id) as invoices"] } } ]}Governance for Procore
Destructive actions wait for a yes.
395 Procore actions are destructive. The first 10:
- Delete Form
procore.forms.delete_form - Delete task
procore.tasks.delete_task - Delete group
procore.group.delete_group - Delete layer
procore.layer.delete_layer - Delete a Crew
procore.crews.delete_a_crew - Delete image
procore.images.delete_image - Delete a link
procore.links.delete_a_link - Delete Hazard
procore.hazards.delete_hazard - Destroy Action
procore.actions.destroy_action - Delete Markups
procore.markups.delete_markups
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete Form?
intent: the user asked me to delete Form
account { op: "keys.create", name: "procore-agent", allowed_actions: ["procore.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "procore.forms.delete_form", approver: "[email protected]" }, { match: "procore.tasks.delete_task", approver: "[email protected]" }, { match: "procore.group.delete_group", approver: "[email protected]" } ]}Cost
What Procore costs on actionlake.
Every Procore action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Procore refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 3,068 Procore actions
- 3,068actions pageeach page of a long list is one call
- 1,541reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Procore action.
3,068 actions by area: the id your agent calls, what it does, and its effect.
Submittals58
procore.submittals.create_submittalCreate Submittalwriteprocore.submittals.create_submittal_v1_1Create Submittalwrite- and 56 more in this area
Company users39
procore.company_users.bulk_add_company_users_to_projectsBulk add company users to projectswriteprocore.company_users.bulk_add_company_users_to_projects_v1_2Bulk add company users to projectswrite- and 37 more in this area
Equipment34
procore.equipment.create_equipment_companyCreate equipment (Company)writeprocore.equipment.create_equipment_projectCreate equipment (Project)write- and 32 more in this area
Context30
procore.context.create_a_company_level_contextCreate a company-level contextwriteprocore.context.create_a_new_company_level_contextCreate a new company-level contextwrite- and 28 more in this area
Correspondences28
procore.correspondences.create_generic_toolCreate Generic Toolwriteprocore.correspondences.create_generic_tool_itemCreate Generic Tool Itemwrite- and 26 more in this area
Shipments28
procore.shipments.add_up_to_100_comments_to_a_shipmentAdd up to 100 comments to a shipmentwriteprocore.shipments.adds_attachments_to_a_shipment_resourceAdds attachments to a shipment resource.write- and 26 more in this area
Timesheets28
procore.timesheets.bulk_createBulk Createwriteprocore.timesheets.bulk_create_timecard_entriesBulk Create Timecard Entrieswrite- and 26 more in this area
Receipts27
procore.receipts.add_up_to_100_comments_to_a_receiptAdd up to 100 comments to a receiptwriteprocore.receipts.adds_a_single_attachment_to_a_receipt_resourceAdds a single attachment to a receipt resource.write- and 25 more in this area
Checklist list filter options25
procore.checklist_list_filter_options.list_checklist_list_asset_filter_optionsList Checklist List Asset Filter Optionsreadprocore.checklist_list_filter_options.list_checklist_list_asset_id_filter_optionsList Checklist List Asset Id Filter Optionsread- and 23 more in this area
Purchaseorders24
procore.purchaseorders.add_up_to_100_comments_to_a_purchase_orderAdd up to 100 comments to a purchase orderwriteprocore.purchaseorders.adds_attachments_to_a_purchase_order_resourceAdds attachments to a purchase order resource.write- and 22 more in this area
Materials23
procore.materials.add_up_to_100_comments_to_a_materialAdd up to 100 comments to a Materialwriteprocore.materials.adds_attachments_to_a_material_resourceAdds attachments to a material resource.write- and 21 more in this area
Issuing22
procore.issuing.add_comments_to_a_direct_issueAdd comments to a Direct Issue.writeprocore.issuing.adds_attachment_s_to_a_direct_issueAdds attachment(s) to a Direct Issue.write- and 20 more in this area
Materialrequirements22
procore.materialrequirements.adds_attachments_to_a_material_requirements_resourceAdds attachments to a material requirements resource.writeprocore.materialrequirements.adds_comments_to_a_material_requirements_resourceAdds comments to a material requirements resource.write- and 20 more in this area
Transfers22
procore.transfers.get_change_history_for_a_transferGet change history for a transferreadprocore.transfers.get_line_items_for_a_transferGet line items for a transferread- and 20 more in this area
Defects21
procore.defects.adds_attachments_to_a_defect_resourceAdds attachments to a defect resource.writeprocore.defects.adds_comments_to_a_defect_resourceAdds comments to a defect resource.write- and 19 more in this area
Punch items21
procore.punch_items.create_punch_itemCreate Punch Itemwriteprocore.punch_items.create_punch_item_commentCreate Punch Item Commentwrite- and 19 more in this area
Adjustments20
procore.adjustments.add_up_to_100_comments_to_an_adjustmentAdd up to 100 comments to an adjustmentwriteprocore.adjustments.adds_new_line_items_to_an_existing_adjustment_documentAdds new line items to an existing adjustment document.write- and 18 more in this area
Company action plan templates20
procore.company_action_plan_templates.create_company_action_plan_templatesCreate Company Action Plan Templateswriteprocore.company_action_plan_templates.create_company_action_plan_templates_v1_1Create Company Action Plan Templateswrite- and 18 more in this area
Interprojecttransfers20
procore.interprojecttransfers.gets_a_paginated_list_of_inter_project_transfer_line_itemsGets a paginated list of inter-project transfer line items.readprocore.interprojecttransfers.gets_a_paginated_list_of_inter_project_transfer_summariesGets a paginated list of inter-project transfer summaries.read- and 18 more in this area
Layer20
procore.layer.convert_private_layer_to_publicConvert private layer to publicwriteprocore.layer.convert_private_layer_to_public_v2_0Convert private layer to publicwrite- and 18 more in this area
Observations20
procore.observations.create_observation_itemCreate Observation Itemwriteprocore.observations.create_observation_item_response_logCreate Observation Item Response Logwrite- and 18 more in this area
Resource planning projects20
procore.resource_planning_projects.add_category_to_projectAdd Category to Projectwriteprocore.resource_planning_projects.add_project_to_groupAdd Project to Groupwrite- and 18 more in this area
Uploads20
procore.uploads.create_company_uploadCreate Company Uploadwriteprocore.uploads.create_project_uploadCreate Project Uploadwrite- and 18 more in this area
Checklists19
procore.checklists.create_checklist_inspectionCreate Checklist (Inspection)writeprocore.checklists.create_checklist_inspection_v1_1Create Checklist (Inspection)write- and 17 more in this area
Drawings19
procore.drawings.create_drawingCreate Drawingwriteprocore.drawings.create_drawing_setCreate drawing setwrite- and 17 more in this area
Group19
procore.group.bulk_create_groups_in_a_layerBulk-create groups in a layerwriteprocore.group.create_a_new_groupCreate a new groupwrite- and 17 more in this area
Configurable field sets18
procore.configurable_field_sets.create_configurable_field_setsCreate Configurable Field Setswriteprocore.configurable_field_sets.duplicate_a_configurable_field_set_and_its_custom_fieldsDuplicate a Configurable Field Set and its custom fieldswrite- and 16 more in this area
Direct costs18
procore.direct_costs.create_direct_cost_itemCreate Direct Cost Itemwriteprocore.direct_costs.create_direct_cost_item_v1_1Create Direct Cost Itemwrite- and 16 more in this area
Timecard entries18
procore.timecard_entries.create_timecard_entryCreate timecard entrywriteprocore.timecard_entries.create_timecard_entry_companyCreate timecard entry (Company)write- and 16 more in this area
Specification sections16
procore.specification_sections.bulk_edit_specification_sectionsBulk edit specification sectionswriteprocore.specification_sections.create_a_specification_sectionCreate a Specification Sectionwrite- and 14 more in this area
Cost codes 15Custom fields 15Markups 15Rfis 15Specification section revisions 15Timesheets filters 15Email communications 14Project checklist templates 14Requisitions subcontractor invoices 14Action plans 13Bid board project proposals 13Document uploads 13Estimating project proposals 13External submittals filter options 13Markup stamp 13Request for quotes 13Segment items 13Change events 12Coordination issues 12Filter options 12People 12Project vendors 12Time and material entry 12Actions 11Bid forms 11Document revisions 11Potential change orders 11Prime contract line items 11Prime contracts 11Project folders and files 11Punch item filter options 11Witness statements 11Action plan items 10Attachment 10Bids 10Codes 10Commitment compliance documents 10Company checklist templates 10Company folders and files 10Coordination issue filter options 10Equipment maintenance 10Hooks 10Meetings 10Projects 10Schedule resources 10Tax codes 10Triggers 10Workflow instances 10Action plan item assignees 9Action plan sections 9Actual production quantities 9Budget line items 9Company action plan template item assignees 9Documents 9Form templates 9Forms 9Injury filter options 9Bid board projects 8Checklist schedule filter options 8Company assets 8Company vendors 8Coordination issue viewpoints 8Drawing areas 8Environmentals 8External rfis filter options 8Incidents 8Injuries 8Job titles 8Locations 8Lookaheads 8Manpower logs 8Material 8Near misses 8Project action plan template approvers 8Project action plan template receivers 8Project assets 8Project assignments filter options 8Property damages 8Tags 8Time and material equipment log 8Time and material timecard 8Workflow presets 8Action plan references 7Action plan test record requests 7Checklist schedules 7Company action plan template test record requests 7Company asset attachments 7Company insurances 7External rfi 7499 smaller areas 1,452
This index shows a sample of each area. All 3,068 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.
Questions
The Procore MCP server, answered.
Is there a Procore MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 3,068 Procore actions across submittals, company users, equipment and context, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Procore.
What do I need to connect Procore?
Your own Procore OAuth app, registered with Procore (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Procore app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your company id. The free call account { op: "connections.requirements", service: "procore" } lists exactly what to paste.
Can an AI agent delete or change things in Procore?
Only if its key allows it, and only with an explicit confirmation. 395 Procore actions are destructive, including delete Form, delete task and delete group. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Procore API limit?
actionlake paces every call to the limits in the Procore service file: 3,600 calls an hour per connection. Repeated reads are answered from cache (1,541 Procore actions can be), which never reaches Procore.
What does a Procore action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (3,068 Procore actions page). Cache hits, searches, dry runs and calls Procore refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Procore API does it cover?
The Procore REST API, full OpenAPI 3.0.0 document (2026-10-21T21:23:20.034Z) at api.procore.com. It is built from Procore's documentation as read on 22 October 2026. 3,068 actions in 618 areas, each one in the signed service file (version 1.0.0).
Can I combine Procore with my other systems?
Yes. ask joins Procore to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. Procore maps crm.company, which 227 other connectors also map.
Does actionlake keep my Procore data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Procore credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Procore today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.