Tradify MCP Server and API by Cotlet
Server Details
Tradify MCP server for ChatGPT, Claude and any AI agent: create job, create quote, send invoice, schedule staff and list unpaid invoices in your own Tradify account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Tradify yourself; Cotlet does not store your password and you need no Tradify API key. About the official Tradify API: Tradify publishes no API, developer docs or webhooks (checked 11 Oct 2026). It connects to other tools through built-in integrations: QuickBooks, Xero, Sage, Stripe and Google Calendar. Setup and FAQ: https://cotlet.dev/integrations/tradify-api-mcp-server
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- cotletdev/tradify-api-mcp-server
- GitHub Stars
- 6
- Server Listing
- Tradify MCP server
- ChatGPT
- โ
- Claude
- โ
TDQS
Scored across 53 tools
Five tools are near-duplicates of native domain tools with the same intent: tradify_create_job vs create_job, tradify_create_quote vs create_quote, tradify_list_unpaid_invoices vs list_invoices, tradify_schedule_staff vs schedule_appointment, and tradify_send_invoice vs send_invoice. An agent must read long descriptions to discover that the tradify_* ones only return step-by-step instructions instead of acting, which is an easy misselection. The cotlet_browser_* tools themselves are well differentiated from each other, but cotlet_app_guide / cotlet_apps / cotlet_request_apps also overlap around app availability.
Each family is internally consistent verb_noun (cotlet_browser_click, list_jobs, create_quote), but the server mixes four conventions: unprefixed domain verbs (create_job), cotlet_browser_* prefixed tools, cotlet_* platform tools, and a redundant tradify_* prefix used for the same actions as unprefixed tools. Readable, but the two parallel naming schemes for the same domain actions is confusing.
At 53 tools the surface is heavy for a single integration, and roughly 26 of them are generic browser primitives plus 5 redundant tradify_* guide duplicates. Removing the duplicate guide tools would leave a coherent core, but as shipped it exceeds a reasonable scope and increases selection load.
Core Tradify entities have create/get/list coverage (customers, jobs, quotes, invoices, timesheets, appointments, reports) plus sending, payments and job status, which is good breadth. However there is no update or delete for quotes/invoices/customers, no way to edit a draft's line items, and notably no staff/staff-list or price-list lookup even though schedule_appointment and log_time take staff by full name and lines take item_code.
Publisher details
- Operator
- Cotlet.dev
- Operator website
- https://cotlet.dev
- Vendor relationship
- Independent
- Trust center
- https://cotlet.dev/security
- Restrictions
- Needs a Cotlet account (free trial, then credits). The user signs in to Tradify once in their own Cotlet Cloud Browser; no Tradify API key or paid Tradify plan is needed.
Available Tools
53 toolsadd_job_noteAdd job noteADestructiveInspect
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 reaches no one. get_job lists the notes.
Inputs: note (required), job_id (required).
cotlet_app_guideCotlet: how to work in an appARead-onlyIdempotentInspect
How to work in an app by clicking in the user's Cloud Browser with Cotlet's browser tools: which browser to use for this workspace and the sign-in link, the method step by step, the app's screens, menus and actions, notes, and the app's dedicated tools when Cotlet has them. Call it before the first browser step in an app. Works for any web app; one outside Cotlet's catalog gets the general method. Free, no browser session. For Tradify it covers these actions: Create job, Create quote, Send invoice, Schedule staff, List unpaid invoices.
Inputs: app, task.
cotlet_appsCotlet: apps I can useBRead-onlyInspect
The apps of the user's workspace and whether each works now: the app account in the user's Cloud Browser (connected, signed out, signed in but not connected), and the one step the user has to take, with the console link. Free. Needs the user's Cotlet API key or sign-in.
Inputs: app.
cotlet_browser_clickClick on the pageADestructiveInspect
Clicks element element, or point x, y of the screenshot; double double-clicks, button: right right-clicks. Answers the page after it: the elements and text in view, with the same numbers. Says when nothing changed. A link that would open a new tab opens in this one. Buttons that pay or buy, and sign-in and account pages, are refused.
Inputs: x, y, button, dialog, +3 more.
cotlet_browser_closeClose the browserAIdempotentInspect
Ends the browser session when the task is done: the browser keeps its cookies and sleeps, and the per-minute charge stops. Answers the session's minutes and credits.
Inputs: no named parameters.
cotlet_browser_downloadDownload a fileADestructiveInspect
Gets the file that clicking element (a download link or button) or opening url starts, also an image or PDF it only opens: answers its name, type, size and a link valid 15 minutes; CSV, JSON and other text files also as text.
Inputs: url, element.
cotlet_browser_dragDrag on the pageADestructiveInspect
Drags from one element or point to another: a card between columns, a piece on a board, a slider's handle. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: to (required), from (required), dialog, dialog_text.
cotlet_browser_evaluateRun a script on the pageADestructiveInspect
Runs a JavaScript function body on the page and answers what it returns, as JSON. Use it to extract data the page holds (a table, a list, attributes); act with the other tools. It cannot send requests, click, submit, or read cookies or storage; a filled field's value reads [hidden by Cotlet]. Example: return [...document.querySelectorAll('h2')].map(h => h.innerText)
Inputs: script (required).
cotlet_browser_fill_formFill in a formADestructiveInspect
Fills several fields in one step: text fields take text, drop-downs an option's label, checkboxes, radios and switches true or false. Stops at the first field that fails and names those filled. Does not send the form: click its button after. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: fields (required), dialog, dialog_text.
cotlet_browser_findFind on the pageARead-onlyIdempotentInspect
Finds text on the whole current page, frames included: the elements whose label holds it, with their numbers, and each line of text that holds it. Use it instead of reading or scrolling a long page for one thing.
Inputs: text (required), kind.
cotlet_browser_hoverPoint at the pageARead-onlyIdempotentInspect
Rests the pointer on an element or a point, to open a hover menu, a tooltip or a preview. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: x, y, element.
cotlet_browser_openOpen the browserARead-onlyInspect
Starts the user's Tradify Cloud Browser (a real Chrome on Cotlet, signed in to Tradify as the user; use it for what the Tradify tools do not cover) and opens url. Call it first. Only Tradify pages open. Answers the page after it: the elements and text in view, with the same numbers. In Tradify it serves these actions: Create job, Create quote, Send invoice, Schedule staff, List unpaid invoices.
Inputs: url.
cotlet_browser_pressPress a keyADestructiveInspect
Presses a key on the focused element: Enter to send, Tab to the next field, Escape to close a pop-up, arrows in a list or slider, or one character (a site's shortcut). Answers the page after it: the elements and text in view, with the same numbers.
Inputs: key (required), dialog, repeat, dialog_text.
cotlet_browser_readRead the pageARead-onlyIdempotentInspect
The whole current page: its text (up to 20,000 characters) and a numbered list of its links, buttons, fields and other controls, open dialogs first. Use it on a new page or when a step's answer is not enough; element reads only inside one element (a dialog, a form, a list). Never returns field values, cookies or storage.
Inputs: element.
cotlet_browser_screenshotSee the pageARead-onlyIdempotentInspect
A JPEG of the visible part of the page. Use it for boards, canvases, maps, charts and layout that the text does not show, then click or drag by x, y of the image.
Inputs: no named parameters.
cotlet_browser_scrollScroll the pageARead-onlyIdempotentInspect
Scrolls with the mouse wheel: down or up by screens, to top or bottom, until element is in view, or inside a panel or list (inside). Content that loads on scroll appears. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: inside, element, screens, direction.
cotlet_browser_selectChoose from a listADestructiveInspect
Chooses option (its label as listed, or its value) in drop-down element. For a home-made drop-down, click it, then click the option. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: option (required), element (required), dialog, dialog_text.
cotlet_browser_typeType on the pageADestructiveInspect
Types text into field element, replacing what it held; submit presses Enter after it. For several fields use fill_form. Without element the text goes where the focus is, as a person types after clicking: for spreadsheet cells and editors that read does not number (Google Sheets, Docs), click the place first; there a tab in text presses Tab and a line break Enter, so one call fills a table. Answers the page after it: the elements and text in view, with the same numbers. Password, card and one-time code fields are refused: the user types them.
Inputs: text (required), dialog, slowly, submit, +2 more.
cotlet_browser_uploadUpload a fileADestructiveInspect
Puts files into file field or upload button element: each file is {"url": "https://..."} or {"file_id": "..."} of a file uploaded to Cotlet; up to 10 files, 20 MB each. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: files (required), element (required).
cotlet_browser_waitWait for the pageARead-onlyIdempotentInspect
Waits until text shows on the page (at most seconds, default 5, up to 20), or just seconds: for results that load slowly. Says whether the text appeared. Answers the page after it: the elements and text in view, with the same numbers.
Inputs: text, seconds.
cotlet_get_callCotlet: check a callARead-onlyInspect
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 answered with status pending or running.
Inputs: call_id (required).
cotlet_report_issueCotlet: report a bug or a missing featureAInspect
Sends a report to the Cotlet team: a tool that failed or returned wrong data, an error you could not get past, or a step the browser could not do, with the page, the step and what you saw. A missing dedicated tool is not a problem to report: do the task in the browser. A feature the user asks for goes as feature_request. A report promises nothing: tell the user it was sent, never that something will be built or fixed, or when. The report carries the error text and call_id when there is one, never passwords or tokens. Needs the user's Cotlet API key or sign-in.
Inputs: kind (required), title (required), description (required), app, +3 more.
cotlet_request_appsCotlet: request access to appsAInspect
Requests access to apps for the user's workspace, as Request access in the console: every app is granted at once. Not needed to work in an app: the user's AI works in any web app in their Web browser with cotlet_app_guide. An app with dedicated tools gets them after the user signs in to it in their Cloud Browser. Access says nothing about whether a task works there: check that in the browser. Takes app slugs as listed at https://cotlet.dev/api/v1/apps. Free. Needs the user's Cotlet API key or sign-in.
Inputs: apps (required), use_case.
cotlet_upload_fileCotlet: upload a file for a toolAInspect
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": "..."}. Up to 25 MB, the URL works once. Free. Needs the user's Cotlet API key or sign-in.
Inputs: name, content_type.
cotlet_whoamiCotlet: who am IARead-onlyInspect
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 user's Cotlet API key or sign-in.
Inputs: no named parameters.
create_customerCreate customerBDestructiveInspect
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 form does. email may hold several addresses separated by commas; quotes and invoices go there. It reaches no one and stays inside Tradify.
Inputs: name (required), city, email, phone, +5 more.
create_invoiceCreate invoiceADestructiveInspect
Draft invoice with its own line items, on a job or a customer. Nothing is sent until send_invoice. Creates a draft miscellaneous invoice, as New Invoice > Miscellaneous does, for a customer and optionally one of their jobs (job_id); no quote needed (for that, create_invoice_from_quote). Each line is misc (description, quantity, unit_price), time (hours at a billing rate) or price_list (item_code of a price list item); time and price list lines take the customer's price group price unless unit_price is given. Tax uses the default rate (a price list item's own rate), or tax_rate by name; tax_inclusive says whether prices include tax (default exclusive, or the job's setting). Reference and description default to the job's. theme picks a theme by name; terms sets the invoice terms (default the theme's). The due date follows the payment terms unless due_date is given. Kits are not supported. The invoice stays a draft until send_invoice.
Inputs: line_items (required), customer_id (required), terms, theme, +6 more.
create_invoice_from_quoteCreate invoice from quoteADestructiveInspect
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 copies every line; line_items copies the lines at the positions in lines; percentage invoices amount percent of the quote total; fixed_amount invoices amount (with tax); remaining invoices what the quote's earlier invoices did not. A part is one line at the quote's tax rate. Due date follows the customer's or your payment terms. The invoice stays a draft until send_invoice. Needs a plan with progress invoicing (Pro) for the part modes.
Inputs: mode (required), quote_id (required), lines, amount.
create_jobCreate jobBDestructiveInspect
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. Contact, phone and site address default to the customer's. It reaches no one and stays inside Tradify.
Inputs: customer_id (required), description (required), contact, reference, +2 more.
create_quoteCreate quoteADestructiveInspect
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), time (hours at a billing rate) or price_list (item_code of a price list item); time and price list lines take the customer's price group price unless unit_price is given. Tax uses the default rate (a price list item's own rate), or tax_rate by name; amounts, tax and totals are worked out as Tradify does. job_id links it to a job of the same customer. theme picks a theme by name (default the customer's); terms sets the quote terms (default the theme's). Expiry defaults to your expiry days setting. Kits are not supported. The quote stays a draft until send_quote.
Inputs: line_items (required), customer_id (required), terms, theme, +5 more.
get_customerGet customerARead-onlyIdempotentInspect
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.
Inputs: customer_id (required).
get_invoiceGet invoiceARead-onlyIdempotentInspect
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 it came from and how (entire_quote, quote_line_items, percentage, fixed, remaining), reference, description, invoice and due dates, whether it was sent, its lines, subtotal, tax, total, paid, credited and due, and each payment with date, amount, method and reference.
Inputs: invoice_id (required).
get_jobGet jobARead-onlyIdempotentInspect
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 tasks and notes, the Scheduler appointments (times with the company's UTC offset), the costs logged on it (products and misc costs), the time logged on it (timesheets) and the quotes and invoices linked to it. Read it before changing a job.
Inputs: job_id (required).
get_quoteGet quoteARead-onlyIdempotentInspect
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), customer, job, reference, description, quote, expiry and acceptance dates, its lines (item, time, misc or kit, with quantity, unit price, unit cost, tax rate and amount), subtotal, tax, total, cost and gross profit, and the invoices made from it so far.
Inputs: quote_id (required).
get_reportGet reportARead-onlyIdempotentInspect
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.
Inputs: to (required), from (required), report (required), staff, +3 more.
list_appointmentsList appointmentsARead-onlyIdempotentInspect
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 job, customer, staff member, start and end (ISO 8601 with the company's UTC offset), notes and status (accepted, unconfirmed, declined, cancelled). staff keeps only those people, by full name.
Inputs: to (required), from (required), staff.
list_customersList customersARead-onlyIdempotentInspect
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 phone, so use it to find the customer_id before creating a job or quote. archived lists archived customers instead. Pass next_cursor back as cursor.
Inputs: limit, cursor, search, archived.
list_invoicesList invoicesARead-onlyIdempotentInspect
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 credits). status approved (default) is every approved invoice not fully paid; overdue is the ones past their due date; paid, draft, cancelled and all as named. customer_id lists that customer's invoices, and status then filters the page you get. Pass next_cursor back as cursor.
Inputs: limit, cursor, search, status, +1 more.
list_jobsList jobsARead-onlyIdempotentInspect
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-in status or the name of a custom status narrows it. customer_id lists that customer's jobs, and status then filters the page you get. Pass next_cursor back as cursor.
Inputs: limit, cursor, search, status, +1 more.
list_quotesList quotesARead-onlyIdempotentInspect
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 default the quotes awaiting acceptance; expired is the ones awaiting acceptance past their expiry date. since keeps quotes dated on or after that day, so use status accepted with since to find what was won in a period. Pass next_cursor back as cursor.
Inputs: limit, since, cursor, search, +1 more.
list_timesheetsList timesheetsARead-onlyIdempotentInspect
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 with staff member, job and customer (none for time off a job), billing rate and whether it is billable, start and end (ISO 8601 with the company's UTC offset), hours, notes and whether it is on an invoice. staff and job_id narrow it. total_hours sums the entries returned.
Inputs: to (required), from (required), staff, job_id.
log_timeLog timeADestructiveInspect
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 signed-in user), on a job or on none, at a billing rate (default the staff member's own) with the staff member's cost rate, as the New Timesheet Entry dialog does. Time on a job shows in its costs, the job profitability report and can be invoiced. It reaches no one.
Inputs: end (required), start (required), notes, staff, +2 more.
record_paymentRecord paymentADestructiveInspect
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 > Payment Methods) and a reference. It charges nobody and emails nobody. The amount cannot exceed what is due; paying it all marks the invoice paid. If an accounting app is connected, Tradify syncs the payment to it.
Inputs: amount (required), invoice_id (required), date, method, +1 more.
schedule_appointmentSchedule appointmentADestructiveInspect
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 the signed-in user), as the Scheduler does. Each staff member gets Tradify's "You've been scheduled" notice, and an Unassigned or Assigned job becomes Scheduled. email_customer also sends the customer the appointment confirmation email, with customer_message in it. By default you confirm each call, and you can switch that off for this tool. Waits for the owner's approval.
Inputs: end (required), start (required), job_id (required), notes, +3 more.
send_invoiceSend invoiceADestructiveInspect
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; payment reminders follow if you enabled them. Without to it goes to the customer's email. Subject and text default to your invoice email template. An approved invoice can be sent again. Tradify sends this mail only when the login has 2-Step Security set up; otherwise the call stops before approving. By default you confirm each call, and you can switch that off for this tool. Waits for the owner's approval.
Inputs: invoice_id (required), to, message, subject, +1 more.
send_quoteSend quoteADestructiveInspect
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 customer accepts or declines it online. Without to it goes to the customer's email. Subject and text default to your quote email template. An approved quote can be sent again. Tradify sends this mail only when the login has 2-Step Security set up; otherwise the call stops before approving. By default you confirm each call, and you can switch that off for this tool. Waits for the owner's approval.
Inputs: quote_id (required), to, message, subject, +1 more.
tradify_create_jobCreate job in TradifyARead-onlyIdempotentInspect
Create job in the user's own Tradify account from ChatGPT, Claude or any AI agent. Returns how to do it in Tradify step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Tradify Cloud Browser. Tradify's official API: Tradify publishes no API, developer docs or webhooks (checked 11 Oct 2026).
Inputs: no named parameters.
tradify_create_quoteCreate quote in TradifyARead-onlyIdempotentInspect
Create quote in the user's own Tradify account from ChatGPT, Claude or any AI agent. Returns how to do it in Tradify step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Tradify Cloud Browser. Tradify's official API: Tradify publishes no API, developer docs or webhooks (checked 11 Oct 2026).
Inputs: no named parameters.
tradify_list_unpaid_invoicesList unpaid invoices in TradifyARead-onlyIdempotentInspect
List unpaid invoices in the user's own Tradify account from ChatGPT, Claude or any AI agent. Returns how to do it in Tradify step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Tradify Cloud Browser. Tradify's official API: Tradify publishes no API, developer docs or webhooks (checked 11 Oct 2026).
Inputs: no named parameters.
tradify_schedule_staffSchedule staff in TradifyARead-onlyIdempotentInspect
Schedule staff in the user's own Tradify account from ChatGPT, Claude or any AI agent. Returns how to do it in Tradify step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Tradify Cloud Browser. Tradify's official API: Tradify publishes no API, developer docs or webhooks (checked 11 Oct 2026).
Inputs: no named parameters.
tradify_send_invoiceSend invoice in TradifyARead-onlyIdempotentInspect
Send invoice in the user's own Tradify account from ChatGPT, Claude or any AI agent. Returns how to do it in Tradify step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Tradify Cloud Browser. Tradify's official API: Tradify publishes no API, developer docs or webhooks (checked 11 Oct 2026).
Inputs: no named parameters.
update_job_statusUpdate job statusADestructiveInspect
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, or the name of a custom status from Settings > Jobs > Job Statuses (spaces as underscores). It reaches no one, and one more call sets it back.
Inputs: job_id (required), status (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
Related MCP Connectors
ServiceTrade MCP server for ChatGPT, Claude and any AI agent: list jobs, create appointment, release appointment to technicians, list deficiencies, create quote, submit quote and add comment to job in your own ServiceTrade account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to ServiceTrade yourself; Cotlet does not store your password and you need no ServiceTrade API key. About the official ServiceTrade API: ServiceTrade has a full REST API with public docs and OAuth2 client-credentials sign-in, but no official MCP server (checked 23 Oct 2026). The API covers jobs, appointments, deficiencies and quotes, so the missing piece is the agent layer: you build and host the wrapper yourself. Setup and FAQ: https://cotlet.dev/integrations/servicetrade-api-mcp-server
AroFlo MCP server for ChatGPT, Claude and any AI agent: list tasks, create task, schedule technician, create final invoice, approve invoice and email invoice in your own AroFlo account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to AroFlo yourself; Cotlet does not store your password and you need no AroFlo API key. About the official AroFlo API: Yes, AroFlo has a REST API (checked 23 Oct 2026), but it is off by default and an account asks AroFlo support to enable it. Each request carries an HMAC-SHA512 signature, replies are XML unless you ask for JSON, and the API is capped at 2,000 calls a day. Setup and FAQ: https://cotlet.dev/integrations/aroflo-api-mcp-server
Simpro MCP server for ChatGPT, Claude and any AI agent: list jobs, create quote, convert quote to job, update job status, look up customer, check schedule, add schedule entry and search catalogue items in your own Simpro account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Simpro yourself; Cotlet does not store your password and you need no Simpro API key. About the official Simpro API: Simpro has a full REST API with OAuth 2.0 for quotes, jobs, schedules, customers and catalogue items, but no official MCP server (checked 17 Oct 2026). Your administrator creates the API credentials in your build, partner apps need approval from Simpro, and all calls share a limit of 10 per second per build. Setup and FAQ: https://cotlet.dev/integrations/simpro-api-mcp-server
Contractor+ MCP server for ChatGPT, Claude and any AI agent: create estimate, send estimate, create job, send invoice and list unpaid invoices in your own Contractor+ account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Contractor+ yourself; Cotlet does not store your password and you need no Contractor+ API key. About the official Contractor+ API: Contractor+ has a public API with an account API key, but it comes with the Pro Team plan, together with Zapier; Freedom and Pro do not include it (checked 8 Nov 2026). There is no official MCP server. Setup and FAQ: https://cotlet.dev/integrations/contractor-plus-api-mcp-server
Related MCP Servers
- AlicenseAqualityCmaintenanceLets AI agents work directly inside a signed-in Tradify account, creating jobs, drafting quotes and invoices, recording payments and booking staff from plain-language requests. Drafts are shown for approval before anything is sent to a customer, and no Tradify API key is required.7Elastic 2.0
- AlicenseAqualityBmaintenanceEnables AI agents and scripts to manage bookings, provider assignment, rescheduling, cancellations, customers, quotes, invoices, and dashboard data through a self-hosted API and MCP interface using your own Chrome session.217131 PyPI6Elastic 2.0
- AlicenseAqualityBmaintenanceEnables ChatGPT, Claude and other AI agents to work inside a signed-in Eversports Studio Manager account through Cotlet โ viewing studio activities and sign-in lists, signing participants in, pausing or resuming memberships, and emailing invoices, with user approval before any change is saved. It runs as a hosted connector or a local stdio server that forwards tool calls to Cotlet.7Elastic 2.0
- AlicenseAqualityCmaintenanceLets AI agents work inside your own signed-in RazorSync account, so you can schedule and reassign jobs, create work orders, turn completed work into invoices, and follow up on unpaid bills using plain language. Works with Claude Code, ChatGPT, Cursor, and any MCP-capable agent, with a local stdio server that forwards tool calls to the hosted endpoint.7Elastic 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.