This project provides a Python-based MCP (Multi-Client Platform) server for integrating with the Procore API. It exposes tools and utilities for accessing Procore project data, RFIs, and more, and is designed to be used as a backend service or as a tool server for agent frameworks.
- OAuth2-based authentication to Procore's API
- Tools for listing projects, RFIs, and project details
- Pagination and filtering support for large data sets
- Built-in support for running as an MCP server (with
mcp.server.fastmcp) - Environment-based configuration for secrets and company info
git clone <this-repo-url>
cd procore-mcpWe recommend using Python 3.10 or newer and a virtual environment:
python3.10 -m venv .venv
source .venv/bin/activateDependencies are managed with uv so no need to install anything else.
Create a .env file and set the following variables:
PROCORE_CLIENT_ID=your_client_id
PROCORE_CLIENT_SECRET=your_client_secretYou will also want to update COMPANY_ID in the server.py file to your Procore company ID.
-
Install Claude Desktop
-
Install to Claude Desktop:
uv run mcp install server.py --with requests --f .env
This will install the server to Claude Desktop where the flags:
--with requestsinstalls therequestspackage--f .envloads the environment variables from the.envfile
You can double-check the installation by looking at the claude_desktop_config.json file wherever you downloaded Claude Desktop. It should look something like this:
{
"mcpServers": {
"Procore Server": {
"command": "/Users/hfritz/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"requests",
"mcp",
"run",
"/Users/hfritz/Projects/procore-mcp/server.py"
],
"env": {
"PROCORE_CLIENT_ID": "Your Client ID",
"PROCORE_CLIENT_SECRET": "Your Client Secret"
}
}
}
}