pipeyard

by zeniasupp0rt-cmyk

Not rated
GitHub

About

Curated MCP connector marketplace for industry verticals — Construction, Finance, Healthcare, and Logistics with full docs, curl examples and sandbox testing.

Details

Author
zeniasupp0rt-cmyk
Categories
Developer Tools, Other, API, Automation

Setup

Install pipeyard in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/zeniasupp0rt-cmyk/procore-mcp-server

Follow the installation instructions in the repository README, then restart your MCP client.

This project implements aModel Context Protocol (MCP) serverthat connects Claude (and other MCP‑aware clients) to theProcore API. It exposes tools for working with:

- Projects
- RFIs
- Submittals
- Documents
- Budget & cost

All tools returnclean JSON responses, validate inputs withzod, and include robust error handling for401,403,404, and429 (rate limit)responses from Procore.

- Node.js: v18+ (recommended)
- npm: v9+ (comes with recent Node.js)
- Procore Developer accountwith:

- A registeredOAuth2 clientusingClient Credentialsflow
- API access to the relevant projects/modules (RFIs, Submittals, Documents, Budget, etc.)

If you created the folder elsewhere, adjust thecdpath accordingly.

- Go to the Procore Developer Portal.
- Create anOAuth Clientusing theClient Credentialsgrant type.
- Note the following values:

- Client ID
- Client Secret

- Projects
- RFIs
- Submittals
- Documents
- Budget & cost management

You will use these values in your.envfile.

Create a.envfile in the project root (next topackage.json) based on.env.example:

PROCORE_CLIENT_ID=your_real_client_id PROCORE_CLIENT_SECRET=your_real_client_secret PROCORE_BASE_URL=https://api.procore.com

- PROCORE_CLIENT_ID: From the Procore developer portal.
- PROCORE_CLIENT_SECRET: From the Procore developer portal.
- PROCORE_BASE_URL: Typicallyhttps://api.procore.com(you can override for sandbox/test environments).

Run indevelopment mode(TypeScript viatsx):

The MCP server usesstdio(standard input/output), so it is normally launched and managed by an MCP client such as Claude Desktop. You generally donotcall it directly in a terminal except for debugging.

All tools returnJSON. Arguments shown below are thetool arguments, not raw HTTP calls.

- list_projects

- Description: List Procore projects for the authenticated client, optionally filtered bycompany_id.
- Inputs:

- company_id(optional, integer): Filter projects by company.

- Description: Get details of a single project by ID.
- Inputs:

- id(required, integer): Project ID.

- list_rfis

- Description: List RFIs for a project.
- Inputs:

- project_id(required, integer): Project ID.

- Description: Get a single RFI by ID for a project.
- Inputs:

- project_id(required, integer): Project ID.
- id(required, integer): RFI ID.

- Description: Create a new RFI in a project.
- Inputs:

- project_id(required, integer): Project ID.
- payload(required, object): Raw JSON payload matching Procore’screate RFIAPI body.

- list_submittals

- Description: List submittals for a project.
- Inputs:

- project_id(required, integer): Project ID.

- Description: Get a single submittal by ID for a project.
- Inputs:

- project_id(required, integer): Project ID.
- id(required, integer): Submittal ID.

- Description: Create a new submittal in a project.
- Inputs:

- project_id(required, integer): Project ID.
- payload(required, object): Raw JSON payload matching Procore’screate SubmittalAPI body.

- list_folders

- Description: List document folders for a project.
- Inputs:

- project_id(required, integer): Project ID.

- Description: List document files for a project.
- Inputs:

- project_id(required, integer): Project ID.

- list_budget_line_items

- Description: List budget line items for a project.
- Inputs:

- project_id(required, integer): Project ID.

- Description: Get overall budget summary for a project.
- Inputs:

- project_id(required, integer): Project ID.

Example curl-style tool calls (via MCP JSON-RPC)

MCP servers speakJSON-RPC over stdio; you normally don’t call them directly with curl. These examples illustrate thepayload structurea client like Claude Desktop would send.

Replace123/456etc. with your real IDs.

echo '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_projects", "arguments": { "company_id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_project", "arguments": { "id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "list_rfis", "arguments": { "project_id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "create_rfi", "arguments": { "project_id": 123, "payload": { "subject": "RFI subject here", "question": "Describe the question...", "responsible_contractor_id": 456 } } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "list_submittals", "arguments": { "project_id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": { "name": "create_submittal", "arguments": { "project_id": 123, "payload": { "subject": "Submittal subject", "spec_section": "01 30 00", "responsible_contractor_id": 456 } } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": { "name": "list_folders", "arguments": { "project_id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 8, "method": "tools/call", "params": { "name": "list_files", "arguments": { "project_id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 9, "method": "tools/call", "params": { "name": "list_budget_line_items", "arguments": { "project_id": 123 } } }' | node dist/index.js
echo '{ "jsonrpc": "2.0", "id": 10, "method": "tools/call", "params": { "name": "get_budget_summary", "arguments": { "project_id": 123 } } }' | node dist/index.js

All tools include consistent JSON error responses. Typical shape:

{ "error": "unauthorized", "message": "Procore API returned 401 Unauthorized.", "status": 401, "statusText": "Unauthorized", "url": "/rest/v1.0/projects", "method": "get", "data": { / raw Procore response body, if any / } }

- 401:unauthorized
- 403:forbidden
- 404:not_found
- 429:rate_limited
- Other 4xx/5xx:procore_api_error
- Validation / other errors:tool_error

How to connect to Claude Desktop (MCP config)

In Claude Desktop, add a new MCP server configuration in yourclaude_desktop_config.json(path may vary by OS).

{ "mcp_servers": { "procore": { "command": "node", "args": [ "C:/Procore/procore-mcp-server/dist/index.js" ], "env": { "PROCORE_CLIENT_ID": "your_real_client_id", "PROCORE_CLIENT_SECRET": "your_real_client_secret", "PROCORE_BASE_URL": "https://api.procore.com" } } } }

- command:node(or an explicit path to your Node binary).
- args: Path to the compiledindex.jsindist/.
- env: You can either:

- Inline your secrets here (be cautious), or
- Omitenvso that Claude Desktop inherits your system environment variables.

After saving the config, restart Claude Desktop. TheprocoreMCP server should appear as an available toolset, and the tools listed above (list_projects,get_project,list_rfis, etc.) will be callable directly from within Claude.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Unified MCP gateway that gives AI agents access to 100+ tools, marketplace MCPs, and custom MCP servers through simple search and execute workflows.

The MCP server for Bitrix24 provides AI assistants with structured access to the Bitrix24 API. It delivers up-to-date method descriptions, parameters, and valid values, allowing assistants to work with precise data instead of guesswork. This reduces code errors and accelerates Bitrix24 integration development.

One remote MCP server for 500+ production APIs — Stripe, HubSpot, Postgres, Gmail, and more. OAuth and API key auth, credential management, and a CLI.

Single tool to control all 100+ API integrations, and UI components

Agent-native developer Q&A API with MCP + A2A endpoints for citations, job pickup, and answer submission.

Agent-first skill marketplace — search, evaluate, and install skills across 7 AI platforms via MCP. Features Supply Loop where agents become contributors.

Self-hosted MCP gateway: convert REST/SOAP/GraphQL/SQL APIs into MCP tools with 29 pre-built adapters, OAuth2, RBAC and audit log.

A universal bridge to convert any web API into an MCP server, supporting multiple transport types.

Dynamically creates MCP servers from web API configurations, integrating any REST API, GraphQL endpoint, or web service into MCP-compatible tools.

Hosted MCP server and coordination layer for AI coding agents — live API contracts, database schema, frontend/backend mismatch detection, and shared handoff tickets for Claude Code, Cursor, Codex, and Lovable.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.