[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Procore MCP server: Let your AI agent do the Procore paperwork.

> Procore has a REST API with OAuth 2.0 and a sandbox, and we found no Procore MCP server for your own AI agent (checked 6 Nov 2026). Cotlet adds 13 Procore tools for Claude, ChatGPT and scripts: no API key to request, no developer app to register, hosted all day, and one account for your other apps too.

Draft RFIs, chase overdue submittals, log manpower and send punch lists from your AI agent. It signs in to Procore as you, so there is no developer app to register. Cotlet runs it hosted, around the clock.

- Free 7-day trial, no card
- Unofficial, not affiliated with Procore
- Page: https://cotlet.dev/integrations/procore-api-mcp-server

## What can your AI agent do in Procore?

- Draft RFIs from your site notes
- Chase overdue RFIs and submittals
- Log daily manpower from a crew message
- Turn walkthrough notes into punch items
- Send the punch list to its assignees
- Close observations once they are fixed

## Does Procore have an MCP server or an API?

- The API runs through an app registered in the Developer Portal and installed by a company admin. Calls are limited per hour and per 10 seconds, and going over returns a 429.
- Zapier has a Procore app with 26 triggers and more than 36 actions, among them Create RFI, Create Punch Item and Create Observation. Zapier MCP offers the same actions at 2 Zapier tasks a call.
- Procore's own AI (Helix, Copilot, Agent Builder) works inside Procore. The Developer Portal lets Marketplace apps declare MCP servers, but we found no Procore-run server for your own agent.

| What you need | API + Zapier | GitHub server | Cotlet |
|---|---|---|---|
| Create an RFI or punch item | Yes | Yes, any endpoint | Yes, after your OK |
| Send all punch list items | Not in the action list | If your agent builds it | Yes, after your OK |
| Works as you, with your role | As the installed app | As your own app | Yes, your login |
| No developer app to register | Zapier has one | Register your own | Yes |
| Runs with your computer off | Yes | Mostly no | Yes, hosted |
| Inside the Claude and ChatGPT apps | Through Zapier MCP | Claude Desktop and Code | Yes |

Checked 6 Nov 2026. Sources: [Procore Developers](https://developers.procore.com/), [Procore Developers: Rate limiting](https://procore.github.io/documentation/rate-limiting), [Procore Support: Install a Custom App](https://support.procore.com/products/online/user-guide/company-level/admin/tutorials/install-a-custom-app), [Zapier: Procore integrations](https://zapier.com/apps/procore/integrations), [Zapier MCP for Procore](https://zapier.com/mcp/procore)

## How does the Procore MCP server work?

1. **Sign in to Procore.** Once, in a browser we run for you.
2. **Connect your AI agent.** Paste one address.
3. **Ask in plain words.** The agent works in your projects.

We never keep your Procore password, and every call that emails a person or saves a record waits for your OK.

## How to connect Procore to your AI agent

Three steps, then one code block for your client.

1. **Enable Procore for agents.** Sign up, sign in to Procore in its Cloud Browser with your own login, then press Enable for agents.
2. **Add the Cotlet address.** Enter https://cotlet.dev/mcp/v1 as a custom MCP server or connector in your agent.
3. **Approve the connection.** Chat apps open a Cotlet sign-in page. Editors, n8n and scripts use an API key from the console.

One shared address, `https://cotlet.dev/mcp/v1`, also carries Procore next to your other apps. Turned Procore on after connecting? Refresh the connector so the agent sees the 13 new tools.

Claude:

```
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-procore \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

ChatGPT:

```
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
```

Cursor:

```
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-procore": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
```

Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet-procore]
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: procore_read
```

Make, Zapier:

```
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: procore_write
```

## All 13 Procore MCP tools

### Projects and RFIs

Every other tool takes a project_id from list_projects. An RFI is saved as a draft unless you give it a number, assignees and a due date.

- **List projects** (`list_projects`, read): Procore projects of your company that you can open, with name and ID.
- **List RFIs** (`list_rfis`, read): RFIs of one project with status, RFI Manager, assignees, due date and who has the ball in court.
- **Get RFI** (`get_rfi`, read): One RFI with its question, responses, attachments and distribution list.
- **Create RFI** (`create_rfi`, write, asks first): Create an RFI as a draft or as open, with subject, question, RFI Manager and assignees.

### Submittals

Read only. The status filter takes a name exactly as your project's Submittals log shows it.

- **List submittals** (`list_submittals`, read): Submittals of one project with number, title, spec section, type, status, responsible contractor and ball in court.

### Punch list

A new item reaches nobody until send_punch_list_items goes out, the same as Send All Items in Procore.

- **List punch list items** (`list_punch_list_items`, read): Punch list items of one project with location, assignee, final approver, priority and due date.
- **Create punch list item** (`create_punch_list_item`, write, asks first): Add a punch list item with location, assignee, final approver, priority and due date. Nobody is notified until you send.
- **Send punch list items** (`send_punch_list_items`, write, asks first): Send every unsent punch list item of a project to its assignees and distribution list by email.

### Observations

The status move follows Procore's own steps: the assignee sets Ready for Review, the creator closes.

- **List observations** (`list_observations`, read): Observations of one project with type, status, priority, assignee and due date.
- **Create observation** (`create_observation`, write, asks first): Create an observation with type, priority, assignee, trade, location and due date.
- **Set observation status** (`set_observation_status`, write, asks first): Move an observation to Ready for Review, Not Accepted or Closed.

### Daily log

Different hours per worker need a separate manpower entry.

- **Get daily log** (`get_daily_log`, read): The daily log of one project for one day: how many entries each section has, and the manpower entries.
- **Add manpower entry** (`add_manpower_entry`, write, asks first): Add a manpower entry to the daily log: company, number of workers and hours each.

Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/procore-api-mcp-server#tools

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

- **What we store.** Your signed-in Procore browser profile, encrypted with AES-256-GCM, in Finland. Not the password.
- **What your agent gets.** The 13 Procore tools. Never the cookie or the login.
- **What the session sees.** The projects your Procore user can open: RFIs, submittals, punch items, observations, daily logs.
- **What no tool touches.** Budgets, commitments, payments, drawings, users and company settings.
- **If your company uses SSO.** You sign in through it yourself, and a 2-step code goes to you. We never type it.
- **How to cut access.** Disable for agents, reset the browser or delete the API key. The next call fails.

cotlet.dev gets A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory ([live results](https://cotlet.dev/security.md)). There is no SOC 2 report or third-party pentest yet.

## Which Procore permissions does my agent have?

| Tool | What Procore asks for |
|---|---|
| create_rfi | Admin on the RFIs tool, or Standard with Act as RFI Manager. With Standard only, the RFI is saved as a draft for review. |
| get_rfi | A Standard or Read-Only user sees every response only if the project does not limit them to official responses. |
| create_punch_list_item | Standard users can assign only a Punch Item Manager. Read Only users cannot be assigned. |
| create_observation | The assignee needs Standard or Admin on the Observations tool. |
| add_manpower_entry | Standard or Admin on the Daily Log tool. |

What that means for you:

- The agent never sees a project you cannot open
- A call your role may not make fails and costs nothing
- Private punch items show only if you created them or are assigned
- No admin has to install a developer app for you

> Draft RFIs are the safe start: nobody is asked until an RFI is opened.

## What happens when Procore changes?

- **12 h** between tests of the Procore tools
- **$0** for a call to a Procore tool paused for repair

Procore projects differ: each company sets its own locations, trades, RFI types and submittal statuses, so the tools read them as your project shows them. When Procore moves a button or renames a field, the fix is on our side. [status.cotlet.dev](https://status.cotlet.dev) checks the site, console and API every 3 minutes.

## Approvals, undo and mistakes

1. **Reads the notes.** One question per RFI, with the drawing or spec section named.
2. **Checks open RFIs.** list_rfis on the project finds a duplicate before anything is saved.
3. **Waits for your OK.** Each draft shows up in your Cotlet console first.
4. **Reports back.** RFI numbers, who holds the ball, and notes it could not place.

| Action | Undo |
|---|---|
| Create a draft RFI | Edit it in Procore; nobody was asked |
| Open an RFI | The assignees hold the ball; edit or close it in Procore |
| Create a punch item | Edit it in Procore before you send; nobody hears about it |
| Send the punch list | No, the emails are out |
| Create an observation | Edit it in Procore; with no assignee nobody is notified |
| Set an observation status | No tool undoes it; Ready for Review already emailed the creator |
| Add a manpower entry | Edit the entry in the Daily Log; nobody was told |

All 6 write tools ask first, including the drafts. The 7 reads run at once. Turn the wait off per tool for a scheduled run, such as a daily manpower log at 5 pm.

> After the first send, Procore emails assignees about overdue punch items every day for 45 days.

MCP call:

```
{
  "name": "create_rfi",
  "arguments": {
    "project_id": "5518204",
    "subject": "Roof drain location at gridline D",
    "question": "Drawing A-301 puts the roof drain 2 feet off gridline D. The structural plan shows a beam there. Please confirm the drain location.",
    "status": "draft",
    "spec_section": "22 14 00"
  }
}
```

REST:

```
curl -X POST https://cotlet.dev/api/v1/procore/projects/5518204/rfis \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject":"Roof drain location at gridline D","question":"Drawing A-301 puts the roof drain 2 feet off gridline D. The structural plan shows a beam there. Please confirm the drain location.","status":"draft","spec_section":"22 14 00"}'
```

Tool output:

```
{
  "rfi_id": "90431",
  "number": 32,
  "subject": "Roof drain location at gridline D",
  "status": "draft",
  "rfi_manager": "Dana Whitfield",
  "ball_in_court": "Dana Whitfield"
}
```

Scripts and cron jobs reach the same tools over REST at `/api/v1/procore`, with the same key and price. A write answers 202 while it waits for your OK. Each row in the tools table shows its REST path.

## How much does the Procore MCP server cost?

**About $25 a month** for a contractor with 6 active projects, 4,280 credits. Your Procore contract is billed as before.

| Job | Calls | Credits |
|---|---|---|
| Draft RFIs from site notes, 4 per batch | 6 × 8 | 480 |
| Overdue RFIs and submittals, 6 projects | 12 × 4 | 480 |
| Daily manpower log, busiest project | 5 × 22 | 1,100 |
| Walkthrough punch list, 8 items, then send | 10 × 4 | 400 |
| Close fixed observations | 4 × 8 | 320 |
| Cloud Browser, 30 days |  | 1,500 |
| Total |  | 4,280 |

- Free 7-day trial, no card
- 10 credits per successful call, MCP or REST
- 50 credits a day for the Cloud Browser
- One-time packs, valid 12 months, no subscription

The month is our example. A study of 1,362 projects counted 9.9 RFIs per $1 million of construction, so six projects of about $8 million come to roughly 40 new RFIs a month. Procore sells by annual construction volume and publishes no price list. Dollars at the $29 pack rate.

## Procore MCP server: API, Zapier, GitHub or hosted

| Option | What it does | Where it stops |
|---|---|---|
| [Procore REST API](https://developers.procore.com/) | Official: projects, RFIs, submittals, punch items, observations, daily logs, webhooks and a sandbox. | You register an app, an admin installs it, and you build the tool layer; hourly and 10-second limits. |
| [Zapier MCP for Procore](https://zapier.com/mcp/procore) | The Zapier Procore app as an MCP server: create RFIs, punch items, observations, submittals, tasks and more. | 2 Zapier tasks a call; no "send punch list" action in the list we read. |
| [Pipedream MCP](https://mcp.pipedream.com/app/procore) | Hosted MCP for Procore over the OAuth API, for Cursor, Claude and Windsurf. | The Procore app still needs your admin to authorize it. |
| [TylerIlunga/procore-mcp-server](https://github.com/TylerIlunga/procore-mcp-server) | Open-source server for the whole REST API: 7 discovery tools reach every endpoint. MIT, 18 stars, last commit 21 Aug 2026. | Runs on your computer with your own OAuth app and client secret in a file. |
| [LiamDGray/procore-mcp](https://github.com/LiamDGray/procore-mcp) | Server with a mock mode, SSE and a Helm chart. Source-available BSL 1.1, 0 stars, last commit 4 Nov 2026. | For teams that host it themselves. |
| [Carly](https://www.usecarly.com/blog/claude-procore-integration/) | A Claude connector plus triggers on Procore events, with emails and texts to people outside Procore. | Your admin authorizes the app first; AI agents from $35 a month. |

If you already have a developer and need Procore events pushed into your own system, the REST API and its webhooks are the direct route. Cotlet is for the project engineer or superintendent who wants an agent in Claude or ChatGPT working in their own projects, with no app to register.

## Who runs Cotlet

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

## Procore MCP server: questions

### How do I connect Procore to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Procore once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Procore account through Cotlet, in their phone apps too.

### What can ChatGPT do in Procore?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Procore: draft RFIs from site notes; weekly overdue RFI and submittal report; log daily manpower from a crew message. You ask in plain words, and anything that reaches other people waits for your OK first.

### How do I get access?

Create a free account at https://cotlet.dev, open Procore under Integrations in the console and sign in to Procore in its Cloud Browser. The trial starts with your first app, no card asked.

### Does Procore have an MCP server?

We found none from Procore for your own AI agent (checked 6 Nov 2026). Procore's AI works inside Procore, and its Developer Portal lets Marketplace apps declare MCP servers. Cotlet gives Claude, ChatGPT and scripts the Procore tools above, hosted.

### Which Procore permissions does my agent need to create an RFI?

It uses your own role. Draft or open RFIs need Admin on the project's RFIs tool, or Standard with the Act as RFI Manager permission. With Standard only, an RFI can be saved as a draft and sent to the RFI Manager for review (Procore Support, Create an RFI).

### Does Procore notify people when my agent creates a punch list item or an observation?

Not on save. Punch list items are emailed after Send All Items, and observation emails are not sent automatically. Your agent sends punch list items with send_punch_list_items, and by default you confirm that call first.

### Do I need a developer app or an admin to connect?

Cotlet registers no Procore app for you. You sign in with your own login, and your role on each project sets what the agent can do. If your company asks for single sign-on, you sign in through it.

### Does Procore send events to my agent?

Not through Cotlet. Procore webhooks and the Zapier triggers push events; Cotlet reads and writes when your agent asks. For a morning check of overdue RFIs, run your agent on a schedule.

### Which Procore tools do I need to buy?

The tools follow what your company has on the project: RFIs, Submittals, Punch List, Observations and Daily Log. A call to a tool your project does not have fails and costs nothing.

### Is the MCP server different from the REST API?

Only the door is different. Both expose the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and cron jobs use REST.

### Is Cotlet affiliated with Procore?

No. Cotlet is independent and not affiliated with Procore Technologies, Inc.

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
