BookingKoala by Cotlet

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

Bookings, providers and customers in your BookingKoala store.

發布方自己的服務:Cotlet

已驗證Streamable HTTP可網頁執行效率與工作流金融商業與電商

概覽

AI 產生的概覽

非官方的 BookingKoala 工具,讓助理在你自己的店家帳號中查看與修改預約、客戶、服務人員、報價、發票與店家統計。

可以做什麼
  • 列出、查看與建立預約,指派服務人員或團隊,延後週期性到府服務,取消預約
  • 列出草稿與報價,並把已儲存的報價連同預約連結以電子郵件寄給客戶
  • 搜尋與查看客戶、新增客戶,查看服務人員與團隊及其評價和付款紀錄
  • 列出請款與發票,以電子郵件或簡訊重寄發票,依日期區間取得店家儀表板彙總
  • 以游標翻頁,並把列表工具回傳的 id 傳給明細與寫入工具
適用情境
適合使用 BookingKoala 的清潔與到府服務業者,讓助理處理未指派的工單、追蹤逾期發票、為停業日重新安排到府服務,或回報營收與服務人員報酬。也適合把預約與客戶匯出成 CSV 的腳本情境。
執行需求
可使用 Cotlet 託管端點,需 OAuth 登入以及來自 cotlet.dev 的 Authorization Bearer API 金鑰;或在本機執行 Python 套件(Python 3.11 以上),以 uvx 啟動。本機版需要已登入店家後台的 Google Chrome,或以 BOOKINGKOALA_AUTH_TOKEN 與 BOOKINGKOALA_STORE 貼上工作階段 Cookie。需要店家管理員帳號,工具權限受 BookingKoala 角色限制。
安裝前請注意
寫入類工具會影響真實的人:指派會通知服務人員,報價與發票會以電子郵件或簡訊寄給客戶,新客戶會收到設定密碼的邀請信,取消或改期可能通知雙方。本機工作階段檔案可讓持有者以你的身分操作後台,請勿放入 git 或共用資料夾。託管版試用 7 天後依點數計費。退款功能刻意未提供。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

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

README

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

Yes, ChatGPT, Claude and other AI agents can work in your BookingKoala account. That includes Cursor, Codex, OpenClaw and any MCP client, plus automations in n8n, Make and Zapier. Ask in plain words, and the AI finds unassigned bookings, assigns providers, drafts quotes, follows up on unpaid invoices and reports on your store. 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: 17 BookingKoala tools for AI assistants and scripts.

What you can ask

Go through the unassigned folder for this week. Give each job to the free provider with the fewest bookings that day, and tell me which jobs nobody can take.

Thursday is a storm day. Move every Thursday booking to its next visit and email the customers and providers.

Which invoices are more than 7 days overdue? Send each customer the invoice again.

How much revenue and provider pay did we have from 1 to 15 November?

Two ways to get it

Ready to use, at CotletRun it yourself, this repo
Forcleaning and home service business ownersdevelopers
Setupsign in to BookingKoala 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 cleaning and home service business owners who want ChatGPT, Claude or another AI agent to work in BookingKoala for them, with nothing to install.

Start free at cotlet.dev →

Run it yourself

A BookingKoala API and a BookingKoala MCP server you run on your own computer, in Python, on the session of your own Google Chrome. 17 of the 18 BookingKoala tools we run in production at Cotlet: bookings, drafts and quotes, customers, providers and teams, charges, invoices and the store dashboard.

BookingKoala has no public API and no official MCP server. Its API key only connects Zapier and Make, which react to new events and can write back one thing, a lead. 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/bookingkoala, with OpenAPI docs at /docs. Setup
  • Python: call("list_bookings", status="unassigned"), plus 12 ready scripts in examples/.

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

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

bash
uv tool install bookingkoala-api-mcp                  # or: pip install bookingkoala-api-mcpbookingkoala-mcp connect                           # reads your BookingKoala session from Chromebookingkoala-mcp call list_bookings status=upcomingclaude mcp add bookingkoala -- uvx bookingkoala-api-mcp mcp

Contents

Questions from BookingKoala users

Does BookingKoala have an API? Not a public one. BookingKoala publishes no REST API docs. The API key under Settings > General > Apps & Integrations only connects Zapier and Make: triggers for new or updated bookings, customers, providers, quotes, ratings and invoices, and one action, Create Lead. It cannot look up past bookings, assign a provider, reschedule, cancel or resend an invoice. This repo and Cotlet give you 17 BookingKoala tools as a REST API and an MCP server.

Can I get a BookingKoala API key? BookingKoala's own key only connects Zapier and Make. With Cotlet you get your own API key that works with your BookingKoala store, for scripts, n8n, Make, Zapier or any HTTP client. This repo needs no key: it runs on your computer, on your own BookingKoala session.

Is there an official ChatGPT integration for BookingKoala? No. BookingKoala has no official ChatGPT or Claude connector. Cotlet is an unofficial one that works today, in the ChatGPT and Claude apps and in any AI agent that takes an MCP server.

How do I connect BookingKoala to ChatGPT? Sign up at cotlet.dev, sign in to BookingKoala once in your Cloud Browser there, and add Cotlet to ChatGPT, following the steps in your account. Then ask ChatGPT about your BookingKoala 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 BookingKoala bookings? Yes, with Cotlet. It lists today's and unassigned bookings, assigns providers, reschedules, drafts quotes and checks what is unpaid. It shows you every change first.

Can I automate BookingKoala with Zapier, Make or n8n? BookingKoala's own key only connects Zapier and Make for new-event triggers and one action, Create Lead. With Cotlet, n8n, Make and Zapier can also read past bookings, assign providers and work with quotes and invoices.

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 BookingKoala for you.

Do I need to be technical? For Cotlet, no: you sign in to BookingKoala 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 BookingKoala account safe? Yes. Neither Cotlet nor this repo sees or stores your BookingKoala 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 BookingKoala for several accounts or clients. Does that work? Yes, with Cotlet. Each BookingKoala 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) ──▶ bookingkoala-mcp on your computer ──your session──▶ yourstore.bookingkoala.com                                                  ▲                    bookingkoala-mcp connect ─────┘ reads it once from your Chrome (DevTools Protocol)
  1. You sign in to your BookingKoala store admin in your own Chrome, the way you always do.
  2. bookingkoala-mcp connect attaches to that Chrome through the Chrome DevTools Protocol, reads the bookingkoala.com cookies and your time zone, and saves them to ~/.config/bookingkoala-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 admin API your store's own web app calls, on yourstore.bookingkoala.com, sent with curl_cffi, which copies Chrome's TLS fingerprint. The server signs each request the way the app does: a bearer token from your session and a new per-request header. No headless browser runs.

BookingKoala keeps the session for 30 days in the IRON_GATEWAY_CTX cookie of your store's host. When it 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 your BookingKoala store admin. Any Chrome or Chromium works with a debugging port.
  • macOS, Linux or Windows.
  • A store admin account. The tools can do what your BookingKoala role may do in the admin panel. A staff role with fewer permissions gets a refusal where the panel would show one.

Install

From PyPI:

bash
uv tool install bookingkoala-api-mcp       # or: pipx install bookingkoala-api-mcp, or: pip install bookingkoala-api-mcpbookingkoala-mcp --version

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

From source:

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

With uv: uv venv && uv pip install -e ., then uv run bookingkoala-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 bookingkoala-api-mcp (or pip install -U bookingkoala-api-mcp), from source git pull && pip install -e .. We copy every change of the hosted BookingKoala 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 your store admin at https://yourstore.bookingkoala.com/admin.

  3. Run:

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

text
Saved 15 BookingKoala cookies to /Users/you/.config/bookingkoala-api-mcp/session.jsonSigned in to BookingKoala as Dana Whitfield ([email protected]), sparkleclean

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 BookingKoala 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 BookingKoala 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-bookingkoala"# Linuxgoogle-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-bookingkoala"# Windows"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%USERPROFILE%\.chrome-bookingkoala"
bookingkoala-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.

Option C: paste the cookie by hand

For a server with no Chrome: in Chrome open DevTools on your store admin, Application > Cookies > https://yourstore.bookingkoala.com, copy the value of IRON_GATEWAY_CTX, then:

bash
bookingkoala-mcp connect --token          # asks for your store name, then the value (hidden)# or, without a session file:export BOOKINGKOALA_STORE=yourstore BOOKINGKOALA_AUTH_TOKEN=...

A pasted cookie is not refreshed on its own. Paste a new one when BookingKoala signs you out, at the latest after 30 days. Tools that say "today" then use this computer's time zone.

Check the session at any time:

bash
bookingkoala-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. Tools that email customers, notify providers or cancel are marked so your client asks before running them.

Claude Code

bash
claude mcp add bookingkoala -- uvx bookingkoala-api-mcp mcp# read only:claude mcp add bookingkoala -- uvx bookingkoala-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": {    "bookingkoala": {      "command": "uvx",      "args": ["bookingkoala-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.bookingkoala]command = "uvx"args = ["bookingkoala-api-mcp", "mcp"]

Over HTTP

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

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

Then ask your agent things like:

Go through the unassigned folder for this week. Give each job to the free provider with the fewest bookings that day, and tell me which jobs nobody can take.

Thursday is a storm day. Move every Thursday booking to its next visit and email the customers and providers.

Which invoices are more than 7 days overdue? Send each customer the invoice again.

How much revenue and provider pay did we have from 1 to 15 November?

REST API

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

Each tool has its own route under /api/v1/bookingkoala, 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/bookingkoala/bookings?status=unassigned&start_date=2026-11-16&end_date=2026-11-20'curl 'http://127.0.0.1:8787/api/v1/bookingkoala/bookings/212'curl -X POST http://127.0.0.1:8787/api/v1/bookingkoala/bookings/212/assign \  -H 'Content-Type: application/json' \  -d '{"provider_id": 3}'

Any tool by name, body as its arguments:

bash
curl -X POST http://127.0.0.1:8787/api/v1/bookingkoala/tools/list_customers -d '{"search": "whitfield"}'
  • GET /api/v1/bookingkoala/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. Lists return next_cursor; pass it back as cursor for the next 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
BOOKINGKOALA_MCP_TOKEN=$(openssl rand -hex 24) bookingkoala-mcp serve --host 0.0.0.0

Python and the example scripts

Straight from Python, no server needed:

python
from bookingkoala_api_mcp import callfrom bookingkoala_api_mcp.scripting import paginate, write_rows
totals = call("dashboard", start_date="2026-11-01", end_date="2026-11-15")bookings = list(paginate("list_bookings", {"status": "completed", "start_date": "2026-11-01"}, "bookings"))write_rows(bookings, "completed.csv")call("assign_provider", booking_id=212, provider_id=3)

Or one tool from the shell: bookingkoala-mcp call list_customers search=whitfield, or with a JSON object.

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

ScriptWhat it does
list_bookings.pyBookings by status and date range: date, arrival time, customer, address, providers, total.
export_customers.pyCustomers to CSV or JSON: name, email, phone, tags, note.
store_dashboard.pyStore totals for a date range: revenue, provider pay, bookings, ratings, referrals.
assign_unassigned.pyGives each unassigned job to the provider with the fewest jobs that day. Shows the plan unless you pass --assign.
assign_provider.pyAssigns one booking, or its whole recurring schedule, to a provider or team.
reschedule_day.pyMoves a closed day's recurring visits to their next visit date. Plan first, --move to do it.
cancel_booking.pyCancels one booking or the rest of its schedule, with no fee, after you confirm.
rebook_customer.pyCopies a repeat customer's last visit into a draft. --send-quote emails their saved quote.
send_quote.pyLists saved drafts and quotes, or emails one quote with a link to book it.
add_customer.pyAdds a customer after checking the email is not in the store yet.
provider_pay_report.pyProvider pay totals for a pay period, then each provider's payment logs.
overdue_invoices.pyUnpaid invoices past due. --remind sends each one to its customer again.
bash
python examples/assign_unassigned.py --from 2026-11-16 --to 2026-11-20python examples/overdue_invoices.py --days 7 --out overdue.csv

On a schedule, cron on your own computer works while it is on: 0 7 * * 1-5 cd ~/bookingkoala-api-mcp-server && .venv/bin/python examples/list_bookings.py --status today.

All 17 tools

Ids come from the list tools: booking_id from list_bookings, customer_id from list_customers, provider_id from list_providers, draft_id from list_drafts, invoice_id from list_invoices. bookingkoala-mcp tools prints this list, bookingkoala-mcp tools --json adds the input schemas.

Bookings

ToolAccessREST routeWhat it does
list_bookingsreadGET /bookingsBookings of the store: upcoming, unassigned, completed, charge pending or declined.
get_bookingreadGET /bookings/{booking_id}One booking with its price breakdown, provider pay, notes and service.
create_bookingwritePOST /bookingsStart a new booking as a copy of an existing one: same customer, service and price.
assign_providerwritePOST /bookings/{booking_id}/assignAssign a provider or team to a booking, or to its whole recurring schedule.
reschedule_bookingwritePOST /bookings/{booking_id}/reschedulePostpone a visit of a recurring booking to the date of a later visit in its schedule.
cancel_bookingwritePOST /bookings/{booking_id}/cancelCancel one booking or its whole recurring schedule, without a cancellation fee.

Drafts and quotes

ToolAccessREST routeWhat it does
list_draftsreadGET /draftsDraft bookings and quotes saved in the store, not yet booked.
send_quotewritePOST /quotes/{draft_id}/sendEmail a saved quote to the customer with a link to book it.

Customers

ToolAccessREST routeWhat it does
list_customersreadGET /customersCustomers of the store, with email and phone; search by name, email or phone.
get_customerreadGET /customers/{customer_id}One customer: contact details, addresses, booking counts and bookings not charged yet.
create_customerwritePOST /customersNew customer in the store. BookingKoala emails them an invitation to set a password.

Providers and teams

ToolAccessREST routeWhat it does
list_providersreadGET /providersProviders (cleaners, technicians) and teams of the store, in priority order.
get_providerreadGET /providers/{provider_id}One provider or team: contact, category, team members, reviews and payment logs.

Charges, invoices and reports

ToolAccessREST routeWhat it does
list_chargesreadGET /chargesCharged bookings with their payments and refunds, as the Charges page lists them.
list_invoicesreadGET /invoicesInvoices of the store or of one customer, with payment status, total and amount due.
resend_invoicewritePOST /invoices/{invoice_id}/resendSend an invoice to its customer again by email, text or both.
dashboardreadGET /dashboardStore totals for a date range: revenue, provider pay, bookings, ratings, referrals.

Never built, on purpose: your BookingKoala sign-in, password and profile, your own BookingKoala plan and billing, and anything else that moves money. Every request passes a guard that refuses those BookingKoala paths.

Not in this version

ToolWhy
refund_chargeIt sends money back to a customer's card. The hosted version has it, with your approval for each call. Here, refund in the panel under Charges.

Configuration

VariableDefaultWhat it does
BOOKINGKOALA_MCP_HOME~/.config/bookingkoala-api-mcpFolder of session.json.
BOOKINGKOALA_AUTH_TOKENValue of the IRON_GATEWAY_CTX cookie, instead of bookingkoala-mcp connect. Needs BOOKINGKOALA_STORE.
BOOKINGKOALA_STOREYour store name, yourstore for yourstore.bookingkoala.com.
BOOKINGKOALA_PROXYProxy for every request to BookingKoala, e.g. http://user:pass@host:port.
BOOKINGKOALA_MCP_READ_ONLY1 hides and refuses every tool that changes BookingKoala (same as --read-only).
BOOKINGKOALA_MCP_TOKENBearer token required by serve; needed to listen beyond 127.0.0.1.
BOOKINGKOALA_MCP_HOST, BOOKINGKOALA_MCP_PORT127.0.0.1, 8787Address of serve.

Security and your BookingKoala account

  • Your password never reaches this code. Only cookies are read, and only those of bookingkoala.com.
  • The session file is yours. session.json is created with mode 0600. Anyone who has it can act as you in your store admin, so keep it out of git and shared folders.
  • Local by default. serve binds to 127.0.0.1 and refuses another address without BOOKINGKOALA_MCP_TOKEN.
  • bookingkoala.com only. Requests and redirects outside bookingkoala.com are refused.
  • Read-only mode. --read-only or BOOKINGKOALA_MCP_READ_ONLY=1 exposes the 10 read tools only.
  • Actions reach real people. Assigning tells the provider. Quotes and invoices go to customers, a new customer gets an invitation email, and notify on a cancel or reschedule emails both sides. MCP clients ask before running them. A script does not, so try it on a test booking first.
  • You answer for what runs in your store. Keep to your normal use of BookingKoala.

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 BookingKoala signed you out. Sign in to your store admin in Chrome and run bookingkoala-mcp connect.
403app_permission_deniedYour BookingKoala role cannot do this.
403scope_deniedThe server runs read-only, or the request would touch your sign-in or billing.
403target_blockedBookingKoala refused the request or showed a bot check. Open your store admin in Chrome once, then retry.
409captcha_requiredBookingKoala asks for a CAPTCHA. Solve it in Chrome.
422invalid_inputAn argument is missing or wrong; the message names it.
429rate_limitedBookingKoala is limiting the account. Wait a few minutes.
502target_errorBookingKoala answered with an error, or changed its app. The message carries BookingKoala's own reason. git pull for the latest tools, or open an issue.

Self-hosted or hosted

This repoCotlet, hosted
Tools1718, with refund_charge
Runson your computer, while it is onin the cloud, 24/7
BookingKoala sessionyour Chrome, cookies in a local fileyour own Cloud Browser in the EU, profile encrypted with AES-256-GCM
When BookingKoala changes its appgit pull once we have fixed itfixed for you, every tool tested daily
Approvalsyour MCP client asks per callassignments, quotes, invoices and refunds 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 BookingKoala MCP server for Claude, ChatGPT or Cursor? Yes, this one runs on your machine: bookingkoala-mcp mcp for Claude Code, Claude Desktop, Cursor and Codex. ChatGPT and Claude.ai connectors need a public HTTPS URL, which the hosted BookingKoala MCP server gives you.

Do I need Zapier or a BookingKoala API key? No. The tools use your signed-in admin session, the same one your browser uses.

Can I export BookingKoala bookings or customers to CSV? Yes: python examples/list_bookings.py --status all --out bookings.csv and python examples/export_customers.py --out customers.csv, across all pages.

Can it assign providers automatically? examples/assign_unassigned.py gives each unassigned job to the provider with the fewest jobs that day, after it shows you the plan. BookingKoala still refuses a provider who is not available at that time, and the script lists those jobs.

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

What happens when BookingKoala 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 bookingkoala-mcp connect again.

Can it run on a VPS or in Docker? Technically yes, with BOOKINGKOALA_STORE and BOOKINGKOALA_AUTH_TOKEN. BookingKoala then sees your session from a datacenter IP. For an always-on setup the hosted version keeps your session in your own Cloud Browser on a fixed IP.

Can I use it for my cleaning business? For your own cleaning business, 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). BookingKoala is a trademark of its owner. This project is unofficial and not affiliated with, endorsed or sponsored by BookingKoala.

來源:README.md,提交 810c5b9

工具

17

assign_provider

Assign provider

Assign a provider or team to a booking, or to its whole recurring schedule. Puts the provider on the booking, as Assign in the booking's sidebar does, and returns the booking as get_booking shows it. BookingKoala tells the provider about the job. A provider who is not available at that time is refused unless even_if_unavailable is true.

輸入參數booking_id必填provider_id必填whole_scheduleeven_if_unavailable

cancel_booking

Cancel booking

Cancel one booking or its whole recurring schedule, without a cancellation fee. Checks the store's cancellation rules first (a store that requires a reason gets the 'Other' reason with your text), then cancels as Cancel in the booking's sidebar does, with no fee. Nobody is told unless notify is true. Cancelled bookings leave list_bookings.

輸入參數notifyreasonbooking_id必填whole_schedule

create_booking

Create booking

Start a new booking as a copy of an existing one: same customer, service and price. Copies the booking as Duplicate in its sidebar does. The copy is saved as a draft (list_drafts) with the same customer, address, service, extras and price; open form_url to pick the date and book it. Nobody is told until it is booked.

輸入參數from_booking_id必填

create_customer

Create customer

New customer in the store. BookingKoala emails them an invitation to set a password. Adds a customer as Add Customer in the admin does, with an optional address that becomes their default service address. BookingKoala emails the customer at once to set a password for the store's booking page, so use their real address. An email already in the store is refused. Returns the new customer as get_customer does.

輸入參數aptcityemail必填phonestategenderaddresscountryzipcodelast_name必填first_name必填sms_notifications

dashboard

Dashboard

Store totals for a date range: revenue, provider pay, bookings, ratings, referrals. Returns the figures of the admin Dashboard for the dates given (this month by default): revenue paid and pending, split into bookings, custom invoices and separate charges; what providers earned and what is still unpaid; booking counts, unassigned and cancelled included; ratings and referrals. Amounts are in the store's currency.

輸入參數end_datestart_date

get_booking

Get booking

One booking with its price breakdown, provider pay, notes and service. Reads a booking by id: date and arrival window, customer, address, assigned providers, the service parameters and extras, notes, the price breakdown (service total, discounts, tax, tip, final amount) and what the providers are paid for it.

輸入參數booking_id必填

get_customer

Get customer

One customer: contact details, addresses, booking counts and bookings not charged yet. Returns the customer's profile as their page in the admin shows it: name, email, phone, saved addresses (address_id is what a booking or invoice for this customer uses), counts of upcoming and cash bookings, the bookings not charged yet (past ones included), gift cards received and the referral summary. Times of day are in the store's time zone.

輸入參數customer_id必填

get_provider

Get provider

One provider or team: contact, category, team members, reviews and payment logs. Returns the provider's profile as their page in the admin shows it: contact details, IC or W2 category, priority, scheduling permissions, the team's members and lead (for a team) or the teams it belongs to, customer reviews and the newest payment logs (what the store paid the provider). Payment logs come as BookingKoala records them.

輸入參數provider_id必填payment_logs_limit

list_bookings

List bookings

Bookings of the store: upcoming, unassigned, completed, charge pending or declined. Lists bookings as the Bookings page shows them, newest schedule dates first within the filter, with the customer, address, assigned providers, total and whether it is charged. Filter by status, date range, a search on the customer, or one customer or provider. Cancelled bookings are not listed. Page with next_cursor.

輸入參數limitcursorsearchstatusend_datestart_datecustomer_idprovider_id

list_charges

List charges

Charged bookings with their payments and refunds, as the Charges page lists them. Returns bookings that were charged, newest first, each with its payments: the booking charge, extras, tips, fees and refunds, with amount, tax, refunded amount and card. Filter by booking day and search by customer. BookingKoala gives no total: next_cursor is set while a full page comes back. booking_id and payment_log_id go to refund_charge. Empty until the store charges through a connected payment processor or marks bookings paid in cash.

輸入參數limitcursorsearchend_datestart_date

list_customers

List customers

Customers of the store, with email and phone; search by name, email or phone. Returns the store's customers as the Customers page lists them, newest first, active or deactivated. BookingKoala gives no total: next_cursor is set while a full page comes back. Use customer_id in get_customer.

輸入參數limitcursorsearchstatus

list_drafts

List drafts

Draft bookings and quotes saved in the store, not yet booked. Lists the drafts and quotes on the Drafts page: customer, date when set, total and whether it is a quote. create_booking leaves a draft here. Page with next_cursor.

輸入參數limitcursorsearch

list_invoices

List invoices

Invoices of the store or of one customer, with payment status, total and amount due. Returns invoices as the Invoices page lists them, newest first: number, customer, booking or custom type, payment status (paid, unpaid, partially_paid, void, uncollectible), total, paid, amount due, issue and due dates. Filter by customer, payment status and issue dates (default: two years back to a year ahead), or search by number, email, name or phone. BookingKoala gives no total: next_cursor is set while a full page comes back. invoice_id goes to resend_invoice.

輸入參數limitcursorsearchend_datepay_statusstart_datecustomer_id

list_providers

List providers

Providers (cleaners, technicians) and teams of the store, in priority order. Returns the store's service providers as the Providers page lists them, single providers and teams together; type team returns teams only. A team lists its members' provider ids, a provider the teams it belongs to and leads. BookingKoala gives no total: next_cursor is set while a full page comes back. Use provider_id in get_provider and when assigning a booking.

輸入參數typelimitcursorsearchstatus

reschedule_booking

Reschedule booking

Postpone a visit of a recurring booking to the date of a later visit in its schedule. Works like Postpone in the booking's sidebar: the visit moves to one of the schedule's later visit dates, keeping its arrival time and price, and the booking comes back as get_booking shows it. A date outside the schedule fails with the list of allowed dates. One-time bookings cannot be postponed. Nobody is told unless notify is true. A store that charges a reschedule fee refuses the move here: charge it in the panel.

輸入參數date必填notifybooking_id必填

resend_invoice

Resend an invoice

Send an invoice to its customer again by email, text or both. Sends an existing invoice from list_invoices to its customer again, as the invoice's Resend button does: by email (default) and, with sms true, a text with the invoice link. The invoice's CC and billing addresses get the email too. attach_pdf defaults to the invoice's own setting. The invoice itself does not change. The customer gets it at once. BookingKoala refuses some resends with a warning, for example a void invoice; the error carries its message.

輸入參數smsemailattach_pdfinvoice_id必填

send_quote

Send a quote

Email a saved quote to the customer with a link to book it. Sends a quote from list_drafts as the Send quote popup does: saves the recipient and expiry date on the quote, then emails the store's Send quote template (or your subject and message) with the quote's booking link. email defaults to the quote's customer; expires_on to the saved date, else a month ahead. Only drafts saved as quotes can be sent; a plain draft is refused before you confirm. The customer gets the email at once.

輸入參數emailmessagesubjectdraft_id必填expires_on

版本歷史

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

評分

已滿足適用檢查項的 90%

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

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

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

其他 Cotlet 整合