TehProf Booking MCP Server
by tehprof
README.md
# TehProf Booking MCP Server
> Reservations & online scheduling via [Model Context Protocol](https://modelcontextprotocol.io). Connect any MCP-compatible assistant (Claude, ChatGPT, Cursor, Cline) to a live booking system — check real-time availability and create reservations, no custom integration code.
[](LICENSE)
[](https://modelcontextprotocol.io)
[](package.json)
[](https://spec.modelcontextprotocol.io/specification/basic/transports/)
[](#tools)
[](https://registry.modelcontextprotocol.io/v0.1/servers?search=kz.tehprof.booking)
**TehProf Booking** ([booking.tehprof.kz](https://booking.tehprof.kz/lp)) is a SaaS reservation and online-scheduling platform for hotels, resorts, nightly rentals, salons, clinics and real-estate agencies — a single resource calendar with money tracking, a public booking page, an embeddable widget and native Bitrix24 integration. This server exposes **8 AI tools** over the platform's public REST API.
Zero installation: use the hosted endpoint at `https://booking.tehprof.kz/mcp`.
Published in the **official MCP Registry** as [`kz.tehprof.booking/reservations`](https://registry.modelcontextprotocol.io/v0.1/servers?search=kz.tehprof.booking).
## Quick Start
**Claude Code:**
```bash
claude mcp add --transport http tehprof-booking https://booking.tehprof.kz/mcp
```
**Claude Desktop / other MCP clients** (Streamable HTTP):
```json
{
"mcpServers": {
"tehprof-booking": {
"type": "streamable-http",
"url": "https://booking.tehprof.kz/mcp"
}
}
}
```
With an API key (enables reservation management):
```json
{
"mcpServers": {
"tehprof-booking": {
"type": "streamable-http",
"url": "https://booking.tehprof.kz/mcp",
"headers": { "Authorization": "Bearer bk_live_..." }
}
}
}
```
## Tools
Anonymous (by a company's public slug — e.g. the slug from its public booking page `booking.tehprof.kz/p/<slug>/`):
| Tool | What it does |
|------|--------------|
| `get_branding` | Company profile: name, tagline, contacts, branding |
| `list_resources` | Bookable resources (rooms, cabins, specialists, properties) with pricing info |
| `list_groups` | Resource groups/categories |
| `check_availability` | Real-time availability for a resource and date range |
With an API key `bk_live_...` (issued in the Booking developer portal, scoped per tenant):
| Tool | What it does |
|------|--------------|
| `create_reservation` | Create a reservation (guest name, phone, dates) |
| `list_reservations` | List reservations with filters |
| `get_reservation` | Reservation status by id |
| `cancel_reservation` | Cancel a reservation |
## Server Discovery
- Discovery card: [`https://booking.tehprof.kz/.well-known/mcp.json`](https://booking.tehprof.kz/.well-known/mcp.json)
- AI manifest: [`https://booking.tehprof.kz/llms.txt`](https://booking.tehprof.kz/llms.txt) · extended: [`/llms-full.txt`](https://booking.tehprof.kz/llms-full.txt)
- REST API docs (Redoc): [`https://booking.tehprof.kz/api/public/v1/docs`](https://booking.tehprof.kz/api/public/v1/docs)
- OpenAPI 3.1 contract: [`https://booking.tehprof.kz/api/public/v1/openapi.json`](https://booking.tehprof.kz/api/public/v1/openapi.json)
## Architecture
This server is a thin, stateless Streamable HTTP wrapper over the Booking **public REST API** (`/api/public/v1`). It holds no data and no secrets:
- **Bearer pass-through** — your `bk_live_` API key is never validated or stored by the MCP layer; it is forwarded to the REST API, where tenant isolation and scopes are enforced.
- Anonymous tools work without any key.
- DNS-rebinding protection, loopback-bound upstream, no `Authorization` logging.
```
MCP client ──Streamable HTTP──▶ booking-mcp ──HTTPS──▶ Booking public REST API
(this repo) (auth, scopes, tenant isolation)
```
## Self-Hosting
The hosted endpoint is the recommended way to use this server. Running your own copy is mostly useful for development:
```bash
npm ci && npm run build
BOOKING_API_URL=https://booking.tehprof.kz MCP_HOST=0.0.0.0 npm start
```
Or with Docker:
```bash
docker build -t booking-mcp .
docker run -p 8107:8107 booking-mcp
```
Environment variables: `MCP_PORT` (default 8107), `MCP_HOST` (default 127.0.0.1), `MCP_PUBLIC_URL`, `BOOKING_API_URL`.
## Security
- The MCP layer is read-only with respect to credentials: keys pass through to the REST API.
- Reservation writes require an API key with the `reservations:write` scope; keys are tenant-scoped.
- Anonymous surface exposes only what a company already publishes on its public booking page.
## License
[MIT](LICENSE) © TehProf.kz
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues