ChurchSuite MCP by usefulapi
Read ChurchSuite contacts, children, small groups, rotas, events and attendance; add contact notes.
Should I use this
Quality & Safety
Findings (7)
- LOWin churchsuite_list_children_groups
- LOWin churchsuite_list_small_group_members
- LOWin churchsuite_list_event_categories
- LOWin churchsuite_list_ministry_teams
- LOWin churchsuite_list_ministry_members
- LOWin churchsuite_list_unavailability
- LOWin churchsuite_list_attendance_records
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"churchsuite": {
"url": "https://churchsuite.usefulapi.io/mcp"
}
}
}Remote endpoints
https://churchsuite.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (25)
π’churchsuite_get_account
The church's ChurchSuite account summary: name, unique id, subdomain, time zone, currency, language and first day of week (no billing or data-protection contact details). A good first call. API: GET /account/info.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_sites(ids)
List the church's sites (campuses/congregations: id, name, initials, address). Site ids filter contacts, children, groups, events and plans. API: GET /account/sites.
Input Schema
{
"type": "object",
"properties": {
"ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_contacts(q, status, tag_ids, site_ids, order_by, ...)
Search or list adult contacts in the Address Book (name, contact details, address, sites, status, tags via tag_ids). Personal data: ask only for what you need. API: GET /addressbook/contacts.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on first/last/formal name, email, telephone, mobile and address.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"description": "Only contacts with this status.",
"type": "string",
"enum": [
"active",
"archived",
"pending"
]
},
"tag_ids": {
"description": "Only these tags (contacts with ANY of them) (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_get_contact(contact_id)
Get one Address Book contact by id: names, sex, date of birth, marital status and spouse id, address, phones, email, job, custom fields, communication preferences, sites, status. API: GET /addressbook/contacts/{id}.
Input Schema
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "The contact's numeric id."
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_contact_notes(contact_id)
List the pastoral/admin notes on a contact (content, pinned, visibility, who wrote it and when), pinned first. API: GET /addressbook/contacts/{id}/notes.
Input Schema
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "The contact's numeric id."
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π‘churchsuite_add_contact_note(contact_id, content, pinned, private_to_me)
WRITE: add a new note to a contact's record in ChurchSuite (it is visible to other ChurchSuite users who can see the contact, unless private_to_me is true). Only adds a note: never edits or deletes anything, sends nothing to the contact. API: POST /addressbook/contacts/{id}/notes.
Input Schema
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "The contact's numeric id."
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The note text."
},
"pinned": {
"description": "Pin the note to the top of the contact's notes (default false).",
"type": "boolean"
},
"private_to_me": {
"description": "true = only the API user can see the note (ChurchSuite visible_to.just_me). Default: no restriction.",
"type": "boolean"
}
},
"required": [
"contact_id",
"content"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_contact_tags(q, order_by, page, per_page)
List Address Book tags (id, name, category, whether it is a smart tag). Use a tag id as tag_ids in list_contacts to list the people with that tag. API: GET /addressbook/tags.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the tag name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_children(q, status, group_ids, tag_ids, site_ids, ...)
Search or list children in the Children module (name, date of birth, school year, contact details, sites, status, consent flags). Medical and additional-needs fields are left out unless include_medical is true. API: GET /children/children.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on first/last/formal name, email, mobile and address.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"description": "Only children with this status.",
"type": "string",
"enum": [
"active",
"archived",
"pending"
]
},
"group_ids": {
"description": "Only these children's groups (see list_children_groups) (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"tag_ids": {
"description": "Only these tags (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"include_medical": {
"description": "true = also return the medical, medical_short, doctor_details and additional_needs fields (sensitive; default false).",
"type": "boolean"
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_get_child(child_id, include_medical)
Get one child by id (names, date of birth, school, contact details, custom fields, consents, sites, status). Medical and additional-needs fields only with include_medical: true. API: GET /children/children/{id}.
Input Schema
{
"type": "object",
"properties": {
"child_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "The child's numeric id."
},
"include_medical": {
"description": "true = also return the medical, medical_short, doctor_details and additional_needs fields (sensitive; default false).",
"type": "boolean"
}
},
"required": [
"child_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_children_groups(q, status, page, per_page)
List the Children module's groups (classes/age groups: id, name, entry age, check-in capacity and ratio, status). API: GET /children/groups.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the group name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"active",
"archived"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_small_groups(q, view, frequency, days, cluster_ids, ...)
List small groups (home groups/life groups: name, day, time, frequency, location, description, dates, sign-up options). API: GET /smallgroups/groups.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the group name and location.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"view": {
"description": "Groups whose date range is in the past, active now, active or future, or future.",
"type": "string",
"enum": [
"past",
"active",
"active_future",
"future"
]
},
"frequency": {
"type": "string",
"enum": [
"weekly",
"fortnightly",
"monthly",
"quarterly",
"custom"
]
},
"days": {
"description": "Only groups meeting on these days.",
"minItems": 1,
"maxItems": 7,
"type": "array",
"items": {
"type": "string",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
},
"cluster_ids": {
"description": "Only these clusters (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_get_small_group(group_id)
Get one small group by id (schedule, location, description, custom fields, sign-up options, sites). API: GET /smallgroups/groups/{id}.
Input Schema
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "The small group's numeric id."
}
},
"required": [
"group_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_small_group_members(group_ids, contact_ids, child_ids, role_id, status, ...)
List small group memberships (group id, person = contact or child id, status, role ids, joined date). Filter by group to get a group's members, or by contact/child to get a person's groups; look people up with get_contact / get_child. API: GET /smallgroups/members.
Input Schema
{
"type": "object",
"properties": {
"group_ids": {
"description": "Only these small groups (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"contact_ids": {
"description": "Only these contacts (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"child_ids": {
"description": "Only these children (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"role_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "Only members with this role id."
},
"status": {
"type": "string",
"enum": [
"active",
"pending"
]
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_events(starts_after, starts_before, q, status, category_ids, ...)
List calendar events (name, start/end, status, category, location, description, sign-up options, sites). Use starts_after/starts_before (YYYY-MM-DD) for a date window. API: GET /calendar/events.
Input Schema
{
"type": "object",
"properties": {
"starts_after": {
"description": "Only events starting after this date (YYYY-MM-DD).",
"type": "string"
},
"starts_before": {
"description": "Only events starting before this date (YYYY-MM-DD).",
"type": "string"
},
"q": {
"description": "Fuzzy search on the event name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"cancelled",
"confirmed",
"pending"
]
},
"category_ids": {
"description": "Only these event categories (see list_event_categories) (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"sequence_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "Only events of this recurring sequence."
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"date:asc",
"date:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_get_event(event_id)
Get one calendar event by id (times, status, category, location, description, visibility, sign-up options). API: GET /calendar/events/{id}.
Input Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647,
"description": "The event's numeric id."
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_event_categories(q, status, page, per_page)
List calendar categories (id, name, colour, status). Use the ids as category_ids in list_events. API: GET /calendar/categories.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the category name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"active",
"archived"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_ministries(q, statuses, ids, site_ids, page, ...)
List the Rotas module's ministries (worship team, welcome teamβ¦: id, name, description, days, rota and rotation type, status, sites). API: GET /rotas/ministries.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the ministry name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"statuses": {
"description": "Only ministries with these statuses.",
"minItems": 1,
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"active",
"archived"
]
}
},
"ids": {
"description": "Only these ministries (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_ministry_teams(ministry_ids, team_ids, page, per_page)
List the teams inside rota ministries (id, ministry id, name, order). API: GET /rotas/ministry_teams.
Input Schema
{
"type": "object",
"properties": {
"ministry_ids": {
"description": "Only these ministries (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"team_ids": {
"description": "Only these teams (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_ministry_members(ministry_ids, team_ids, role_ids, order_by, page, ...)
List who serves in rota ministries (ministry id, team id, person = contact or child id, role ids). Look people up with get_contact / get_child. API: GET /rotas/ministry_members.
Input Schema
{
"type": "object",
"properties": {
"ministry_ids": {
"description": "Only these ministries (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"team_ids": {
"description": "Only these teams (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"role_ids": {
"description": "Only these roles (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_unavailability(contact_ids, child_ids, ministry_ids, starts_after, starts_before, ...)
List the dates people said they are unavailable to serve (person, description, start/end). Filter by person, ministry or a date window. API: GET /rotas/unavailability.
Input Schema
{
"type": "object",
"properties": {
"contact_ids": {
"description": "Only these contacts (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"child_ids": {
"description": "Only these children (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"ministry_ids": {
"description": "Only these ministries (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"starts_after": {
"description": "Only unavailability starting after this date (YYYY-MM-DD).",
"type": "string"
},
"starts_before": {
"description": "Only unavailability starting before this date (YYYY-MM-DD).",
"type": "string"
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"date:asc",
"date:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_service_plans(starts_after, starts_before, q, status, site_ids, ...)
List service plans from the Planning module (name, date, time, status, linked event, sites). API: GET /planning/plans.
Input Schema
{
"type": "object",
"properties": {
"starts_after": {
"description": "Only plans dated after this date (YYYY-MM-DD).",
"type": "string"
},
"starts_before": {
"description": "Only plans dated before this date (YYYY-MM-DD).",
"type": "string"
},
"q": {
"description": "Fuzzy search on the plan name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"draft",
"published"
]
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"date:asc",
"date:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_plan_items(plan_ids, order_by, page, per_page)
List the running order of one or more service plans (items: type, name, song arrangement, duration, start time, notes, people). API: GET /planning/plan_items.
Input Schema
{
"type": "object",
"properties": {
"plan_ids": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
},
"description": "The plan ids (from list_service_plans), up to 20."
},
"order_by": {
"description": "Sort order, field:direction.",
"type": "string",
"enum": [
"created_at:asc",
"created_at:desc",
"id:asc",
"id:desc",
"modified_at:asc",
"modified_at:desc",
"name:asc",
"name:desc",
"order:asc",
"order:desc"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"plan_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_giving_funds(q, status, page, per_page)
List the church's giving funds (id, name, description, Gift Aid / tax-deductible flags, whether shown in Donate, status). Funds only: no donors, donations or amounts. API: GET /giving/funds.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the fund name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"active",
"archived"
]
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_gatherings(q, status, site_ids, page, per_page)
List the Attendance module's gatherings (services/meetings whose attendance is counted: id, name, sites, status). API: GET /attendance/gatherings.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Fuzzy search on the gathering name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"active",
"archived"
]
},
"site_ids": {
"description": "Only these sites (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’churchsuite_list_attendance_records(gathering_ids, days, is_after, is_before, page, ...)
List attendance records (headcounts per gathering and date: total number, total people, notes), sorted by date. Filter by gathering, weekday or a date window (YYYY-MM-DD). API: GET /attendance/records.
Input Schema
{
"type": "object",
"properties": {
"gathering_ids": {
"description": "Only these gatherings (numeric ChurchSuite ids, up to 100).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"days": {
"description": "Only records on these weekdays.",
"minItems": 1,
"maxItems": 7,
"type": "array",
"items": {
"type": "string",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
},
"is_after": {
"description": "Only records after this date (YYYY-MM-DD).",
"type": "string"
},
"is_before": {
"description": "Only records before this date (YYYY-MM-DD).",
"type": "string"
},
"page": {
"description": "Page number (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"per_page": {
"description": "Items per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence