Skip to content

Commit 944f22e

Browse files
committed
README: absolute links and images, so they also work on PyPI
1 parent 33a5f4f commit 944f22e

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

‎README.md‎

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ BookingKoala has no public API and no official MCP server. Its API key only conn
88

99
- **MCP server** for Claude Code, Claude Desktop, Cursor, Codex and any MCP client, over stdio or HTTP. [Setup](#mcp-server)
1010
- **REST API** on `http://127.0.0.1:8787/api/v1/bookingkoala`, with OpenAPI docs at `/docs`. [Setup](#rest-api)
11-
- **Python**: `call("list_bookings", status="unassigned")`, plus 12 ready scripts in [`examples/`](examples/).
11+
- **Python**: `call("list_bookings", status="unassigned")`, plus 12 ready scripts in [`examples/`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/).
1212

1313
It is for technical people who want to run it themselves, **for noncommercial use only** ([license](#license)). If you want it running 24/7 on a server, kept working when BookingKoala changes its app, for a team or a business, use the [hosted version at cotlet.dev](https://cotlet.dev/integrations/bookingkoala-api-mcp-server).
1414

1515
[![BookingKoala MCP server](https://img.shields.io/badge/BookingKoala%20MCP-17%20tools-6d4aef)](#all-17-tools)
1616
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-141318)](#requirements)
17-
[![License: PolyForm Noncommercial 1.0.0](https://img.shields.io/badge/license-PolyForm%20Noncommercial-141318)](LICENSE)
17+
[![License: PolyForm Noncommercial 1.0.0](https://img.shields.io/badge/license-PolyForm%20Noncommercial-141318)](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/LICENSE)
1818
[![MCP Badge](https://lobehub.com/badge/mcp/cotletdev-bookingkoala-api-mcp-server)](https://lobehub.com/mcp/cotletdev-bookingkoala-api-mcp-server)
1919

2020
```bash
@@ -86,7 +86,7 @@ bookingkoala-mcp --version
8686

8787
With [uv](https://docs.astral.sh/uv/): `uv venv && uv pip install -e .`, then `uv run bookingkoala-mcp ...`.
8888

89-
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`](AGENTS.md) tells it every step, and it asks you only for the steps in Chrome.
89+
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`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/AGENTS.md) tells it every step, and it asks you only for the steps in Chrome.
9090

9191
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.
9292

@@ -177,7 +177,7 @@ claude mcp add bookingkoala -- uvx bookingkoala-api-mcp mcp --read-only
177177

178178
### Cursor
179179

180-
`~/.cursor/mcp.json`, the same block as Claude Desktop. A ready copy is in [`mcp.json`](mcp.json).
180+
`~/.cursor/mcp.json`, the same block as Claude Desktop. A ready copy is in [`mcp.json`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/mcp.json).
181181

182182
### Codex
183183

@@ -256,22 +256,22 @@ call("assign_provider", booking_id=212, provider_id=3)
256256

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

259-
Ready scripts in [`examples/`](examples/). Each prints JSON, takes `--out file.csv` or `--out file.json` where it makes sense, and `--help`:
259+
Ready scripts in [`examples/`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/). Each prints JSON, takes `--out file.csv` or `--out file.json` where it makes sense, and `--help`:
260260

261261
| Script | What it does |
262262
|---|---|
263-
| [`list_bookings.py`](examples/list_bookings.py) | Bookings by status and date range: date, arrival time, customer, address, providers, total. |
264-
| [`export_customers.py`](examples/export_customers.py) | Customers to CSV or JSON: name, email, phone, tags, note. |
265-
| [`store_dashboard.py`](examples/store_dashboard.py) | Store totals for a date range: revenue, provider pay, bookings, ratings, referrals. |
266-
| [`assign_unassigned.py`](examples/assign_unassigned.py) | Gives each unassigned job to the provider with the fewest jobs that day. Shows the plan unless you pass `--assign`. |
267-
| [`assign_provider.py`](examples/assign_provider.py) | Assigns one booking, or its whole recurring schedule, to a provider or team. |
268-
| [`reschedule_day.py`](examples/reschedule_day.py) | Moves a closed day's recurring visits to their next visit date. Plan first, `--move` to do it. |
269-
| [`cancel_booking.py`](examples/cancel_booking.py) | Cancels one booking or the rest of its schedule, with no fee, after you confirm. |
270-
| [`rebook_customer.py`](examples/rebook_customer.py) | Copies a repeat customer's last visit into a draft. `--send-quote` emails their saved quote. |
271-
| [`send_quote.py`](examples/send_quote.py) | Lists saved drafts and quotes, or emails one quote with a link to book it. |
272-
| [`add_customer.py`](examples/add_customer.py) | Adds a customer after checking the email is not in the store yet. |
273-
| [`provider_pay_report.py`](examples/provider_pay_report.py) | Provider pay totals for a pay period, then each provider's payment logs. |
274-
| [`overdue_invoices.py`](examples/overdue_invoices.py) | Unpaid invoices past due. `--remind` sends each one to its customer again. |
263+
| [`list_bookings.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/list_bookings.py) | Bookings by status and date range: date, arrival time, customer, address, providers, total. |
264+
| [`export_customers.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/export_customers.py) | Customers to CSV or JSON: name, email, phone, tags, note. |
265+
| [`store_dashboard.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/store_dashboard.py) | Store totals for a date range: revenue, provider pay, bookings, ratings, referrals. |
266+
| [`assign_unassigned.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/assign_unassigned.py) | Gives each unassigned job to the provider with the fewest jobs that day. Shows the plan unless you pass `--assign`. |
267+
| [`assign_provider.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/assign_provider.py) | Assigns one booking, or its whole recurring schedule, to a provider or team. |
268+
| [`reschedule_day.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/reschedule_day.py) | Moves a closed day's recurring visits to their next visit date. Plan first, `--move` to do it. |
269+
| [`cancel_booking.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/cancel_booking.py) | Cancels one booking or the rest of its schedule, with no fee, after you confirm. |
270+
| [`rebook_customer.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/rebook_customer.py) | Copies a repeat customer's last visit into a draft. `--send-quote` emails their saved quote. |
271+
| [`send_quote.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/send_quote.py) | Lists saved drafts and quotes, or emails one quote with a link to book it. |
272+
| [`add_customer.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/add_customer.py) | Adds a customer after checking the email is not in the store yet. |
273+
| [`provider_pay_report.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/provider_pay_report.py) | Provider pay totals for a pay period, then each provider's payment logs. |
274+
| [`overdue_invoices.py`](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/examples/overdue_invoices.py) | Unpaid invoices past due. `--remind` sends each one to its customer again. |
275275

276276
```bash
277277
python examples/assign_unassigned.py --from 2026-11-16 --to 2026-11-20
@@ -423,7 +423,7 @@ The source is public, the license is not an open source license: noncommercial u
423423

424424
## License
425425

426-
[PolyForm Noncommercial License 1.0.0](LICENSE). In short:
426+
[PolyForm Noncommercial License 1.0.0](https://github.com/cotletdev/bookingkoala-api-mcp-server/blob/main/LICENSE). In short:
427427

428428
- **Allowed:** noncommercial use: you, for your own personal purposes with your own BookingKoala account, or a charity, school, public research or government body. Changing the code, and sharing it under the same license.
429429
- **Not allowed:** any commercial use, your own business included; client work; selling or offering it, or a service built on it.
@@ -434,7 +434,7 @@ The source is public, the license is not an open source license: noncommercial u
434434
<a href="https://cotlet.dev">
435435
<picture>
436436
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-white.svg">
437-
<img src="assets/logo.svg" alt="Cotlet" width="120">
437+
<img src="https://raw.githubusercontent.com/cotletdev/bookingkoala-api-mcp-server/main/assets/logo.svg" alt="Cotlet" width="120">
438438
</picture>
439439
</a>
440440
</p>

0 commit comments

Comments
 (0)