Skip to main content
Glama
TylerIlunga

Procore MCP Server

Update Generic Tool Item

update_generic_tool_item
Idempotent

Modify a Generic Tool Item in Procore by sending only changed fields; provide item, tool, and project IDs to update attributes and get the updated item back.

Instructions

Update a Generic Tool Item's attributes. For more information on Generic Tool and Correspondence Tool endpoints, see Working with the Correspondence Tool. 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 "generic_tool_item" in the request payload for you. project_id defaults to the value set by procore_set_config when omitted, and generic_tool_item_id, generic_tool_id must identify existing parent records — resolve them with the matching list tool first. Returns the modified generic tool item 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: generic_tool_item_id, generic_tool_id, project_id. Procore API: Company Admin > Custom - Configurable Tools. Endpoint: PATCH /rest/v1.0/projects/{project_id}/generic_tools/{generic_tool_id}/generic_tool_items/{generic_tool_item_id}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
viewNoQuery string parameter — if supplied customize the response format
titleNoJSON request body field — the title of the generic tool item.
statusNoJSON request body field — the status of the generic tool item.
privateNoJSON request body field — if this property is set to true, the generic tool item is private. If this property is set to false, the generic tool item is not private.
due_dateNoJSON request body field — the due date for the generic tool item.
form_idsNoJSON request body field — forms to attach to the response
positionNoJSON request body field — the position/number of the generic tool item.
trade_idNoJSON request body field — the trade identifier for the generic tool item.
image_idsNoJSON request body field — images to attach to the response
project_idYesURL path parameter — unique identifier for the project.
upload_idsNoJSON request body field — uploads to attach to the response
attachmentsNoJSON request body field — specifies an array of generic tool item attachments. To upload attachments you must upload the entire payload as a `multipart/form-data` content-type and specify each parameter as form-data togethe...
cost_impactNoJSON request body field — the cost impact of the generic tool item.
descriptionNoJSON request body field — the description of the generic tool item.
location_idNoJSON request body field — the location identifier for the generic tool item.
skip_emailsNoJSON request body field — if true creating and updating the item will not send emails to the users on the item.
assignee_idsNoJSON request body field — an array of assignee identifiers for the generic tool item.
cost_code_idNoJSON request body field — the cost code identifier for the generic tool item.
generic_tool_idYesURL path parameter — unique identifier for the Generic Tool
schedule_impactNoJSON request body field — the schedule impact status for the generic tool item.
file_version_idsNoJSON request body field — file Versions to attach to the response
received_from_idNoJSON request body field — the unique identifier for the Received From entity.
cost_impact_valueNoJSON request body field — specifies a value for the cost impact of the generic tool item.
drawing_revision_idsNoJSON request body field — drawing Revisions to attach to the response
generic_tool_item_idYesURL path parameter — unique identifier for the Generic Tool Item
schedule_impact_valueNoJSON request body field — specifies a value for the schedue impact of the generic tool item.
distribution_member_idsNoJSON request body field — an array of distribution member identifiers for the generic tool item.
specification_section_idNoJSON request body field — the specification section identifier for the generic tool item.
document_management_document_revision_idsNoJSON request body field — pDM document to attach to the response
custom_field_%{custom_field_definition_id}NoJSON request body field — value of the custom field. The data type of the value passed in corresponds with the data_type of the Custom Field Definition. For a lov_entry data_type the value passed in should be the ID of one ...
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds rich behavioral context: partial update with omitted fields preserved, request payload nesting, project_id fallback to config, and a detailed error taxonomy (401 expired token, 403 missing permission, 404 bad ID). It also states the success return value. This goes well beyond what annotations alone provide.

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?

Although the description is longer than a typical two-sentence description, every sentence earns its place: purpose, tutorial link, partial update behavior, payload nesting, config default, ID resolution, return value, error handling, required params, API location, and endpoint. The structure front-loads the core action and then flows logically to usage nuances and failure modes.

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 30-parameter update tool with no output schema, the description is remarkably complete: it covers the return payload, common error statuses and meanings, required parameters, endpoint, and prerequisite ID resolution. The schema handles field-level descriptions, and the description covers all contextual concerns an agent needs to invoke the tool 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%, so the baseline is 3. The description adds meaningful parameter-level clarity by explaining that body fields should be passed as top-level arguments but are nested under 'generic_tool_item' in the actual payload, and that project_id defaults to the procore_set_config value. These insights are not present in the schema and help agents construct valid calls.

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 'Update a Generic Tool Item's attributes,' a specific verb+resource pair that clearly distinguishes this from sibling tools like create_generic_tool_item, show_generic_tool_item, delete_generic_tool_item, and batch_update_generic_tool_items. The PATCH endpoint and required IDs further reinforce the singular update scope.

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 strong contextual guidance: partial update semantics ('Send only the fields you intend to change'), a prerequisite workflow ('resolve them with the matching list tool first'), and project_id defaulting behavior. However, it never explicitly names alternative tools (e.g., create for new items or batch_update for multiple items), so it doesn't fully close the loop on when-not-to-use.

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