Skip to content

ChurchSuite MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.7.3 · published by io.usefulapi

Read ChurchSuite contacts, children, small groups, rotas, events and attendance; add contact notes.

Changes · 1

25 tools: 1 change things and 24 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http churchsuite https://churchsuite.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

25 tools

Changes things 1Claude Code: ask
  • churchsuite_add_contact_noteWRITE: 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).No findings

    Why it is in this group

    • The name "churchsuite_add_contact_note" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Add a note to a contact
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 24Claude Code: allow
  • churchsuite_get_accountThe 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).No findings

    Why it is in this group

    • The name "churchsuite_get_account" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get church account
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_get_childGet one child by id (names, date of birth, school, contact details, custom fields, consents, sites, status).No findings

    Why it is in this group

    • The name "churchsuite_get_child" says "get": a word for reading.
    Description, as the server wrote it
    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}.

    Annotations the server declares

    • title: Get a child
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_get_contactGet 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.No findings

    Why it is in this group

    • The name "churchsuite_get_contact" says "get": a word for reading.
    Description, as the server wrote it
    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}.

    Annotations the server declares

    • title: Get a contact
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_get_eventGet one calendar event by id (times, status, category, location, description, visibility, sign-up options).No findings

    Why it is in this group

    • The name "churchsuite_get_event" says "get": a word for reading.
    Description, as the server wrote it
    Get one calendar event by id (times, status, category, location, description, visibility, sign-up options). API: GET /calendar/events/{id}.

    Annotations the server declares

    • title: Get a calendar event
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_get_small_groupGet one small group by id (schedule, location, description, custom fields, sign-up options, sites).No findings

    Why it is in this group

    • The name "churchsuite_get_small_group" says "get": a word for reading.
    Description, as the server wrote it
    Get one small group by id (schedule, location, description, custom fields, sign-up options, sites). API: GET /smallgroups/groups/{id}.

    Annotations the server declares

    • title: Get a small group
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_attendance_recordsList attendance records (headcounts per gathering and date: total number, total people, notes), sorted by date.No findings

    Why it is in this group

    • The name "churchsuite_list_attendance_records" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List attendance records
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_childrenSearch or list children in the Children module (name, date of birth, school year, contact details, sites, status, consent flags).No findings

    Why it is in this group

    • The name "churchsuite_list_children" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List children
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_children_groupsList the Children module's groups (classes/age groups: id, name, entry age, check-in capacity and ratio, status).No findings

    Why it is in this group

    • The name "churchsuite_list_children_groups" says "list": a word for reading.
    Description, as the server wrote it
    List the Children module's groups (classes/age groups: id, name, entry age, check-in capacity and ratio, status). API: GET /children/groups.

    Annotations the server declares

    • title: List children's groups
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_contact_notesList the pastoral/admin notes on a contact (content, pinned, visibility, who wrote it and when), pinned first.No findings

    Why it is in this group

    • The name "churchsuite_list_contact_notes" says "list": a word for reading.
    Description, as the server wrote it
    List the pastoral/admin notes on a contact (content, pinned, visibility, who wrote it and when), pinned first. API: GET /addressbook/contacts/{id}/notes.

    Annotations the server declares

    • title: List contact notes
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_contact_tagsList Address Book tags (id, name, category, whether it is a smart tag).No findings

    Why it is in this group

    • The name "churchsuite_list_contact_tags" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List address book tags
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_contactsSearch or list adult contacts in the Address Book (name, contact details, address, sites, status, tags via tag_ids).No findings

    Why it is in this group

    • The name "churchsuite_list_contacts" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List address book contacts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_event_categoriesList calendar categories (id, name, colour, status).No findings

    Why it is in this group

    • The name "churchsuite_list_event_categories" says "list": a word for reading.
    Description, as the server wrote it
    List calendar categories (id, name, colour, status). Use the ids as category_ids in list_events. API: GET /calendar/categories.

    Annotations the server declares

    • title: List event categories
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_eventsList calendar events (name, start/end, status, category, location, description, sign-up options, sites).No findings

    Why it is in this group

    • The name "churchsuite_list_events" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List calendar events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_gatheringsList the Attendance module's gatherings (services/meetings whose attendance is counted: id, name, sites, status).No findings

    Why it is in this group

    • The name "churchsuite_list_gatherings" says "list": a word for reading.
    Description, as the server wrote it
    List the Attendance module's gatherings (services/meetings whose attendance is counted: id, name, sites, status). API: GET /attendance/gatherings.

    Annotations the server declares

    • title: List attendance gatherings
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_giving_fundsList the church's giving funds (id, name, description, Gift Aid / tax-deductible flags, whether shown in Donate, status).No findings

    Why it is in this group

    • The name "churchsuite_list_giving_funds" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List giving funds
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_ministriesList the Rotas module's ministries (worship team, welcome team…: id, name, description, days, rota and rotation type, status, sites).No findings

    Why it is in this group

    • The name "churchsuite_list_ministries" says "list": a word for reading.
    Description, as the server wrote it
    List the Rotas module's ministries (worship team, welcome team…: id, name, description, days, rota and rotation type, status, sites). API: GET /rotas/ministries.

    Annotations the server declares

    • title: List rota ministries
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_ministry_membersList who serves in rota ministries (ministry id, team id, person = contact or child id, role ids).No findings

    Why it is in this group

    • The name "churchsuite_list_ministry_members" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List ministry members
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_ministry_teamsList the teams inside rota ministries (id, ministry id, name, order).No findings

    Why it is in this group

    • The name "churchsuite_list_ministry_teams" says "list": a word for reading.
    Description, as the server wrote it
    List the teams inside rota ministries (id, ministry id, name, order). API: GET /rotas/ministry_teams.

    Annotations the server declares

    • title: List ministry teams
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_plan_itemsList the running order of one or more service plans (items: type, name, song arrangement, duration, start time, notes, people).No findings

    Why it is in this group

    • The name "churchsuite_list_plan_items" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List service plan items
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_service_plansList service plans from the Planning module (name, date, time, status, linked event, sites).No findings

    Why it is in this group

    • The name "churchsuite_list_service_plans" says "list": a word for reading.
    Description, as the server wrote it
    List service plans from the Planning module (name, date, time, status, linked event, sites). API: GET /planning/plans.

    Annotations the server declares

    • title: List service plans
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_sitesList the church's sites (campuses/congregations: id, name, initials, address).No findings

    Why it is in this group

    • The name "churchsuite_list_sites" says "list": a word for reading.
    Description, as the server wrote it
    List the church's sites (campuses/congregations: id, name, initials, address). Site ids filter contacts, children, groups, events and plans. API: GET /account/sites.

    Annotations the server declares

    • title: List sites
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_small_group_membersList small group memberships (group id, person = contact or child id, status, role ids, joined date).No findings

    Why it is in this group

    • The name "churchsuite_list_small_group_members" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List small group members
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_small_groupsList small groups (home groups/life groups: name, day, time, frequency, location, description, dates, sign-up options).No findings

    Why it is in this group

    • The name "churchsuite_list_small_groups" says "list": a word for reading.
    Description, as the server wrote it
    List small groups (home groups/life groups: name, day, time, frequency, location, description, dates, sign-up options). API: GET /smallgroups/groups.

    Annotations the server declares

    • title: List small groups
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • churchsuite_list_unavailabilityList the dates people said they are unavailable to serve (person, description, start/end).No findings

    Why it is in this group

    • The name "churchsuite_list_unavailability" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List rota unavailability
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.7.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http churchsuite https://churchsuite.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__churchsuite__churchsuite_get_account",
      "mcp__churchsuite__churchsuite_list_sites",
      "mcp__churchsuite__churchsuite_list_contacts",
      "mcp__churchsuite__churchsuite_get_contact",
      "mcp__churchsuite__churchsuite_list_contact_notes",
      "mcp__churchsuite__churchsuite_list_contact_tags",
      "mcp__churchsuite__churchsuite_list_children",
      "mcp__churchsuite__churchsuite_get_child",
      "mcp__churchsuite__churchsuite_list_children_groups",
      "mcp__churchsuite__churchsuite_list_small_groups",
      "mcp__churchsuite__churchsuite_get_small_group",
      "mcp__churchsuite__churchsuite_list_small_group_members",
      "mcp__churchsuite__churchsuite_list_events",
      "mcp__churchsuite__churchsuite_get_event",
      "mcp__churchsuite__churchsuite_list_event_categories",
      "mcp__churchsuite__churchsuite_list_ministries",
      "mcp__churchsuite__churchsuite_list_ministry_teams",
      "mcp__churchsuite__churchsuite_list_ministry_members",
      "mcp__churchsuite__churchsuite_list_unavailability",
      "mcp__churchsuite__churchsuite_list_service_plans",
      "mcp__churchsuite__churchsuite_list_plan_items",
      "mcp__churchsuite__churchsuite_list_giving_funds",
      "mcp__churchsuite__churchsuite_list_gatherings",
      "mcp__churchsuite__churchsuite_list_attendance_records"
    ],
    "ask": [
      "mcp__churchsuite__churchsuite_add_contact_note"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as churchsuite. Review it before you use it.