Skip to main content
Glama
TylerIlunga

Procore MCP Server

Create Prime Contract

create_prime_contract_project

Create a new Prime Contract for a project in Procore. Requires company and project IDs to establish the contract.

Instructions

Creates a new Prime Contract for a given project. Use this to create a new Prime Contracts in Procore. Creates a new Prime Contracts and returns the created object on success (HTTP 201). Required parameters: company_id, project_id. Procore API (v2.0): Construction Financials > Prime Contracts. Endpoint: POST /rest/v2.0/companies/{company_id}/projects/{project_id}/prime_contracts

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
company_idYesURL path parameter — unique identifier for the company.
project_idYesURL path parameter — unique identifier for the project.
viewNoQuery string parameter — specifies which view (which attributes) of the resource is going to be present in the response. The extended view includes architect name, contractor name, vendor name and custom fields data, whil...
numberNoJSON request body field — the Prime Contract number. Defaults to the project numbering sequence for the respective contract type.
statusNoJSON request body field — the Prime Contract status.
titleNoJSON request body field — the Prime Contract title.
descriptionNoJSON request body field — the Prime Contract description.
executedNoJSON request body field — the Prime Contract executed status.
vendor_idNoJSON request body field — the ID of the vendor for the contract. The selected invoice contacts must all belong to this vendor. When the vendor is changed, the invoice contacts are reset.
architect_idNoJSON request body field — the ID of the architect for the contract.
contractor_idNoJSON request body field — the ID of the contractor for the contract.
inclusionsNoJSON request body field — only applicable to Work Order Contracts. The inclusions of the Prime Contract.
exclusionsNoJSON request body field — only applicable to Work Order Contracts. The exclusions of the Prime Contract.
accounting_methodNoJSON request body field — the accounting method for the contract. Default is driven by a project setting.
allow_commentsNoJSON request body field — if true, comments are allowed on the Prime Contract; otherwise comments are not allowed. Default is driven by a project setting.
auto_approve_prefilled_requisitions_on_payappNoJSON request body field — if true, prefilled requisitions are auto-approved on payment applications; otherwise prefilled requisitions are not auto-approved. Default is driven by a project setting.
allow_markupsNoJSON request body field — if true, markups are allowed on the Prime Contract; otherwise markups are not allowed. Default is driven by a project setting.
change_order_level_of_detailNoJSON request body field — the level of details for showing change orders on invoices attached to this contract.
enable_ssovNoJSON request body field — if true, the subcontractor schedule of values (SSOV) is enabled for the Prime Contract; otherwise the SSOV is not enabled. Default is driven by a project setting.
allow_payment_applicationsNoJSON request body field — if true, invoices are allowed on the Prime Contract; otherwise invoices are not allowed. Default is driven by a project setting.
allow_paymentsNoJSON request body field — if true, payments are allowed on the Prime Contract; otherwise payments are not allowed. Default is driven by a project setting.
display_materials_retainageNoJSON request body field — if true, materials retainage is displayed on the Prime Contract; otherwise materials retainage is not displayed. Default is driven by a project setting.
display_work_retainageNoJSON request body field — if true, work retainage is displayed on the Prime Contract; otherwise work retainage is not displayed. Default is driven by a project setting.
show_cost_code_on_pdfNoJSON request body field — if true, cost codes are displayed on the Prime Contract PDF; otherwise cost codes are not displayed. Default is driven by a project setting.
accessor_idsNoJSON request body field — only applicable to private contracts. IDs of users in the project directory (see the Project Users endpoint). These users will be able to view the commitment contract.
privateNoJSON request body field — if true, visible to admins and accessors only; otherwise visible to those with access to the Primes tool. Default based on project level setting.
show_line_items_to_non_adminsNoJSON request body field — only applicable to private contracts. If true, line items are visible to non-admins; otherwise visible to admins only.
actual_completion_dateNoJSON request body field — only applicable to Work Order Contracts.
approval_letter_dateNoJSON request body field — approval_letter_date
contract_dateNoJSON request body field — the contract date in YYYY-MM-DD format
contract_estimated_completion_dateNoJSON request body field — only applicable to Work Order Contracts.
contract_start_dateNoJSON request body field — only applicable to Work Order Contracts.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds that it returns the created object on success (HTTP 201) and provides the endpoint. However, it does not disclose authentication needs, rate limits, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and efficiently covers purpose, required parameters, and API endpoint. Minor redundancy (repetition of 'Prime Contracts') does not detract significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 32 parameters and no output schema, the description adequately states the tool's function and returns. However, it lacks detail on default values for optional fields, error handling, or prerequisites beyond the two required parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to add parameter details. The description only mentions the required parameters (company_id, project_id) but adds no new meaning beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new Prime Contract for a given project, specifies required parameters (company_id, project_id), and provides the API endpoint and version. This effectively differentiates it from sibling contract creation tools (e.g., commitment, work order).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like create_commitment_contract or create_work_order_contract. Given the many sibling contract creation tools, explicit selection criteria would be valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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