arpan1235/procore-mcp-server
If you are the rightful owner of procore-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Procore MCP Server is a Model Context Protocol server designed to integrate with the Procore API, enabling AI assistants to interact with Procore's construction management platform.
get_projects
Retrieve project listings
get_submittals
Access submittal data
get_rfis
Retrieve RFI information
Procore MCP Server
A Model Context Protocol (MCP) server that provides integration with the Procore API, built for Cloudflare Workers.
Overview
This MCP server allows AI assistants to interact with Procore's construction management platform through a standardized interface. It provides tools for accessing projects, submittals, RFIs, and other Procore resources.
Prerequisites
- Node.js 18+
- Cloudflare Workers account
- Wrangler CLI installed
- Procore developer account and API access
Getting Started
1. Clone and Install
git clone <your-repo-url>
cd procore-mcp-server
npm install
2. Get Procore API Credentials
Create a Procore Developer Account
- Visit the Procore Developer Portal
- Sign up for a developer account or log in
- Navigate to My Apps in the developer portal
Create an Application
- Click Create New App
- Fill in your application details:
- App Name: Your MCP server name
- Description: Brief description of your integration
- Redirect URI:
https://your-domain.com/callback
(can be localhost for development)
- Select the required Scopes (permissions):
read_projects
- Read project informationread_submittals
- Read submittal dataread_rfis
- Read RFI data- Add other scopes as needed
- Click Create App
Get Your Credentials
After creating the app, you'll see:
- Client ID - Your application identifier
- Client Secret - Your application secret (keep this secure!)
Generate an Access Token
Option 1: OAuth 2.0 Flow (Recommended for production)
- Implement the OAuth flow to get user authorization
- Exchange authorization code for access token
- Use refresh token to maintain access
Option 2: Personal Access Token (For development/testing)
- In the Procore web app, go to your Account Settings
- Navigate to Developer Tools → Personal Access Tokens
- Click Create Token
- Set the token name and select scopes
- Copy the generated token (this is your
PROCORE_TOKEN
)
Note: Personal Access Tokens are tied to your user account and inherit your permissions. For production applications, use OAuth 2.0 flow.
3. Configure Environment Variables
Set your Procore API token as a Cloudflare Workers secret:
# Using Wrangler CLI (recommended)
wrangler secret put PROCORE_TOKEN
# Paste your token when prompted
Or via the Cloudflare Dashboard:
- Go to your Worker → Settings → Environment Variables
- Add variable:
PROCORE_TOKEN
(mark as Secret) - Paste your token value
- Click Save
4. Deploy to Cloudflare Workers
# Deploy to Cloudflare Workers
wrangler deploy
Your MCP server will be available at: https://your-worker-name.your-subdomain.workers.dev
API Endpoints
Health Check
GET /health
Returns server status.
MCP Discovery
GET /mcp
Returns MCP server capabilities and available tools.
MCP JSON-RPC
POST /mcp/rpc
Main MCP endpoint for tool execution. Accepts JSON-RPC 2.0 formatted requests.
Usage
With MCP Inspector
- Install MCP Inspector
- Connect to your server endpoint:
https://your-worker-name.your-subdomain.workers.dev/mcp/rpc
Direct API Usage
Initialize the connection
POST /mcp/rpc
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}
List available tools
POST /mcp/rpc
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}
Execute a tool
POST /mcp/rpc
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_projects",
"arguments": {}
}
}
Available Tools
The server provides various tools for interacting with Procore:
- get_projects - Retrieve project listings
- get_submittals - Access submittal data
- get_rfis - Retrieve RFI information
- And more (see
/mcp
endpoint for full list)
Development
Local Development
# Start local development server
wrangler dev
# The server will be available at http://localhost:8787
Environment Variables
Variable | Description | Required |
---|---|---|
PROCORE_TOKEN | Procore API access token | Yes |
Security Considerations
- Never commit API tokens to version control
- Use Cloudflare Workers secrets for sensitive data
- Implement proper error handling to avoid token leakage
- Consider implementing rate limiting for production use
- Use OAuth 2.0 flow for production applications
Troubleshooting
"PROCORE_TOKEN environment variable is not set"
- Ensure you've set the secret using
wrangler secret put PROCORE_TOKEN
- Verify the secret exists in your Cloudflare Workers dashboard
"Invalid or expired bearer token"
- Check that your Procore token is still valid
- Personal Access Tokens may expire - regenerate if needed
- Ensure your token has the required scopes/permissions
API Permission Errors
- Verify your Procore app has the necessary scopes
- Check that your user account has access to the requested resources
- Ensure you're accessing projects you have permissions for
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
[Add your license information here]