Skip to main content
Glama
TylerIlunga

Procore MCP Server

Sync Units Of Measure

sync_units_of_measure
Idempotent

Batch create, update, or delete units of measure for your company in one call. Manage custom UOMs efficiently while standard Procore UOMs remain protected.

Instructions

Creates, updates, and/or deletes a batch of Units of Measure (UOMs) for the company in a single call. Each entry in updates is treated as a create when id is omitted, or as an update when id is supplied. IDs in deletes remove the matching UOMs; standard (Procore-provided) UOMs cannot be deleted via this endpoint and will be reported in the response errors array. Only company admins can call this endpoint. See Using Sync Actions for additional information. Send only the fields you intend to change; omitted fields keep their current values. company_id defaults to the value set by procore_set_config when omitted. Returns the modified unit 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: company_id, updates. Procore API: Construction Financials > Units of Measure. Endpoint: PATCH /rest/v1.0/companies/{company_id}/uoms/sync

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deletesNoJSON request body field — iDs of custom UOMs to delete. Standard (Procore-provided) UOMs cannot be deleted via this endpoint and will be reported in the response `errors` array.
updatesYesJSON request body field — uOMs to create or update. Omit `id` to create a new custom UOM; supply `id` to update an existing UOM. For Procore-provided standard UOMs, only `name` can be updated; `uom_category_id` changes are ...
company_idYesURL path parameter — unique identifier for the company.
Behavior1/5

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

The description clearly discloses destructive behavior ('IDs in `deletes` remove the matching UOMs') and non-idempotent create-on-omit-id semantics, yet the annotations declare destructiveHint=false and idempotentHint=true. This is a direct contradiction. Because the description contradicts the structured safety hints, the agent receives conflicting signals about whether deletions are possible and whether repeated calls are safe, scoring 1.

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 long but information-dense; every sentence contributes to understanding behavior, constraints, defaults, or error handling. It is front-loaded with the primary verb and resource, and there is no filler or tautology. A minor deduction for the slightly overwhelming density and the redundant 'Required parameters' line, which duplicates the schema.

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

Completeness4/5

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

With no output schema, the description carries the burden of explaining return values and failure modes. It mentions 'Returns the modified unit on success' and lists common HTTP error codes (401, 403, 404), but it does not fully describe the batch response structure (e.g., whether multiple modified units are returned as an array or how partial successes are reported beyond the errors array). This is a noticeable gap given the sync complexity, but overall the description covers most operational context.

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% for the three parameters, so the baseline is 3. The description goes beyond the schema by explaining that company_id defaults to the value from procore_set_config, that omitted fields on updates retain current values, and that standard UOM deletion failures surface in the response errors array. These extra details add practical meaning beyond the raw field 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 opens with a specific verb+resource: 'Creates, updates, and/or deletes a batch of Units of Measure (UOMs) for the company in a single call.' This clearly distinguishes it from sibling tools like create_unit_of_measure, update_unit_of_measure, and delete_unit_of_measure, and makes the batch-sync scope explicit.

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?

The description provides clear usage context: it is for batch operations, only company admins can call it, and company_id defaults to the configured value. However, it does not explicitly name alternative tools (e.g., 'use create_unit_of_measure for a single UOM') or state when not to use this endpoint, so it stops short of a full 5.

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