Skip to main content
Glama
TylerIlunga

Procore MCP Server

Save Markups

save_markups

Saves new markups to a Procore project document. Uses configured company/project defaults when not provided, then returns Procore's response or an error with HTTP status.

Instructions

Saves new markups for a specific company, project, and document. company_id and project_id default to the values set by procore_set_config when omitted, and viewer_doc_id must identify an existing parent record — resolve it with the matching list tool first. Acts on the markup 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: company_id, project_id, viewer_doc_id, markups. Procore API (v2.0): Project Management > Document Markup. Endpoint: POST /rest/v2.0/companies/{company_id}/projects/{project_id}/viewer_documents/{viewer_doc_id}/markups

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
markupsYesJSON request body field — the markups for this Document Markup operation
company_idYesURL path parameter — unique identifier of the company
project_idYesURL path parameter — unique identifier of the project
viewer_doc_idYesURL path parameter — unique identifier of the viewer document
Behavior4/5

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

The description adds behavioral details beyond annotations, including failure responses with HTTP status codes (401, 403, 404) and defaulting behavior for company_id/project_id. No contradiction with annotations; readOnlyHint:false is consistent with creating records.

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?

The description is dense but well-structured, opening with the core purpose and efficiently covering defaults, prerequisites, response behavior, common errors, required parameters, and endpoint. Every sentence contributes useful information without redundancy.

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

Completeness3/5

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

The description covers purpose, prerequisites, defaults, error handling, and endpoint, but leaves a critical gap: the markups array items have no defined structure in either the schema or description. Since no output schema exists, the description also only vaguely mentions 'Procore's response.' These omissions make it incomplete for a create operation with a complex payload.

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 coverage is 100%, so baseline is 3. The description adds meaning by explaining that company_id/project_id default to values from procore_set_config and that viewer_doc_id must be an existing parent record. However, the internal structure of the markups array is not elaborated beyond the schema's generic items object.

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 opens with 'Saves new markups for a specific company, project, and document,' clearly stating the verb and resource. It distinguishes from modification/deletion tools via the endpoint and 'new', but does not explicitly differentiate from the sibling 'add_a_new_markup'.

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 usage context by explaining that viewer_doc_id must reference an existing parent record and instructs to resolve it with the matching list tool first, and notes default values from procore_set_config. However, it does not explicitly state when to prefer this tool over alternatives like modify_markups.

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