Skip to main content
Glama
tracsoftllc

Planning Center Online MCP Server

by tracsoftllc

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port (default: 3000, HTTP mode only)3000
TRANSPORTNoSet to http for HTTP mode (default: stdio)stdio
PCO_APP_IDYesPlanning Center Application ID
PCO_SECRETYesPlanning Center Secret

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
pco_list_people

Search for and list people in Planning Center People (PCO).

Supports filtering by name, status, and more. Returns person records with attributes.

Args:

  • query (string, optional): Search by name (partial match on first or last name)

  • where_first_name (string, optional): Filter by exact first name

  • where_last_name (string, optional): Filter by exact last name

  • where_status (string, optional): Filter by membership status (e.g. 'active', 'inactive')

  • where_gender (string, optional): Filter by gender (e.g. 'M', 'F')

  • where_child (boolean, optional): Filter to only children (true) or adults (false)

  • include_emails (boolean, optional): Include email addresses in response

  • include_phone_numbers (boolean, optional): Include phone numbers in response

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of people with name, status, gender, birthdate, created/updated dates. Error: Returns "Error: ..." message if the request fails.

pco_get_person

Get detailed information about a single person by their PCO ID.

Args:

  • id (string): The PCO person ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full person record including all attributes (name, gender, status, birthdate, etc.). Error: Returns "Error: Resource not found" if the ID is invalid.

pco_create_person

Create a new person record in Planning Center People.

Args:

  • first_name (string, required): First name

  • last_name (string, required): Last name

  • middle_name (string, optional): Middle name

  • birthdate (string, optional): Birthdate in YYYY-MM-DD format

  • gender (string, optional): Gender ('M' or 'F')

  • status (string, optional): Status ('active' or 'inactive', default: 'active')

  • child (boolean, optional): Whether this is a child record

  • medical_notes (string, optional): Medical notes

Returns: The newly created person record with its assigned ID. Error: Returns "Error: ..." if validation fails.

pco_update_person

Update an existing person record in Planning Center People.

Only the fields you provide will be updated (sparse update / PATCH semantics).

Args:

  • id (string): PCO person ID to update

  • first_name (string, optional): Updated first name

  • last_name (string, optional): Updated last name

  • middle_name (string, optional): Updated middle name

  • birthdate (string, optional): Updated birthdate in YYYY-MM-DD format

  • gender (string, optional): Updated gender ('M' or 'F')

  • status (string, optional): Updated status ('active' or 'inactive')

  • medical_notes (string, optional): Updated medical notes

Returns: Confirmation and the updated person record. Error: Returns "Error: Resource not found" if the ID is invalid.

pco_list_person_emails

Get all email addresses for a specific person in PCO.

Args:

  • person_id (string): The PCO person ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of email addresses with location and primary status. Error: Returns "Error: Resource not found" if the person ID is invalid.

pco_list_person_phone_numbers

Get all phone numbers for a specific person in PCO.

Args:

  • person_id (string): The PCO person ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of phone numbers with carrier, location, and primary status. Error: Returns "Error: Resource not found" if the person ID is invalid.

pco_list_households

List households in Planning Center People.

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of households with name, member count, and primary contact. Error: Returns "Error: ..." if the request fails.

pco_list_people_lists

List smart lists (saved filters) in Planning Center People.

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of PCO Lists with name, description, status, and total count. Error: Returns "Error: ..." if the request fails.

pco_list_service_types

List all service types in Planning Center Services.

Service types represent different worship services (e.g., "Sunday Morning", "Wednesday Night").

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of service types with name, frequency, and creation date. Error: Returns "Error: ..." if the request fails.

pco_list_plans

List plans for a specific service type in Planning Center Services.

Args:

  • service_type_id (string): The service type ID (get this from pco_list_service_types)

  • filter (string, optional): Filter plans — 'future' (upcoming), 'past', 'no_dates', or 'undated'

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of plans with title, dates, people count, and items count. Error: Returns "Error: Resource not found" if service_type_id is invalid.

pco_get_plan

Get detailed information about a specific plan in Planning Center Services.

Args:

  • service_type_id (string): The service type ID

  • plan_id (string): The plan ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full plan details including title, dates, team assignments, items, and notes count. Error: Returns "Error: Resource not found" if IDs are invalid.

pco_list_songs

List songs in the Planning Center Services song library.

Args:

  • query (string, optional): Search songs by title

  • hidden (boolean, optional): Filter by hidden status (true = hidden, false = visible only)

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of songs with title, author, CCLI number, and last scheduled date. Error: Returns "Error: ..." if the request fails.

pco_list_teams

List teams for a specific service type in Planning Center Services.

Args:

  • service_type_id (string): The service type ID (get this from pco_list_service_types)

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of teams with name, schedule type, and whether it's a rehearsal team. Error: Returns "Error: Resource not found" if service_type_id is invalid.

pco_list_series

List sermon/service series in Planning Center Services.

Args:

  • service_type_id (string): The service type ID (get this from pco_list_service_types)

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of series with title, artwork, and plan count. Error: Returns "Error: Resource not found" if service_type_id is invalid.

pco_list_donations

List donations in Planning Center Giving.

Args:

  • where_received_after (string, optional): Filter donations received after this date (YYYY-MM-DD)

  • where_received_before (string, optional): Filter donations received before this date (YYYY-MM-DD)

  • where_payment_method (string, optional): Filter by payment method (e.g., 'card', 'check', 'cash')

  • where_payment_status (string, optional): Filter by status (e.g., 'succeeded', 'pending', 'failed')

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of donations with amount, payment method, date, and status. Error: Returns "Error: ..." if the request fails.

pco_get_donation

Get detailed information about a specific donation by ID.

Args:

  • id (string): The donation ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full donation record including amount, payment details, fund designations, and dates. Error: Returns "Error: Resource not found" if the ID is invalid.

pco_list_funds

List giving funds in Planning Center Giving.

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of funds with name, ledger code, description, visibility, and default status. Error: Returns "Error: ..." if the request fails.

pco_list_donation_batches

List donation batches in Planning Center Giving.

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of batches with description, status, total, and commit date. Error: Returns "Error: ..." if the request fails.

pco_list_groups

List groups in Planning Center Groups.

Args:

  • query (string, optional): Search groups by name

  • where_group_type_id (string, optional): Filter by group type ID

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of groups with name, description, location, schedule, and member count. Error: Returns "Error: ..." if the request fails.

pco_get_group

Get detailed information about a specific group by its ID.

Args:

  • id (string): The group ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full group record including name, description, location, schedule, member count, and Church Center URL. Error: Returns "Error: Resource not found" if the ID is invalid.

pco_list_group_members

List members of a specific group in Planning Center Groups.

Args:

  • group_id (string): The group ID (get this from pco_list_groups)

  • filter (string, optional): Filter members — 'leader' for leaders only, 'member' for regular members

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of group members with their name, role, and join date. Error: Returns "Error: Resource not found" if the group ID is invalid.

pco_list_group_types

List group types in Planning Center Groups.

Group types categorize groups (e.g., "Small Groups", "Bible Studies", "Recovery").

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of group types with name and group count. Error: Returns "Error: ..." if the request fails.

pco_list_calendar_events

List events in Planning Center Calendar.

Args:

  • filter (string, optional): Filter events — 'approved', 'pending', 'rejected', 'future', 'past'

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of events with name, approval status, description, and visibility. Error: Returns "Error: ..." if the request fails.

pco_get_calendar_event

Get detailed information about a specific calendar event.

Args:

  • id (string): The event ID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full event record with name, approval status, description, visibility, and registration info. Error: Returns "Error: Resource not found" if the ID is invalid.

pco_list_event_instances

List specific instances (occurrences) of a calendar event.

Args:

  • event_id (string): The calendar event ID (get this from pco_list_calendar_events)

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of event instances with start/end times and location. Error: Returns "Error: Resource not found" if the event ID is invalid.

pco_list_calendar_resources

List facility resources (rooms, equipment) in Planning Center Calendar.

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of resources with name, kind, description, and quantity. Error: Returns "Error: ..." if the request fails.

pco_list_checkins

List check-in records in Planning Center Check-Ins.

Args:

  • where_created_after (string, optional): Filter check-ins created after this date (YYYY-MM-DD)

  • where_created_before (string, optional): Filter check-ins created before this date (YYYY-MM-DD)

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of check-in records with name, security code, kind, and timestamps. Error: Returns "Error: ..." if the request fails.

pco_list_checkin_events

List events (attendance tracking sessions) in Planning Center Check-Ins.

Args:

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of check-in events with name, frequency, and enable settings. Error: Returns "Error: ..." if the request fails.

pco_list_checkin_locations

List locations (rooms) for a check-in event in Planning Center Check-Ins.

Args:

  • event_id (string): The check-in event ID (get this from pco_list_checkin_events)

  • limit (number): Max results (1-100, default 25)

  • offset (number): Pagination offset (default 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: List of locations with name, capacity, and check-in count. Error: Returns "Error: Resource not found" if the event ID is invalid.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tracsoftllc/PCO-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server