Ava Research

Rebook — Docs

Fill an opening, right through Muse.

Rebook is a hosted MCP (Model Context Protocol) server. An owner builds a waitlist of customers and what they're interested in; when a gap opens up (a cancellation, no-show, or unfilled capacity), Rebook matches it against the waitlist by literal keyword only and drafts outreach for the owner to send.

Free. No paid plan. get_methodology works without an account. Everything else requires a free account, created with a one-time code sent to your email — no password, no payment details.

Endpoint

https://func-rebook-prod-bf6rfb.azurewebsites.net/api/mcp

JSON-RPC 2.0 over HTTPS POST. Methods: initialize, tools/list, tools/call. MCP protocol version 2025-06-18.

Authentication

Sign-in uses OAuth with Microsoft Entra External ID: Muse gets an access token from Entra, and the server accepts only Entra-issued tokens with the Rebook.ReadWrite scope. The server publishes protected-resource metadata (RFC 9728) and returns 401 with a WWW-Authenticate header pointing to it. Tokens are validated on every call: signature, issuer, audience, expiry, and scope. Every tool except get_methodology needs a signed-in user.

Tools

  • get_methodology · Sign-in: No
    Explains how Rebook works: the drafts-never-sends rule, how waitlist matching works (literal keyword only, never fuzzy), and what persists.
    Inputs: none.
    Example: "How does Rebook decide who to contact?"

  • log_gap · Sign-in: Yes
    Logs an opening — a cancellation, no-show, or unfilled capacity — so it can be matched against the waitlist.
    Inputs: service (required), dateTimeIso (required), durationMinutes, reason, externalRef.
    Example: "I had a 2pm cancellation Tuesday — it was a haircut."
    Errors: invalid_params.

  • add_waitlist_contact · Sign-in: Yes
    Adds someone to the owner's waitlist: their name and what they're waiting for, in their own words.
    Inputs: name (required), interestNote (required), contactInfo, externalRef.
    Example: "Add Jamie to the waitlist — looking for a haircut, any Tuesday afternoon works."
    Errors: invalid_params.

  • draft_fill_outreach · Sign-in: Yes
    Drafts outreach to fill a logged opening. Matches waitlist contacts by literal keyword only — a contact's note mentioning the opening's service or weekday. A true "no match" is returned honestly, never glossed over.
    Inputs: gapId (required).
    Example: "Who should I text about that opening?"
    Errors: invalid_params, not_found.

  • list_gaps · Sign-in: Yes
    Lists logged openings, newest first. Optionally filter by status.
    Inputs: status (optional: open or filled).
    Example: "What openings do I have logged?"
    Errors: invalid_params.

  • mark_gap_filled · Sign-in: Yes
    Marks a logged opening as filled. The note on who/how is owner-declared only — Rebook never infers it.
    Inputs: gapId (required), filledNote.
    Example: "Jamie took that opening."
    Errors: invalid_params, not_found.

  • delete_my_data · Sign-in: Yes · Permanent
    Owner-only, irreversible: deletes every logged gap and every waitlist contact for your account.
    Inputs: none.
    Example: "Delete all my Rebook data."

Errors

If the token is missing, expired, or lacks Rebook.ReadWrite, tools that need sign-in return HTTP 401 with a WWW-Authenticate header. Tool errors come back as a result with isError set to true and a short, readable message; the codes are listed with each tool above.

Limits

  • No connector-specific rate limit is enforced or published.

  • delete_my_data is permanent — there is no undo, and Muse will ask for confirmation every time, never "always allow."

What it won't do

  • It never contacts anyone itself — every draft is handed to the owner to send.

  • It never fuzzy-matches or ranks waitlist contacts — only a literal keyword match, visible and auditable.

  • It doesn't integrate with Open Slot or any booking system.

  • It shares nothing with advertisers.

Questions? support@avaresearchllc.com · Back to Rebook