@calmesh/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CALMESH_API_KEY | Yes | Your CalMesh API key. Can also be set via --api-key CLI option. | |
| CALMESH_HTTP_SECRET | No | Secret token for HTTP transport authentication. Required if using HTTP transport. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| calmesh_list_calendarsA | List all unified calendars for the authenticated user. Returns name, slug, timezone, and default status for each calendar. Requires "read" scope. |
| calmesh_get_eventsA | Get calendar events within a date range. Returns event title, start/end times, status, and source connection. Requires "read" scope. |
| calmesh_get_event_detailsA | Get full event details (title, description, location) for a date range. Fetches from calendar providers on demand. Use this when you need to understand what events are about, not just when they occur. Requires "read" scope. |
| calmesh_check_availabilityB | Check available time slots on a calendar for a given date. Returns free slots where meetings can be scheduled. Requires "read" scope. |
| calmesh_create_eventA | Create a calendar event on a connected calendar. The event is written to the default write target (first writable source by sort order) unless a specific sourceId is provided. Use calmesh_list_calendars to find calendar slugs. Requires "write" scope or higher. |
| calmesh_delete_eventA | Delete a calendar event from a connected calendar. Requires the remoteEventId (from calmesh_create_event or calmesh_get_events) and the sourceId identifying which calendar source to delete from. Requires "write" scope or higher. |
| calmesh_find_conflictsA | Find overlapping events (conflicts) within a date range. Returns pairs of events that overlap in time. Requires "read" scope. |
| calmesh_get_slotsA | Get available booking slots for a booking page on a given date. Returns time slots visitors can book. Requires "book" scope. |
| calmesh_create_bookingA | Create a new booking on a booking page. Returns booking ID, status, and confirmed time. Requires "book" scope. |
| calmesh_cancel_bookingA | Cancel an existing booking by ID. Returns the booking ID and cancelled status. Requires "book" scope. |
| calmesh_list_bookingsA | List bookings with optional pagination and filtering. Returns booking details including visitor info and status. Requires "book" scope. |
| calmesh_create_pollA | Create a scheduling poll and send invitation emails to participants. Returns the poll with a shareable URL. Requires "book" scope. |
| calmesh_list_pollsA | List all scheduling polls. Returns poll details with participant counts and status. Requires "read" scope. |
| calmesh_get_poll_overlapA | Get overlapping availability slots for a poll. Shows which time slots work for the most participants. Requires "read" scope. |
| calmesh_decide_pollA | Finalize a poll by selecting the decided meeting time. Marks the poll as decided. Requires "book" scope. |
| calmesh_start_oauth_connectionA | Start an OAuth calendar connection. Returns an auth_url the user must visit in their browser to authorize access. Requires "full" scope. |
| calmesh_start_credential_connectionA | Connect a CalDAV server or iCal URL using credentials. For CalDAV: server URL, username, and password required. For iCal URL: only the public URL is needed. Requires "full" scope. |
| calmesh_check_connection_statusA | Check the sync status of a calendar connection. Shows if the connection is active, errored, or disconnected. Requires "full" scope. |
| calmesh_list_connectionsA | List all calendar connections for the authenticated user. Shows provider, status, and last sync time. Requires "full" scope. |
| calmesh_remove_connectionA | Remove a calendar connection. This disconnects the provider and stops syncing. Requires "full" scope. |
| calmesh_create_calendarA | Create a new unified calendar and optionally attach connection sources. Returns the calendar and source attachment results (may be partial on failure). Requires "full" scope. |
| calmesh_manage_calendarA | Update a calendar: rename, change timezone, add/remove connection sources, set write-back connection. Returns what succeeded and what failed. Requires "full" scope. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools are clearly separated by domain (events, bookings, polls, connections), but 'get_events' and 'get_event_details' both fetch events in a date range with different detail levels, and 'check_availability' and 'get_slots' both return free time slots but in different contexts. These overlapping boundaries could cause agents to select the wrong tool.
All tool names follow a consistent calmesh_verb_noun snake_case pattern, which is easy to read and predict. However, read operations use a mix of 'list', 'get', and 'check' (e.g., list_calendars, get_events, check_availability), a minor inconsistency that slightly reduces predictability.
With 22 tools covering calendars, events, bookings, polls, and connections, the count is high but justified by the breadth of functionality. It sits slightly above the ideal 3-15 range but is not excessive for the domain.
The tool surface covers most workflows, but there is no update_event tool, making it impossible to modify existing events, and no delete_calendar. Bookings and polls also lack update operations, forcing workarounds like delete-and-recreate. These gaps could hinder common tasks.