pco-services-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PCO_SECRET | No | Planning Center Secret; set both this and PCO_APPLICATION_ID to use instead of the credential store | |
| PCO_TIME_ZONE | No | IANA zone (e.g. America/Chicago) used for whole-day blockouts; defaults to your church's time zone in Planning Center | |
| PCO_DOWNLOAD_DIR | No | Where attachments are saved, one folder per plan | ~/Documents/Planning Center |
| PCO_APPLICATION_ID | No | Planning Center Application ID; set both this and PCO_SECRET to use instead of the credential store |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| my_scheduleA | When you're next serving: date, service and rehearsal times, team, position and status. Times are local to the church, in the returned time_zone; times is null where Planning Center doesn't show you the plan. Returns service_type_id and plan_id for plan_team, service_order and attachments. |
| plan_teamC | Who is scheduled on one of your plans, grouped by team, with position and status. |
| team_contactsB | Email addresses and phone numbers for the people on one of your plans. emails or phones is null where Planning Center doesn't let you see that person's details. |
| contact_infoA | Email and phone for someone on your upcoming plans, found by any part of their name. Searches the people scheduled on the plans of your next 10 schedule entries. emails or phones is null where Planning Center doesn't let you see that person's details. |
| service_orderC | The order of service for one of your plans: songs, keys, arrangements and lengths. |
| list_attachmentsC | Files attached to one of your plans (charts, lead sheets, audio), labelled by song. |
| download_attachmentsA | Download attachments for one of your plans into the configured download folder. attachment_ids (from list_attachments) and file_types (e.g. ["pdf"]) narrow the set; with neither, every downloadable file is fetched. Files already current are skipped. |
| list_blockoutsC | Your blockout dates (times shown in the church's time zone). |
| add_blockoutA | Add a blockout so you aren't scheduled. start/end: YYYY-MM-DD for whole days (end defaults to start), or ISO date-times (end required; no offset means church time). repeat with every=N repeats every N periods; monthly_by picks the same date or the Nth week of the month. repeat_until is a date. |
| remove_blockoutA | Delete one of your blockouts. For a repeating blockout this deletes the WHOLE series; use skip_blockout_date to drop a single date instead. |
| skip_blockout_dateA | Make you available on one date of a repeating blockout, keeping the rest of the series. This can't be undone through the API (only in Planning Center itself, or by deleting the series). |
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 11 tools
Most tools target clearly distinct resources: attachments (list/download), blockouts (list/add/remove/skip), schedule views, and service order. The one soft overlap is team_contacts vs contact_info, which both return emails/phones, but the descriptions separate them by lookup path (per-plan vs name-search across upcoming plans). An agent can tell them apart, though it may hesitate.
About half the tools use a clean verb_noun pattern (list_attachments, add_blockout, remove_blockout, skip_blockout_date), but the rest are bare noun phrases (my_schedule, plan_team, team_contacts, contact_info, service_order). Mixed conventions, yet still readable and non-conflicting.
11 tools is squarely in the well-scoped range, and each one maps to a concrete task (check schedule, manage blockouts, fetch attachments, view team/contact info). Nothing feels redundant or vestigial.
The blockout lifecycle is well covered (list, add, remove, skip a single date) and the schedule/plan/attachment surfaces are present. Minor gaps: no edit/update for an existing blockout and no standalone way to enumerate plans or service types (they are surfaced indirectly via my_schedule IDs).