Features

Add a Model Context Protocol (MCP) server for SavvyCal

8mo agoCompleted

**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.

and 2 others

1 comment

  1. Derrick Reimer marked this as Completed6d ago
  2. I've built a CRM in Claude Cowork. It would be amazing if I could use Claude Cowork to "book an event" on my behalf. I now still need to do that manually in the UI. I could probably use the Claude Chrome Plugin, but that's extra unnecessary complexity.