Contractor Foreman MCP Server and API by Cotlet
Server Details
Contractor Foreman MCP server for ChatGPT, Claude and any AI agent: create estimate, add daily log, create change order, update schedule, list invoices and get job costing in your own Contractor Foreman account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Contractor Foreman yourself; Cotlet does not store your password and you need no Contractor Foreman API key. About the official Contractor Foreman API: Contractor Foreman has no public API (checked 11 Oct 2026). Its only programmatic access is a Zapier app with 7 triggers for leads, customers and file uploads, and 2 actions: Create Lead and Create Customer. Setup and FAQ: https://cotlet.dev/integrations/contractor-foreman-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/contractor-foreman-api-mcp-server
- GitHub Stars
- 8
- Server Listing
- Contractor Foreman MCP Server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 32 tools
The six contractor_foreman_* tools are distinct by action, but they only return step-by-step guidance and heavily overlap with cotlet_app_guide, which explicitly covers the same six Contractor Foreman actions. The actual execution is delegated to cotlet_browser_* tools, so agents face two entry points for the same instructions and must infer which to call first. The browser primitives themselves are well differentiated (click vs press, type vs fill_form, read vs find), which keeps this above a 2.
Names are consistently snake_case with clear namespace prefixes: contractor_foreman_* for domain actions and cotlet_browser_* for browser primitives. Action tools use verb_noun (add_daily_log, create_estimate, update_schedule), but a few query tools are noun-only (cotlet_apps, cotlet_balance, cotlet_whoami), a minor deviation. The two top-level prefixes are intentional rather than inconsistent.
At 32 tools, the surface is well above the comfortable range, and the six contractor_foreman_* wrappers are largely redundant given cotlet_app_guide and the browser tools. The 20+ cotlet_browser_* primitives are individually justified for browser automation, but the overall set is bloated for the stated purpose. The count pushes agents toward long tool-selection reasoning.
For the Contractor Foreman domain, only six actions are covered (create estimate, add daily log, create change order, update schedule, list invoices, get job costing); there is no create/update/delete for invoices, no list or get for estimates, jobs, clients, or change orders, leaving notable lifecycle gaps. The generic cotlet_browser_* tools provide a fallback for anything missing, which prevents agent dead ends but does not make the dedicated surface complete. Browser automation coverage itself (navigate, read, click, type, upload, download, tabs) is strong.
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 Contractor Foreman once in their own Cotlet Cloud Browser; no Contractor Foreman API key or paid Contractor Foreman plan is needed.
Available Tools
32 toolscontractor_foreman_add_daily_logAdd daily log in Contractor ForemanARead-onlyIdempotentInspect
Add daily log in the user's own Contractor Foreman account from ChatGPT, Claude or any AI agent. Returns how to do it in Contractor Foreman step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Contractor Foreman Cloud Browser. Contractor Foreman's official API: Contractor Foreman has no public API (checked 11 Oct 2026).
Inputs: no named parameters.
contractor_foreman_create_change_orderCreate change order in Contractor ForemanARead-onlyIdempotentInspect
Create change order in the user's own Contractor Foreman account from ChatGPT, Claude or any AI agent. Returns how to do it in Contractor Foreman step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Contractor Foreman Cloud Browser. Contractor Foreman's official API: Contractor Foreman has no public API (checked 11 Oct 2026).
Inputs: no named parameters.
contractor_foreman_create_estimateCreate estimate in Contractor ForemanARead-onlyIdempotentInspect
Create estimate in the user's own Contractor Foreman account from ChatGPT, Claude or any AI agent. Returns how to do it in Contractor Foreman step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Contractor Foreman Cloud Browser. Contractor Foreman's official API: Contractor Foreman has no public API (checked 11 Oct 2026).
Inputs: no named parameters.
contractor_foreman_get_job_costingGet job costing in Contractor ForemanARead-onlyIdempotentInspect
Get job costing in the user's own Contractor Foreman account from ChatGPT, Claude or any AI agent. Returns how to do it in Contractor Foreman step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Contractor Foreman Cloud Browser. Contractor Foreman's official API: Contractor Foreman has no public API (checked 11 Oct 2026).
Inputs: no named parameters.
contractor_foreman_list_invoicesList invoices in Contractor ForemanARead-onlyIdempotentInspect
List invoices in the user's own Contractor Foreman account from ChatGPT, Claude or any AI agent. Returns how to do it in Contractor Foreman step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Contractor Foreman Cloud Browser. Contractor Foreman's official API: Contractor Foreman has no public API (checked 11 Oct 2026).
Inputs: no named parameters.
contractor_foreman_update_scheduleUpdate schedule in Contractor ForemanARead-onlyIdempotentInspect
Update schedule in the user's own Contractor Foreman account from ChatGPT, Claude or any AI agent. Returns how to do it in Contractor Foreman step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's Contractor Foreman Cloud Browser. Contractor Foreman's official API: Contractor Foreman has no public API (checked 11 Oct 2026).
Inputs: no named parameters.
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 Contractor Foreman it covers these actions: Create estimate, Add daily log, Create change order, Update schedule, List invoices, Get job costing.
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_balanceCotlet: credit balanceARead-onlyInspect
The user's current credit balance. Free. Needs the user's Cotlet API key or sign-in.
Inputs: no named parameters.
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, app, button, +4 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: app.
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: app, 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), app, dialog, +1 more.
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), app.
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), app, 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), app, 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, app, element.
cotlet_browser_openOpen the browserARead-onlyInspect
Starts the user's Cloud Browser (a real Chrome on Cotlet, where the user is signed in to their sites) and opens url. Call it first. The URL goes to the site's open tab, else to a new tab, so the user's own tabs stay. Answers the page after it: the elements and text in view, with the same numbers. In Contractor Foreman it serves these actions: Create estimate, Add daily log, Create change order, Update schedule, List invoices, Get job costing.
Inputs: app, 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), app, dialog, repeat, +1 more.
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: app, 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: app.
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: app, inside, element, screens, +1 more.
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), app, dialog, +1 more.
cotlet_browser_tabsBrowser tabsAInspect
The tabs of the user's web browser, where they keep their signed-in sites open. list (default) answers each tab's id, URL and title and which is shown; switch with tab shows that tab, and every later step acts on it; new with url opens a tab (at most 8); close with tab closes it. Work in the tab of the site the task is about and close only the tabs you opened.
Inputs: tab, url, action.
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), app, dialog, slowly, +3 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), app.
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: app, 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_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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
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
Buildertrend MCP server for ChatGPT, Claude and any AI agent: get schedule, create daily log, create change order and list selections in your own Buildertrend account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Buildertrend yourself; Cotlet does not store your password and you need no Buildertrend API key. About the official Buildertrend API: Buildertrend publishes no API docs or self-serve keys for customers; it connects through its Marketplace integrations (checked 11 Oct 2026). Setup and FAQ: https://cotlet.dev/integrations/buildertrend-api-mcp-server
Procore MCP server for ChatGPT, Claude and any AI agent: list RFIs, create RFI, list submittals, create punch list item, create observation and add manpower entry in your own Procore account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Procore yourself; Cotlet does not store your password and you need no Procore API key. About the official Procore API: Procore has a REST API with OAuth 2.0 and a sandbox, but publishes no MCP server for your own AI agent (checked 5 Nov 2026). The API runs through an app that you register in the Developer Portal and a company admin installs. Setup and FAQ: https://cotlet.dev/integrations/procore-api-mcp-server
Knowify MCP server for ChatGPT, Claude and any AI agent: create job, create bid, create invoice, log time and get job cost report in your own Knowify account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Knowify yourself; Cotlet does not store your password and you need no Knowify API key. About the official Knowify API: Knowify has no public REST API (checked 11 Oct 2026). Its official AI Connector (MCP) lets users with admin permissions ask questions about jobs, billing, labor and collections, and is read-only for now. Setup and FAQ: https://cotlet.dev/integrations/knowify-api-mcp-server
Related MCP Servers
- 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
- AlicenseNot gradedqualityCmaintenanceEnables AI agents like ChatGPT, Claude, and Cursor to work inside a user's own signed-in Exercise.com account, viewing schedules, booking sessions, messaging clients, and handling invoices with approval steps. It runs as a hosted connector or a local stdio server that forwards tool calls to the hosted backend using a Cotlet API key.Elastic 2.0
- AlicenseNot gradedqualityAmaintenanceA local MCP server that lets AI coding tools drive the user's own already-logged-in Chrome, reading pages, clicking, typing, filling forms, taking screenshots, and inspecting storage, network, and console state. It works through a Chrome extension rather than a remote-debugging port, so no data leaves the machine and bot detection is bypassed.1 npmISC
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and scripts to access clients, estimates, invoices, payments, and reports from a user's own Joist account through their Chrome session, over MCP or a local REST API.135 PyPI5Elastic 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.