Skip to main content
Glama

Tradify MCP Server and API by Cotlet

Get report

get_report
Read-onlyIdempotent

Job profitability, job sheet, staff productivity or timesheet report for a period, as rows. Runs one report of Tradify's Reports page for the days from to to (both included, at most a year) and returns the rows of its CSV download, amounts as numbers. job_profitability gives three rows per job (Time, Materials, Total) with estimated cost from quotes, actual cost, invoiced, to invoice, gross profit and margin. job_sheet lists the jobs with site, staff, schedule, contacts, entered by and on. staff_productivity gives billable, non-billable and total hours (h:mm) per staff member. timesheets lists each time entry with job, customer, staff member, billing rate, notes, date and hours. date_basis picks jobs by entry or by schedule date. Stops at 1000 rows with truncated true.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "report": "<report>",
      "from": "<from>",
      "to": "<to>"
    },
    "name": "get_report"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesLast day of the period, up to a year after from.
fromYesFirst day of the period.
staffNoOnly this staff member, by full name.
reportYesjob_profitability (estimated and actual cost, invoiced, to invoice, gross profit and margin per job, split into time and materials), job_sheet (jobs with site, staff, schedule, contacts, labour and cost), staff_productivity (billable and non-billable hours per staff member) or timesheets (time logged per job and staff member).
date_basisNojob_profitability and job_sheet: jobs entered in the period (default) or scheduled in it.entered
customer_idNojob_profitability, job_sheet, timesheets: only this customer (list_customers).
include_inactive_jobsNojob_sheet: also complete and cancelled jobs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behaviour beyond the readOnly/idempotent annotations: results mirror a CSV download with amounts as numbers, staff_productivity hours rendered as h:mm, job_profitability returning exactly three rows per job, and a hard stop at 1000 rows signalled by truncated true. Those are the operational facts an agent needs to interpret partial results and avoid misreading totals.

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-loaded with purpose, then report-by-report semantics, then the truncation caveat. Dense but nearly all sentences carry new information; some overlap with the enum descriptions in the schema is the only waste.

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?

No output schema exists, and the description compensates fully by describing the row shape for each report type, numeric formatting, and the truncation signal. Combined with annotations and a fully documented schema, an agent has everything needed to call and interpret this 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 100%, so baseline is 3, but the description earns extra credit by explaining date_basis scoping ('picks jobs by entry or by schedule date') and the one-year ceiling on from/to. It does not clarify the staff parameter's interaction across report types, leaving a small gap.

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 a specific verb and resource ('Runs one report of Tradify's Reports page') and enumerates the four report outputs with what each contains, so an agent knows exactly which report flavour it is requesting. Distinguishes clearly from sibling list_timesheets-style tools by framing the output as CSV rows rather than entity records.

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 usage context: period must be within a year, both dates inclusive, one report per call, and date_basis selects jobs by entry vs schedule date. It does not, however, explicitly say when to prefer this over siblings such as list_timesheets or list_jobs, nor warn that filtering by customer/staff is only supported on some report types.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.