Skip to main content
Glama
cotletdev

Contractor Foreman MCP Server

by cotletdev

List change orders

list_change_orders
Read-onlyIdempotent

Retrieve change orders and change order requests, newest first, filtered by project, status, kind, or search terms, with optional archived records.

Instructions

Change orders and change order requests, newest first, with status, project and total.

The Change Orders list: number, title, kind (change_order or request), status, project, customer, date and total in dollars. Filter by project, kind, status or a search over title and number. Archived ones only with include_archived. Change orders have the statuses open, pending_approval, on_hold, approved, denied, billed. Requests have draft, on_hold, approved, denied, closed. A status that does not fit the kind stops the call. get_change_order gives the line items.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNorequest = change order requests (COR) not yet turned into a change order.all
limitNo
cursorNonext_cursor from the previous call.
searchNoMatches the title or number.
statusNoWith kind all or change_order, a change order status. Request statuses need kind request.
project_idNoOnly this project's (list_projects).
include_archivedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description adds value with new behavior: newest-first ordering, archived records hidden by default, and the failure mode where a status incompatible with the kind aborts the call. It does not cover pagination limits, which the schema handles.

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?

Front-loads the resource and ordering, then layers filters, statuses, and the sibling pointer. The opening clause about change orders/requests slightly duplicates the following field list, but overall it is dense and purposeful.

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?

With no output schema, the description itself enumerates the returned fields (number, title, kind, status, project, customer, date, total), states the sort order, and documents both filter semantics and the error condition. An agent has what it needs to call and interpret this list tool.

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 71%, and the description fills meaningful gaps: it enumerates the valid statuses for each kind and explains the kind/status interaction (a mismatch stops the call), plus that search matches title or number. Only limit/cursor behavior is left entirely to the schema.

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?

States the resource (change orders plus change order requests), the sort order (newest first), and the fields returned (status, project, total). It also separates itself from get_change_order by noting that tool carries the line items, so an agent can tell the two apart without opening a schema.

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?

Gives concrete selection context: filter by project/kind/status/search, archived items require include_archived, and line items send the agent to get_change_order. It does not state explicit exclusions beyond that, but the routing information is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools