Skip to main content
Glama
TylerIlunga

Procore MCP Server

Create Action Plan

create_action_plan

Create a new action plan in a Procore project by supplying project ID, title, and plan type ID. Returns the created plan with its new ID.

Instructions

Creates an new action plan in the specified Procore project. Pass the record's fields as top-level arguments — they are nested under "plan" in the request payload for you. project_id defaults to the value set by procore_set_config when omitted. Creates the action plan and returns it with its new id (HTTP 201); calling it again creates another record. 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, title, plan_type_id. Procore API: Project Management > Action Plans. Endpoint: POST /rest/v1.0/projects/{project_id}/action_plans/plans

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesJSON request body field — title of the Action Plan
privateNoJSON request body field — privacy flag of the Action Plan
asset_idsNoJSON request body field — asset IDs to be set on the Action Plan
manager_idNoJSON request body field — party Person ID of the Action Plan Manager
project_idYesURL path parameter — unique identifier for the project.
descriptionNoJSON request body field — description of the Action Plan
location_idNoJSON request body field — location ID to be set on the Action Plan
plan_type_idYesJSON request body field — plan Type ID to be set on the Action Plan
plan_approvers_attributesNoJSON request body field — plan_approvers_attributes
plan_receivers_attributesNoJSON request body field — plan_receivers_attributes
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=false), the description discloses that each call creates another record (non-idempotent consequence), returns HTTP 201 with the new id, and describes common error payloads (401/403/404). It also reveals the request payload nesting behavior, adding surface-level context without contradicting annotations.

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 dense but well-structured: it starts with the one-sentence purpose, then covers parameter passing, default behavior, idempotency, errors, required params, and endpoint reference. Only minor redundancy (repeating required params already in schema) and the trailing API path add length, but no filler.

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?

For an 11-parameter create operation with no output schema, the description covers the essential context: creation, return value, error semantics, parameter defaults, and API endpoint. It could mention that plan_type_id must reference an existing plan type, but the 404 error hint partially covers that, so it is reasonably complete.

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?

With 100% schema coverage, the baseline is 3; the description adds value by explaining that fields must be passed as top-level arguments despite being nested under 'plan' in the payload, and by noting the default for project_id. It also reiterates the three required parameters, reinforcing schema guidance.

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 new action plan in the specified Procore project,' clearly identifying the verb (creates), resource (action plan), and scope (specified Procore project). It also names the endpoint and API area, distinguishing it from action-plan sub-resource tools like create_action_plan_section or list_action_plans.

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?

It states required parameters and explains how to pass fields ('top-level arguments... nested under plan'), plus the project_id default from procore_set_config. It does not explicitly mention alternatives (e.g., using create_an_action_plan_from_a_plan_template for template-based creation), but the guidance is otherwise clear and actionable.

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