Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

BookingKoala by Cotlet

PYPI · BOOKINGKOALA-API-MCP · 3 COMPONENTS

Bookings, providers and customers in your BookingKoala store.

64 Trust /100

Last scanned (2 hours ago)

Scores higher than 63% of PyPI servers

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 35 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency84
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to cotletdev/bookingkoala-api-mcp-server). View diagnostics → Pass
  • License check failed: the license (PolyForm-Noncommercial-1.0.0) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2911 tokens (~153/item across 19 items; 17 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 24 Oct 26 64

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Oct 2026 · Analysed pypi/bookingkoala-api-mcp@1.0.3

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo cotletdev/bookingkoala-api-mcp-server
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/cotletdev/bookingkoala-api-mcp-server/.github/workflows/publish.yml@refs/tags/v1.0.3
Rekor log index 3439418115
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:4d807bb7342c44cac826bb7c0167c2fdef6a71de6481553da757f5f587fcc040

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 35 packages
Packages resolved 35
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 17 exposed · ~2,792 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
assign_provider ~153

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.

NameTypeReqDescription
booking_idintegeryesBooking id from list_bookings.
even_if_unavailableboolean–Assign although the provider is not available then. Default: false.
provider_idintegeryesProvider or team id from list_providers.
whole_scheduleboolean–Assign every later booking of the recurring schedule too. Default: false.

No output schema declared.

No examples provided.

cancel_booking ~148

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.

NameTypeReqDescription
booking_idintegeryesBooking id from list_bookings.
notifyboolean–Email the customer and providers about it. Default: false.
reasonstring–Why it is cancelled (kept on the booking).
whole_scheduleboolean–Cancel the whole recurring schedule from this booking on. Default: false.

No output schema declared.

No examples provided.

create_booking ~98

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.

NameTypeReqDescription
from_booking_idintegeryesBooking to copy, from list_bookings.

No output schema declared.

No examples provided.

create_customer ~268

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.

NameTypeReqDescription
addressstring–Street address, e.g. 540 W 28th Street, New York, NY, USA.
aptstring–Apartment or suite.
citystring–City.
countrystring–Country, e.g. United States.
emailstringyesEmail address. BookingKoala sends the customer an invitation to set a password.
first_namestringyesFirst name.
genderstring–Gender, optional.
last_namestringyesLast name.
phonestring–Phone number, digits only for US numbers, e.g. 2125550147.
sms_notificationsboolean–Text the customer booking updates. Default: false.
statestring–State, e.g. New York.
zipcodestring–ZIP or postal code.

No output schema declared.

No examples provided.

dashboard ~128

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.

NameTypeReqDescription
end_datestring–YYYY-MM-DD, included. Default: last day of this month.
start_datestring–YYYY-MM-DD. Default: first day of this month.

No output schema declared.

No examples provided.

get_booking ~87

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.

NameTypeReqDescription
booking_idintegeryesBooking id from list_bookings.

No output schema declared.

No examples provided.

get_customer ~109

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.

NameTypeReqDescription
customer_idintegeryescustomer_id from list_customers.

No output schema declared.

No examples provided.

get_provider ~139

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.

NameTypeReqDescription
payment_logs_limitinteger–Newest payment logs to include, 1 to 50. Default: 20.
provider_idintegeryesprovider_id from list_providers (a team too).

No output schema declared.

No examples provided.

list_bookings ~214

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.

NameTypeReqDescription
cursorstring–next_cursor from the previous call.
customer_idinteger–Only this customer's bookings.
end_datestring–Up to this date.
limitinteger–Page size. Default: 20.
provider_idinteger–Only this provider's bookings.
searchstring–Customer name, email or phone.
start_datestring–From this date.
statusstring–Which bookings: upcoming (default), today, unassigned, completed, pending (charge pending), declined (charge declined), paused or all.

No output schema declared.

No examples provided.

list_charges ~206

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.

NameTypeReqDescription
cursorstring–next_cursor from the previous call.
end_datestring–Last booking day, YYYY-MM-DD. Default: no upper bound.
limitinteger–1 to 100. Default: 20.
searchstring–Customer name, email or phone, or a booking id.
start_datestring–First booking day, YYYY-MM-DD. Default: no lower bound.

No output schema declared.

No examples provided.

list_customers ~137

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.

NameTypeReqDescription
cursorstring–next_cursor from the previous call.
limitinteger–1 to 100. Default: 20.
searchstring–Part of a name, email or phone number.
statusstring–active or inactive (deactivated) customers. Default: active.

No output schema declared.

No examples provided.

list_drafts ~97

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.

NameTypeReqDescription
cursorstring–next_cursor from the previous call.
limitinteger–Page size. Default: 20.
searchstring–Customer name or email.

No output schema declared.

No examples provided.

list_invoices ~248

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.

NameTypeReqDescription
cursorstring–next_cursor from the previous call.
customer_idinteger–Only this customer's invoices.
end_datestring–To this issue day, YYYY-MM-DD. Default: a year ahead.
limitinteger–1 to 100. Default: 20.
pay_statusstring–Payment status filter.
searchstring–Invoice number, customer email, name or phone.
start_datestring–From this issue day, YYYY-MM-DD. Default: 2 years ago.

No output schema declared.

No examples provided.

list_providers ~184

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.

NameTypeReqDescription
cursorstring–next_cursor from the previous call.
limitinteger–1 to 100. Default: 20.
searchstring–Part of a name, email or phone number.
statusstring–active or inactive (deactivated) providers. Default: active.
typestring–all: providers and teams (default). team: teams only.

No output schema declared.

No examples provided.

reschedule_booking ~171

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.

NameTypeReqDescription
booking_idintegeryesBooking id from list_bookings.
datestringyesNew date: one of the later visit dates of the booking's recurring schedule.
notifyboolean–Email the customer and providers about the change. Default: false.

No output schema declared.

No examples provided.

resend_invoice ~191

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.

NameTypeReqDescription
attach_pdfboolean–Attach the PDF to the email. Default: as the invoice.
emailboolean–Email the invoice to the customer. Default: true.
invoice_idstringyesinvoice_id from list_invoices.
smsboolean–Text the invoice link to the customer. Default: false.

No output schema declared.

No examples provided.

send_quote ~214

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.

NameTypeReqDescription
draft_idintegeryesId of a quote from list_drafts.
emailstring–Send to this address. Default: the quote's customer.
expires_onstring–Last day the customer can book it, YYYY-MM-DD. Default: as saved, else a month ahead.
messagestring–Email body (HTML allowed). Default: the store's Send quote template.
subjectstring–Email subject. Default: the store's.

No output schema declared.

No examples provided.

Install

How do I install the BookingKoala by Cotlet MCP server?

BookingKoala by Cotlet runs locally as a PyPI package, launched with uvx bookingkoala-api-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · bookingkoala-api-mcp

# add to Claude Code
claude mcp add dev-cotlet-bookingkoala -- uvx bookingkoala-api-mcp
Common questions

What is the BookingKoala by Cotlet MCP server?

BookingKoala by Cotlet is an MCP server listed in the public MCP registry as dev.cotlet/bookingkoala. Bookings, providers and customers in your BookingKoala store. This page covers its PyPI package (bookingkoala-api-mcp).

Is the BookingKoala by Cotlet MCP server safe to use?

BookingKoala by Cotlet scores 64 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 October 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the BookingKoala by Cotlet MCP server expose?

BookingKoala by Cotlet exposes 17 tools: assign_provider, cancel_booking, create_booking, create_customer, dashboard, and 12 more. Their descriptions and schemas cost roughly 2,792 tokens of context every time the server is loaded.

Is the BookingKoala by Cotlet MCP server still maintained?

BookingKoala by Cotlet is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the BookingKoala by Cotlet MCP server under?

BookingKoala by Cotlet declares the PolyForm-Noncommercial-1.0.0 licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.