Skip to main content
Glama
TylerIlunga

Procore MCP Server

Update The Specifications User Permissions

update_the_specifications_user_permissions
Idempotent

Update a user's specifications permission in a Procore project by sending only the fields to change. Requires company, project, user ID, and the new access level.

Instructions

Updates an existing specifications user permission in the specified Procore project. Send only the fields you intend to change; omitted fields keep their current values. company_id and project_id default to the values set by procore_set_config when omitted, and user_id must identify an existing parent record — resolve it with the matching list tool first. Returns the modified specifications user permission 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, project_id, user_id, user_access_level_id. Procore API (v2.0): Project Management > Specifications. Endpoint: PATCH /rest/v2.0/companies/{company_id}/projects/{project_id}/specification_configuration/user_permissions/{user_id}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_idYesURL path parameter — unique identifier of the user
company_idYesURL path parameter — unique identifier for the company.
project_idYesURL path parameter — unique identifier for the project.
user_access_level_idYesQuery string parameter — user Access Level ID - '1' for None, '2' for Read-Only, '3' for Standard, '4' for Admin
Behavior5/5

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

Annotations already indicate a non-read-only, idempotent write operation, but the description adds meaningful behavioral detail: PATCH-like partial updates (omitted fields keep current values), defaulting of company_id/project_id from configuration, success return value, and error payload structure with specific HTTP status codes (401, 403, 404). This goes well beyond the annotation hints and helps the agent anticipate outcomes.

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 long, every sentence conveys necessary operational detail: partial update, defaults, prerequisite resolution, return value, error handling, required parameters, and API endpoint info. The information is logically ordered and error-derived, avoiding redundancy.

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?

Given the absence of an output schema, the description does well to state that the modified permission is returned on success and describes error payload patterns. It also includes endpoint, API version, and scoping. It stops short of detailing the response structure, but that is acceptable given no output schema. A slight deduction for not describing the shape of the returned object in more detail.

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 schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds extra meaning by explaining defaulting behavior for company_id/project_id and the need to resolve user_id via a list tool. However, there is an internal contradiction: the description first says company_id and project_id default when omitted, yet later lists them as required parameters (and the schema marks them required). This inconsistency undermines the added value and could confuse an agent.

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 updates an existing specifications user permission in a Procore project. The verb 'Updates' and the specific resource 'specifications user permission' distinguish it from sibling tools like get_the_specifications_user_permissions or update_specification_configurations. It also mentions the project scope, making the 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?

The description provides actionable usage guidance: it explains partial update semantics (send only changed fields), defaulting behavior for company_id/project_id via procore_set_config, and directs the agent to resolve user_id with the matching list tool first. While it does not explicitly name an alternative tool to use instead, the 'resolve with list tool first' instruction and the defaulting hint offer strong context for when and how to use this tool.

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