Microsoft 365 Bookings MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Microsoft 365 Bookings MCP Server show me appointments for business 'Contoso Salon' this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Microsoft 365 Bookings MCP Server
An MCP server that provides tools for interacting with Microsoft Bookings through the Microsoft Graph API.
Features
List Bookings businesses
Get staff members for a business
Get services offered by a business
Get appointments for a business
Setup
Installing via Smithery
To install Microsoft 365 Bookings for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @DynamicEndpoints/m365-bookings-mcp --client claudeManual Installation
Create an Azure AD application registration:
Go to Azure Portal > Azure Active Directory > App registrations
Create a new registration
Add Microsoft Graph API permissions:
BookingsAppointment.ReadWrite.All
BookingsBusiness.ReadWrite.All
BookingsStaffMember.ReadWrite.All
Create a .env file with the following variables:
MICROSOFT_GRAPH_CLIENT_ID=your-client-id
MICROSOFT_GRAPH_CLIENT_SECRET=your-client-secret
MICROSOFT_GRAPH_TENANT_ID=your-tenant-idInstall dependencies:
npm installBuild the server:
npm run buildAvailable Tools
get_bookings_businesses
Get a list of all Bookings businesses in the organization.
get_business_staff
Get staff members for a specific Bookings business.
Required parameter: businessId
get_business_services
Get services offered by a specific Bookings business.
Required parameter: businessId
get_business_appointments
Get appointments for a specific Bookings business.
Required parameter: businessId
Optional parameters:
startDate (ISO format)
endDate (ISO format)
Available Tools
4 toolsget_bookings_businessesB
Get list of Bookings businesses
Inputs: no named parameters.
get_business_appointmentsC
Get appointments for a Bookings business
Inputs: businessId (required), startDate, endDate.
get_business_servicesC
Get services offered by a Bookings business
Inputs: businessId (required).
get_business_staffC
Get staff members for a Bookings business
Inputs: businessId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose targeting different resources: businesses, appointments, services, and staff. There is no overlap in functionality, making it easy for an agent to select the correct tool without confusion.
All tools follow a consistent verb_noun pattern with 'get_' prefix and descriptive suffixes like '_businesses' or '_business_appointments'. The naming is uniform and predictable across all four tools.
With only 4 tools, the set feels thin for a Microsoft 365 Bookings domain, lacking essential operations like creating, updating, or deleting resources. While the tools cover basic retrieval, the scope is limited and may not support full agent workflows.
The toolset is severely incomplete, offering only read operations (get) with no ability to create, update, or delete bookings, appointments, services, or staff. This creates significant gaps that will cause agent failures in managing Bookings resources effectively.
Related MCP Connectors
Read appointments, types, calendars and availability; create, cancel or reschedule bookings.
Read Appointo bookings, availability and subscriptions; create, reschedule and cancel bookings.
Manage Microsoft 365 email, calendar, contacts and inbox rules via the Graph API with OAuth 2.0.
Manage YouCanBook.me bookings, booking pages, appointment types, team members and locations.