Procore MCP Server
Procore MCP Server
MCP-сервер, который предоставляет полный REST API Procore для ИИ-ассистентов, таких как Claude. Создан с использованием TypeScript и Model Context Protocol SDK.
Работает с Claude Desktop, Claude Code и любым клиентом, совместимым с MCP.
Что он делает
Парсер времени сборки преобразует спецификацию OpenAPI от Procore в компактный каталог, а затем автоматически генерирует отдельные инструменты MCP для каждой операции API. Во время выполнения 7 мета-инструментов позволяют ИИ находить и вызывать любую конечную точку Procore:
Инструмент | Назначение |
| Список категорий API с количеством конечных точек |
| Список конечных точек в категории |
| Полнотекстовый поиск по всем конечным точкам |
| Получение полной схемы параметров для конечной точки |
| Выполнение любого вызова API Procore |
| Отображение текущей конфигурации и статуса авторизации |
| Установка конфигурации во время выполнения (company_id, project_id) |
Предварительные требования
Node.js 18+
Учетная запись на портале разработчиков Procore
OAuth-приложение с типом предоставления Authorization Code
Установите URI перенаправления на
http://localhost
Настройка
git clone https://github.com/TylerIlunga/procore-mcp-server.git
cd procore-mcp-server
npm installСкопируйте пример файла env и заполните свои учетные данные:
cp .env.example .envPROCORE_CLIENT_ID=your_client_id
PROCORE_CLIENT_SECRET=your_client_secret
PROCORE_COMPANY_ID=your_company_idВам понадобится файл спецификации OpenAPI от Procore, размещенный в specs/combined_OAS.json. Этот файл не включен в репозиторий из-за его размера (~41 МБ). Вы можете получить его из документации API Procore.
Соберите каталог и скомпилируйте TypeScript:
npm run buildАвторизуйтесь в Procore (откроется браузер для OAuth):
npm run authЗапустите сервер:
npm startКонфигурация Claude Desktop
Добавьте в конфигурацию Claude Desktop (~/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
Добавьте в .mcp.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"
}
}
}
}Структура проекта
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)Как это работает
Время сборки:
scripts/generate-catalog.tsанализирует спецификацию OpenAPI Procore размером 41 МБ и создает компактныйdata/catalog.json, а также отдельные файлы сведений о конечных точках вdata/endpoint-details/. Затемscripts/generate-tools-manifest.tsгенерирует манифест инструментов с одним именованным инструментом MCP для каждой операции API.Авторизация: Запустите
npm run authодин раз, чтобы завершить процесс OAuth в браузере. Токены сохраняются в~/.procore-mcp/tokens.jsonи автоматически обновляются по истечении срока действия.Время выполнения: MCP-сервер загружает каталог и регистрирует все инструменты. Когда ИИ-ассистент вызывает инструмент, сервер сопоставляет его с правильной конечной точкой API Procore, внедряет заголовки авторизации, обрабатывает ограничения скорости и пагинацию, а затем возвращает ответ.
Вдохновение
Создано, чтобы помочь моей девушке, инженеру-строителю, которая ежедневно использует Procore.
Лицензия
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