Booksy by Cotlet

dev.cotlet由 cotlet.dev 發布官方發布者v1.0.2更新於 Oct 28, 2026

Bookings, clients, reviews and reports for beauty businesses.

發布方自己的服務:Cotlet

已驗證Streamable HTTP可網頁執行效率與工作流溝通與協作商業與電商

概覽

AI 產生的概覽

Booksy Biz 的 MCP 伺服器,讓助理讀取並修改美容美髮商家的行事曆、客戶、評論、群發訊息與報表。

可以做什麼
  • 讀取行事曆與空檔:預約清單、單筆預約、可預約時段、休假與封鎖時段
  • 建立、改期與取消預約,新增或移除員工休假
  • 搜尋、讀取、新增、修改與刪除客戶卡與私人備註
  • 讀取服務項目、員工、營業時間、商家資料、設定與面板通知
  • 讀取評論並張貼或替換公開回覆
  • 列出並估算 Message Blast,以電子郵件、簡訊或推播送出,並取得 Stats & Reports 數據
適用情境
適合沙龍、理髮店與美容商家或其開發者,希望助理回答當天預約狀況、找出空檔、在員工休假時規劃改約、喚回久未到店客戶、回覆評論或比較各員工營收。
執行需求
可使用 cotlet.dev 的託管端點,需要 Cotlet API 金鑰並以 Authorization bearer 標頭傳送;或在本機執行 Python 套件(Python 3.11 以上,以 uvx 啟動),需要已登入 Booksy Biz 的 Google Chrome 144 以上,並執行一次連線步驟以儲存工作階段檔案。需要 Booksy Biz 商家帳號;部分報表需 Booksy Biz Pro,一次性群發需付費方案。
安裝前請注意
許多工具會寫入真實帳號並觸及真實客戶:預約、改期、取消、評論回覆與 Message Blast,且僅透過 MCP 用戶端請求確認。儲存的工作階段檔案含 Booksy 存取權杖,持有者可冒充商家操作,請勿放入 git 或共用資料夾。簡訊超出免費額度會產生費用,且在法律要求的地區需取得行銷同意。可用唯讀模式或唯讀參數降低風險。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Booksy by Cotlet,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/dev.cotlet%2Fbooksy/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "booksy-by-cotlet": {
      "type": "http",
      "url": "https://cotlet.dev/mcp/v1/booksy/connect"
    }
  }
}

README

Booksy API and MCP server: connect Booksy to ChatGPT and Claude

Yes, ChatGPT, Claude and other AI agents can work in your Booksy account. That includes Cursor, Codex, OpenClaw and any MCP client, plus automations in n8n, Make and Zapier. Ask in plain words, and the AI reads your calendar and open slots, finds clients who have not been back, moves bookings when someone is off, answers reviews and compares revenue per staff member. It shows you what it will do first and sends nothing to other people until you say so.

As of November 2026, this repo is the missing piece: 28 Booksy tools for AI assistants and scripts.

What you can ask

What does tomorrow look like? List the appointments and any gaps longer than an hour.

Tom is off on Friday. Move his bookings to whoever is free at about the same time, and show me the plan first.

Compare last week's revenue per staff member with the week before.

Which clients have not been in for 60 days and have nothing booked?

Two ways to get it

Ready to use, at CotletRun it yourself, this repo
Forsalon, barber and beauty business ownersdevelopers
Setupsign in to Booksy once, about 5 minutes, nothing to installPython and a terminal
Works inChatGPT and Claude apps, on your phone too, Cursor, Codex, OpenClaw, any MCP client, n8n, Make, Zapier, REST APIClaude Code, Claude Desktop, Cursor, Codex on your computer
Runs24/7, your computer can be offwhile your computer is on
Price7 days free, no cardfree

Cotlet is best for salon, barber and beauty business owners who want ChatGPT, Claude or another AI agent to work in Booksy for them, with nothing to install.

Start free at cotlet.dev →

Run it yourself

A Booksy API and a Booksy MCP server you run on your own computer, in Python, on the session of your own Google Chrome. All 28 Booksy Biz tools we run in production at Cotlet: the calendar, open slots, time off, clients, services and staff, reviews, Message Blasts and Stats & Reports.

Booksy has no self-serve API for business owners and no official MCP server. This repo gives you both:

  • MCP server for Claude Code, Claude Desktop, Cursor, Codex and any MCP client, over stdio or HTTP. Setup
  • REST API on http://127.0.0.1:8787/api/v1/booksy, with OpenAPI docs at /docs. Setup
  • Python: call("list_appointments", {"from": "2026-10-27", "to": "2026-10-27"}), plus 9 ready scripts in examples/.

Free for your own use, your own business included (license).

[Booksy MCP server] [Python 3.11+] [License: Elastic 2.0] [MCP Badge]

bash
uv tool install booksy-api-mcp                  # or: pip install booksy-api-mcpbooksy-mcp connect                                 # reads your Booksy Biz session from Chromebooksy-mcp call list_servicesclaude mcp add booksy -- uvx booksy-api-mcp mcp

Contents

Questions from Booksy users

Does Booksy have an API? Not one a business owner can use. Booksy runs a partner API whose docs at docs.booksy.com ask for a login, so you cannot get keys for your own account (checked 11 Oct 2026). Stats & Reports and Message Blasts are not among its public areas. This repo and Cotlet give you 28 Booksy tools as a REST API and an MCP server.

Can I get a Booksy API key? Not from Booksy for your own account. With Cotlet you get your own API key that works with your Booksy account, for scripts, n8n, Make, Zapier or any HTTP client. This repo needs no key: it runs on your computer, on your own Booksy session.

Is there an official ChatGPT integration for Booksy? Booksy has a ChatGPT app for clients: it finds pros and books open slots. It does not run your business. Cotlet connects your Booksy Biz account to ChatGPT, Claude and other AI agents: your calendar, clients, staff, reviews, Message Blasts and stats.

How do I connect Booksy to ChatGPT? Sign up at cotlet.dev, sign in to Booksy once in your Cloud Browser there, and add Cotlet to ChatGPT, following the steps in your account. Then ask ChatGPT about your Booksy like you would ask an assistant. ChatGPT needs a server on the internet, so this repo alone, running on your computer, does not connect to ChatGPT.

Can ChatGPT manage my Booksy calendar? Yes, with Cotlet. It lists tomorrow's appointments and gaps, finds open slots, blocks time off and plans moves when a staff member is off. It shows you the plan before it changes anything.

Can AI bring back Booksy clients who stopped booking? Yes, with Cotlet. It finds clients who have not been in for a while and have nothing booked, so you can send them a Message Blast or a personal note.

Can I automate Booksy with Zapier, Make or n8n? We could not confirm a Booksy Zapier app. With Cotlet, n8n, Make and Zapier can read appointments and clients and send Message Blasts, for example to copy new bookings into a Google Sheet.

Can I use it from my phone? Yes, with Cotlet: once it is set up, the ChatGPT and Claude apps on your phone can use Booksy for you.

Do I need to be technical? For Cotlet, no: you sign in to Booksy and add Cotlet to ChatGPT or Claude, with step-by-step instructions in your account. This repo is for people who are fine with Python and a terminal.

Is my Booksy account safe? Yes. Neither Cotlet nor this repo sees or stores your Booksy password. You sign in yourself, the way you always do, and the AI works on that signed-in session. Anything that reaches other people asks for your OK first: in Cotlet by default, here through your MCP client.

Is it free? This repo is free, also in your own business. Cotlet is free for 7 days with no card, then one-time credit packs from $29, no subscription. Pricing.

I manage Booksy for several accounts or clients. Does that work? Yes, with Cotlet. Each Booksy login gets its own connection. Write to [email protected] and tell us how many accounts you manage.

How it works

text
AI agent (MCP) / script (REST, Python) ──▶ booksy-mcp on your computer ──your Booksy session──▶ <country>.booksy.com                                                   ▲                         booksy-mcp connect ───────┘ reads it once from your Chrome (DevTools Protocol)
  1. You sign in to Booksy Biz in your own Chrome at booksy.com/pro, the way you always do.
  2. booksy-mcp connect attaches to that Chrome through the Chrome DevTools Protocol and reads your session. Booksy does not keep it in a cookie. The panel stores it in the localStorage of its web-gateway.booksy.com frame, so connect reads that storage, the booksy.com cookies and the panel's country, and saves them to ~/.config/booksy-api-mcp/session.json, readable by your user only. It never sees or stores your password.
  3. Every tool call is a request to the API the Booksy Biz web panel calls (<country>.booksy.com/core/v2, so us.booksy.com for a US business and pl.booksy.com for a Polish one), sent with curl_cffi, which copies Chrome's TLS fingerprint. No headless browser runs.

When Booksy signs you out, the server reads the session from Chrome again, if Chrome is open with remote debugging on.

Requirements

  • Python 3.11 or newer.
  • Google Chrome 144 or newer, signed in to Booksy Biz. Any Chrome or Chromium works with a debugging port.
  • macOS, Linux or Windows.
  • A Booksy Biz owner account. Some reports, such as Staff Members, need Booksy Biz Pro. Booksy sends one-time Message Blasts on a paid plan only, not during the free trial.

Install

From PyPI:

bash
uv tool install booksy-api-mcp       # or: pipx install booksy-api-mcp, or: pip install booksy-api-mcpbooksy-mcp --version

MCP clients can also run it with no install: uvx booksy-api-mcp mcp.

From source:

bash
git clone https://github.com/cotletdev/booksy-api-mcp-server.gitcd booksy-api-mcp-serverpython3 -m venv .venv. .venv/bin/activate              # Windows: .venv\Scripts\activatepip install -e .booksy-mcp --version

With uv: uv venv && uv pip install -e ., then uv run booksy-mcp ....

Setting it up with an AI agent (Claude Code, Codex, Cursor)? Open it in this folder and ask it to set up the repo: AGENTS.md tells it every step, and it asks you only for the steps in Chrome.

To update: uv tool upgrade booksy-api-mcp (or pip install -U booksy-api-mcp), from source git pull && pip install -e .. We copy every change of the hosted Booksy tools into this repo.

Connect your Chrome

Option A: your everyday Chrome (recommended)

  1. Open chrome://inspect/#remote-debugging in Chrome and switch remote debugging on. Chrome then accepts DevTools connections from programs on this computer, and asks you before each one.

  2. Make sure you are signed in to Booksy Biz at booksy.com/pro. Keep a tab of the panel open, because connect reads the session in it. With no Booksy tab open, it opens one in the background and closes it again.

  3. Run:

    bash
    booksy-mcp connect
  4. Chrome asks whether to allow the connection. Click Allow.

text
Saved 41 Booksy cookies and 50 localStorage keys to /Users/you/.config/booksy-api-mcp/session.jsonSigned in to Booksy as Maria Lopez (Studio Maria)

You can switch remote debugging off again afterwards. Leave it on if you want the server to pick up a new session by itself after Booksy signs you out.

connect looks for Chrome's DevToolsActivePort file in the default profile folder. For Chrome Beta, Canary or a custom profile folder, pass --profile-dir "<folder>".

Option B: a Chrome with a debugging port

Chrome does not open a debugging port on your default profile, so start a separate one, sign in to Booksy Biz there once, and connect to it:

bash
# macOS"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-booksy"# Linuxgoogle-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-booksy"# Windows"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%USERPROFILE%\.chrome-booksy"
booksy-mcp connect --cdp http://127.0.0.1:9222

--cdp also takes a ws:// DevTools URL, for example of a Chrome on another machine reached over an SSH tunnel.

There is no option to paste a cookie by hand, since Booksy has no session cookie. A server with no Chrome can use a session.json copied from a machine where connect ran.

Check the session at any time:

bash
booksy-mcp status

MCP server

The MCP server lists every tool with its input schema, a description written for agents, and hints. Read tools are marked read-only, and tools that reach clients (bookings, reschedules, cancellations, review replies, blasts) are marked so your client asks before running them.

Claude Code

bash
claude mcp add booksy -- uvx booksy-api-mcp mcp# read only:claude mcp add booksy -- uvx booksy-api-mcp mcp --read-only

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "booksy": {      "command": "uvx",      "args": ["booksy-api-mcp", "mcp"]    }  }}

Cursor

~/.cursor/mcp.json, the same block as Claude Desktop. A ready copy is in mcp.json.

Codex

~/.codex/config.toml:

toml
[mcp_servers.booksy]command = "uvx"args = ["booksy-api-mcp", "mcp"]

Over HTTP

booksy-mcp serve also serves MCP over streamable HTTP at http://127.0.0.1:8787/mcp, for clients that take a URL:

bash
booksy-mcp serveclaude mcp add --transport http booksy http://127.0.0.1:8787/mcp

Then ask your agent things like:

What does tomorrow look like? List the appointments and any gaps longer than an hour.

Tom is off on Friday. Move his bookings to whoever is free at about the same time, and show me the plan first.

Compare last week's revenue per staff member with the week before.

Which clients have not been in for 60 days and have nothing booked?

REST API

bash
booksy-mcp serve                   # http://127.0.0.1:8787, MCP at /mcp, docs at /docs

Each tool has its own route under /api/v1/booksy, the same paths as the hosted API at cotlet.dev, so code written against one works with the other. Path parts and the query string are arguments, and a JSON body adds the rest.

bash
curl 'http://127.0.0.1:8787/api/v1/booksy/services'curl 'http://127.0.0.1:8787/api/v1/booksy/appointments?from=2026-10-27&to=2026-10-31'curl 'http://127.0.0.1:8787/api/v1/booksy/services/8307205/open-slots?date=2026-10-27'curl -X POST http://127.0.0.1:8787/api/v1/booksy/staffs/882081/time-offs \  -H 'Content-Type: application/json' \  -d '{"start": "2026-11-02", "end": "2026-11-06", "reason": "vacation"}'

Any tool by name, body as its arguments:

bash
curl -X POST http://127.0.0.1:8787/api/v1/booksy/tools/find_client -d '{"query": "nowak"}'
  • GET /api/v1/booksy/tools: every tool with its route, input schema and an example answer.
  • GET /docs: interactive OpenAPI docs, GET /openapi.json the schema, for n8n, Postman or a generated client.
  • Answers are JSON. list_clients returns next_cursor; pass it back as cursor for the next page. Reviews and notifications take page.

The server listens on 127.0.0.1 only. To reach it from another device of yours, set a token, and every request then needs Authorization: Bearer <token>:

bash
BOOKSY_MCP_TOKEN=$(openssl rand -hex 24) booksy-mcp serve --host 0.0.0.0

Python and the example scripts

Straight from Python, no server needed:

python
from booksy_api_mcp import callfrom booksy_api_mcp.scripting import paginate, write_rows
services = call("list_services")["services"]day = call("list_appointments", {"from": "2026-10-27", "to": "2026-10-27"})["appointments"]clients = list(paginate("list_clients", {"not_visited_days": 60, "limit": 100}, "clients"))write_rows(clients, "slipping-away.csv")call("add_time_off", staff_id="882081", start="2026-11-02T13:00", end="2026-11-02T14:00", reason="Lunch")

Or one tool from the shell: booksy-mcp call find_open_slots service_id=8307205 date=2026-10-27, or with a JSON object. An ID stays text where the tool takes text.

Times are local to the business. A date-time without a zone is read in the business's time zone, and answers carry its offset.

Ready scripts in examples/. Each prints JSON or a short list, takes --out file.csv or --out file.json where it makes sense, and --help:

ScriptWhat it does
tomorrows_appointments.pyTomorrow's appointments, one line each, and the open slots left for a service. --date, --staff-id.
reschedule_day.pyMoves one staff member's appointments on a day to colleagues free within an hour of the original time. Prints the plan; --apply moves them, asking each time.
block_time_off.pyAdds whole days off or blocks hours on one day, or removes a time off.
export_clients.pyClients to CSV or JSON: contact, note, visits, no-shows, revenue, last visit. --search, --not-visited-days.
lapsed_clients.pyClients not seen for N days, minus anyone booked in the next 30 days.
win_back_blast.pyOne Message Blast to those lapsed clients, after it shows the reach and SMS cost and asks.
weekly_staff_report.pyAppointments and revenue per staff member, last week against the week before, big moves flagged.
unanswered_reviews.pyReviews without a reply, lowest rating first; --reply-to posts a reply.
add_client.pyAdds a client card with no invitation, or a note to an existing one.
bash
python examples/tomorrows_appointments.py --open-slots-for 8307205python examples/reschedule_day.py --staff-id 882081 --date 2026-10-27python examples/export_clients.py --not-visited-days 60 --out slipping-away.csv

On a schedule, cron on your own computer works while it is on: 0 19 * * * cd ~/booksy-api-mcp-server && .venv/bin/python examples/tomorrows_appointments.py.

All 28 tools

IDs come from the list tools: service_id from list_services, staff_id from list_staff, client_id from list_clients or find_client, appointment_id from list_appointments. booksy-mcp tools prints this list, booksy-mcp tools --json adds the input schemas.

Calendar

ToolAccessREST routeWhat it does
list_appointmentsreadGET /appointmentsAppointments in a date range with client, service, staff, time and status.
get_appointmentreadGET /appointments/{appointment_id}One appointment: services, staff, times, price, client and notes.
find_open_slotsreadGET /services/{service_id}/open-slotsFree start times for a service on one day, from working hours, bookings, blocks and time off.
create_appointmentwritePOST /clients/{client_id}/appointmentsBook a client for one or more services at a start time; Booksy checks the slots first.
reschedule_appointmentwritePOST /appointments/{appointment_id}/rescheduleChange an appointment: a new start time, another staff member, or other services.
cancel_appointmentwritePOST /appointments/{appointment_id}/cancelCancel an appointment and free its time in the calendar.

Time off

ToolAccessREST routeWhat it does
list_time_offreadGET /time-offsStaff time off and blocked hours in a date range.
add_time_offwritePOST /staffs/{staff_id}/time-offsBlock a staff member's calendar so no one can book it: whole days off or a few hours.
remove_time_offwriteDELETE /staffs/{staff_id}/time-offs/{time_off_id}Remove time off or a blocked period so the time can be booked again.

Clients

ToolAccessREST routeWhat it does
list_clientsreadGET /clientsClients with contact details, visit counts and last visit, plus Booksy's client groups.
find_clientreadGET /clients/searchClient cards matching a name, email or phone.
get_clientreadGET /clients/{client_id}One client card: contact details, private note, counts and visit history.
add_clientwritePOST /clientsAdd a client card to your client list. Needs a phone or an email.
update_clientwritePATCH /clients/{client_id}Change a client card's name, phone, email, birthday or private note.
add_client_notewritePOST /clients/{client_id}/notesAdd a dated line to a client's private note, keeping what is there.
delete_clientwriteDELETE /clients/{client_id}Remove a client card from your client list.

Business setup

ToolAccessREST routeWhat it does
list_servicesreadGET /servicesYour service menu with category, variants, duration, price and the staff who offer each.
list_staffreadGET /staffStaff members with their working hours for a week and the services they offer.
get_business_hoursreadGET /business-hoursWeekly opening hours, time zone and booking lead times of the business.
get_business_profilereadGET /businessYour business's name, address, contact, opening hours, booking policy, rating and plan status.
get_settingsreadGET /settingsText message allowance and usage, client message channels and your notification settings.
list_notificationsreadGET /notificationsNotifications from the panel's bell: new bookings, changes, cancellations, reviews.

Reviews

ToolAccessREST routeWhat it does
list_reviewsreadGET /reviewsClient reviews of your business with rating, text, services, staff and your reply.
reply_to_reviewwritePUT /reviews/{review_id}/replyPost or change your public reply to a client's review.

Message Blasts

ToolAccessREST routeWhat it does
list_message_blastsreadGET /message-blastsMessage Blast templates (automated and one-time) and the blasts scheduled to go out.
estimate_message_blastreadGET /message-blasts/estimateCount who a Message Blast would reach and its SMS cost, without sending it.
send_message_blastwritePOST /message-blastsSend one message to chosen clients by email, SMS or push notification.

Stats & Reports

ToolAccessREST routeWhat it does
get_reportreadGET /reports/{category}Numbers from Stats & Reports for a day, week, month or year, as JSON.

Writes run Booksy's own dry run first, and send the client no notice unless you pass notify_client. New clients get no invitation. send_message_blast refuses an empty client list, because Booksy reads an empty list as every client.

Never built, on purpose: your Booksy sign-in, email, password and account deletion, and anything that moves money (subscription, payments, payouts, billing). Every request passes a guard that refuses those Booksy paths.

Configuration

VariableDefaultWhat it does
BOOKSY_MCP_HOME~/.config/booksy-api-mcpFolder of session.json.
BOOKSY_PROXYProxy for every request to Booksy, e.g. http://user:pass@host:port.
BOOKSY_MCP_READ_ONLY1 hides and refuses every tool that changes Booksy (same as --read-only).
BOOKSY_MCP_TOKENBearer token required by serve; needed to listen beyond 127.0.0.1.
BOOKSY_MCP_HOST, BOOKSY_MCP_PORT127.0.0.1, 8787Address of serve.

Security and your Booksy account

  • Your password never reaches this code. Only the session the panel already keeps is read, and only that of booksy.com.
  • The session file is yours. session.json is created with mode 0600 and holds your Booksy access token. Anyone who has it can act as you in Booksy Biz, so keep it out of git and shared folders.
  • Local by default. serve binds to 127.0.0.1 and refuses another address without BOOKSY_MCP_TOKEN.
  • booksy.com only. Requests and redirects outside booksy.com are refused.
  • Read-only mode. --read-only or BOOKSY_MCP_READ_ONLY=1 exposes the 17 read tools only.
  • Actions reach real people. A booking, a move with notify_client, a cancellation, a review reply and a blast reach your clients. MCP clients ask before running them; a script does not, so try it on a test client of your own first.
  • Do not spam. Blasts to people who did not agree break Booksy's rules and the law in many countries. You are responsible for what runs in your account.

Errors

The REST API answers {"error": "<code>", "message": "..."}. The MCP server returns the same code and message as a tool error.

StatusCodeWhat to do
401auth_required, auth_expiredNo session, or Booksy signed you out. Sign in to Booksy Biz in Chrome and run booksy-mcp connect.
403app_permission_deniedYour Booksy plan or role cannot do this, e.g. a Pro report on Booksy Biz Lite.
403scope_deniedThe server runs read-only, or the request would change your Booksy account itself.
403target_blockedBooksy refused the request or showed a bot check. Open the panel in Chrome once, then retry.
409captcha_requiredBooksy asks for a CAPTCHA. Solve it in Chrome.
422invalid_inputAn argument is missing or wrong; the message names it.
429rate_limitedBooksy is limiting the account. Wait a few minutes.
502target_errorBooksy answered with an error, or changed its panel. git pull for the latest tools, or open an issue.

Self-hosted or hosted

This repoCotlet, hosted
Toolsthe same 28the same 28
Runson your computer, while it is onin the cloud, 24/7
Booksy sessionyour Chrome, saved in a local fileyour own Cloud Browser in the EU, profile encrypted with AES-256-GCM
When Booksy changes its panelgit pull once we have fixed itfixed for you, every tool tested daily
Approvalsyour MCP client asks per callbookings, reschedules, replies and blasts wait for your OK, switchable per tool
Works withMCP clients on your machine, local scriptsClaude.ai and ChatGPT connectors, n8n, Make, Zapier, any HTTP client
Who may use ityou and your own businessyou, teams, businesses, agencies
Pricefreefree 7-day trial with 2,000 credits, no card; then one-time packs from $29 for 5,000 credits

On the hosted version a successful call uses 10 credits for most tools, failed calls are free, and the Cloud Browser uses 50 credits a day while it has an app enabled for agents. Full pricing.

FAQ

Is there a Booksy MCP server for Claude, ChatGPT or Cursor? Yes, this one runs on your machine: booksy-mcp mcp for Claude Code, Claude Desktop, Cursor and Codex. ChatGPT and Claude.ai connectors need a public HTTPS URL, which the hosted Booksy MCP server gives you.

Is there a Booksy Zapier app? We could not confirm one. Owners who want bookings elsewhere forward Booksy confirmation emails to a Zapier email parser. That copies new bookings one way and cannot change anything in Booksy.

Can I export my Booksy clients to CSV? Yes: python examples/export_clients.py --out clients.csv. Every client card with contact details, note, visits, no-shows, revenue and last visit, across all pages.

Can it find free slots and book for me? find_open_slots gives the free starts for a service on a day, per staff member, each checked with Booksy's own dry run. create_appointment books one of them for a client, and the client hears about it only with notify_client.

Can it send Message Blasts? Yes, send_message_blast by email, SMS or push, on a paid Booksy plan. Run estimate_message_blast first for the reach and the SMS cost. In the EU only clients who gave marketing consent get it.

Does it work outside the US? Yes. Booksy runs a separate API per country, and the server picks it from your session: us.booksy.com, pl.booksy.com, es.booksy.com and so on.

Why does it need my Chrome? To read your Booksy session without your password. Chrome is used once per sign-in, not for each call.

What happens when Booksy signs me out? Calls fail with auth_expired. With Chrome remote debugging on, the server reads the new session on the next call (click Allow when Chrome asks). Otherwise run booksy-mcp connect again.

Can it run on a VPS or in Docker? Technically yes, with a session.json copied from your computer. Booksy then sees your session from a datacenter IP, which looks less like you. For an always-on setup the hosted version keeps your session in your own Cloud Browser on a fixed IP.

Will my Booksy account get banned? Requests carry Chrome's fingerprint and go out one at a time, as you would click. Nobody can promise a platform never acts. Keep to your normal use and do not blast people who did not agree.

Can I use it for my salon or for my clients? For your own salon, yes, free. You may not offer it to others as a hosted or managed service. For client work, use Cotlet or write to [email protected].

Is it open source? The source is public under the Elastic License 2.0: free to use and change, also in your own business, but not to resell as a hosted service.

A tool broke or I need another one. Open an issue with the tool name and the error message.

License

Elastic License 2.0. In short:

  • Allowed: using it for yourself and in your own business, free. Changing the code and sharing it under the same license.
  • Not allowed: offering it to others as a hosted or managed service, removing the license notices, getting around its limits.

[Cotlet]

Maintained by Cotlet (@cotletdev). Booksy is a trademark of its owner. This project is unofficial and not affiliated with, endorsed or sponsored by Booksy.

來源:README.md,提交 ad17a6e

工具

28

add_client

Add client

Add a client card to your client list. Needs a phone or an email. Adds one client card with a name, a phone or an email (Booksy needs one of them), and optionally a private note and a birthday. The client is not invited to the Booksy app and gets no message, so add_client runs without asking first. delete_client removes the card again. A card deleted earlier with the same email or phone comes back with its old visits, note and birthday unless new ones are given.

輸入參數name必填noteemailphonebirthday

add_client_note

Add client note

Add a dated line to a client's private note, keeping what is there. Booksy keeps one private note per client card, seen only by the business. This adds a new line starting with today's date under the existing text. The client is not told.

輸入參數text必填client_id必填

add_time_off

Add time off

Block a staff member's calendar so no one can book it: whole days off or a few hours. Two dates (YYYY-MM-DD) add whole days of time off, like Staff > Shifts. Two date-times on the same day block those hours in the calendar, like a time reservation. Booksy refuses a block over existing appointments. It reaches no client; remove_time_off takes it back.

輸入參數end必填start必填reasonstaff_id必填

cancel_appointment

Cancel appointment

Cancel an appointment and free its time in the calendar. Cancels one appointment as the business. The client is told only with notify_client. A deposit, if any, follows the business's deposit settings. Booksy refuses appointments it no longer lets you cancel (can in get_appointment). There is no undo; book again with create_appointment.

輸入參數reasonnotify_clientappointment_id必填

create_appointment

Create appointment

Book a client for one service at a start time; Booksy checks the slot first. Books one client card for one service. The end follows the service's duration. Booksy's dry run checks the staff member is free first; a busy slot is refused, never double-booked. The client gets Booksy's confirmation only with notify_client. dry_run returns the same answer with saved false and keeps nothing.

輸入參數notestart必填dry_runstaff_idclient_id必填service_id必填notify_client

delete_client

Delete client

Remove a client card from your client list. Deletes the card the way the panel's Delete button does. The client is not told. Past appointments stay in the calendar.

輸入參數client_id必填

estimate_message_blast

Estimate Message Blast

Count who a Message Blast would reach and its SMS cost, without sending it. Asks Booksy what send_message_blast would do with the same clients, channel and text: how many clients it reaches, how many emails, texts or push notifications go out and what the texts cost beyond the plan's free allowance. Where the law asks for marketing consent (EU), consented counts only the clients who agreed; send_message_blast sends to those. Nothing is sent.

輸入參數channel必填message必填client_ids必填

find_client

Find client

Client cards matching a name, email or phone. Searches the client list the way the Clients page's search box does and returns the matching cards with contact details, note and visit counts. A card added a moment ago can take a few seconds to show up in search; get_client reads it by ID at once.

輸入參數limitquery必填

find_open_slots

Find open slots

Free start times for a service on one day, from working hours, bookings, blocks and time off. Returns free start times for one service on one day, earliest first, for each staff member who offers it (or only staff_id). Starts follow the service's time slot interval and leave room for its duration; past times are left out. Booksy's own booking check confirms every slot returned. Pass start and staff_id to create_appointment.

輸入參數date必填limitstaff_idservice_id必填

get_appointment

Get appointment

One appointment: services, staff, times, price, client and notes. Returns one appointment with each service's staff member, times and price, the client, the total and the notes. note is the internal note only staff see; client_note is the note shown to the client. can lists what Booksy allows now (cancel, change, confirm, decline, no_show).

輸入參數appointment_id必填

get_business_hours

Get business hours

Weekly opening hours, time zone and booking lead times of the business. Reads the opening hours set in Business details: open ranges for each day (an empty list is closed), the note shown with them, the business's time zone and address, and how early and how late clients may book or change a visit.

無需輸入參數。

get_business_profile

Get business profile

Your business's name, address, contact, opening hours, booking policy, rating and plan status. Reads the business record behind your Booksy profile: name, address and time zone, phone, public email, website, description, weekly opening hours, how far ahead clients can book and change, review rating, whether the profile is visible in the Booksy marketplace, and the plan status with the trial end date.

無需輸入參數。

get_client

Get client

One client card: contact details, private note, counts and visit history. Reads one client card of the business by ID: name, email, phone, birthday, private note, tags, whether the client is blocked or uses the Booksy app, visit, no-show and cancellation counts, revenue, and the visits (past and upcoming appointments) with times, services, staff, status and total. A visit's appointment_uid is the appointment_id of get_appointment.

輸入參數client_id必填visits_limit

get_report

Get report

Numbers from Stats & Reports for a day, week, month or year, as JSON. Returns one Stats & Reports category for a period: dashboard gives the totals for appointments, revenue and clients with the change against the previous period; any other category gives its highlight tables and the list of its reports. Pass report with a key from that list for the full report. Booksy counts one day, one Monday-to-Sunday week, one calendar month or one calendar year, so from and to must be such a period. Amounts come formatted in the business's currency. Booksy Biz Lite has the dashboard, revenue, appointments and clients; cash_flow, inventory, staff_members and marketing need Booksy Biz Pro.

輸入參數to必填from必填reportcategory必填staff_id

get_settings

Get settings

Text message allowance and usage, client message channels and your notification settings. Reads the settings an agent needs before messaging clients: whether SMS and email to clients are on, the free and paid text allowance with this period's usage and price per text part, and which booking events notify you by email or push. Changes stay in the Booksy app.

無需輸入參數。

list_appointments

List appointments

Appointments in a date range with client, service, staff, time and status. Lists the Booksy calendar between two days (31 at most), in start order, including unconfirmed requests. Times carry the business's time zone. A walk-in has an empty client. An appointment with several services is one row listing them all; get_appointment returns prices and notes.

輸入參數to必填from必填staff_id

list_clients

List clients

Clients with contact details, visit counts and last visit, plus Booksy's client groups. Reads the Clients list of the business, A to Z: name, email, phone, private note, tags, visits, no-shows, cancellations, revenue and the last visit. Search by name, email or phone, or keep only clients who have not visited for a number of days (filtered on each page). `groups` gives Booksy's smart groups (new, most loyal, slipping away, prospects, upcoming birthdays ..) with their counts.

輸入參數limitquerycursornot_visited_days

list_message_blasts

List Message Blasts

Message Blast templates (automated and one-time) and the blasts scheduled to go out. Reads Promotion > Message Blasts: every automated template with its trigger and whether it is on, every one-time template, and the blasts scheduled for later. send_message_blast sends a one-time message; estimate_message_blast counts recipients and SMS cost first.

無需輸入參數。

list_notifications

List notifications

Notifications from the panel's bell: new bookings, changes, cancellations, reviews. Reads the notifications Booksy shows under the bell in the panel, newest first. Client chat is not included. Reading does not mark them seen.

輸入參數pageper_pageunread_only

list_reviews

List reviews

Client reviews of your business with rating, text, services, staff and your reply. Reads the reviews on your Booksy profile, newest first by default: star rating, text, the client's name as Booksy shows it, services, staff, visit date and your reply if you wrote one. Also returns the average rating and the count per star. Reply with reply_to_review.

輸入參數pagesortper_page

list_services

List services

Your service menu with category, variants, duration, price and the staff who offer each. Reads the services of the business: name, category, description, whether clients can book it online, and its variants with duration in minutes, price (number and as shown, with currency), price type and the staff IDs who perform it. create_appointment and find_open_slots take service_id (its first variant) or a variant_id for another variant.

無需輸入參數。

list_staff

List staff

Staff members with their working hours for a week and the services they offer. Reads the staff of the business: name, position, email, phone, access level, whether clients see them, the services each one performs, and working hours for each day of one week (Monday to Sunday, from Shifts, time off included). Use staff_id in other tools.

輸入參數week_start_date

list_time_off

List time off

Staff time off and blocked hours in a date range. Lists time off from Shifts (kind time_off: dates, hours only when it is part of a day) and blocked hours in the calendar (kind block: date-times) between two days, 31 at most. time_off_id goes to remove_time_off.

輸入參數to必填from必填staff_id

remove_time_off

Remove time off

Remove time off or a blocked period so the time can be booked again. Deletes one time off (off-…) or one calendar block (block-…). It reaches no client.

輸入參數staff_id必填time_off_id必填

reply_to_review

Reply to review

Post or change your public reply to a client's review. Writes your reply under one review on your Booksy profile, the way the Reviews page does. A second call replaces the reply. Everyone who sees your profile sees it and the reviewer is told.

輸入參數reply必填review_id必填

reschedule_appointment

Reschedule appointment

Move an appointment to a new start time, and optionally to another staff member. Moves every service of the appointment by the same amount, so the first one starts at start. Booksy's dry run checks the new slot first and a busy one is refused. The client hears about it only with notify_client. Booksy refuses appointments it no longer lets you change (can in get_appointment).

輸入參數start必填staff_idnotify_clientappointment_id必填

send_message_blast

Send Message Blast

Send one message to chosen clients by email, SMS or push notification. Sends one Message Blast now to the clients you list, by email, SMS or a push notification to the Booksy Client App, as Promotion > Message Blasts > Create your own message does. Where the law asks for marketing consent (EU), only the listed clients who agreed get it; the call fails when none can. SMS comes from an automated number, so clients cannot reply, and uses the plan's text allowance. Run estimate_message_blast first to see the count and cost. Needs a paid Booksy plan: on the free trial Booksy refuses one-time messages.

輸入參數channel必填message必填subjectclient_ids必填

update_client

Update client

Change a client card's name, phone, email, birthday or private note. Changes only the fields given and leaves the rest of the card as it is. The note replaces the card's private note; add_client_note adds a line instead. The client is not told.

輸入參數namenoteemailphonebirthdayclient_id必填

版本歷史

2
  1. v1.0.2最新Oct 24, 2026
  2. v1.0.0Oct 23, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Cotlet 整合