Connectors · Accounting & finance
Toast MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Toast and the rest of your systems. It gives your agent 125 Toast actions (101 reads, 20 writes and 4 that wait for a confirmation) and holds the Toast credential itself, so the agent never does. It paces Toast's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "toast_pos.employees.list", intent: "check which Toast account is connected"}# Get employees · read · 1 upstream call- 125actionsin one signed file
- 101readlook, never change
- 20writecreate and update
- 4wait for a yesdestructive, confirmed first
Set up
Connect Toast in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Toast.
Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idToast API client ID (Toast Web > Integrations > Toast API access > Manage credentials, or issued to a partner by Toast)client_secretToast API client secrethostWhere your Toast lives: your hostrestaurant_guidYour Toast restaurant guid
account { op: "connections.requirements", service: "toast_pos" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "toast_pos.employees.list" }# get employees · read · 1 upstream callcheck { action: "toast_pos.employees.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Toast at a glance
- Sign-in
- Session login. actionlake opens the session and renews it when it expires.
- You provide
client_idclient_secret- Setup fields
hostrestaurant_guid- Limits we pace to
- 600 calls a minute, per connection
- API covered
- Toast POS (restaurant platform APIs) API Toast platform APIs as published at doc.toasttab.com/openapi (fetched 2026-10-22): orders v2, configuration v2, menus v2/v3, labor v1, analytics (ERA) v1, cash management v1, kitchen v1, stock v1, partners v1, restaurants v1, packaging v1, device details v1, order management configuration v1, restaurant availability v1, credit card partner v1
ws-api.toasttab.com - Built from
- Toast's documentation, read 22 October 2026doc.toasttab.comdoc.toasttab.comdoc.toasttab.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 88 of 101 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 6, so ask can line Toast up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Toast.
125 actions in 43 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 101readlook, never change
- 20writecreate and update
- 4destructivewait for a confirmation
Reports
2020 read · 0 write · 0 destructive
Get management group restaurant information · Post a check reporting data request for a specific time range · Post a guest reporting data request organized by payment for a specific time range · Post a labor data request for a specific time range
Orders
145 read · 8 write · 1 destructive
Get multiple orders · Post an order · Get an order · Void an order
Employees
102 read · 7 write · 1 destructive
Get employees · Add an employee · Get information about one employee · Update employee information
Shifts
52 read · 2 write · 1 destructive
Get shifts · Create a shift · Get a shift · Update a shift
Jobs
42 read · 2 write · 0 destructive
Add an external identifier · Get jobs · Get one job · Add or replace an external identifier
Stock
32 read · 1 write · 0 destructive
Get menu item inventory for a restaurant · Get inventory information for specific menu items · Update inventory information for specific menu items
Alternate payment types
22 read · 0 write · 0 destructive
Get alternative payment types · Get an alternative payment type
Break types
22 read · 0 write · 0 destructive
Get break types · Get a break type
35 more areas · 65 actions
- Cash 2
- Cash drawers 2
- Dining options 2
- Discounts 2
- Menu groups 2
- Menu items 2
- Menu option groups 2
- Menus 2
- Menus V2 2
- Menus V3 2
- No sale reasons 2
- Online ordering 2
- Partners 2
- Payments 2
- Payout reasons 2
- Pre modifier groups 2
- Pre modifiers 2
- Prep stations 2
- Price groups 2
- Printers 2
- Restaurant services 2
- Restaurants 2
- Revenue centers 2
- Sales categories 2
- Service areas 2
- Service charges 2
- Tables 2
- Tax rates 2
- Time entries 2
- Void reasons 2
- Credit cards 1
- Devices 1
- Kitchen 1
- Packaging 1
- Tip withholding 1
Top actions
The Toast API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 25 of Toast's 25 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
toast_pos.employees.listGet employees | Get employees. | read | hr.employee.list61 connectors |
toast_pos.menu_items.listGet menu items and modifiers | Get menu items and modifiers. | read | commerce.product.list112 connectors |
toast_pos.orders.listGet multiple orders | Get multiple orders. | read | commerce.order.list82 connectors |
toast_pos.employees.createAdd an employee | Add an employee. | write | hr.employee.create51 connectors |
toast_pos.partners.list_accessible_restaurantsGet accessible restaurants | Get accessible restaurants. | read | commerce.store.list17 connectors |
toast_pos.time_entries.listGet time entries | Get time entries. | read | work.time_entry.list59 connectors |
toast_pos.orders.createPost an order | Post an order. | write | commerce.order.create67 connectors |
toast_pos.menu_items.getGet a menu item or modifier | Get a menu item or modifier. | read | commerce.product.get112 connectors |
toast_pos.employees.deleteDelete an employee | Delete an employee. | destructive | hr.employee.delete34 connectors |
toast_pos.restaurants.getGet restaurant configuration information | Get restaurant configuration information. | read | commerce.store.get20 connectors |
toast_pos.shifts.listGet shifts | Get shifts. | read | hr.shift.list19 connectors |
toast_pos.shifts.createCreate a shift | Create a shift. | write | hr.shift.create18 connectors |
Try it
Prompts to paste into Claude.
Each one names the Toast actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Toast orders from the last seven days are still unfulfilled?
calls
toast_pos.orders.list - Writewrite
Add an employee in Toast. Show me exactly what you will send before you save it.
calls
toast_pos.employees.create
Governance for Toast
Destructive actions wait for a yes.
4 Toast actions are destructive. These are all of them:
- Delete an employee
toast_pos.employees.delete - Delete a shift
toast_pos.shifts.delete - Void an order
toast_pos.orders.void - Authorize a credit card
toast_pos.credit_cards.authorize_payment
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete an employee?
intent: the user asked me to delete an employee
account { op: "keys.create", name: "toast-pos-agent", allowed_actions: ["toast_pos.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "toast_pos.employees.delete", approver: "[email protected]" }, { match: "toast_pos.shifts.delete", approver: "[email protected]" }, { match: "toast_pos.orders.void", approver: "[email protected]" } ]}Cost
What Toast costs on actionlake.
Every Toast action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Toast refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 125 Toast actions
- 125actions pageeach page of a long list is one call
- 88reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Toast action.
125 actions by area: the id your agent calls, what it does, and its effect.
Reports20
toast_pos.reports.get_check_reportGet the check reporting datareadtoast_pos.reports.get_guest_reportGet the guest reporting data organized by paymentreadtoast_pos.reports.get_labor_reportGet the labor reporting datareadtoast_pos.reports.get_menu_reportGet the menu reporting datareadtoast_pos.reports.get_payout_report_by_paymentGet the payout reporting data organized by paymentreadtoast_pos.reports.get_payout_report_by_sales_dateGet the payout reporting data organized by sales datereadtoast_pos.reports.get_payout_report_by_settled_dateGet the payout reporting data organized by settled datereadtoast_pos.reports.get_sales_metricsGet the aggregated sales reporting datareadtoast_pos.reports.get_sales_metrics_for_rangeGet the aggregated sales reporting data for a specific time rangereadtoast_pos.reports.list_group_restaurantsGet management group restaurant informationreadtoast_pos.reports.request_check_reportPost a check reporting data request for a specific time rangereadtoast_pos.reports.request_guest_reportPost a guest reporting data request organized by payment for a specific time rangereadtoast_pos.reports.request_labor_reportPost a labor data request for a specific time rangereadtoast_pos.reports.request_menu_reportPost a menu reporting data request for a specific time rangereadtoast_pos.reports.request_menu_report_custom_rangePost a menu data request for a custom time rangereadtoast_pos.reports.request_payout_report_by_paymentPost a payout data request organized by payment for a specific time rangereadtoast_pos.reports.request_payout_report_by_sales_datePost a payout data request organized by sales date for a specific time rangereadtoast_pos.reports.request_payout_report_by_settled_datePost a payout data request organized by settled date for a specific time rangereadtoast_pos.reports.request_sales_metricsPost an aggregated sales reporting data request for a specific time rangereadtoast_pos.reports.request_sales_metrics_custom_rangePost an aggregated sales reporting data request for a custom time rangeread
Orders14
toast_pos.orders.add_check_discountsAdd check-level discountswritetoast_pos.orders.add_check_itemsAdd items to a checkwritetoast_pos.orders.add_check_paymentsPost paymentswritetoast_pos.orders.add_item_discountsAdd item-level discountswritetoast_pos.orders.calculate_pricesGet order pricesreadtoast_pos.orders.createPost an orderwritetoast_pos.orders.getGet an orderreadtoast_pos.orders.listGet multiple ordersreadtoast_pos.orders.list_applicable_discountsGet applicable discountsreadtoast_pos.orders.list_idsGet order identifiers (deprecated)readtoast_pos.orders.update_check_loyalty_infoUpdate the applied loyalty information for a checkwritetoast_pos.orders.update_delivery_infoUpdate delivery informationwritetoast_pos.orders.update_tipUpdate a tip amountwritetoast_pos.orders.voidVoid an orderdestructive
Employees10
toast_pos.employees.add_external_idAdd an external identifierwritetoast_pos.employees.createAdd an employeewritetoast_pos.employees.deleteDelete an employeedestructivetoast_pos.employees.getGet information about one employeereadtoast_pos.employees.listGet employeesreadtoast_pos.employees.replace_jobsReplace a jobs listwritetoast_pos.employees.replace_wage_overridesReplace wage overrideswritetoast_pos.employees.set_external_idAdd or replace an external identifierwritetoast_pos.employees.unarchiveUnarchive an employeewritetoast_pos.employees.updateUpdate employee informationwrite
Shifts5
toast_pos.shifts.createCreate a shiftwritetoast_pos.shifts.deleteDelete a shiftdestructivetoast_pos.shifts.getGet a shiftreadtoast_pos.shifts.listGet shiftsreadtoast_pos.shifts.updateUpdate a shiftwrite
Jobs4
toast_pos.jobs.add_external_idAdd an external identifierwritetoast_pos.jobs.getGet one jobreadtoast_pos.jobs.listGet jobsreadtoast_pos.jobs.set_external_idAdd or replace an external identifierwrite
Stock3
toast_pos.stock.listGet menu item inventory for a restaurantreadtoast_pos.stock.searchGet inventory information for specific menu itemsreadtoast_pos.stock.updateUpdate inventory information for specific menu itemswrite
Alternate payment types2
toast_pos.alternate_payment_types.getGet an alternative payment typereadtoast_pos.alternate_payment_types.listGet alternative payment typesread
Break types2
toast_pos.break_types.getGet a break typereadtoast_pos.break_types.listGet break typesread
Cash2
toast_pos.cash.list_depositsGet depositsreadtoast_pos.cash.list_entriesGet cash entriesread
Cash drawers2
toast_pos.cash_drawers.getGet a cash drawerreadtoast_pos.cash_drawers.listGet cash drawersread
Dining options2
toast_pos.dining_options.getGet a dining optionreadtoast_pos.dining_options.listGet dining optionsread
Discounts2
toast_pos.discounts.getGet a discountreadtoast_pos.discounts.listGet discountsread
Menu groups2
toast_pos.menu_groups.getGet a menu groupreadtoast_pos.menu_groups.listGet menu groupsread
Menu items2
toast_pos.menu_items.getGet a menu item or modifierreadtoast_pos.menu_items.listGet menu items and modifiersread
Menu option groups2
toast_pos.menu_option_groups.getGet a modifier groupreadtoast_pos.menu_option_groups.listGet modifier groupsread
Menus2
toast_pos.menus.getGet a menureadtoast_pos.menus.listGet menusread
Menus V22
toast_pos.menus_v2.get_metadataGet menu last modified timestampreadtoast_pos.menus_v2.get_publishedGet menusread
Menus V32
toast_pos.menus_v3.get_metadataGet menu last modified timestampreadtoast_pos.menus_v3.get_publishedGet menusread
No sale reasons2
toast_pos.no_sale_reasons.getGet a no sale reasonreadtoast_pos.no_sale_reasons.listGet no sale reasonsread
Online ordering2
toast_pos.online_ordering.get_availabilityGet online ordering availabilityreadtoast_pos.online_ordering.get_scheduleGet online ordering scheduleread
Partners2
toast_pos.partners.list_accessible_restaurantsGet accessible restaurantsreadtoast_pos.partners.list_connected_restaurantsGet connected restaurantsread
Payments2
toast_pos.payments.getGet a paymentreadtoast_pos.payments.list_idsGet payment identifiersread
Payout reasons2
toast_pos.payout_reasons.getGet a payout reasonreadtoast_pos.payout_reasons.listGet payout reasonsread
Pre modifier groups2
toast_pos.pre_modifier_groups.getGet a pre-modifier groupreadtoast_pos.pre_modifier_groups.listGet pre modifier groupsread
Pre modifiers2
toast_pos.pre_modifiers.getGet a pre modifierreadtoast_pos.pre_modifiers.listGet pre-modifiersread
Prep stations2
toast_pos.prep_stations.getGet a prep stationreadtoast_pos.prep_stations.listGet all prep stationsread
Price groups2
toast_pos.price_groups.getGet a price level for menu itemsreadtoast_pos.price_groups.listGet price levels for menu itemsread
Printers2
toast_pos.printers.getGet a printerreadtoast_pos.printers.listGet printersread
Restaurant services2
toast_pos.restaurant_services.getGet a restaurant service periodreadtoast_pos.restaurant_services.listGet restaurant service periodsread
Restaurants2
toast_pos.restaurants.getGet restaurant configuration informationreadtoast_pos.restaurants.list_in_groupGet restaurants in a management groupread
Revenue centers2
toast_pos.revenue_centers.getGet a revenue centerreadtoast_pos.revenue_centers.listGet revenue centersread
Sales categories2
toast_pos.sales_categories.getGet a menu item sales categoryreadtoast_pos.sales_categories.listGet menu item sales categoriesread
Service areas2
toast_pos.service_areas.getGet a service areareadtoast_pos.service_areas.listGet service areasread
Service charges2
toast_pos.service_charges.getGet a service charge typereadtoast_pos.service_charges.listGet service chargesread
Tables2
toast_pos.tables.getGet a tablereadtoast_pos.tables.listGet tablesread
Tax rates2
toast_pos.tax_rates.getGet a tax ratereadtoast_pos.tax_rates.listGet tax ratesread
Time entries2
toast_pos.time_entries.getGet one time entryreadtoast_pos.time_entries.listGet time entriesread
Void reasons2
toast_pos.void_reasons.getGet a void sale reasonreadtoast_pos.void_reasons.listGet void sale reasonsread
Credit cards1
toast_pos.credit_cards.authorize_paymentAuthorize a credit carddestructive
Devices1
toast_pos.devices.listGet device details for a restaurantread
Kitchen1
toast_pos.kitchen.list_item_fulfillmentsGet item fulfillmentsread
Packaging1
toast_pos.packaging.get_configGet a restaurant's published packaging configurationread
Tip withholding1
toast_pos.tip_withholding.getGet the percentage withheld for credit card tipsread
Questions
The Toast MCP server, answered.
Is there a Toast MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 125 Toast actions across reports, orders, employees and shifts, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Toast.
What do I need to connect Toast?
Toast API client ID (Toast Web > Integrations > Toast API access > Manage credentials, or issued to a partner by Toast) and Toast API client secret. Plus your host and your restaurant guid. The free call account { op: "connections.requirements", service: "toast_pos" } lists exactly what to paste.
Can an AI agent delete or change things in Toast?
Only if its key allows it, and only with an explicit confirmation. 4 Toast actions are destructive, including delete an employee, delete a shift and void an order. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Toast API limit?
actionlake paces every call to the limits in the Toast service file: 600 calls a minute per connection. Repeated reads are answered from cache (88 Toast actions can be), which never reaches Toast.
What does a Toast action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (125 Toast actions page). Cache hits, searches, dry runs and calls Toast refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Toast API does it cover?
The Toast POS (restaurant platform APIs) API Toast platform APIs as published at doc.toasttab.com/openapi (fetched 2026-10-22): orders v2, configuration v2, menus v2/v3, labor v1, analytics (ERA) v1, cash management v1, kitchen v1, stock v1, partners v1, restaurants v1, packaging v1, device details v1, order management configuration v1, restaurant availability v1, credit card partner v1 at ws-api.toasttab.com by default, or the base URL set when you connect. It is built from Toast's documentation as read on 22 October 2026. 125 actions in 43 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Toast data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Toast credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Toast today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.