{
  "markdown": "# @astrocal/mcp-server\n\n**Give your AI agents the power to schedule meetings.** The official [Model Context Protocol](https://modelcontextprotocol.io) server for [Astrocal](https://www.astrocal.dev) — the API-first scheduling platform built for developers and AI agents.\n\nWorks with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. Your AI assistant can check availability, book meetings, cancel, reschedule, and manage waitlists — all through natural conversation.\n\n[Get your API key](https://www.astrocal.dev/dashboard/api-keys) | [Documentation](https://www.astrocal.dev/docs) | [API Reference](https://www.astrocal.dev/docs/api-reference)\n\n## Why Astrocal for AI Agents?\n\n- **Purpose-built for AI** — Not a Calendly bolt-on. Astrocal's [scheduling API](https://www.astrocal.dev/docs/api-reference) was designed from day one for programmatic and AI-agent access.\n- **8 tools, zero config** — Check availability, book, cancel, reschedule, list event types, manage waitlists. Everything an agent needs.\n- **Calendar sync built in** — Connects to Google Calendar, Microsoft 365, and CalDAV. Your agent books against real availability.\n- **Payments included** — [Stripe Connect integration](https://www.astrocal.dev/docs/guides/payments) means your agent can book paid consultations, not just free meetings.\n- **Sandbox mode** — Test with `ac_test_*` keys. No emails sent, no calendar events created, no charges made.\n\n## Quick Start\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"astrocal\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@astrocal/mcp-server\"],\n      \"env\": {\n        \"ASTROCAL_API_KEY\": \"ac_live_xxxxxxxxxxxxx\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop and the scheduling tools will be available immediately.\n\n### Other MCP Clients\n\nInstall globally:\n\n```bash\nnpm install -g @astrocal/mcp-server\n```\n\nRun:\n\n```bash\nASTROCAL_API_KEY=ac_live_xxx astrocal-mcp\n```\n\n## Environment Variables\n\n| Variable                         | Required | Description                                                               |\n| -------------------------------- | -------- | ------------------------------------------------------------------------- |\n| `ASTROCAL_API_KEY`               | Yes      | Your Astrocal API key ([get one free](https://www.astrocal.dev/signup))   |\n| `ASTROCAL_API_URL`               | No       | API base URL (default: `https://api.astrocal.dev`)                        |\n| `ASTROCAL_DEFAULT_EVENT_TYPE_ID` | No       | Default event type ID — your agent won't need to specify it on every call |\n\n## Available Tools\n\n### `check_availability`\n\nCheck available time slots for booking.\n\n- `event_type_id` (string, optional) — Event type to check. Optional if `ASTROCAL_DEFAULT_EVENT_TYPE_ID` is set.\n- `start_date` (string, required) — Start date in ISO 8601 format (e.g., `2026-03-15`)\n- `end_date` (string, required) — End date in ISO 8601 format (e.g., `2026-03-22`)\n- `timezone` (string, optional) — IANA timezone (e.g., `America/New_York`). Defaults to UTC.\n\n### `create_booking`\n\nBook a meeting at a specific time.\n\n- `event_type_id` (string, optional) — Event type to book. Optional if default is set.\n- `start_time` (string, required) — ISO 8601 datetime (e.g., `2026-03-15T14:00:00Z`)\n- `invitee_name` (string, required) — Full name of the person booking\n- `invitee_email` (string, required) — Email address for calendar invitation\n- `invitee_timezone` (string, optional) — IANA timezone. Defaults to UTC.\n- `notes` (string, optional) — Meeting notes (max 1000 characters)\n\n### `cancel_booking`\n\nCancel an existing booking. The invitee receives a cancellation email automatically.\n\n- `booking_id` (string, required) — ID of the booking to cancel\n- `reason` (string, optional) — Cancellation reason (max 500 characters)\n\n### `reschedule_booking`\n\nReschedule a booking to a new time. Check availability first.\n\n- `booking_id` (string, required) — ID of the booking to reschedule\n- `new_start_time` (string, required) — New time in ISO 8601 format\n- `reason` (string, optional) — Reason for rescheduling (max 500 characters)\n\n### `list_bookings`\n\nList bookings with optional filters.\n\n- `status` (string, optional) — Filter: `confirmed`, `cancelled`, or `pending_payment`\n- `limit` (number, optional) — Max results (default: 10, max: 100)\n- `event_type_id` (string, optional) — Filter by event type\n\n### `list_event_types`\n\nList available event types that can be booked. No input required.\n\n### `join_waitlist`\n\nJoin the waitlist when all slots are full.\n\n- `event_type_id` (string, required) — Event type to join the waitlist for\n- `name` (string, required) — Full name\n- `email` (string, required) — Email address\n- `preferred_times` (string, optional) — Preferred time ranges or notes\n\n### `check_waitlist`\n\nCheck your position on a waitlist.\n\n- `waitlist_entry_id` (string, required) — Waitlist entry ID returned from `join_waitlist`\n\n## Example Conversation\n\n> **User:** \"What meetings can I book?\"\n>\n> **Agent:** _calls `list_event_types`_ — \"You have two event types: a 30-minute consultation (free) and a 1-hour strategy session ($50).\"\n>\n> **User:** \"Check if next Tuesday at 2pm is free for a consultation\"\n>\n> **Agent:** _calls `check_availability`_ — \"Tuesday at 2pm is available.\"\n>\n> **User:** \"Book it for jane@example.com\"\n>\n> **Agent:** _calls `create_booking`_ — \"Done! Meeting confirmed for Tuesday, March 17 at 2:00 PM UTC with Jane. A calendar invitation has been sent.\"\n>\n> **User:** \"Actually, move it to 3pm\"\n>\n> **Agent:** _calls `reschedule_booking`_ — \"Rescheduled to 3:00 PM. Jane has been notified.\"\n\n## Part of the Astrocal Platform\n\nThis MCP server is one of several ways to integrate with [Astrocal](https://www.astrocal.dev):\n\n- **[REST API](https://www.astrocal.dev/docs/api-reference)** — Full scheduling API with OpenAPI 3.1 spec\n- **[React SDK](https://www.npmjs.com/package/@astrocal/react)** (`@astrocal/react`) — Typed hooks, provider, and booking widget for React apps\n- **[Embeddable Widget](https://www.npmjs.com/package/@astrocal/widget)** (`@astrocal/widget`) — Drop-in booking UI for any website\n- **[Dashboard](https://www.astrocal.dev/dashboard)** — Manage event types, bookings, team members, and billing\n- **[Webhooks](https://www.astrocal.dev/docs/guides/webhooks)** — Real-time notifications for booking events\n\n[Create a free account](https://www.astrocal.dev/signup) to get started.\n\n## Links\n\n- [Astrocal Website](https://www.astrocal.dev)\n- [Documentation](https://www.astrocal.dev/docs)\n- [API Reference](https://www.astrocal.dev/docs/api-reference)\n- [Dashboard](https://www.astrocal.dev/dashboard)\n- [GitHub](https://github.com/astrocal-dev/mcp-server)\n- [Issues](https://github.com/astrocal-dev/mcp-server/issues)\n\n## License\n\nMIT\n",
  "bytes": 6797,
  "sha": "22689f9210450be7b59e7cec2138cdf4b310dc8b744edfd4921d19cb4d534056",
  "repo_slug": "astrocal-dev/mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_dev_astrocal_mcp_server_0a87c7ea/readme"
}