For AI agents

    Schedule meetings on Breaker1 over MCP

    Breaker1 exposes a public Model Context Protocol server so AI agents - Claude, ChatGPT, Cursor, Lindy, Perplexity, and others - can find a Breaker1 user, see mutually-free times on their calendar, and book a meeting on their behalf.

    Endpoint

    https://ssesweekhcliexsnshum.supabase.co/functions/v1/mcp

    JSON-RPC 2.0 over HTTP POST (MCP Streamable HTTP). Send Accept: application/json, text/event-stream and Content-Type: application/json on every request.

    Add Breaker1 to your assistant

    ChatGPT

    1. Settings → Connectors → Add custom connector.
    2. Name it Breaker1 and paste the MCP endpoint.
    3. Leave auth as No authentication, or sign in to manage your own meetings.
    4. Enable it in a chat, then ask: "Use Breaker1 to find a time with @matt next week."

    Claude

    1. Settings → Connectors → Add custom connector.
    2. Paste the MCP endpoint, name it Breaker1, save.
    3. Tap the connector menu in a chat and enable Breaker1.
    4. Optional: connect your account when prompted to unlock host-only tools.

    Cursor

    1. Open Cursor Settings → MCP.
    2. Add a new MCP server with the Breaker1 endpoint.
    3. Use the built-in chat to ask for availability or book a meeting.

    Lindy

    1. Create a Lindy agent and add an MCP server integration.
    2. Paste the Breaker1 endpoint and, if you have one, an API key.
    3. Prompt your agent to schedule via Breaker1.

    Perplexity

    1. Use Perplexity's connector or API integration settings.
    2. Add the Breaker1 MCP endpoint for scheduling actions.
    3. Ask Perplexity to find times or book meetings through Breaker1.

    The search and fetch tools follow the ChatGPT/Claude connector convention so Breaker1 shows up cleanly in the picker.

    REST API (non-MCP agents)

    Not using MCP? Paid Breaker1 accounts can create scoped API keys in Agents → API keys and call the REST endpoints below.

    https://breaker1.com/api/public/agent/v1
    • GET https://breaker1.com/api/public/agent/v1/availability?username=matt&duration_min=30&start=2026-08-01&end=2026-08-07Mutually-free slots for a host.
    • POST https://breaker1.com/api/public/agent/v1/bookingsCreate a booking on a host's calendar.
    • GET https://breaker1.com/api/public/agent/v1/me/bookingsYour upcoming confirmed bookings.
    • POST https://breaker1.com/api/public/agent/v1/bookings/:id/cancelCancel a booking you created or host.

    Pass the API key in the Authorization: Bearer ag_… header. Keys are scoped to read, book, and/or cancel.

    Host rules override your agent

    Whatever a connected agent has been told to do, Breaker1 decides the outcome. Every booking, reschedule and cancellation is re-validated on our servers against the host's own settings before anything touches their calendar - these are not conventions the agent is trusted to follow.

    • start_iso must exactly match a slot currently returned by get_availability for the same duration. Invented, rounded or stale times are refused.
    • Working hours, time zone, minimum notice, buffers and travel buffer apply.
    • Protected midday time and any weekdays the host has blocked are off limits.
    • A host's daily meeting cap can refuse an otherwise-open slot.
    • Approval rules (by meeting length or meeting type) return status: "pending". A pending meeting is not on the calendar until the host approves it.
    • A host can pause outside agents entirely. Booking, moving and cancelling then fail while their own booking link keeps working.

    Refusal codes

    slot_not_available, agent_paused, blocked_day, daily_cap, protected_time.

    On a refusal, re-check availability or hand the user the host's booking link. Do not retry the same time or try to route around the rule - every attempt, including refusals, is written to the host's activity log with the agent id that made it.

    Public tools

    • search

      ChatGPT/Claude connector search. Free-text query (name, @username, or email) → list of { id, title, url } results. Pair with `fetch`.

    • fetch

      Given an id from `search` (e.g. `user:matt`), returns a compact document: display name, meeting durations, approval requirement, booking URL, and the next few open time slots.

    • find_user

      Look up a Breaker1 host by email or @username. Returns their booking URL, available meeting durations, and whether they require approval.

    • get_availability

      Return mutually-free meeting slots in UTC for a host, given a duration and date range. Working hours, time zone, buffers, and existing bookings are already applied.

    • propose_times

      Return N mutually-free slots already formatted for a natural-language reply ("Tue 2pm PT, Wed 10am PT…"). Use when a user says "find a time with @matt next week".

    • create_booking

      Book a slot. Status returns 'confirmed' or 'pending' if the host requires approval. Creates the calendar event + Google Meet link and emails both sides.

    • reschedule_booking

      Move an existing meeting to a new time using its id + the guest_email it was booked under. Releases the old slot, updates the calendar event, and emails the guest the new time.

    • cancel_booking

      Cancel a booking using its id + the guest_email it was booked under. Sends the cancellation email and cleans up the host's calendar event.

    Host-only tools (OAuth)

    Sign in via OAuth 2.1 to unlock tools that act as your own Breaker1 account. Clients discover the consent flow automatically via /.well-known/oauth-protected-resource.

    • my_upcoming_meetings

      Confirmed bookings on your own calendar.

    • my_pending_approvals

      Booking requests waiting for your approval.

    • approve_booking

      Approve a pending booking request.

    • decline_booking

      Decline a pending booking request.

    • cancel_my_booking

      Cancel any booking on your own calendar.

    Quick test

    curl -X POST https://ssesweekhcliexsnshum.supabase.co/functions/v1/mcp \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json, text/event-stream' \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/list"
      }'

    Discovery

    Rate limits & etiquette

    • 120 calls/hour per IP across all tools
    • 10 booking attempts/hour per IP
    • 30 calls/hour per IP per target host
    • Pass agent_id on create_booking (e.g. "claude.ai") so hosts can see who booked them
    • Web Bot Auth (RFC 9421) Signature-Agent headers are recorded for observability; full key verification is on the roadmap
    Back to homeContact support