Tradify by Cotlet
mcp remote · streamable-http · v1.0.2 · source: crawl
https://cotlet.dev/mcp/v1/tradify
https://github.com/cotletdev/tradify-api-mcp-server
Jobs, quotes, invoices and schedule in Tradify.
Works
100
Verified Oct 31, 2026 · p50 441 ms · p95 461 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'cotlet-tradify' |
| tools_listed | 15 | pass | 39 tools |
| schema_complete | 15 | pass | 38 of 39 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 441 ms |
| latency_p95 | 5 | pass | p95 461 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (39)
| Name | Description | Schema |
|---|---|---|
cotlet_whoami | The Cotlet account this connection acts as: email, workspace, access status, the API key or OAuth client in use with its scope, the apps the workspace may call and its credit balance. Free. Needs the | typed |
cotlet_apps | The apps of the user's workspace and whether each works now: access granted or requested, the app account in the user's Cloud Browser (connected, signed out, signed in but not connected), and the one | typed |
cotlet_request_apps | Requests access to apps for the user's workspace, as Request access in the console: a live app is granted at once, any other goes to the Cotlet team, who answer within 72 hours. Takes app slugs as lis | typed |
cotlet_get_call | Status of an earlier Cotlet call, by its call_id: pending (waits for the owner's approval in the Cotlet console), approved, running, success, rejected, expired, blocked or failed. For a call that answ | typed |
cotlet_upload_file | Returns a one-time upload_url and a file_id for a local file (an image for a post, an attachment). The file is sent to upload_url with an HTTP PUT; an argument that takes a file accepts {"file_id": ". | typed |
cotlet_report_issue | Sends a report straight to the Cotlet team: a tool that failed or returned wrong data, an error you could not get past, or a tool, field or app the task needed and Cotlet lacks. The report carries the | incomplete |
cotlet_browser_open | Wakes the user's Tradify Cloud Browser, a real Chrome hosted on Cotlet and signed in to Tradify as the user. Use it for what the Tradify tools do not cover. Opens `url` when given and returns the page | typed |
cotlet_browser_navigate | Opens a public http or https address in the user's Tradify Cloud Browser and returns the URL and title it ended on. Only Tradify pages open. Every started minute of the session costs credits; it ends | typed |
cotlet_browser_read | Returns the current page of the user's Tradify Cloud Browser: its readable text, up to 20,000 characters, and a numbered list of its links, buttons and fields. Field values, cookies and storage are ne | typed |
cotlet_browser_screenshot | Returns a JPEG image of the visible part of the current page in the user's Tradify Cloud Browser, with its URL and title: boards, canvases and layouts that the page text does not show. Every started m | typed |
cotlet_browser_scroll | Scrolls the current page in the user's Tradify Cloud Browser with the mouse wheel, as a person does: down or up by `screens` viewport heights (default 0.8), to the top or the bottom, or until element | typed |
cotlet_browser_click | Clicks a link, button or other element of the current page in the user's Tradify Cloud Browser, by its number in the page's element list, and returns the URL and title after the click. It acts as the | typed |
cotlet_browser_type | Types text into a field of the current page in the user's Tradify Cloud Browser, by the field's number in the page's element list, and with `submit` presses Enter. Returns the URL and title after it. | typed |
cotlet_browser_select | Chooses an option of a drop-down list on the current page in the user's Tradify Cloud Browser, by the list's number in the element list and the option's label as read lists it (or its value). Returns | typed |
cotlet_browser_press | Presses one key on the current page in the user's Tradify Cloud Browser, on the element that has focus: Tab to the next field, Enter to send, Escape to close a dialog or pop-up, arrows to move through | typed |
cotlet_browser_upload | Puts files into a file field of the current page in the user's Tradify Cloud Browser, or into the file picker that an upload button opens, by its number in the element list. A file is given as {"url": | typed |
cotlet_browser_close | Ends the session in the user's Tradify Cloud Browser: the browser keeps its cookies, goes to sleep and the per-minute charge stops. Returns the session's minutes and credits. | typed |
get_customer | 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 in | typed |
get_invoice | Full invoice: lines, tax, totals, every payment with date and method, amount due, jobs and quote. Returns one invoice: status (draft, approved, overdue, paid, cancelled), customer, its jobs, the quote | typed |
get_job | Full job: description, site, tasks, notes, appointments, costs, linked quotes and invoices. Returns one job: customer, contact, site address, status, reference and description, the staff on it, its ta | typed |
get_quote | Full quote: lines with price and cost, tax, totals, gross profit, dates and invoices made from it. Returns one quote: status (draft, awaiting_acceptance, accepted, declined, cancelled, expired), custo | typed |
get_report | 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 return | typed |
list_appointments | Scheduler appointments in a date range, with staff, job, times and notes. Returns the Scheduler's job appointments that fall between from and to (both days included, at most 31 days), each with its jo | typed |
list_customers | Customer profiles with contact details and sites. Lists customers by name with contact, email (may be a comma list), phone, mobile, physical address and sites. search matches name, contact, email or p | typed |
list_invoices | Invoices with customer, job, due date, total, amount paid and amount due. Lists invoices, newest first, with customer, jobs, invoice and due dates, total, paid and due (total minus payments and credit | typed |
list_jobs | Jobs with number, customer, site address, status and assigned staff. Lists jobs, newest number first. By default only active jobs (every status marked active, built-in or custom); status all, a built- | typed |
list_quotes | Quotes with customer, total, quote date, expiry date and status. Lists quotes, newest quote date first, with customer, linked job, total (with tax), quote, expiry and accepted dates and status. By def | typed |
list_timesheets | Timesheet entries in a date range: staff, job, customer, billing rate, hours, notes, invoiced. Returns the time entries between from and to (both days included, at most 62 days), oldest first, each wi | typed |
add_job_note | Add a text note to a job's Notes tab. Adds a plain-text note to the job, signed with the signed-in user's name and today's date, as the Notes tab's New Note does. No staff member is notified and it re | typed |
create_customer | New customer profile, optionally with contact details and a physical address. Creates an active customer with the company's default price group, document theme and tax settings, as the New Customer fo | typed |
create_invoice_from_quote | Draft invoice from an approved or accepted quote, for all of it or part of it. Creates a draft invoice from a quote, as Create Invoice > From Quote does, linked to the quote and its job. mode entire c | typed |
create_job | New job for a customer. It starts as Unassigned. Creates a job for a customer, as New Job does, and Tradify gives it the next job number. It starts Unassigned; schedule_appointment books staff on it. | typed |
create_quote | Draft quote with line items. Nothing is sent until you call send_quote. Creates a draft quote for a customer, as New Quote does. Each line is misc (description, quantity, unit_price) or time (hours at | typed |
log_time | Add a timesheet entry for a staff member, optionally on a job, with billing rate and notes. Adds one entry to Timesheets from start to end (same day, at most 24 hours) for a staff member (default the | typed |
record_payment | Record a payment received against an invoice and reduce the amount due. Adds a payment you already received to an approved invoice, as Add Payment does: amount, date, method (by name, from Settings > | typed |
schedule_appointment | Book a job appointment on the Scheduler for staff, optionally emailing the customer a confirmation. Books the job on the Scheduler from start to end for each staff member named (by full name; default | typed |
send_invoice | Approve the invoice and email it to the customer, with payment reminders if enabled. Approves a draft invoice (Tradify gives it its number) and emails it from Tradify with the link to view and pay it; | typed |
send_quote | Approve the quote and email it to the customer with a link to accept or decline online. Approves a draft quote (it becomes awaiting acceptance) and emails it from Tradify with the link where the custo | typed |
update_job_status | Set a status on a job, built-in or one of your custom statuses. Sets a job's status, as Change Status on the Jobs list does: to_invoice, on_hold, complete, cancelled, the others of the built-in list, | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/dev-cotlet-tradify-streamable-http-2)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.