MCP tools
Server: https://api.quorumcal.com/mcp (Streamable HTTP, stateless). Set it up in the MCP guide. A tool call runs the same route the REST API does, with your credential, so scopes, org limits and policies apply unchanged. Tool names are the CLI command with underscores.
Sessions start with the core toolset. Three meta tools reach the rest: list_toolsets, enable_toolset (returns a toolset’s tools and their schemas) and call_tool (runs any tool by name). Connect with /mcp?toolsets=links,polls or /mcp?toolsets=all to list more up front.
Who you are, your orgs and teams, and a read-only look at your links, bookings and polls.
| Tool | Does | Needs | Hint |
|---|---|---|---|
bookings_list |
List bookings | bookings:read (not for credentials limited to some orgs) |
read-only |
links_list |
List your booking links | links:read (not for credentials limited to some orgs) |
read-only |
orgs_get |
Get an org | any signed-in credential | read-only |
orgs_list |
List the orgs you belong to | any signed-in credential | read-only |
orgs_members_list |
List an org’s members | any signed-in credential | read-only |
polls_list |
List polls | polls:read (not for credentials limited to some orgs) |
read-only |
team_bookings_list |
List bookings | bookings:read |
read-only |
team_links_list |
List a team’s booking links | links:read |
read-only |
team_polls_list |
List polls | polls:read |
read-only |
teams_get |
Get a team | any signed-in credential | read-only |
teams_list |
List an org’s teams | any signed-in credential | read-only |
teams_members_list |
List a team’s members | any signed-in credential | read-only |
teams_mine |
List the teams you are in | any signed-in credential | read-only |
whoami |
Get the signed-in user | any signed-in credential | read-only |
Create, change and delete booking links, for you or a team, and choose your handle.
| Tool | Does | Needs | Hint |
|---|---|---|---|
handle_set |
Choose your handle | links:write (not for credentials limited to some orgs) |
idempotent |
links_create |
Create a booking link | links:write (not for credentials limited to some orgs) |
changes data |
links_delete |
Delete a booking link | links:write (not for credentials limited to some orgs) |
destructive |
links_get |
Get a booking link | links:read (not for credentials limited to some orgs) |
read-only |
links_update |
Change a booking link | links:write (not for credentials limited to some orgs) |
changes data |
team_links_create |
Create a booking link | links:write |
changes data |
team_links_delete |
Delete a booking link | links:write |
destructive |
team_links_get |
Get a booking link | links:read |
read-only |
team_links_update |
Change a booking link | links:write |
changes data |
bookings
Section titled “bookings”List a team’s bookings and swap a reserved pool member.
| Tool | Does | Needs | Hint |
|---|---|---|---|
bookings_swap |
Swap one reserved pool member for another | bookings:write (not for credentials limited to some orgs) |
changes data |
team_bookings_swap |
Swap one reserved pool member for another | bookings:write |
changes data |
Create, edit, answer, finalize and schedule polls, including suggested polls and invitations.
| Tool | Does | Needs | Hint |
|---|---|---|---|
polls_answer |
Answer a poll as yourself | polls:write (not for credentials limited to some orgs) |
idempotent |
polls_attendees_add |
Add attendees to a suggested poll | polls:write (not for credentials limited to some orgs) |
changes data |
polls_attendees_remove |
Remove an attendee from a suggested poll | polls:write (not for credentials limited to some orgs) |
destructive |
polls_attendees_update |
Make an attendee required or optional | polls:write (not for credentials limited to some orgs) |
changes data |
polls_busy |
Busy overlay for a poll’s grid | polls:read (not for credentials limited to some orgs) |
read-only |
polls_create |
Create a poll | polls:write (not for credentials limited to some orgs) |
changes data |
polls_delete |
Delete a poll and its responses | polls:write (not for credentials limited to some orgs) |
destructive |
polls_finalize |
Pick the final time and invite everyone who responded | polls:write (not for credentials limited to some orgs) |
changes data |
polls_get |
Get a poll with every response | polls:read (not for credentials limited to some orgs) |
read-only |
polls_invitations_create |
Invite people to answer a poll by email | polls:write (not for credentials limited to some orgs) |
changes data |
polls_invitations_list |
List who was invited to a poll | polls:read (not for credentials limited to some orgs) |
read-only |
polls_prefill |
Suggested answers from your connected calendars | polls:read (not for credentials limited to some orgs) |
read-only |
polls_schedule |
Schedule now: book the chosen option and close the poll | polls:write (not for credentials limited to some orgs) |
changes data |
polls_suggest |
Create a poll whose times Quorum proposes | polls:write (not for credentials limited to some orgs) |
changes data |
polls_suggest_people |
People who can be picked as attendees of a suggested poll | polls:read (not for credentials limited to some orgs) |
read-only |
polls_suggestions_get |
Every option ranked, with who can make it | polls:read (not for credentials limited to some orgs) |
read-only |
polls_suggestions_more |
Propose more times, optionally in a wider window | polls:write (not for credentials limited to some orgs) |
changes data |
polls_suggestions_update |
Turn auto-finalize on or off | polls:write (not for credentials limited to some orgs) |
changes data |
polls_update |
Edit a poll | polls:write (not for credentials limited to some orgs) |
changes data |
team_polls_answer |
Answer a poll as yourself | polls:write |
idempotent |
team_polls_attendees_add |
Add attendees to a suggested poll | polls:write |
changes data |
team_polls_attendees_remove |
Remove an attendee from a suggested poll | polls:write |
destructive |
team_polls_attendees_update |
Make an attendee required or optional | polls:write |
changes data |
team_polls_busy |
Busy overlay for a poll’s grid | polls:read |
read-only |
team_polls_create |
Create a poll | polls:write |
changes data |
team_polls_delete |
Delete a poll and its responses | polls:write |
destructive |
team_polls_finalize |
Pick the final time and invite everyone who responded | polls:write |
changes data |
team_polls_get |
Get a poll with every response | polls:read |
read-only |
team_polls_invitations_create |
Invite people to answer a poll by email | polls:write |
changes data |
team_polls_invitations_list |
List who was invited to a poll | polls:read |
read-only |
team_polls_prefill |
Suggested answers from your connected calendars | polls:read |
read-only |
team_polls_schedule |
Schedule now: book the chosen option and close the poll | polls:write |
changes data |
team_polls_suggest |
Create a poll whose times Quorum proposes | polls:write |
changes data |
team_polls_suggest_people |
People who can be picked as attendees of a suggested poll | polls:read |
read-only |
team_polls_suggestions_get |
Every option ranked, with who can make it | polls:read |
read-only |
team_polls_suggestions_more |
Propose more times, optionally in a wider window | polls:write |
changes data |
team_polls_suggestions_update |
Turn auto-finalize on or off | polls:write |
changes data |
team_polls_update |
Edit a poll | polls:write |
changes data |
series
Section titled “series”Recurring poll series: members, weeks, new-time polls, breaks and your memberships.
| Tool | Does | Needs | Hint |
|---|---|---|---|
orgs_breaks_list |
The org’s breaks | any signed-in credential | read-only |
series_auto_answer_set |
Answer from my calendar automatically for this series | availability:write (not for credentials limited to some orgs) |
idempotent |
series_breaks_create |
Add a break | polls:write (not for credentials limited to some orgs) |
changes data |
series_breaks_delete |
Remove a break | polls:write (not for credentials limited to some orgs) |
destructive |
series_breaks_list |
Breaks that series skip | polls:read (not for credentials limited to some orgs) |
read-only |
series_create |
Start a recurring poll series | polls:write (not for credentials limited to some orgs) |
changes data |
series_end |
End a series | polls:write (not for credentials limited to some orgs) |
changes data |
series_get |
A series with its members and settings | polls:read (not for credentials limited to some orgs) |
read-only |
series_list |
List recurring poll series | polls:read (not for credentials limited to some orgs) |
read-only |
series_members_add |
Add a member to a series | polls:write (not for credentials limited to some orgs) |
changes data |
series_members_remove |
Remove a member from a series | polls:write (not for credentials limited to some orgs) |
destructive |
series_members_update |
Make a member required or optional | polls:write (not for credentials limited to some orgs) |
changes data |
series_memberships_get |
Your place in a series | polls:read (not for credentials limited to some orgs) |
read-only |
series_memberships_leave |
Leave a series | polls:write (not for credentials limited to some orgs) |
destructive |
series_memberships_list |
The series you are a member of | polls:read (not for credentials limited to some orgs) |
read-only |
series_pause |
Pause a series | polls:write (not for credentials limited to some orgs) |
changes data |
series_repoll_cancel |
Cancel the open new-time poll | polls:write (not for credentials limited to some orgs) |
destructive |
series_repoll_get |
The open new-time poll, ranked | polls:read (not for credentials limited to some orgs) |
read-only |
series_repoll_pick |
Choose the new weekly time | polls:write (not for credentials limited to some orgs) |
changes data |
series_repoll_start |
Poll the group for a new weekly time | polls:write (not for credentials limited to some orgs) |
changes data |
series_resume |
Resume a paused series | polls:write (not for credentials limited to some orgs) |
changes data |
series_transfer |
Hand a series to someone else | polls:write (not for credentials limited to some orgs) |
changes data |
series_update |
Change a series’ settings | polls:write (not for credentials limited to some orgs) |
changes data |
series_weeks_get |
One week with every option and who can’t make it | polls:read (not for credentials limited to some orgs) |
read-only |
series_weeks_keep |
Keep a declined meeting as it is | polls:write (not for credentials limited to some orgs) |
changes data |
series_weeks_list |
A series’ history: each week and what became of it | polls:read (not for credentials limited to some orgs) |
read-only |
series_weeks_pick |
Pick the time for a week | polls:write (not for credentials limited to some orgs) |
changes data |
series_weeks_repoll |
Start the automatic step for a week now | polls:write (not for credentials limited to some orgs) |
changes data |
series_weeks_skip |
Skip a week | polls:write (not for credentials limited to some orgs) |
changes data |
team_series_breaks_create |
Add a break | polls:write |
changes data |
team_series_breaks_delete |
Remove a break | polls:write |
destructive |
team_series_breaks_list |
Breaks that series skip | polls:read |
read-only |
team_series_create |
Start a recurring poll series | polls:write |
changes data |
team_series_end |
End a series | polls:write |
changes data |
team_series_get |
A series with its members and settings | polls:read |
read-only |
team_series_list |
List recurring poll series | polls:read |
read-only |
team_series_members_add |
Add a member to a series | polls:write |
changes data |
team_series_members_remove |
Remove a member from a series | polls:write |
destructive |
team_series_members_update |
Make a member required or optional | polls:write |
changes data |
team_series_pause |
Pause a series | polls:write |
changes data |
team_series_repoll_cancel |
Cancel the open new-time poll | polls:write |
destructive |
team_series_repoll_get |
The open new-time poll, ranked | polls:read |
read-only |
team_series_repoll_pick |
Choose the new weekly time | polls:write |
changes data |
team_series_repoll_start |
Poll the group for a new weekly time | polls:write |
changes data |
team_series_resume |
Resume a paused series | polls:write |
changes data |
team_series_transfer |
Hand a series to someone else | polls:write |
changes data |
team_series_update |
Change a series’ settings | polls:write |
changes data |
team_series_weeks_get |
One week with every option and who can’t make it | polls:read |
read-only |
team_series_weeks_keep |
Keep a declined meeting as it is | polls:write |
changes data |
team_series_weeks_list |
A series’ history: each week and what became of it | polls:read |
read-only |
team_series_weeks_pick |
Pick the time for a week | polls:write |
changes data |
team_series_weeks_repoll |
Start the automatic step for a week now | polls:write |
changes data |
team_series_weeks_skip |
Skip a week | polls:write |
changes data |
availability
Section titled “availability”Schedules, saved overrides, visibility, busy times, and who you share availability with.
| Tool | Does | Needs | Hint |
|---|---|---|---|
availability_busy |
Your busy times across connected calendars | availability:read |
read-only |
availability_overrides_create |
Save a dated override or a weekly rule | availability:write (not for credentials limited to some orgs) |
changes data |
availability_overrides_delete |
Delete a saved override or weekly rule | availability:write (not for credentials limited to some orgs) |
destructive |
availability_overrides_list |
List your saved availability overrides and weekly rules | availability:read |
read-only |
availability_overrides_update |
Change a saved override or weekly rule | availability:write (not for credentials limited to some orgs) |
changes data |
availability_requests_cancel |
Cancel a pending availability request | availability:write (not for credentials limited to some orgs) |
destructive |
availability_requests_create |
Ask people to share their availability | availability:write (not for credentials limited to some orgs) |
changes data |
availability_requests_list |
List the availability requests you sent | availability:read (not for credentials limited to some orgs) |
read-only |
availability_visibility_get |
Who can see your busy time | availability:read |
read-only |
availability_visibility_update |
Change who can see your busy time | availability:write (not for credentials limited to some orgs) |
changes data |
grants_create |
Share your availability | availability:write (not for credentials limited to some orgs) |
changes data |
grants_list |
List who you share your availability with | availability:read (not for credentials limited to some orgs) |
read-only |
grants_revoke |
Stop sharing your availability | availability:write (not for credentials limited to some orgs) |
destructive |
schedules_create |
Create a named schedule | availability:write (not for credentials limited to some orgs) |
changes data |
schedules_delete |
Delete a named schedule | availability:write (not for credentials limited to some orgs) |
destructive |
schedules_list |
List your named schedules | availability:read |
read-only |
schedules_update |
Update a named schedule | availability:write (not for credentials limited to some orgs) |
changes data |
contacts
Section titled “contacts”Your private address book.
| Tool | Does | Needs | Hint |
|---|---|---|---|
contacts_create |
Add a contact | contacts:write (not for credentials limited to some orgs) |
changes data |
contacts_delete |
Delete a contact | contacts:write (not for credentials limited to some orgs) |
destructive |
contacts_export |
Export your contacts | contacts:read (not for credentials limited to some orgs) |
read-only |
contacts_get |
Read a contact and your history with them | contacts:read (not for credentials limited to some orgs) |
read-only |
contacts_import |
Import contacts from a vCard or CSV file | contacts:write (not for credentials limited to some orgs) |
changes data |
contacts_list |
List your contacts | contacts:read (not for credentials limited to some orgs) |
read-only |
contacts_update |
Change a contact | contacts:write (not for credentials limited to some orgs) |
changes data |
Org administration: settings, members, invites, teams and credentials.
| Tool | Does | Needs | Hint |
|---|---|---|---|
orgs_breaks_create |
Add an org-wide break | workspace:admin |
changes data |
orgs_breaks_delete |
Remove an org-wide break | workspace:admin |
destructive |
orgs_credentials_list |
List every credential that reaches an org | workspace:admin |
read-only |
orgs_invites_create |
Invite someone by email | workspace:admin |
changes data |
orgs_invites_list |
List an org’s pending invites | workspace:admin |
read-only |
orgs_invites_revoke |
Revoke a pending invite | workspace:admin |
destructive |
orgs_members_remove |
Remove a member, or leave the org yourself | workspace:admin |
destructive |
orgs_members_update |
Change a member’s role | workspace:admin |
changes data |
orgs_policy_get |
Get an org’s token and connected-app policies | workspace:admin |
read-only |
orgs_update |
Change an org’s settings | workspace:admin |
changes data |
orgs_webhooks_create |
Create a webhook endpoint | workspace:admin |
changes data |
orgs_webhooks_delete |
Delete a webhook endpoint | workspace:admin |
destructive |
orgs_webhooks_deliveries |
List an endpoint’s deliveries | workspace:admin |
read-only |
orgs_webhooks_delivery |
Get a delivery with its payload and tries | workspace:admin |
read-only |
orgs_webhooks_events |
List the webhook event types | any signed-in credential | read-only |
orgs_webhooks_get |
Get a webhook endpoint | workspace:admin |
read-only |
orgs_webhooks_list |
List an org’s webhook endpoints | workspace:admin |
read-only |
orgs_webhooks_redeliver |
Send a delivery again | workspace:admin |
changes data |
orgs_webhooks_rotate_secret |
Rotate a webhook endpoint’s secret | workspace:admin |
changes data |
orgs_webhooks_test |
Send a test event | workspace:admin |
changes data |
orgs_webhooks_update |
Change a webhook endpoint | workspace:admin |
changes data |
teams_create |
Create a team | workspace:admin |
changes data |
teams_delete |
Delete an empty team | workspace:admin |
destructive |
teams_members_remove |
Remove someone from a team, or leave it yourself | workspace:admin |
destructive |
teams_members_set |
Add someone to a team, or change their role | workspace:admin |
idempotent |
teams_update |
Rename a team, change its root permission or alias | workspace:admin |
changes data |