Skip to main content
Glama
TylerIlunga

Procore MCP Server

Update Prime Contract

update_prime_contract_project

Update an existing Prime Contract by modifying only the specified fields. Change status, title, vendor, or other contract details for a given project.

Instructions

Updates a Prime Contract for a given project. Use this to update an existing Prime Contracts (only the supplied fields are changed). Updates the specified Prime Contracts and returns the modified object on success. Required parameters: company_id, project_id, prime_contract_id. Procore API (v2.0): Construction Financials > Prime Contracts. Endpoint: PATCH /rest/v2.0/companies/{company_id}/projects/{project_id}/prime_contracts/{prime_contract_id}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
company_idYesURL path parameter — unique identifier for the company.
project_idYesURL path parameter — unique identifier for the project.
prime_contract_idYesURL path parameter — unique identifier for the Prime Contract.
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.
Behavior4/5

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

The description discloses that only supplied fields are changed (partial update via PATCH), and that it returns the modified object. It also includes the endpoint and API version. Since annotations are minimal (no read-only or destructive hints), the description adds meaningful behavioral context.

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

Conciseness5/5

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

The description is concise with three sentences: purpose, usage instruction, and API details. It is front-loaded with the key action and includes essential information without extraneous text.

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?

Given the tool's complexity (33 parameters, no output schema), the description covers the basic operation and return value but lacks information on error handling, authentication requirements, or prerequisites. It is adequate but not comprehensive.

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?

The input schema has 100% coverage with descriptions for all 33 parameters. The description only lists the required parameters (company_id, project_id, prime_contract_id) and states that only supplied fields are changed. This adds minimal value beyond the schema, so a baseline of 3 is appropriate.

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's action: 'Updates a Prime Contract for a given project.' It specifies the resource (Prime Contract) and the action (update), and distinguishes it from other tools by explicitly naming the resource type.

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?

The description does not provide guidance on when to use this tool versus alternatives, such as create_prime_contract_project or other update tools. It lacks when-not-to-use scenarios and does not mention any prerequisites or exclusions.

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