Skip to main content
Glama
TylerIlunga

Procore MCP Server

Create Custom Field Metadata

create_custom_field_metadata

Create custom field metadata in Procore by specifying company, field definition, host, source, and position. This sets up configurable custom fields for company objects.

Instructions

Creates a new custom field metadata for the specified Procore company. Pass the record's fields as top-level arguments — they are nested under "custom_field_metadatum" in the request payload for you. company_id defaults to the value set by procore_set_config when omitted. Creates the custom field metadata 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: company_id, custom_field_definition_id, host_type, source_type, source_id, position. Procore API (v2.0): Company Admin > Custom - Configurable Tools. Endpoint: POST /rest/v2.0/companies/{company_id}/custom_field_metadata

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowNoJSON request body field — row the Field is position on the Form
viewNoQuery string parameter — the extended view provides what is shown below. The default view returns the same as the extended view but excludes the attributes company_id, host_type, source_type, source_id, label, data_type, v...
columnNoJSON request body field — column the Field is position on the Form
visibleNoJSON request body field — whether or not the Custom Field Metadatum is visible
positionYesJSON request body field — the position for this Custom - Configurable Tools operation
requiredNoJSON request body field — whether or not the Custom Field Metadatum is required
host_typeYesJSON request body field — procore Entity
source_idYesJSON request body field — configurable FieldSet ID
company_idYesURL path parameter — unique identifier for the company.
source_typeYesJSON request body field — configurable FieldSet Class
column_widthNoJSON request body field — how many columns the field spans on the Form
custom_fields_section_idNoJSON request body field — custom Fields Section ID
custom_field_definition_idYesJSON request body field — custom Field Definition ID
Behavior5/5

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

The description transparently discloses non-idempotent create behavior (HTTP 201, new record each time), error payload structure with common status codes (401/403/404), and the automatic nesting of fields under 'custom_field_metadatum'. These go beyond the annotations (which only indicate non-readonly, non-idempotent) and give the agent operational expectations.

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 moderately long but every sentence carries operational value: purpose, payload handling, defaulting, idempotency, error handling, required params, API location, and endpoint. It's front-loaded with the purpose, then details. No filler, but could be slightly tighter.

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?

The tool is a mutation with no output schema, so the description must explain return values and errors, which it does (HTTP 201 and error payload statuses). It also covers the config default, required fields, and endpoint/properties context, making it adequate for an agent to invoke it correctly. The contradiction about company_id is a minor completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/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 adds useful info about top-level argument passing and company_id defaulting from config. However, it introduces a contradiction: it lists company_id as required while also saying it defaults when omitted. This could mislead the agent into omitting a required field, undermining the added value and warranting a lower score.

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 a specific verb ('Creates') and resource ('custom field metadata') scoped to a Procore company, and clarifies non-idempotency ('calling it again creates another record'), distinguishing it from update/list operations. The endpoint and API section reinforce the action.

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 provides clear context: it's a create operation for custom field metadata, notes company_id default behavior via procore_set_config, lists required parameters, and identifies the API v2.0 Company Admin section. However, it doesn't explicitly name alternative tools for listing/updating, so the agent must infer when to use this based on the create semantics.

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