What Is MCP and Why Does It Matter for a Waitlist

The Model Context Protocol (MCP) is an open standard that lets AI assistants like Claude safely read from and write to external systems — your waitlist, your calendar, your CRM — through a small, well-defined set of tools. Instead of copy-pasting customer details between apps or training staff on a new admin UI, you describe what you want in plain English and the assistant executes it.

Waitlist App Premium ships an MCP server at https://waitlistapp.org/mcp. Once connected, Claude can list your active queue, add walk-ins, send SMS alerts through your Twilio integration, mark parties seated, and more. This guide walks through setup end-to-end.

Prerequisites

  • A Premium subscription to Waitlist App. The MCP endpoint is gated on an active Premium plan — the free version does not support server-side automation.
  • An API token generated from Settings → API Tokens in your Pro dashboard. Tokens are shown once; copy it immediately to a password manager.
  • Optional but recommended: a configured Twilio integration (Settings → Integrations) if you want the assistant to send SMS alerts on your behalf.
  • Either Claude Desktop (macOS or Windows) for interactive use, or access to the Anthropic API if you are scripting programmatic workflows.

Step 1: Generate an API Token

Log in to your Pro dashboard and open the Settings panel. Click the API Tokens tab, give the token a descriptive name (for example Claude Desktop — Front Desk iPad), and click Create Token.

The token appears once, in an amber warning banner. It looks like wla_ followed by 40 random characters. Copy it now. You cannot view it again — if you lose it you simply revoke the old one and create a new one. Tokens never expire on their own but you can revoke any token from the same screen at any time.

Step 2: Configure Twilio (Optional but Recommended)

If you want the assistant to text customers, first connect Twilio under Settings → Integrations. Paste in your Twilio Account SID, Auth Token, and either a From Number (E.164 format, like +14155552671) or a Messaging Service SID. We verify the credentials against Twilio's API before saving, so an invalid SID will be caught immediately.

Then open the SMS Alerts tab to customize which events auto-send SMS and what the message body looks like. Templates support placeholders like {{'{{ name }}'}}, {{'{{ business_name }}'}}, {{'{{ tracking_url }}'}}, {{'{{ position }}'}}, and {{'{{ party_size }}'}}. You can leave auto-triggers off and have Claude send messages manually with the notify_entry tool, or turn them on and let SMS fire automatically the instant a party is added, notified, or seated — even when the trigger came from Claude.

Step 3: Connect Claude Desktop

Claude Desktop reads MCP servers from a JSON config file. On macOS the path is ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows it is %APPDATA%\Claude\claude_desktop_config.json.

Open the file (create it if it doesn't exist) and add a mcpServers entry. The Waitlist App MCP server speaks the streamable HTTP transport with Bearer authentication:

{
  "mcpServers": {
    "waitlist": {
      "transport": "streamable_http",
      "url": "https://waitlistapp.org/mcp",
      "headers": {
        "Authorization": "Bearer wla_YOUR_TOKEN_HERE"
      }
    }
  }
}

Save the file and restart Claude Desktop. Open a new chat and type something like "What's on the waitlist right now?" — Claude should list the available waitlist tools and call list_queue. The first time a tool runs you'll be asked to approve it; check the “always allow” box if you trust the action.

Available Tools

Every tool operates only on the authenticated user's queue — the token identifies the Premium account, and ownership is enforced on every call.

ToolWhat it does
list_queueReturns all active entries in order of position, with tracking URLs.
add_entryAdds a new walk-in. Requires a name; optional party size, phone, email, notes.
update_entryUpdates the name, party size, phone, email, or notes of an existing entry.
remove_entryRemoves an entry (cancels).
mark_seatedMarks an entry as seated. If your SMS prefs have auto_on_seated enabled, a thank-you SMS is triggered automatically.
notify_entrySends the configured SMS for a given event (added, notified, or seated). Marks the entry as notified if the event is 'notified'. Accepts an optional custom body override.
send_smsSends an arbitrary SMS to any E.164 number through your Twilio integration. Useful for one-off customer messages.

Example Conversations

Once connected, you manage your queue conversationally:

You: A walk-in just came in — Maria, party of 4, phone +14155552671, wants a quiet booth.

Claude: (calls add_entry) Added Maria (4) at position 3. I didn't send a text yet since auto_on_added is off in your prefs. Want me to text her the tracking link?

You: Yes, notify her.

Claude: (calls notify_entry with event: added) Sent. SID: SM1a2b3c4d5e...

You: The 6:30 reservation is here — mark them seated.

Claude: (calls list_queue, finds the match, calls mark_seated) Done. Recalculated average service time is 18.4 minutes.

Using the Anthropic API Instead of Desktop

If you are building an internal tool or an agent that manages the waitlist programmatically, you can connect the same MCP server directly from the Anthropic Messages API using the mcp_servers parameter. Point it at https://waitlistapp.org/mcp with the same Bearer token and Claude will have full access to the tool set during the conversation.

Security Model

  • Tokens are hashed at rest. We store SHA-256 of the token, not the plaintext. Even a database leak cannot expose your active tokens.
  • Tokens are Pro-gated. When a Premium subscription lapses, all existing tokens stop working until the account is reactivated.
  • Revocation is immediate. Clicking Revoke in the dashboard invalidates the token on the very next request — no cached state, no delay.
  • Twilio credentials are encrypted. Account SID, auth token, and sender configuration are stored with Laravel's encrypted cast, never logged, and never returned to the client in plaintext (the auth token is masked in the UI).
  • No outbound data outside MCP. The MCP endpoint only reads and writes your waitlist and optionally calls Twilio's SMS API with your credentials. We never forward your queue data to any third party.

Troubleshooting

“Unauthorized” on every call: The token is missing, malformed, revoked, or your Premium subscription has lapsed. Open Settings → API Tokens to verify the token is present and unrevoked, and check Settings → Billing for your subscription status.

SMS sends return twilio_not_configured: Visit Settings → Integrations and complete the Twilio connection.

SMS sends return sms_disabled_in_prefs: Open Settings → SMS Alerts and toggle the master switch on.

SMS sends return entry_has_no_phone: The waitlist entry was created without a phone number. Use update_entry to add one, then retry.

Tool calls hang or time out: Check your Pro dashboard's Twilio test-SMS feature first to confirm credentials still work. Twilio's own status page is at status.twilio.com.

What's Next

The current tool set covers everyday queue operations. If there is something you'd like to drive from Claude that isn't exposed yet — printing chits, running reports, editing notification templates in-session — let us know. MCP is a moving target in the industry and we plan to expand coverage as Pro usage grows.