resOS MCP by usefulapi

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

Read bookings, guests and availability; create, update or cancel bookings in resOS.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for resOS restaurant bookings: read bookings, guests, feedback and availability, and create, change or cancel bookings.

What you can do
  • List and read bookings, including guest contact data, tables, custom fields, comments and internal notes
  • List and read customer (guest) profiles, guest feedback, seating areas and tables, opening hours and custom booking fields
  • Check available dates, times and free tables for a party size
  • Create, update and cancel bookings, add internal notes and post comments to the guest thread
  • Check monthly usage, request a feature, upgrade or cancel the subscription
When to use it
Useful when a restaurant runs on resOS and wants an assistant to answer questions about tonight's bookings, guest history or table availability, or to make and adjust reservations on request.
Requirements
Remote endpoint at resos.usefulapi.io/mcp, added by URL only; sign-in is via OAuth, and the login page asks for a resOS API key (a paid resOS add-on) which the server stores per user. No keys go in config files. Free plan allows 50 tool calls per month; paid plans are billed separately.
Before you install
Write tools change real restaurant data: bookings are created, changed or cancelled in the live book, and status changes, cancellations and guest comments can e-mail or text the guest. Internal notes and guest comments cannot be deleted through the API, and retrying after a timeout may duplicate them. Your resOS API key is stored by the third-party host. Paid plans are billed through a checkout link, with no refund for the current period.

Installation

In SourceWeft

  1. Open resOS 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%2Fresos/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": {
    "resos-by-usefulapi": {
      "type": "http",
      "url": "https://resos.usefulapi.io/mcp"
    }
  }
}

README

resOS MCP by usefulapi

Use your resOS account from Claude, Cursor, or any MCP client. It reads bookings, guests, feedback and availability, and it can create, change or cancel bookings and post guest comments. Hosted, no local install: connect with your own credentials.

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

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://resos.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http resos https://resos.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": {    "resos": {      "url": "https://resos.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 resOS credentials.

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

On first connect you provide your resOS API key (Settings → API integration; the API is a paid add-on). The server validates it and stores it per user. No keys go in config files.

Tools

ToolTypeWhat it does
resos_list_bookingsreadList bookings
resos_get_bookingreadGet booking
resos_list_customersreadList customers
resos_get_customerreadGet customer
resos_list_guest_feedbackreadList guest feedback
resos_get_guest_feedbackreadGet guest feedback
resos_list_seating_areasreadList seating areas and tables
resos_list_opening_hoursreadList opening hours
resos_get_opening_hourreadGet opening hour
resos_list_custom_fieldsreadList custom fields
resos_get_custom_fieldreadGet custom field
resos_get_available_datesreadGet available dates
resos_get_available_timesreadGet available times
resos_get_available_tablesreadGet available tables
resos_create_bookingwriteCreate booking
resos_update_bookingwriteUpdate booking
resos_cancel_bookingwriteCancel booking
resos_add_booking_notewriteAdd internal booking note
resos_send_booking_commentwritePost booking comment to guest
resos_usage_statusmetaUsage status (free-tier meter)
resos_request_featuremetaRequest a missing feature
resos_upgrademetaUpgrade to Pro or Pro+
resos_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 user)$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 resos_upgrade (it returns a Stripe Checkout link). Cancel any time with resos_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running resos_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

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

Tools

19

resos_list_bookings

List bookings

List bookings, newest or oldest first as you sort, with date, time, party size, status, the guest's name, e-mail and phone, assigned tables and custom-field answers. Filter by date range, status, party size or guest name. The comment thread and sent-message log are not included (use resos_get_booking for the thread). Pages of at most 100; pass next_skip to read on. GET /bookings.

Parametersskipsortlimitpeoplestatuscustom_queryto_date_timefrom_date_timeonly_confirmedguest_name_contains

resos_get_booking

Get booking

One booking by id, with the guest's contact data, tables, custom fields, payment, the comment thread (guest and restaurant messages) and the internal restaurant notes. GET /bookings/{id}.

Parametersbooking_idrequired

resos_list_customers

List customers

List the restaurant's customers (guest profiles): name, e-mails, phones, city and country, tags, notes, flags, booking count and newsletter consent. The street address is not returned. Filter by name. Pages of at most 100. GET /customers.

Parametersskiplimitcustom_queryname_contains

resos_get_customer

Get customer

One customer (guest profile) by id: contact data, tags, notes, flags, booking count and latest booking. GET /customers/{id}.

Parameterscustomer_idrequired

resos_list_guest_feedback

List guest feedback

List guest feedback (ratings for food, service, value and atmosphere, whether they recommend, and the message). Filter by date range, or only submitted feedback. Pages of at most 100. GET /guestFeedback.

Parametersskipsortlimitcustom_queryto_date_timefrom_date_timeonly_submitted

resos_get_guest_feedback

Get guest feedback

One guest feedback entry by id. GET /guestFeedback/{id}.

Parametersfeedback_idrequired

resos_list_seating_areas

List seating areas and tables

List the seating areas with their tables (id, name, minimum and maximum seats) and table combinations. Use the ids for bookings and availability. GET /tables.

Takes no parameters.

resos_list_opening_hours

List opening hours

List the opening hours: regular weekly hours (day 1 Monday to 7 Sunday) and special date-specific hours, each with id, name, open and close times and whether the restaurant is open. GET /openingHours.

Parameterssorttypeonly_specialshow_deleted

resos_get_opening_hour

Get opening hour

One opening-hour entry by id. GET /openingHours/{id}.

Parametersopening_hour_idrequired

resos_list_custom_fields

List custom fields

List the custom booking fields (name, label, type, required, choices). Use the ids to read or set custom-field answers. GET /customFields.

Takes no parameters.

resos_get_custom_field

Get custom field

One custom booking field by id. GET /customFields/{id}.

Parameterscustom_field_idrequired

resos_get_available_dates

Get available dates

Dates in a range on which the restaurant is open for bookings (default: the next 30 days). GET /bookingFlow/dates.

Parametersto_datefrom_date

resos_get_available_times

Get available times

Booking times that are free on a date for a party size, optionally for one seating area. GET /bookingFlow/times.

Parametersdatepeoplerequiredarea_idonly_bookable_online

resos_get_available_tables

Get available tables

The tables and table combinations that are free for a party size in a time window (UTC). Use it before assigning tables to a booking. GET /bookingFlow/availableTables.

Parameterspeoplerequiredarea_idto_date_timerequiredfrom_date_timerequiredreturn_all_tablesexclude_booking_idonly_bookable_online

resos_create_booking

Create booking

WRITE: create a booking for a guest. It is a real booking in the restaurant's book. If notify_email or notify_sms is true, resOS e-mails or texts the GUEST (a confirmation); both default to false. Date and time are in the restaurant's local timezone. Check resos_get_available_times first: resOS may refuse a slot that is full or closed. It is not retried: if the call times out, read the bookings before you try again, or you may book twice. resOS may silently throttle the same e-mail, phone or IP creating more than 10 bookings in 24 hours. POST /bookings.

Parametersdaterequirednotetimerequiredpeoplerequiredstatusarea_idcommentdurationtable_idsguest_namerequirednotify_smsguest_email+3 more

resos_update_booking

Update booking

WRITE: change fields of an existing booking: date, time, party size, tables, duration, status, or the guest's name, e-mail or phone. Only the fields you pass change. A status change or a new time can make resOS e-mail or text the GUEST (for example on approved or declined). To cancel use resos_cancel_booking. It is not retried: after a timeout read the booking again before you try again. PUT /bookings/{id}.

Parametersdatetimepeoplestatusdurationtable_idsbooking_idrequiredguest_nameguest_emailguest_phone

resos_cancel_booking

Cancel booking

WRITE: cancel a booking (status canceled, with a canceled-at time). resOS may e-mail or text the GUEST a cancellation notice. The booking stays in resOS and can be read afterwards. Not retried: after a timeout read the booking first. PUT /bookings/{id}/cancel.

Parametersbooking_idrequired

resos_add_booking_note

Add internal booking note

WRITE: add an internal restaurant note to a booking (for example `Birthday, bring a candle`). The guest does not see it and nothing is sent. At most 50 notes per booking; notes cannot be deleted through the API. Not retried: after a timeout read the booking first, or the note may be added twice. POST /bookings/{id}/restaurantNote.

Parameterstextrequiredbooking_idrequired

resos_send_booking_comment

Post booking comment to guest

WRITE: post a comment from the restaurant on a booking's guest thread. The guest can see it. If send_notification is true, resOS e-mails or texts the GUEST the message now: you must choose true or false. At most 25 comments per booking and 5 per minute. Cannot be deleted through the API. Not retried: after a timeout read the booking first, or the guest may get it twice. POST /bookings/{id}/comment.

Parameterstextrequiredbooking_idrequiredsend_notificationrequired

Version history

6
  1. v1.2.4LatestNov 7, 2026
  2. v1.1.3Nov 5, 2026
  3. v1.1.2Nov 5, 2026
  4. v1.1.1Nov 4, 2026
  5. v1.1.0Nov 3, 2026
  6. v1.0.2Nov 3, 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