Skip to main content
Glama
TylerIlunga

Procore MCP Server

Gets Documents Attached To Bid Package

gets_documents_attached_to_bid_package
Read-onlyIdempotent

Retrieve the list of all documents attached to a bid package, including full metadata for drawings and PDM attachments, with pagination and sorting options.

Instructions

Returns list of all documents attached to Bid Package, with meta information about all drawings and PDM (Project Document Management) attachments. Supports optional pagination and sorting for PDM attachments via query parameters. Use this when you already know which document you want and need its full field set. company_id defaults to the value set by procore_set_config when omitted, and bid_package_id must identify an existing parent record — resolve it with the matching list tool first. Returns a single JSON object describing the document. Read-only — it changes nothing in Procore. 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, bid_package_id. Procore API: Preconstruction > Bid Management. Endpoint: GET /rest/v1.0/companies/{company_id}/planroom/bid_packages/{bid_package_id}/documents

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pdm_pageNoQuery string parameter — page number for paginating PDM attachments
company_idYesURL path parameter — unique identifier for the company.
pdm_searchNoQuery string parameter — search term to filter PDM attachments by document_revision_id
pdm_sort_byNoQuery string parameter — field to sort PDM attachments by
pdm_per_pageNoQuery string parameter — number of PDM attachments per page
bid_package_idYesURL path parameter — unique identifier of the bid package
pdm_sort_orderNoQuery string parameter — sort order for PDM attachments
Behavior4/5

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

Beyond annotations (readOnlyHint, idempotentHint, etc.), the description discloses pagination/sorting support, company_id defaulting to procore_set_config, and specific failure modes with HTTP statuses (401, 403, 404). However, it contradicts itself about the return type: 'Returns list of all documents' vs. 'Returns a single JSON object describing the document,' creating ambiguity.

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 long but information-dense, front-loading the core purpose before covering usage, defaults, safety, and errors. It does include some redundancy and the contradictory return-type statement, but every sentence generally earns its place.

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 many aspects: purpose, usage, parameters, defaulting, and errors. However, the contradictory wording about the response (list vs single object) leaves a significant gap in understanding the actual return shape. No output schema exists to compensate, so this ambiguity is more impactful.

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% with parameter descriptions, so baseline is 3. The description adds value by explaining the default behavior of company_id (falls back to procore_set_config) and emphasizing that bid_package_id must be resolved from an existing parent. This goes beyond the schema definitions.

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 clearly states the action and resource: 'Returns list of all documents attached to Bid Package'. It also details what additional information is included (meta about drawings and PDM attachments). This differentiates it from sibling tools that handle bid packages or bids rather than their attached documents.

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?

Provides explicit usage guidance: 'Use this when you already know which document you want and need its full field set.' Also gives a prerequisite step: 'bid_package_id must identify an existing parent record — resolve it with the matching list tool first.' Lacks explicit exclusion of alternatives, but the context is clear enough for an agent to select it appropriately.

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