Skip to main content
Glama
TylerIlunga

Procore MCP Server

Update A Compliance Document.

update_a_compliance_document_project
Idempotent

Update a compliance document in a Procore project. Send only fields to change; omitted fields remain unchanged. Requires project, contract, and document IDs.

Instructions

Update the specified compliance document. Send only the fields you intend to change; omitted fields keep their current values. Pass the record's fields as top-level arguments — they are nested under "attributes" in the request payload for you. project_id defaults to the value set by procore_set_config when omitted, and contract_id, id must identify existing parent records — resolve them with the matching list tool first. Returns the modified compliance document on success. Failures come back as an error payload carrying the HTTP status — commonly 401 when the token has expired, 403 without tool permission, and 404 when an id does not resolve. Required parameters: project_id, contract_id, id. Procore API: Construction Financials > Commitments. Endpoint: PATCH /rest/v1.0/projects/{project_id}/work_order_contracts/{contract_id}/compliance_documents/{id}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesURL path parameter — identifier for the document
nameNoJSON request body field — the name for this Commitments operation
typeNoJSON request body field — the type for this Commitments operation
notesNoJSON request body field — the notes for this Commitments operation
statusNoJSON request body field — the status for this Commitments operation
form_idsNoJSON request body field — forms to attach to the response
image_idsNoJSON request body field — images to attach to the response
expires_atNoJSON request body field — the expires at for this Commitments operation
project_idYesURL path parameter — unique identifier for the project.
upload_idsNoJSON request body field — uploads to attach to the response
contract_idYesURL path parameter — identifier for the commitment contract
effective_atNoJSON request body field — the effective at for this Commitments operation
attachment_idsNoJSON request body field — existing attachments to preserve on the response
file_version_idsNoJSON request body field — file Versions to attach to the response
drawing_revision_idsNoJSON request body field — drawing Revisions to attach to the response
send_expiration_notificationNoJSON request body field — send_expiration_notification
Behavior5/5

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

Beyond annotations, the description discloses partial update semantics, payload nesting ('nested under attributes'), defaulting behavior, return value (modified document), and common error codes (401, 403, 404). This is rich behavioral context that goes well beyond the structured hints.

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 single-paragraph and front-loaded with the primary action. It contains valuable operational detail but is somewhat dense; the 'Required parameters' line is redundant with the schema. Still, every sentence earns its place in guiding usage.

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

Completeness5/5

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

For a complex update tool with 16 parameters and no output schema, the description covers all essential context: operation type, update semantics, prerequisite resolution, default behavior, return value, error handling, and endpoint. This is complete enough for an agent to select and invoke correctly.

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

Parameters4/5

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

Schema coverage is 100% but the schema descriptions are generic (e.g., 'the name for this Commitments operation'). The description adds meaningful semantics: partial update behavior, project_id defaulting, and nesting under 'attributes', which significantly clarifies parameter usage beyond the schema.

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 'Update the specified compliance document' with a specific verb and resource. It distinguishes from sibling create/delete/show tools via the endpoint path and explicit contract/project scope, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

Provides explicit usage guidance: send only changed fields, project_id default behavior, and the need to resolve contract_id/id via list tools first. It does not explicitly compare to sibling update tools (e.g., update_contract_compliance_document), but the context is clear for the intended use case.

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