Zenbooker MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.20.4Updated Nov 7, 2026

Read Zenbooker jobs, customers, invoices and timeslots; add customers and job notes.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinanceBusiness & Commerce

Overview

AI-generated overview

Read-only-plus Zenbooker access for home-service businesses: browse jobs, customers, invoices, transactions, services, territories and timeslots, and add…

What you can do
  • List and inspect jobs and recurring bookings, with filters by customer, provider, territory, status and time window
  • Search and read customers, including by name, email, phone or address radius, and create new customer records
  • Review invoices and payment transactions with line items, totals, amounts paid and due
  • Browse services, service territories, team members and incoming service requests
  • Check whether a location is in the service area and fetch available booking timeslots for a territory
  • Add internal notes to a job and check monthly usage or plan status
When to use it
Useful when you want an assistant to answer questions about a home-service business's schedule, customers, billing or coverage area, or to look up open timeslots and add a customer or job note without opening Zenbooker itself.
Requirements
Remote hosted endpoint; no local install. Connect with the MCP URL only and sign in through the server's OAuth login page using your Zenbooker credentials. Do not add an Authorization header or API key to the client config. A free plan allows 50 tool calls per month; paid plans raise the limit.
Before you install
Two tools write data: creating a customer (no duplicate check, so search first) and appending a job note (notes cannot be deleted through this server). The server asks for Zenbooker account credentials via OAuth and handles customer contact details, addresses and payment/invoice data. Paid plans are billed through Stripe Checkout links, and cancellation gives no refund for the current period.

Installation

In SourceWeft

  1. Open Zenbooker MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fzenbooker/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "zenbooker-by-usefulapi": {
      "type": "http",
      "url": "https://zenbooker.usefulapi.io/mcp"
    }
  }
}

README

Zenbooker MCP by usefulapi

Use Zenbooker from Claude, Cursor, or any MCP client — read your home-service business's jobs, recurring bookings, customers, invoices, transactions, services, territories, team members and service requests, check service areas and open timeslots, and add customers and job notes. Hosted, no local install: connect with your Zenbooker API key.

Live endpoint: https://zenbooker.usefulapi.io/mcp · Homepage: https://usefulapi.io/zenbooker

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://zenbooker.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http zenbooker https://zenbooker.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "zenbooker": {      "url": "https://zenbooker.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Zenbooker credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/zenbooker/

Tools

ToolTypeWhat it does
zenbooker_list_jobsreadList jobs
zenbooker_get_jobreadGet job
zenbooker_add_job_notewriteAdd a note to a job
zenbooker_list_recurring_bookingsreadList recurring bookings
zenbooker_get_recurring_bookingreadGet recurring booking
zenbooker_list_customersreadList customers
zenbooker_get_customerreadGet customer
zenbooker_create_customerwriteCreate customer
zenbooker_list_invoicesreadList invoices
zenbooker_get_invoicereadGet invoice
zenbooker_list_transactionsreadList transactions
zenbooker_get_transactionreadGet transaction
zenbooker_list_servicesreadList services
zenbooker_get_servicereadGet service
zenbooker_list_territoriesreadList service territories
zenbooker_get_territoryreadGet service territory
zenbooker_list_team_membersreadList team members
zenbooker_get_team_memberreadGet team member
zenbooker_list_service_requestsreadList service requests
zenbooker_check_service_areareadCheck service area
zenbooker_get_timeslotsreadGet available time slots
zenbooker_usage_statusmetaUsage status (free-tier meter)
zenbooker_request_featuremetaRequest a missing feature
zenbooker_upgrademetaUpgrade to Pro or Pro+
zenbooker_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per API key)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with zenbooker_upgrade (it returns a Stripe Checkout link). Cancel any time with zenbooker_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running zenbooker_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by Zenbooker.

Source: servers/zenbooker/README.md at commit 4046075

Tools

21

zenbooker_list_jobs

List jobs

List jobs (booked appointments), by start time by default, with filters: customer id, assigned team member id, territory id, recurring booking id, status, canceled flag, creation time and scheduled start window. Returns { results, count, has_more, next_cursor }; pass next_cursor as cursor for the next page. GET /v1/jobs.

Parameterslimitcursorstatussort_byassignedcanceledcustomerterritorysort_ordercreated_aftercreated_beforestart_date_max+2 more

zenbooker_get_job

Get job

One job by id: appointment time, status, customer, service address, services and fields, assigned providers, notes and invoice summary. GET /v1/jobs/{id}.

Parametersjob_idrequired

zenbooker_add_job_note

Add a note to a job

WRITE: add an internal note (text) to a job. Notes are appended, never replaced, and cannot be deleted through this server, so check the job first. POST /v1/jobs/{id}/notes.

Parameterstextrequiredjob_idrequired

zenbooker_list_recurring_bookings

List recurring bookings

List recurring bookings (repeating job series), by status (active or canceled), customer id, assigned team member id, territory id or creation time. Max 40 per page. Returns { results, count, has_more, next_cursor }. GET /v1/recurring.

Parameterslimitcursorstatusassignedcustomerterritorysort_ordercreated_aftercreated_before

zenbooker_get_recurring_booking

Get recurring booking

One recurring booking by id: first job date, job count, time slot, status, territory, service, pricing and its job ids. GET /v1/recurring/{id}.

Parametersrecurring_booking_idrequired

zenbooker_list_customers

List customers

List or search customers by name, email or phone, by creation time, or by default address near a place (location + radius in miles). Returns { results, count, has_more, next_cursor }. GET /v1/customers.

Parametersnameemaillimitphonecursorradiuslocationsort_ordercreated_aftercreated_before

zenbooker_get_customer

Get customer

One customer by id: contact details, notes, addresses, job and recurring booking ids and linked Stripe customer. GET /v1/customers/{id}.

Parameterscustomer_idrequired

zenbooker_create_customer

Create customer

WRITE: create a new customer record in Zenbooker (name required; phone and email optional). It does not look for an existing customer, so search with zenbooker_list_customers first to avoid duplicates. POST /v1/customers.

Parametersnamerequiredemailphone

zenbooker_list_invoices

List invoices

List invoices, optionally by status (draft, unpaid, partial_paid, paid, void), customer id, territory id or creation time. Each invoice has line items, totals, amount paid and due and its transactions. Returns { results, count, has_more, next_cursor }. GET /v1/invoices.

Parameterslimitcursorstatussort_bycustomerterritorysort_ordercreated_aftercreated_before

zenbooker_get_invoice

Get invoice

One invoice by id: recipient, line items, discounts, tax, totals, amount paid and due, status and transactions. GET /v1/invoices/{id}.

Parametersinvoice_idrequired

zenbooker_list_transactions

List transactions

List payment transactions, optionally by type (stripe_payment, external_transaction), payment method, status (succeeded, failed, voided), customer id, territory id, creation time or payment date. Returns { results, count, has_more, next_cursor }. GET /v1/transactions.

Parameterstypelimitcursorstatussort_bycustomerterritorysort_ordercreated_aftercreated_beforepayment_methodtransaction_date_after+1 more

zenbooker_get_transaction

Get transaction

One payment transaction by id: status, type, method, amount, invoice and customer ids, Stripe references. GET /v1/transactions/{id}.

Parameterstransaction_idrequired

zenbooker_list_services

List services

List the services a business offers, with pricing method, base price and duration, option sections and recurring frequencies. GET /v1/services.

Parameterslimitcursoris_visiblesort_ordercategory_idcreated_aftercreated_before

zenbooker_get_service

Get service

One service by id: pricing, duration, option sections and their options. GET /v1/services/{id}.

Parametersservice_idrequired

zenbooker_list_territories

List service territories

List the service territories (areas a business serves) with timezone, service area, providers and operating hours. Use the ids to filter jobs and invoices or to look up time slots. GET /v1/territories.

Parametersnamelimitcursorenabledsort_ordercreated_aftercreated_before

zenbooker_get_territory

Get service territory

One service territory by id. GET /v1/territories/{id}.

Parametersterritory_idrequired

zenbooker_list_team_members

List team members

List team members (staff and service providers) with role, status, assigned territories, skill tags and work hours. Use the ids to filter jobs by assigned provider. GET /v1/team_members.

Parametersemaillimitcursorterritorysort_orderdeactivatedcreated_aftercreated_beforeservice_provider

zenbooker_get_team_member

Get team member

One team member by id: contact details, role, status, territories, skill tags and work hours. GET /v1/team_members/{id}.

Parametersteam_member_idrequired

zenbooker_list_service_requests

List service requests

List incoming service requests (booking requests and quote requests) with status, customer, territory, duration, requested dates, services and pricing. Returns { results, count, has_more, next_cursor }. GET /v1/service_requests.

Parameterslimitcursorcustomerterritorysort_orderrequest_typecreated_aftercreated_before

zenbooker_check_service_area

Check service area

Check whether a location is inside the business's service area: returns in_service_area, the matching territory and other territories that serve it (or the closest territory when it is outside every area). Give a postal code, an address, or lat + lng. GET /v1/scheduling/service_area_check.

Parameterslatlngaddresspostal_code

zenbooker_get_timeslots

Get available time slots

Available booking time slots for a service territory, grouped by day (days[].timeslots[] with start, end and id). Needs the territory id (zenbooker_list_territories or zenbooker_check_service_area) and the service duration in minutes. GET /v1/scheduling/timeslots.

Parameterslatlngdatedaysdurationrequiredterritoryrequiredrequired_skillsservice_providerstimeslot_templatemin_providers_needed

Version history

18
  1. v1.20.4LatestNov 7, 2026
  2. v1.19.3Nov 5, 2026
  3. v1.19.2Nov 5, 2026
  4. v1.19.1Nov 4, 2026
  5. v1.19.0Nov 3, 2026
  6. v1.18.1Nov 3, 2026
  7. v1.17.0Nov 1, 2026
  8. v1.15.0Oct 31, 2026
  9. v1.14.0Oct 31, 2026
  10. v1.13.2Oct 30, 2026
  11. v1.13.0Oct 30, 2026
  12. v1.8.0Oct 26, 2026
  13. v1.5.3Oct 25, 2026
  14. v1.5.0Oct 25, 2026
  15. v1.4.0Oct 24, 2026
  16. v1.1.0Oct 23, 2026
  17. v1.0.1Oct 22, 2026
  18. v1.0.0Oct 21, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations