Skip to main content
Glama

Tradify MCP Server and API by Cotlet

Get customer

get_customer
Read-onlyIdempotent

Customer profile with sites, notes, latest jobs, quotes and invoices, and the balance due. Returns one customer: contact, email, phone, address, sites and notes, plus the latest 25 jobs, quotes and invoices with their totals (job_count, quote_count and invoice_count give the full numbers; list_jobs, list_quotes and list_invoices page through more). balance_due adds up what is due on the approved invoices returned.

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": {
      "customer_id": "<customer_id>"
    },
    "name": "get_customer"
  }
}

Input Schema

NameRequiredDescriptionDefault
customer_idYesCustomer ID from list_customers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses that only the latest 25 jobs, quotes and invoices are returned, that *_count fields carry the true totals, and that balance_due sums only the approved invoices in the returned page — a non-obvious caveat that would otherwise cause silent undercounting.

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?

Three dense sentences, front-loaded with what the tool returns, then the truncation semantics, then the balance_due caveat. Every sentence carries information, though the opening list of profile fields is somewhat redundant with the second sentence.

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?

There is no output schema, so the description carries the whole burden of describing the return shape, and it does: field groups, pagination limits, count fields and the balance_due derivation are all stated. An agent can call this correctly and interpret the response without further context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100% ('Customer ID from list_customers'), so the schema already carries the semantics. The description adds nothing about customer_id format or provenance; baseline 3 applies when the schema does all the work.

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 gives a concrete verb and resource: 'Returns one customer' with an enumerated payload (contact, email, phone, address, sites, notes, plus jobs/quotes/invoices and balance_due). It implicitly contrasts with list-style siblings by emphasizing a single customer, but never names list_customers or get_job/get_quote as distinct entry points, so differentiation relies on inference.

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 clearly frames the tool as a full-profile fetch and explicitly routes the agent to list_jobs, list_quotes and list_invoices when more than the latest 25 records are needed. What's missing is explicit when-not guidance (e.g., use list_customers when the ID is unknown, or get_invoice for a single invoice's full detail).

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.