Skip to main content
Glama
TylerIlunga

Procore MCP Server

Create Incident

create_incident

Create a new incident in a Procore project by providing project ID and optional details like title, status, assignees, and related records.

Instructions

Creates an Incident in a given project. Use this to create a new Incidents in Procore. Creates a new Incidents and returns the created object on success (HTTP 201). Required parameters: project_id. Procore API: Project Management > Incidents. Endpoint: POST /rest/v1.0/projects/{project_id}/incidents

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYesURL path parameter — unique identifier for the project.
run_configurable_validationsNoQuery string parameter — whether or not Configurable validations from the Incident/Injury Configurable Field Set should be run (default: false). See (https://developers.procore.com/reference/configurable-field-sets#list-pr...
descriptionNoJSON request body field — description of the Incident
event_dateNoJSON request body field — iso8601 datetime of Incident occurrence. If time is unknown, send in the date at 0:00 project time converted to UTC.
type_idNoJSON request body field — the ID of the Incident Type. Defaults to the company's General type if not provided. The type must be active.
custom_status_idNoJSON request body field — the ID of the Custom Status. Mutually exclusive with the status field — setting one sets the other. Not updatable if the Incident has a workflows instance.
assignee_idsNoJSON request body field — an array of Login Information IDs to assign to the Incident. Assignees gain visibility into the Incident and its related records. Not updatable if the Incident has a workflows instance.
distribution_member_idsNoJSON request body field — an Array of the IDs of the Distribution Members (Not updatable if an incident has a workflows instance)
privateNoJSON request body field — indicates whether an Incident is private
recordableNoJSON request body field — indicates whether an Incident is recordable
statusNoJSON request body field — status (Not updatable if an incident has a workflows instance)
time_unknownNoJSON request body field — indicates that the time of the Incident occurrence is unknown
titleNoJSON request body field — incident Title
contributing_behavior_idNoJSON request body field — the ID of a Contributing Behavior
contributing_condition_idNoJSON request body field — the ID of a Contributing Condition
hazard_idNoJSON request body field — unique identifier of the hazard
location_idNoJSON request body field — the ID of a Location
environmentalsNoJSON request body field — associated Environmentals to create
injuriesNoJSON request body field — associated Injuries to create
near_missesNoJSON request body field — associated Near Misses to create
property_damagesNoJSON request body field — associated Property Damages to create
witness_statements_attributesNoJSON request body field — associated Witness Statement to create
upload_uuidsNoJSON request body field — array of uploaded file UUIDs.
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 ...
drawing_revision_idsNoJSON request body field — drawing Revisions to attach to the response
file_version_idsNoJSON request body field — file Versions to attach to the response
form_idsNoJSON request body field — forms to attach to the response
image_idsNoJSON request body field — images to attach to the response
Behavior2/5

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

The description adds that it returns the created object with HTTP 201, but annotations already indicate readOnlyHint=false and idempotentHint=false. No additional disclosure of side effects, authentication needs, or potential duplicates beyond what annotations imply.

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?

Fairly concise with 4 sentences, but includes redundancy (e.g., 'Creates a new Incidents' repeated) and extraneous API info. Still front-loaded and efficient.

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

Completeness2/5

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

With 28 parameters, the description ignores optional fields like injuries, near misses, etc. It does not explain the return structure beyond 'the created object'. Lacks completeness for a complex creation tool.

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?

Schema coverage is 100%, so baseline is 3. The description mentions only the required parameter project_id, but the schema already documents all parameters fully. No extra semantic enrichment is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates an Incident in a given project, specifying the verb and resource. However, it does not differentiate from many sibling 'create_*' tools like create_injury or create_environmental, which would help an agent choose correctly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as update_incident or other create tools. The description merely repeats the purpose without providing context for selection.

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