Skip to main content

Setmore MCP Server

The Setmore MCP server lets AI applications connect to a Setmore account through the Model Context Protocol (MCP) and turn natural-language requests into scheduling and messaging actions. It is hosted by Setmore; self-hosting is not supported.


Client compatibility

Supported today

Not supported today

OAuth 2.0 Authorization Code + PKCE (S256)

Non-OAuth bearer tokens, such as personal access tokens

Clients pre-registered with Setmore

Dynamic Client Registration (RFC 7591) and Client ID Metadata Documents

Discovery via protected resource metadata (RFC 9728) and OIDC discovery

RFC 8414 authorization server metadata

Clients that register themselves will not connect today. To register a client, contact help@setmore.com.

Key benefits

  • Standards-based OAuth 2.0 with PKCE.

  • 52 Setmore tools covering scheduling, customers, services, settings and messaging.

  • Acts as the signed-in user, so Setmore permissions apply. Writes require explicit confirmation.


Authentication model

  1. The client calls the server without a token and gets a 401 pointing to the resource metadata.

  2. The client reads the metadata and finds the authorization server.

  3. The client sends the user to the authorization endpoint with its registered client_id and a PKCE challenge.

  4. The client exchanges the code at the token endpoint.

  5. The client sends Authorization: Bearer <access_token> on every request.
    ​


Integration walkthrough

Step 1: Discover the protected resource. A request without a token returns:

HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer resource_metadata="https://mcp.setmore.com/.well-known/oauth-protected-resource/mcp"

GET https://mcp.setmore.com/.well-known/oauth-protected-resource/mcp { "resource": "https://mcp.setmore.com/mcp", "authorization_servers": ["https://auth.setmore.com/o"], "scopes_supported": ["setmore.apis-internal.fullaccess", "..."] }

Step 2: Discover the authorization server. Metadata is at the OIDC discovery URL:

GET https://auth.setmore.com/o/.well-known/openid-configuration { "authorization_endpoint": "https://auth.setmore.com/o/oauth2/auth", "token_endpoint": "https://auth.setmore.com/o/oauth2/v2/token", "code_challenge_methods_supported": ["S256"] }

Step 3: Register your client. There is no registration endpoint. Email [SUPPORT_EMAIL] with your application name, HTTPS redirect URIs and whether the client is public or confidential, and you will receive a client_id.

Supported tools

All tools act on the signed-in user's account. Write tools require confirmation: confirmed: true. Messages and collabs use a preview and a confirmation token instead. Reminder tools act only on the user's own reminders and are used only when the user asks. The Access column shows who can use each tool: any user, or only account owners and admins.

Category

Tool

Description

Access

Calendar

get_agenda

Get the user's upcoming or past appointments, or a colleague's free/busy time

Any user

Calendar

find_common_slots

Find times when the user and colleagues are all free

Any user

Calendar

fetch_available_slots

Get open booking slots for a staff member

Any user

Calendar

get_booking_events

Get new bookings, reschedules and cancellations

Any user

Calendar

create_appointment

Create a calendar event

Any user

Calendar

update_appointment

Edit a calendar event

Any user

Calendar

reschedule_appointment

Move an event to a new time

Any user

Calendar

cancel_appointment

Cancel an event the user is a provider on

Any user

Calendar

block_time

Block time off on the user's own calendar

Any user

Calendar

create_sharable_slot

Create a one-time shareable booking link

Any user

Customers

search_customers

Search customers

Any user

Customers

get_customer

Get a customer's profile, with optional recent and upcoming appointments

Any user

Customers

create_customer

Create a customer

Any user

Customers

update_customer

Update a customer

Any user

Customers

book_service

Book a service for a customer

Any user

Staff

search_staff

Find teammates by name

Any user

Services

list_services

List services

Any user

Services

create_service

Create a service

Owner/admin

Services

update_service

Update a service

Owner/admin

Services

assign_service_staff

Add or remove staff on a service

Owner/admin

Services

delete_service

Delete a service

Owner/admin

Settings

get_settings

Get booking, reminder and working-hours settings

Any user

Settings

update_booking_settings

Update booking rules

Owner/admin

Settings

update_notification_settings

Update appointment reminders

Owner/admin

Settings

update_working_hours

Update working hours

Any user for own hours, owner/admin for others

Account

get_billing_usage

Get plan and SMS credit usage

Owner/admin

Account

booking_stats

Get booking statistics

Any user

Account

list_integrations

List integrations and their status

Owner/admin

Messaging

list_channels

List channels the user belongs to and the account's public channels

Any user

Messaging

get_presence

Check whether colleagues are online and the status they set

Any user

Messaging

get_unread_messages

Get unread direct and channel conversations

Any user

Messaging

get_connect_events

Get conversations with new activity since the last check

Any user

Messaging

read_messages

Read messages in a direct conversation or channel

Any user

Messaging

search_messages

Search messages in one direct conversation, channel or the user's notes

Any user

Messaging

read_attachment

Open a file attached to a message: an image, a PDF or a text file

Any user

Messaging

send_message

Send a message as the user (preview, then confirm)

Any user

Messaging

react_to_message

Add or remove an emoji reaction

Any user

Messaging

mark_as_read

Mark a conversation read for the user

Any user

Messaging

mark_as_unread

Mark a conversation unread for the user

Any user

Messaging

list_reminders

List the user's message reminders, soonest first

Any user

Messaging

set_reminder

Set a reminder on a message for the user

Any user

Messaging

cancel_reminder

Clear one of the user's reminders

Any user

Messaging

get_collab_members

List the members of a collab the user belongs to

Any user

Messaging

create_collab

Create a collab (preview, then confirm)

Any user

Messaging

add_collab_members

Add members to a collab (preview, then confirm)

Any user

Webhooks

create_event_subscription

Register a webhook for realtime message and appointment events

Any user

Webhooks

list_event_subscriptions

List the user's realtime event webhooks

Any user

Webhooks

enable_event_subscription

Resume a disabled webhook

Any user

Webhooks

delete_event_subscription

Stop a webhook

Any user

Other

send_feedback

Report a missing capability or a bug to the Setmore team

Any user

Other

find_new_tools

Find newer read-only tools that a client's tool list is missing

Any user

Other

call_new_tool

Run a read-only tool returned by find_new_tools

Any user

Example prompts

Prompt

Result

What's on my calendar tomorrow?

Lists tomorrow's appointments

Find 30 minutes this week when Priya, Sam and I are all free.

Finds common free times

Book Jane Smith for a haircut with Alex on Friday at 2 pm.

Books the service after confirmation

Move my 3 pm appointment to Thursday morning.

Reschedules after confirmation

Create a shareable booking link for a 45-minute consultation.

Creates a link

Did this answer your question?