Skip to main content
Glama
TylerIlunga

Procore MCP Server

Create Observation Item

create_observation_item

Create an observation item on a Procore project using the project ID and observation object. Optionally set assignee, due date, or link to a checklist item, coordination issue, incident action, or BIM model.

Instructions

Creates an Observation Item on the specified Project. observation[name] and observation[type_id] are required; number, personal and due_date default from the Project's Observations configuration when omitted. Assignees must be users the requesting user is permitted to assign — check GET /rest/v1.0/observations/assignees first, or the request is rejected with a 403. Supply either assignee_id or assignee_ids, not both. An Observation can be linked to an originating record by supplying exactly one of checklist_item_id, coordination_issue_id, incident_action_id or bim_model_id. Acts on the observation item and returns Procore's response for the operation. 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, observation. Procore API: Project Management > Observations. Endpoint: POST /rest/v1.0/observations/items

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYesJSON request body field — the ID of the Project the Observation Item belongs to
attachmentsNoJSON request body field — [DEPRECATED] An array of the Attachments of the Observation Item. Please use upload_ids instead. To upload attachments you must upload the entire payload as `multipart/form-data` content-type and ...
observationYesJSON request body field — item object
inspection_item_failedNoJSON request body field — 1 denotes that this Observation Item is being created from a failed Checklist Item. This will update the status of the Checklist Item to 'no' (fail). `observation[checklist_item_id]` must be provid...
run_configurable_validationsNoQuery string parameter — whether or not Configurable validations from the Observation Items Category Configurable Field Set should be run (default: false). See (https://developers.procore.com/reference/observations#list-ob...
Behavior5/5

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

Annotations are minimal (readOnly=false, destructive=false), and the description adds substantial behavioral context: it discloses permission requirements (403 for unauthorized assignees), expected error statuses (401/403/404), defaulting behavior from project configuration, and field mutual exclusivity. This greatly exceeds the structured metadata without contradicting it.

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 a single dense paragraph that front-loads the primary purpose and packs in essential constraints, prerequisites, and error handling. While most sentences add value, phrases like 'Acts on the observation item and returns Procore's response' are somewhat vague and the 'Required parameters' line duplicates schema information, making it slightly less concise than it could be.

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?

This is a complex create tool with a nested object, conditional defaults, permission checks, and multiple linking options. The description covers required inputs, defaults, authorization, error codes, and endpoint context. It lacks an explicit output structure and some nested object details, but given the schema covers optional top-level parameters, the description is largely adequate for an agent to select and invoke it 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 descriptions cover all top-level parameters, but the `observation` object is described only as 'item object' with additionalProperties, leaving nested fields unexplained. The description compensates by specifying required nested fields (`name`, `type_id`), defaults, assignee_id exclusivity, and the four mutually exclusive link IDs, adding semantic value 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 opens with 'Creates an Observation Item on the specified Project', clearly stating the verb, resource, and scope. It also details required parameters and the API endpoint, distinguishing it from sibling tools like update_observation_item and list_observation_items.

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 implies use when creating a new observation item, and provides explicit preconditions such as checking assignees via GET /rest/v1.0/observations/assignees to avoid a 403. It also gives usage constraints (e.g., supply either assignee_id or assignee_ids, not both) and linking rules, but does not explicitly name alternative tools or when not to use it.

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