Procore MCP Server
Procore MCP-Server
MCP-Server, der die vollständige Procore-REST-API für KI-Assistenten wie Claude bereitstellt. Erstellt mit TypeScript und dem Model Context Protocol SDK.
Funktioniert mit Claude Desktop, Claude Code und jedem MCP-kompatiblen Client.
Was er macht
Ein Build-Time-Parser konvertiert die OpenAPI-Spezifikation von Procore in einen kompakten Katalog und generiert dann automatisch individuelle MCP-Tools für jeden API-Vorgang. Zur Laufzeit ermöglichen 7 Meta-Tools der KI, jeden Procore-Endpunkt zu entdecken und aufzurufen:
Tool | Zweck |
| API-Kategorien mit Endpunkt-Anzahl auflisten |
| Endpunkte in einer Kategorie auflisten |
| Volltextsuche über alle Endpunkte |
| Vollständiges Parameterschema für einen Endpunkt abrufen |
| Jeden Procore-API-Aufruf ausführen |
| Aktuelle Konfiguration und Authentifizierungsstatus anzeigen |
| Laufzeitkonfiguration festlegen (company_id, project_id) |
Voraussetzungen
Node.js 18+
Ein Konto im Procore Developer Portal
Eine OAuth-App mit dem Grant-Typ Authorization Code
Setzen Sie Ihre Redirect-URI auf
http://localhost
Einrichtung
git clone https://github.com/TylerIlunga/procore-mcp-server.git
cd procore-mcp-server
npm installKopieren Sie die Beispiel-Umgebungsdatei und tragen Sie Ihre Anmeldedaten ein:
cp .env.example .envPROCORE_CLIENT_ID=your_client_id
PROCORE_CLIENT_SECRET=your_client_secret
PROCORE_COMPANY_ID=your_company_idSie benötigen die OpenAPI-Spezifikationsdatei von Procore, die unter specs/combined_OAS.json abgelegt werden muss. Diese Datei ist aufgrund ihrer Größe (~41 MB) nicht im Repository enthalten. Sie können sie aus der Procore-API-Dokumentation beziehen.
Erstellen Sie den Katalog und kompilieren Sie TypeScript:
npm run buildAuthentifizieren Sie sich bei Procore (öffnet den Browser für OAuth):
npm run authStarten Sie den Server:
npm startClaude Desktop-Konfiguration
Fügen Sie dies zu Ihrer Claude Desktop-Konfiguration hinzu (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"procore": {
"command": "node",
"args": ["/absolute/path/to/procore-mcp-server/dist/src/index.js"],
"env": {
"PROCORE_CLIENT_ID": "your_client_id",
"PROCORE_CLIENT_SECRET": "your_client_secret",
"PROCORE_COMPANY_ID": "your_company_id"
}
}
}
}Claude Code-Konfiguration
Fügen Sie dies zu .mcp.json in Ihrem Projektstammverzeichnis hinzu:
{
"mcpServers": {
"procore": {
"command": "node",
"args": ["/absolute/path/to/procore-mcp-server/dist/src/index.js"],
"env": {
"PROCORE_CLIENT_ID": "your_client_id",
"PROCORE_CLIENT_SECRET": "your_client_secret",
"PROCORE_COMPANY_ID": "your_company_id"
}
}
}
}Projektstruktur
src/
auth/ OAuth token exchange, refresh, storage
api/ HTTP client with auth, rate limits, retries
catalog/ Endpoint catalog loading, search, filtering
tools/ MCP tool handlers and registration
scripts/
generate-catalog.ts Parse OAS into catalog
generate-tools-manifest.ts Generate per-endpoint MCP tools
validate-catalog.ts Validate catalog integrity
data/ Build output (gitignored): catalog.json, endpoint details
specs/ Source OAS file (gitignored)Funktionsweise
Build-Zeit:
scripts/generate-catalog.tsanalysiert die 41 MB große Procore-OpenAPI-Spezifikation und erstellt einen kompaktendata/catalog.jsonsowie individuelle Endpunkt-Detaildateien indata/endpoint-details/.scripts/generate-tools-manifest.tsgeneriert dann ein Tool-Manifest mit einem benannten MCP-Tool pro API-Vorgang.Authentifizierung: Führen Sie einmal
npm run authaus, um den OAuth-Vorgang in Ihrem Browser abzuschließen. Token werden unter~/.procore-mcp/tokens.jsongespeichert und bei Ablauf automatisch aktualisiert.Laufzeit: Der MCP-Server lädt den Katalog und registriert alle Tools. Wenn ein KI-Assistent ein Tool aufruft, ordnet der Server es dem korrekten Procore-API-Endpunkt zu, fügt Authentifizierungs-Header ein, verarbeitet Ratenbegrenzungen und Paginierung und gibt die Antwort zurück.
Inspiration
Entwickelt, um meiner Freundin zu helfen, einer Bauingenieurin, die Procore täglich nutzt.
Lizenz
MIT
Tools
- add_additional_assignees_to_a_workflow_instance_company_v2_0C
- add_additional_assignees_to_a_workflow_instance_project_v2_0C
- add_alternative_response_set_to_project_checklist_templateC
- add_a_new_markupC
- add_an_existing_response_to_an_item_response_setC
- add_attachments_to_punch_itemC
- add_attachments_to_punch_item_v1_1C
- add_category_to_projectC
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TylerIlunga/procore-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server