Fresha by Cotlet
mcp remote · streamable-http · v1.0.2 · source: crawl
https://cotlet.dev/mcp/v1/fresha
https://github.com/cotletdev/fresha-api-mcp-server
Appointments, clients, sales and reviews for salons and spas.
Works
100
Verified Oct 31, 2026 · p50 425 ms · p95 438 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-fresha' |
| tools_listed | 15 | pass | 34 tools |
| schema_complete | 15 | pass | 33 of 34 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 425 ms |
| latency_p95 | 5 | pass | p95 438 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 (34)
| Name | Description | Schema |
|---|---|---|
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_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_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 Fresha Cloud Browser, a real Chrome hosted on Cotlet and signed in to Fresha as the user. Use it for what the Fresha tools do not cover. Opens `url` when given and returns the page's | typed |
cotlet_browser_navigate | Opens a public http or https address in the user's Fresha Cloud Browser and returns the URL and title it ended on. Only Fresha pages open. Every started minute of the session costs credits; it ends wh | typed |
cotlet_browser_read | Returns the current page of the user's Fresha 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 nev | typed |
cotlet_browser_screenshot | Returns a JPEG image of the visible part of the current page in the user's Fresha Cloud Browser, with its URL and title: boards, canvases and layouts that the page text does not show. Every started mi | typed |
cotlet_browser_scroll | Scrolls the current page in the user's Fresha 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 Fresha Cloud Browser, by its number in the page's element list, and returns the URL and title after the click. It acts as the u | typed |
cotlet_browser_type | Types text into a field of the current page in the user's Fresha 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. P | typed |
cotlet_browser_select | Chooses an option of a drop-down list on the current page in the user's Fresha Cloud Browser, by the list's number in the element list and the option's label as read lists it (or its value). Returns t | typed |
cotlet_browser_press | Presses one key on the current page in the user's Fresha 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 Fresha 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 Fresha Cloud Browser: the browser keeps its cookies, goes to sleep and the per-minute charge stops. Returns the session's minutes and credits. | typed |
find_available_slots | Free start times for one or more services with a team member, day by day. Asks the calendar for free start times as New appointment does, for the services done one after another, with one team member, | typed |
get_appointment | One appointment: client, services, team member, times, status, price and notes. Reads the appointment as its drawer in the calendar shows it: status, start and end (wall clock in the business's time z | typed |
get_client | One client: contact, notification settings, booking stats, upcoming appointments, notes. Reads the client profile as the client's page shows it: name, email, mobile, gender, birthday, whether Fresha s | typed |
get_sales_summary | Sales summary for a period: sales, refunds, discounts, taxes and payments by type. Reads Reports > Sales summary for the days given: one row per sale type (services, products, memberships, gift cards | typed |
list_appointments | Appointments in a date range, with client, service, team member, price and status. Lists appointments as Sales > Appointments shows them, latest first: one row per booked service with its appointment | typed |
list_clients | Clients of the business, searchable by name, email or phone. Lists clients as the Client list shows them, newest first by default, with email, mobile, gender, total sales, review count and whether the | typed |
list_reviews | Client reviews of the business with rating, text and replies. Lists reviews as Online reputation shows them, newest first: star rating, text, author, the client and appointment it is about, source (Fr | typed |
list_sales | Sales (invoices) in a date range: number, date, client, status and totals. Lists sales as Sales > Sales list shows them for the days given, one row per sale with Fresha's columns (sale number, date, c | typed |
list_services | Services of the business with category, duration and price. Lists the active services of the business's location as the Catalogue shows them, with their category, duration in minutes, price and whethe | typed |
list_team_members | Team members with role, contact, services they do and whether they take bookings. Lists the team as Team members shows it: name, email, mobile, role (owner, manager, basic), job title, whether they ta | typed |
add_blocked_time | Block a time slot in a team member's calendar so nobody books it. Adds blocked time as Add > Blocked time in the calendar does: one block on one day for one team member, with a title and a note for th | typed |
add_client | Add a client to the business's client list. Adds a client as Add client in the Client list does: name, email, mobile and gender. With appointment_messages (default true) Fresha sends the client bookin | typed |
add_client_note | Add a note to a client's profile, seen by the team only. Adds a note to the client's Notes tab for all locations, as the profile's Add note does. Only the team sees it; the client is not told. Line br | typed |
cancel_appointment | Cancel an appointment without a charge, optionally telling the client. Cancels the appointment as Cancel in its drawer does, with one of the business's cancellation reasons. With notify_client (defaul | typed |
create_appointment | Book an appointment for a client: services, team member and start time. Books the services one after another from start_at with one team member, as New appointment in the calendar does, at each servic | typed |
reply_to_review | Post a public reply to a client's review. Posts a reply under the review as Reply in Online reputation does, signed as the business or the team member. The reply is public on the business's Fresha pag | typed |
reschedule_appointment | Move an appointment to a new start time, optionally to another team member. Moves every service of the appointment by the same amount so the first starts at start_at, as Reschedule in the appointment | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/dev-cotlet-fresha-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.