ChurchSuite Bookings MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CHURCHSUITE_CLIENT_ID | Yes | Client ID for ChurchSuite API authentication | |
| CHURCHSUITE_CLIENT_SECRET | Yes | Client Secret for ChurchSuite API authentication |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_bookingsA | List ChurchSuite bookings, optionally filtered by status, date range, customer, type, or a fuzzy search string. Dates (starts_after/starts_before) must be in YYYY-MM-DD format. |
| get_bookingA | Retrieve a single ChurchSuite booking by its ID. |
| list_booked_resourcesB | List resources booked against ChurchSuite bookings, optionally filtered by booking ID. |
| list_resourcesC | List the bookable resources (rooms, equipment, etc.) that can be booked against a booking. |
| get_resourceA | Retrieve a single bookable resource by its ID. |
| list_contactsB | List addressbook contacts, optionally filtered by status, tag, or a fuzzy search string. Use this to find a contact's numeric ID (person_id, with person_type "addressbook_contact") for use with find_serving_pattern. The fuzzy search (q) matches against first_name, last_name, formal_name, email, telephone, mobile, address, job, and employer. |
| get_contactA | Retrieve a single addressbook contact by its ID. |
| list_ministriesC | List ChurchSuite Rotas ministries (e.g. Worship, Production), optionally filtered by status or name. |
| get_ministryB | Retrieve a single Rotas ministry by its ID, including its serving days, times, and rotation type. |
| list_ministry_teamsB | List the teams within Rotas ministries, optionally filtered by ministry or team ID. |
| get_ministry_teamB | Retrieve a single Rotas ministry team by its ID. |
| list_ministry_membersA | List members of Rotas ministries, optionally filtered by ministry, role, or team. Each member links to a person (an addressbook contact or child) via person.id and person.type. There is no API filter by person, so to find a specific person's memberships, list members for the relevant ministries/teams and filter the results by person.id client-side. |
| list_rota_rolesC | List the roles (e.g. Worship Leader, Sound Engineer) defined within Rotas ministries. |
| find_serving_patternA | Find which Rotas ministries/teams/roles a person belongs to, and their typical serving pattern. IMPORTANT: ChurchSuite's API v2 does not expose individual rota slot assignments or dates, only ministry membership and a ministry's recurring schedule definition (days, starts_at/ends_at, rotation_type). This tool cannot tell you the exact next date someone is rostered on; it returns the ministries they serve in plus that ministry's recurrence pattern so you can describe roughly how often/when they serve (e.g. "fortnightly on Sundays at 09:30"). For a confirmed next serving date, the user should check My ChurchSuite directly. |
| find_next_booking_for_resourceA | Find the next upcoming booking that has a specific resource booked against it. Provide either resource_id, or resource_name to resolve it via a fuzzy search against /bookings/resources (must match exactly one resource). from_date (YYYY-MM-DD) is inclusive and defaults to today. Note: ChurchSuite's API has no resource or date filter on /bookings/booked_resources, so this fetches every booked resource record and filters client-side - it may be slow on accounts with a long booking history. |
| find_next_booking_by_nameA | Find the next upcoming booking whose name/title fuzzy-matches the given string. Searches /bookings/bookings by name (ChurchSuite's q filter also matches date, reference, and sequence_id). from_date (YYYY-MM-DD) is inclusive and defaults to today. |
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 16 tools
Each tool targets a distinct entity or action: specific 'find' tools for next booking by name vs resource, separate 'get' and 'list' for each data type (bookings, contacts, ministries, etc.). No overlapping purposes.
All tool names use consistent snake_case with a verb_noun pattern ('list_', 'get_', 'find_'). No mixing of conventions, making the set predictable.
With 16 tools, the set covers bookings, contacts, resources, and rotas comprehensively. Slightly above the ideal range but still well-scoped; each tool has a clear role.
The tool set is entirely read-only, lacking any create, update, or delete operations. For a 'Bookings' server, missing mutation tools is a significant gap that will hinder common tasks.