Docs
MCP Tools

Tools Reference

Complete reference for all tenant MCP tools with input schemas.

MCP Tools Reference

All tools are scoped to the Garage specified by workspace and project query params on the MCP endpoint URL.

192 tenant tools are available on Pro and Business plans.

ToolDescriptionPermissionFeature Gate
gms.analytics.customersGet customer analytics (top customers, acquisition, lifetime value)
gms.analytics.expensesGet expense analytics (by category, monthly trends, top vendors)
gms.analytics.inventoryGet inventory analytics (stock levels, movement trends, low stock)
gms.analytics.invoicesGet invoice analytics (status breakdown, aging, collection rate)
gms.analytics.jobsGet job/service analytics (popularity, revenue by service)
gms.analytics.operationsGet operations analytics (bookings, completion rates, durations)
gms.analytics.revenueGet revenue analytics (trends, by service, top customers)
gms.analytics.techniciansGet technician performance analytics (jobs completed, revenue)
gms.authorizedDomain.addAdd an authorized email domaingarage_settings
gms.authorizedDomain.listList authorized email domains for the garagegarage_settings
gms.authorizedDomain.removeRemove an authorized email domaingarage_settings
gms.authorizedDomain.setStatusSet the approval status of an authorized email domaingarage_settings
gms.bay.archiveArchive (soft-delete) a bay
gms.bay.createCreate a new workshop bay
gms.bay.getGet a bay by ID
gms.bay.getAvailabilityGet bay availability for a time range
gms.bay.listList workshop bays
gms.bay.updateUpdate a workshop bay
gms.booking.addAttachmentAdd a file attachment to a booking
gms.booking.addPartItemAdd a parts line item to a booking
gms.booking.addServiceItemAdd a service line item to a booking
gms.booking.assignBayAssign a booking to a service bay
gms.booking.assignTechniciansAssign technicians to a booking
gms.booking.boardList bookings scheduled for a specific date (day board view)
gms.booking.createCreate a new booking with service line items
gms.booking.deleteAttachmentDelete a file attachment from a booking
gms.booking.generateInvoiceGenerate an invoice from a completed bookinginvoices
gms.booking.getGet a single booking by ID with service items, parts, and attachments
gms.booking.getInspectionGet pre-service inspection data for a booking
gms.booking.getIntakeGet vehicle intake data for a booking
gms.booking.getLinkedEstimateGet the estimate linked to a booking
gms.booking.listList bookings for the current garage with optional filters
gms.booking.listAttachmentsList file attachments for a booking
gms.booking.removePartItemRemove a parts line item from a booking
gms.booking.removeServiceItemRemove a service line item from a booking
gms.booking.statusCountsGet booking counts grouped by status for the current garage
gms.booking.transitionTransition a booking to a new status
gms.booking.updateUpdate booking details (schedule, bay, technicians, notes, etc.)
gms.booking.updateInspectionUpdate pre-service inspection data for a booking (merged with existing)
gms.booking.updateIntakeUpdate vehicle intake data for a booking (merged with existing)
gms.booking.updateServiceItemUpdate a service line item on a booking
gms.connectedAccount.getGet the Stripe Connect account for the current garage, if configured
gms.customer.createCreate a new customer
gms.customer.deleteDelete a customer
gms.customer.getGet a single customer by ID
gms.customer.listList customers for the current garage
gms.customer.listBookingsList bookings for a specific customer
gms.customer.listInvoicesList invoices for a specific customer
gms.customer.searchSearch customers by name, email, or phone
gms.customer.sendPortalWelcomeSend a customer portal welcome email with magic link
gms.customer.updateUpdate an existing customer
gms.dashboard.getFinancialOverviewGet financial overview metrics for a date rangedashboard
gms.dashboard.getOperationsSnapshotGet operations metrics for a date rangedashboard
gms.dashboard.getStatsGet high-level dashboard statistics for the current garagedashboard
gms.domain.addAdd a custom domain for the garagegarage_settings
gms.domain.deleteDelete a custom domaingarage_settings
gms.domain.listList custom domains for the current garagegarage_settings
gms.domain.markVerifiedMark a custom domain as verifiedgarage_settings
gms.estimate.convertToBookingConvert an approved estimate into a booking
gms.estimate.createCreate a new estimate
gms.estimate.createNewVersionCreate a new version of a sent/viewed estimate
gms.estimate.getGet an estimate by ID with line items and share links
gms.estimate.listList estimates for the current garage
gms.estimate.listVehicleEstimatesList estimates for a specific vehicle
gms.estimate.sendSend an estimate to the customer and return a share token
gms.estimate.updateUpdate an estimate
gms.expense.createRecord a new expense
gms.expense.deleteDelete an expense
gms.expense.getGet a single expense by ID
gms.expense.listList expenses for the current garage
gms.expense.summaryGet expense totals grouped by category for a date range
gms.expense.updateUpdate an existing expense
gms.financialAccount.createCreate a financial accountaccounting
gms.financialAccount.deleteDelete a financial accountaccounting
gms.financialAccount.getGet a financial account by IDaccounting
gms.financialAccount.getBalanceGet account balance (opening balance plus signed journal entries)accounting
gms.financialAccount.listList financial accounts (bank/cash) for the current garageaccounting
gms.financialAccount.updateUpdate a financial accountaccounting
gms.financialEntry.createCreate a manual financial journal entryaccounting
gms.financialEntry.deleteDelete a financial journal entryaccounting
gms.financialEntry.getGet a financial journal entry by IDaccounting
gms.financialEntry.listList financial journal entries for the current garageaccounting
gms.financialEntry.updateUpdate a financial journal entryaccounting
gms.installation.addWidgetDomainAdd a domain to the widget allow-listbooking_widget
gms.installation.getConfigGet booking page and widget installation configurationbooking_widget
gms.installation.listWidgetDomainsList domains allowed to embed the booking widgetbooking_widget
gms.installation.removeWidgetDomainRemove a domain from the widget allow-listbooking_widget
gms.installation.setDomainStatusApprove or reject a widget domainbooking_widget
gms.installation.updateBookingPageUpdate the public booking page configurationbooking_widget
gms.installation.updateWidgetUpdate the embeddable booking widget configurationbooking_widget
gms.inventory.adjustStockAdjust stock level for an inventory iteminventory
gms.inventory.createCreate a new inventory iteminventory
gms.inventory.deleteDelete an inventory iteminventory
gms.inventory.getGet an inventory item by IDinventory
gms.inventory.listList inventory items for the current garageinventory
gms.inventory.listMovementsList stock movements for an inventory iteminventory
gms.inventory.updateUpdate an inventory iteminventory
gms.invoice.createCreate a new invoice with line items
gms.invoice.generateFromBookingGenerate an invoice from a booking's service and part line itemsinvoices
gms.invoice.getGet a single invoice by ID with line itemsinvoices
gms.invoice.listList invoices for the current garage
gms.invoice.paymentLinkGenerate a public, tokenized payment URL for an invoice (valid 30 days)payments
gms.invoice.pdfUrlGet a short-lived presigned URL to download an invoice PDFinvoices
gms.invoice.transitionTransition an invoice to a new status
gms.invoice.updateUpdate invoice metadata (dates, notes, terms, etc.)
gms.lead.createCreate a new leadleads
gms.lead.deleteDelete a leadleads
gms.lead.getGet a lead by IDleads
gms.lead.listList CRM leads for the current garageleads
gms.lead.statsGet lead pipeline statisticsleads
gms.lead.updateUpdate a leadleads
gms.payment.dailyCollectionsGet daily payment collections grouped by methodpayments
gms.payment.getGet a payment by IDpayments
gms.payment.listList invoice payments for the current garagepayments
gms.payment.recordRecord a payment against an invoicepayments
gms.payment.refundRefund a payment (full or partial)payments
gms.purchaseOrder.createCreate a new purchase orderpurchase_orders
gms.purchaseOrder.getGet a purchase order with line itemspurchase_orders
gms.purchaseOrder.listList purchase orders for the current garagepurchase_orders
gms.purchaseOrder.receiveGoodsReceive goods against a purchase orderpurchase_orders
gms.purchaseOrder.transitionTransition a purchase order to a new statuspurchase_orders
gms.purchaseOrder.updateUpdate purchase order header fieldspurchase_orders
gms.rbac.addMemberAdd a user to the garage teamgarage_settings
gms.rbac.createExternalAssigneeCreate an external assigneegarage_settings
gms.rbac.deleteExternalAssigneeDelete an external assigneegarage_settings
gms.rbac.deleteRolePolicyRemove a permission policy from a rolegarage_settings
gms.rbac.getRolePoliciesGet permission policies for a rolegarage_settings
gms.rbac.listExternalAssigneesList external assignees for dispatchgarage_settings
gms.rbac.listMembersList garage team membersgarage_settings
gms.rbac.listRolesList garage rolesgarage_settings
gms.rbac.removeMemberRemove a user from the garage teamgarage_settings
gms.rbac.updateExternalAssigneeUpdate an external assigneegarage_settings
gms.rbac.updateMemberRoleUpdate a garage team member rolegarage_settings
gms.rbac.upsertRolePolicyAllow or deny a resource for a rolegarage_settings
gms.reception.walkInReception desk walk-in flow: create or reuse customer and vehicle, then create a confirmed bookingreception
gms.report.accountBalancesGet account balances for a date range
gms.report.actualsForecastGet actuals vs forecast report for a date range
gms.report.agedPayablesGet aged payables report as of a date
gms.report.agedReceivablesGet aged receivables report as of a date
gms.report.balanceSheetGet a balance sheet report as of a date
gms.report.cashFlowGet a cash flow report for a date range
gms.report.generalLedgerGet a general ledger report for a date range
gms.report.profitLossGet a Profit & Loss report for the garage
gms.report.taxReportGet tax report (output vs input tax) for a date range
gms.review.createCreate a review requestreviewsmarketing_reviews
gms.review.deleteDelete a review requestreviewsmarketing_reviews
gms.review.getGet a review request by IDreviewsmarketing_reviews
gms.review.listList review requests for the current garagereviewsmarketing_reviews
gms.review.statsGet review request conversion statisticsreviewsmarketing_reviews
gms.review.updateUpdate a review requestreviewsmarketing_reviews
gms.search.globalSearch customers, invoices, and bookings across the current garage
gms.service.archiveArchive (soft-delete) a service
gms.service.createCreate a new service
gms.service.getGet a service by ID
gms.service.listList services in the service catalog
gms.service.updateUpdate a service
gms.serviceCategory.createCreate a service category
gms.serviceCategory.deleteDelete a service category (only if no services reference it)
gms.serviceCategory.getGet a service category by ID
gms.serviceCategory.listList all service categories
gms.serviceCategory.updateUpdate a service category
gms.settings.getGet garage settings for the current garagegarage_settings
gms.settings.getBookingPreferencesGet booking preferences and email notification settingsgarage_settings
gms.settings.updateBookingPreferencesUpdate booking preferences and email notification settingsgarage_settings
gms.settings.upsertCreate or update garage settingsgarage_settings
gms.technician.countCount technicians in the garage
gms.technician.getGet technician detail with skills and vehicle preferences
gms.technician.getAnalyticsGet technician performance analytics
gms.technician.listList technicians with job and skill counts
gms.technician.listBookingsList bookings assigned to a technician
gms.technician.setSkillsReplace technician skills
gms.technician.setVehiclePreferencesReplace technician vehicle type preferences
gms.technician.updateDispatchUpdate technician dispatch settings
gms.technician.updateProfileUpdate technician profile fields
gms.upload.presignGet a presigned URL for uploading a file to garage storage
gms.upload.presignGetGet a presigned download URL for a stored file key
gms.vehicle.archiveArchive (soft-delete) a vehicle
gms.vehicle.createCreate a new vehicle for a customer
gms.vehicle.deleteHard-delete a vehicle (fails if linked to bookings or estimates)
gms.vehicle.getGet a vehicle by ID
gms.vehicle.getWithLinksGet a vehicle with booking/estimate link counts for delete eligibility
gms.vehicle.listList vehicles for the current garage
gms.vehicle.listBookingsList bookings for a vehicle
gms.vehicle.listByCustomerList all vehicles for a customer
gms.vehicle.listEstimatesList estimates for a vehicle
gms.vehicle.restoreRestore an archived vehicle
gms.vehicle.updateUpdate a vehicle
gms.vendor.createCreate a new vendorpurchase_orders
gms.vendor.deleteDelete a vendorpurchase_orders
gms.vendor.getGet a vendor by IDpurchase_orders
gms.vendor.listList vendors (suppliers) for the current garagepurchase_orders
gms.vendor.updateUpdate a vendorpurchase_orders

Authentication

Connect to /api/mcp?workspace={teamSlug}&project={garageSlug} with an OAuth 2.1 Bearer access token in the Authorization header — session cookies are not accepted. MCP clients obtain the token automatically: they discover the authorization server from /.well-known/oauth-protected-resource, dynamically register, then have you sign in at /auth/sign-in and consent at /consent. Tenant access is gated by the MCP_TENANT feature key (FEATURE_KEYS.MCP_TENANT).

On this page