ProcoreMCP

Let the best AI agent run your Procore — safely.

Point Claude Code or Codex at your Procore through one MCP server. It reads everything, proposes changes, and executes only what you approve — with snapshot-undo behind every write.

The bet

The revolution isn't building AI agents. It's giving the best agent that already exists safe access to your tools.

You can't out-build the frontier labs, and the model is rented — it gets better every month on its own. The leverage is in the tool surface: a Procore connection an agent can drive without you fearing what it'll touch. Rent the intelligence. Own the safe path to your data.

The safety engine

read propose approve execute undo

read and propose never touch Procore. Approve is the only path that writes. Every proposal snapshots current state first — that snapshot is both the diff you review and the source of the undo.

ClassChangeUndo
ACreateDeletes the created record — clean.
BUpdatePatches the snapshot fields back. Refuses if the record drifted underneath.
CDeleteRestores via Procore — where Procore supports restore.
DIrreversibleSide-effects, hard deletes, workflow-advancing status. No undo — always asks first.

Why not just give an agent the raw API?

Procore has no undo

One bad PATCH and the prior state is gone. We snapshot before every write so any reversible change can be walked back.

Raw MCPs are dumb passthroughs

Generic Procore connectors exist — with zero guardrails. An agent can fire a destructive write with nothing in between. Demand is proven; the safe version is the gap.

Blast radius isn't trust

Gating is tiered by reversibility × side-effect, not by how much you trust the agent. A create is cheap to approve; a workflow advance always stops for you.

Model-agnostic

Works with whatever agent is best this quarter. No lock-in to one vendor's house model that you can't swap when a better one ships.

Wire it up

Add the MCP server to Claude Code or Claude Desktop, then talk to it.

{
  "mcpServers": {
    "procoremcp": {
      "command": "node",
      "args": ["/path/to/procoresift-mcp/server.mjs"],
      "env": { "PROCORESIFT_BUSINESS_ID": "4" }
    }
  }
}

Then: connect your Procore company → probe to confirm access → read to explore → propose a change → review the class & diff → approve.