Skip to main content
Glama
TylerIlunga

Procore MCP Server

List Budget Details

list_budget_details

Retrieve budget detail rows for a project budget view. Apply filters to narrow results by cost code, vendor, or type.

Instructions

Return a list of all rows from the Budget Detail Report for a Project and Budget View. Note: In addition to all the fields outlined in the response example, there will be an additional key for each visible, non-formula, non-qualitative column (Ex: Original Budget Amount, Budget Modifications, Forecast to Complete, and Source Columns). The integer keys returned represent the IDs of the budget columns which are returned by the Budget Detail Columns API. As well, valid filter values can be found through the Budget Detail Filter Options API. Pass the record's fields as top-level arguments — they are nested under "filters" in the request payload for you. budget_view_id must identify an existing parent record — resolve it with the matching list tool first. Acts on the budget detail 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: budget_view_id, project_id. Procore API: Construction Financials > Budget. Endpoint: POST /rest/v1.0/budget_views/{budget_view_id}/budget_details

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
billerNoJSON request body field — sub Job Filter, can pass Sub Job or Project
vendorNoJSON request body field — vendor Filter
cost_codeNoJSON request body field — cost Code Filter
cost_typeNoJSON request body field — cost Type Filter
project_idYesQuery string parameter — unique identifier for the project.
detail_typeNoJSON request body field — detail Type Filter
budget_view_idYesURL path parameter — unique identifier of the budget view
root_cost_codeNoJSON request body field — division Filter
Behavior1/5

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

The description discloses error behavior (401, 403, 404) and response format (additional keys for visible columns), which is useful. However, it contradicts the annotation readOnlyHint:false by describing a purely read-only operation returning a list, whereas the annotation indicates the tool may have side effects. This is a significant inconsistency.

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 well-structured, opening with the main purpose, then providing notes on response structure, parameter handling, prerequisites, and error behavior. It is dense but not rambling, though some less critical details (like 'Procore API: Construction Financials > Budget') add length without essential value.

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?

Given the lack of an output schema, the description appropriately covers the return format (including dynamic column keys), error payloads, and required parameters. It also explains the context of budget_view_id and filter values. A minor gap is the lack of mention of pagination, but 'all rows' suggests the tool returns the complete set, so this is not a major omission.

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 the baseline is 3. The description adds value by explaining that filter parameters are passed as top-level arguments but nested under 'filters' in the request payload, and by noting the budget_view_id prerequisite. This goes beyond the raw schema, clarifying the parameter mapping and required context.

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 tool's function: 'Return a list of all rows from the Budget Detail Report for a Project and Budget View.' This uses a specific verb and resource, effectively distinguishing it from other budget-related list tools like list_budget_view_summary_rows or list_budget_view_snapshot_detail_rows.

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 on prerequisites, stating that budget_view_id must identify an existing parent record and should be resolved with a list tool first, and that valid filter values come from the Budget Detail Filter Options API. However, it does not explicitly state when not to use this tool or mention alternative tools for different budget views.

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