What problem does this solve? Right now, connecting SavvyCal to AI agents and LLM-based workflows (Claude, Cursor, n8n AI nodes, etc.) requires writing custom API wrappers. MCP is becoming the standard protocol for exposing SaaS capabilities to AI tools — Stripe, Notion, Linear, and others already have MCP servers. A SavvyCal MCP server would allow any MCP-compatible client to read and manipulate scheduling data without writing glue code. --- Proposed tool set for a v1 MCP server The following tools map directly onto the existing REST API surface and would cover the most useful agent interactions. Read tools list_events — Fetch scheduled events with optional filters: date range ( starts_after , starts_before ), state ( scheduled , canceled ), pagination. Core for any agent that needs to reason about a calendar. get_event — Retrieve full event details by ID: attendees, conferencing info, answers to custom questions, payment status. list_scheduling_links — List all links with their slug, name, active state, and duration. Useful for agents choosing which link to share or inspect. get_scheduling_link — Full detail on a single link: availability rules, buffer times, payment config, workflow associations. get_available_slots — Query open time slots for a given link, date range, and timezone. Enables agents to suggest available times in a conversation without redirecting to the booking page. get_current_user — Retrieve authenticated user profile (name, email, timezone, handle). Useful for context and for constructing booking URLs. list_webhooks — List configured webhooks (URL, events subscribed). Diagnostic use in automation audits. list_workflows — List workflows and their rules. Lets an agent explain or audit what automations are active on a given link. Write tools create_event — Book a meeting programmatically on a given link for a specific slot. Required for agents that complete a booking on behalf of a user after negotiating availability in chat. cancel_event — Cancel a scheduled event by ID, with optional cancellation reason. Lets agents handle rescheduling or no-show logic. create_scheduling_link — Create a new personal scheduling link with a name, slug, duration, and basic availability. Useful for agents that provision links dynamically (e.g., one link per client, one per cohort). update_scheduling_link — Update an existing link's settings (name, duration, availability, buffer, limits). Lets an agent reconfigure links without the user going through the UI. toggle_scheduling_link — Enable or disable a link. Simple but valuable for agents managing seasonal availability or temporary closures. duplicate_scheduling_link — Duplicate an existing link as a starting point. Speeds up link creation workflows. --- Authentication Personal access tokens are sufficient for single-account use cases (the primary MCP scenario). OAuth support would be needed to allow multi-user deployments (e.g., a shared team assistant operating across member accounts), but that can be v2. --- Why this matters Scheduling is one of the most frequent AI agent tasks. SavvyCal's overlay model and ranker UX make it genuinely superior for human-to-human scheduling, but agents booking on behalf of users don't need that UI — they need API + MCP. Without it, the workflow is: agent → custom wrapper → SavvyCal REST API, which most non-developers won't set up. With an official MCP server, SavvyCal becomes a first-class citizen in AI-native workflows (Claude Projects, Cursor, open-source agents) with no custom code required. --- Prior art / references Stripe MCP server : https://github.com/stripe/agent-toolkit Notion MCP : https://developers.notion.com/docs/mcp MCP specification : https://modelcontextprotocol.io